我的verilog学习笔记1

我的verilog学习笔记1

ID:13724880

大小:505.00 KB

页数:27页

时间:2018-07-24

我的verilog学习笔记1_第1页
我的verilog学习笔记1_第2页
我的verilog学习笔记1_第3页
我的verilog学习笔记1_第4页
我的verilog学习笔记1_第5页
资源描述:

《我的verilog学习笔记1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Verilog学习笔记1.我的第一个verilog程序:三态门modulethree_status_device(in,out,oe);inputin,oe;outputout;assignout=(oe)?in:1'bz;endmodule其中oe为输出有效端,当oe置高则输入能顺利通过,否则输出高阻态。查看TechnologySchematic后可知three_status_device模块使用的FPGA内部资源:分别是输入缓冲器IBUF,非门INV和三态缓冲器OBUFT。我们还可以通过ViewSynthesisReport来观察到底使用了多少资源:我们可以看出所

2、选的芯片类型为V5系列的fx100,SPEED等级为-2,使用了1个查找表,1个FlipFlop触发器和3个IO口。由于模块比较简单,我们直接进入后仿真阶段;最后,我们可以通过中的ViewHDLInstantiationTemplate看到生成的HDL模板供我们调用实例:three_status_deviceinstance_name(.in(in),.out(out),.oe(oe));小结:通过设计三态门,熟悉了verilog开发的主要流程和ise中的常用工具。反思:对于高阻态,一般FPGA内部是不支持判断的。现在有些比较新的FPGA内部已经带有BUFT三态门让用

3、户直接调用(在IOB中),而对于市面上常用的FPGA则无法做到,因为内部并没有BUFT三态门,所以就需要用到slice资源中的MUX复用器,用MUX除了多占用LC/LE的资源以外,受控信号(如数据总线等)会随着驱动源的增加而使延时加大。也有说法是使用RAM或ROM的总线结构提供高阻态的输出。在FPGA开发时,一般将不用的IO口设置为三态状态,如果IO口较多的时候既占用连线资源也占用slice资源,对系统产生延迟。2.组合逻辑:有毛刺怎么办?引用《数字电路基础》的描述,当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象,称为竞争。由竞争而可能产生

4、的输出干扰脉冲的现象就叫做冒险,也就是通俗上说的毛刺。书上还给出了常用的消除竞争冒险的方法:消除互补相乘项:通过人为优化逻辑表达式,消去同一信号的同反相同时存在项,降低竞争的发生几率。增加乘积项避免互补项相加:若组合逻辑表达式中,在某些信号取一定值的情况下,表达式可化为一个信号的同反相同时相乘或相加时,则需要人为加入相乘项以确保此时输出状态的稳定。那么在verilog如何实现消除毛刺呢?信号在fpga器件中通过逻辑单元连线时,一定存在延时。延时的大小不仅和连线的长短和逻辑单元的数目有关,而且也和器件的制造工艺、工作环境等有关。因此,信号在器件中传输的时候,所需要的时间

5、是不能精确估计的,当多路信号同时发生跳变的瞬间,就产生了“竞争冒险”。这时,往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。另外,由于fpga以及其它的cpld器件内部的分布电容和电感对电路中的毛刺基本没有什么过滤作用,因此这些毛刺信号就会被“保留”并传递到后一级,从而使得毛刺问题更加突出。尽管毛刺持续时间很短,但在高速电路中,这样的毛刺足以使后一级电路产生“误动作”。要消除毛刺,我们先要了解FPGA内部毛刺的具体特点:由于布线延迟,和器件延迟,取决于FPGA内部结构,这个涉及到约束问题,http://www.eefocus.com/shineboy1985

6、0420/blog/09-10/178252_efbd3.html,由于接触不多,不在此进行讨论。通过阅读资料,可以知道大多数毛刺都比较短(大概几个纳秒),只要毛刺不出现在时钟跳变沿,毛刺信号就不会对系统造成危害。FPGA中消除毛刺的常用方法是:1.触发器输出通过添加触发器,使输出信号在clk跳变沿进行读取,并输出,能有效地降低毛刺的发生几率。但这样的话,延时也就增大。但是,毛刺的产生是不定时的,如果毛刺在时钟跳变时期产生,则使用触发器的方法无法解决问题。2.信号延时法信号延时法,顾名思义,延时信号处理时期,等待信号稳定时再对数据进行处理。它的具体做法有很多:信号延时

7、检测信号延时方法很多,如使用门级电路延时,fpga的专用延时单元lcell,毛刺的产生随机性,单凭延时是无法解决问题的。时钟延时像使用触发器的原理类似,通过增加时钟计数器,对时钟进行分频,加大时钟间隔,来保证对信号进行处理的时候信号已经稳定;或者为防止在信号检测时钟跳变时,信号发生变化,延时对信号检测时间,比如加入标志位寄存器,信号跳变后的下一个检测时钟对其检测。这针对检测时期瞬变信号导致检测错误的方法。状态机检测使用状态机对信号进行多次检测,首先第一次检测信号,进入下一状态,再次检测信号并与前面进行比较,如果不同则重新开始检测知道检测一定次数后确定

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。