
FPGA学习笔记
文章平均质量分 62
shimmy_lee
这个作者很懒,什么都没留下…
展开
-
跨时钟域电路设计方法
在数字电路设计过程中 ,难免会遇到某个信号需要跨越不同时钟域的情况。如果对跨时钟域的信号不做妥善的处理,跨越时钟域后,信号可能发生亚稳态,传播亚稳态,导致电路工作异常。并且,由跨时钟域处理不当引发的问题可能是偶现的,通常很难复现和定位问题。综上,CDC(Clock Domain Crossing,跨时钟域)处理,是数字设计中基本而又重要的一个课题。亚稳态信号输入触发器时,如果在时钟的触发沿(Tsetup+Thold)时间窗口内发现了变化,会导致触发器采集到逻辑0与1之间的中间电平,采集到的值处于不.原创 2021-03-08 14:39:15 · 3708 阅读 · 0 评论 -
modelsim 独立仿真vivado fifo IP核
1.前言vivado内自带仿真器,或者可以通过vivado启动第三方仿真工具,联合仿真。但是很多时候,我们希望脱离vivado,利用modelsim或者vcs等第三方仿真工具,高效地仿真。本文介绍如何利用modelsim独立仿真vivado 的IP核(以一个同步fifo为例)2.准备工作vivado的ip核仿真相对于altera的ip核仿真较为复杂。altera只需要在仿真的filelist中,添加altera_mf.v以及altera220_model.v,就可以方便地仿真IP核(但是比较新的原创 2021-02-23 18:45:09 · 5791 阅读 · 1 评论 -
异步复位,同步释放
异步复位,同步释放异步复位有可能引发亚稳态问题,需将异步复位同步化以后,再输出给寄存器使用。以低有效复位为例代,码如下:reg rst_n_d1;reg rst_n_d2;always@(posedge clk or negedge rst_n)beginif(rst_n==1’b0)begin rst_n_d1 <= rst_n; rst...原创 2020-03-02 12:40:51 · 494 阅读 · 1 评论 -
24LC04B EEPROM 读写的 FPGA实现
microchip公司的24LC04B芯片内含4K 存储空间,采用两线串口总线,兼容IIC协议总线。1.地址线与数据线复用,都使用SDA引脚。2.一帧数据以起始位开始,以结束位结束。时钟信号为高电平时,SDA信号的变化会被视为start 或者stop信号:由高到低被认为是start信号,由低到高会被认为是stop信号。也就是说,在传输数据的过程中,数据的变化只能发生在在SCL信号为低电平期原创 2015-12-28 10:47:38 · 2270 阅读 · 0 评论 -
XILINX MCB DDR3读写操作笔记
xilinx spartan 6 器件内置硬核MCB(memory controller block)赛灵思官方文件ug388对利用MCB控制DDR存储器做了详细的介绍(主要在MCB operation章节)FPGA配置完成以及PLL锁定后,MCB会自动完成初始化和校验。随后就可以进行常规的读写预充电刷新等一般操作。MCB的指令和数据分别缓存在指令FIFO和数据FIFO内。往DDR写入数据原创 2016-01-11 20:13:52 · 9619 阅读 · 0 评论 -
NIOS II EPCQ FLASH启动过程要点 NIOS II BOOT LOADER/COPIER
从EPCQ FLASH启动nios,并自动运行应用程序(以hello_world为例),按照bootloader(altera称之为boot copier)是否为自定义的,分为两种方法:一,bootloader不是自定义的,是通过nios SBT软件自动生成的,该方法即 intel altera Embedded Design Handbook中5.2.3.4所述方法。 二,由于需要在多个原创 2018-01-14 16:26:29 · 4383 阅读 · 1 评论 -
VIVADO及ZYNQ使用经验
1.添加debug核的合理方法是在源代码中添加(*mark_debug="true"*),综合后,打开综合结果,set debug内这些标记的信号全部在网标内,不会被优化掉。如果不在代码里加这些标记,直接在综合结果里添加net,很多感兴趣的信号会被优化掉,且残缺不全。2.若果debug核使用的时钟是zynq ps端输出的时钟,那么烧录完bit文件后,是不会自动弹出debug界面的,需要在软件工...原创 2018-08-02 15:44:28 · 5384 阅读 · 2 评论 -
ALTERA千兆网IP核Triple-Speed Ethernet使用方法
一、实验实现功能本文仅实现最简单的fpga向电脑主机发送hello world,UDP包,每隔一秒发送一次。上板跑通,可证明整条传输链路打通,对IP核的配置及使用是正确的。主要参考文献是altera官方的ug 01008"Triple-Speed Ethernet Intel FPGA IP User Guide".读者需对以太网OSI分层模型有基本的了解。需要知道物理层帧格式、IP层包格式以...原创 2018-11-19 21:02:14 · 10136 阅读 · 13 评论 -
verilog中的有符号数乘法及其乘积位宽确定
verilog中的乘法运算可如下处理:无论正负,乘数与被乘数均以补码(two's complement)表示,同时,乘数与被乘数的高位,需补符号位至与积同宽。(即,无符号数补0,有符号数补符号位)举例:两个3bit数相乘,3'b101 * 3'b011我们知道3bit可以表示U.3.0,也可以表示S.2.0.做运算时,我们知道他是表示U.3.0还是S.2.0两个数4种组合:...原创 2019-05-17 10:01:13 · 17268 阅读 · 1 评论