verilog设计经验浅谈_第1页
verilog设计经验浅谈_第2页
verilog设计经验浅谈_第3页
verilog设计经验浅谈_第4页
verilog设计经验浅谈_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、因为verilog是一种i更件描述语言,所以在写ver订og语言时,首先要有所要写的module在®!件上 如何实现的概念,而不是去想编译器如何去解释这个module.比如在决定是否使用reg定义时,要问问白 己物理上是不是真正存在这个register,如果是,它的clock是什么? d端是什么? q端是什么?有没有 淸零和宣位?同步还是界步?再比如上面讨论的三态输出问题,首先想到的应该是在register的输出后面 加一个三态门,而不是如何才能让编译器知道要''赋值”给一个信号为三态。同verilog中没有“编 译”的概念,而只冇综合的概念。verilog设计经验浅

2、谈1, 敏感变量的描述完备性verilog中,用always块设计组合逻辑电路时,在赋值表达式右端参与赋值的所冇信号 都必须在always (敏感电平列表)屮列出,always + if语彳u的判断表达式必须在敏感电平列表 中列出。如呆在赋值表达式右端引用了敏感电平列表中没有列出的信号,在综合吋将会为没 有列出的信号隐含地产住一个透明锁存器。这是因为该信号的变化不会立刻引起所赋值的变 化,而必须等到敏感电平列表中的某一个信号变化时,它的作用才表现出来,即相当于存在 一个透明锁存器,把该信号的变化暂存起來,待敏感电平列表中的某一个信号变化时再起作 用,纯组合逻辑电路不可能作到这一点。综合器会发出

3、警告。examplei:input a,b,c;reg e,d;always (a or b or c)begine=d&a&b; /*d没有在敏感电平列表中,d变化时e不会立刻变化,直到a,b,c中某一个变化*/d=e |c;endexample2:input a,b,c;reg e,d;always (a or b or c or d)begine=d&a&b; /*d在敏感电平列表中,d变化时e立刻变化*/d=e |c;end2, 条件的描述完备性如果if语句和case语句的条件描述不完备,也会造成不必要的锁存器。examplel:if (a= = 1&#

4、39;b1) q=vb1;/如果a= = 1*b0,q=? q将保持原值不变,生成锁存器!example2:if (a= = 1'b1) q=vb1;elseq=rbo;/q有明确的值。不会生成锁存器!example3:reg1:0 a,q;case (a)?boo : q=2*b00;2*b01 : q= 2*611;/如果 a= = 2'b10a= = 2*b11,q=?q 将保持原值不变,锁存器!endcaseexample4:reg1:0 a,q; case (a)2*b00 : q=2*b00;2*b01 : q=2*b11;default: q=?boo;/q有明确

5、的值。不会生成锁存器!endcaseverilog中端口的描述仁端口的i/o与数据类型的关系:端口的i/o端口的数据类型module内部 module外部input output inoutwirewire 或 regwire 或 regwirewirewire2, assign语句的左端变量必须是wire;直接用怙”给变量赋值吋左端变量必须是reg!example:assign a=b; a必须被定义为wire! !begina=b; /a必须被定义为reg!endvhdl + std_logiclvector 和 integer 的区别例如a是integer型,范用从0到255; b是st

6、d_logic_vector,定义为8位。a累加到255时,再加1就一直保持255不变,不会自动反转到0,除卄令其为0;而b累加到255时,再加1就会自动反转 到0。所以在使用吋要特别注意!以触发器为例说明描述的规范性1, 无置位/淸零的时序逻辑always ( posedge clk)beginq< = d;end2, 冇界步置位/淸零的时序逻辑异步置位/清零是与时钟无关的,当异步置位/清零信号到來时,触发器的输出立即被置为1或0,不 需耍等到时钟沿到來才置位/淸零。所以,必须耍把置位/淸零信号列入always块的事件控制农达式。always ( posedge clk or nege

7、dge reset)beginif ('reset)q=0;else0< = d;end3, 有同步置位/清零的时序逻辑同步置位/清零是指只有在时钟的有效跳变时刻置位/淸零,才能使触发器的输岀分 别转换为1或0。 所以,不要把置位/清零信号列入always块的爭件控制表达式。但是 必须在always块中首先检査置位/ 清零信号的屯平。always ( posedge clk)beginif (! reset)q=0;elseq< = d;end结构规范性在整个芯片设计项目中,行为设计和结构设计的编码是最重要的一个步骤。它对逻辑综合和布线结果、时 序测定、校验能力、测试能力r

8、t至产品支持都冇重要的彩响。考虑到仿真器和真实的逻辑电路z间的差界, 为了冇效的进行仿真测试:1, 避免使用内部生成的时钟内部牛成的时钟称为门牛时钟(gated clock)。如果外部输入时钟和门生时钟同时驱动,则不可避免 的两者的步调不一致,造成逻辑混乱。而且,门生时钟将会增加测试的难度 和时间。2, 绝对避免使用内部生成的异步置位/清零信号内部生成的置位/淸零信号会引起测试问题。使某些输出信号被扯位或淸零,无法正常测试。3, 避免使用锁存器锁存器可能引起测试问题。对于测试向量自动生成(atpg),为了使打描进行,锁存器需要趕为透明 模式(transparent mode),反过來,测试锁存

9、器需要构造特定的向量,这可非同一般。4, 时序过程要有明确的复位值使触发器带冇复位端,在制造测试、atpg以及模拟初始化时,可以对整个电路进行快速复位。5, 避免模块内的三态/双向内部三态信号在制造测试利逻辑综合过程中难于处理.verilog中两种不同的赋值语句不阻塞(non-blocking)赋值语句:always (posedge elk)beginb <= a ;c <= b;end生成两个触发器。阻塞(blocking)赋值语句:always (posedge elk)beginend生成一个触发器。行为模块:在仿真时其农现的功能与某实体逻辑电路完全-致的verilog h

10、dl模块,但并没有手段 生成对应的门级逻辑电路与之对应。用于系统分割时验证各部分的功能指标分配是否介理;-在仿真时可用于替代与所设计电路系统相连接的现成可购得的外围电路;-用于产生测试信号和数据输入到所设计电路系统并接收它的应答信号和输出以验证其功能。可综合模块:可通过综合工具,自动地转换为门级逻辑电路的verilog hdl模块。它的仿真町以在两个层 次上进行,行为级和门级。-想要设计的用硕线逻辑构成的电路系统;-由基本的逻辑器件为某础所构成的各种层次的结构模块;综合器能理解并能将其编译为门级逻辑的模块;对一般的综合器而言,单纯的rtl级verilog hdl模块以及rtl和结构熨混合hdl

11、模块。时序分析的常用概念:koock setup time (tsu):所谓时钟建立时间就是指时钟到达询,数据和使能己经准备好的最小时间间隔。altera 的 tsu 定义如下:tsu = data delay 一 clock delay + micro tsumicro tsu:指的是一个触发器内部的建立时间,它是触发器的固冇属性,一般典型值小于12ns,在altera 的micro tsu为setup时间,用tsetup表示,请大家区分一下。2、clock hold time (th):时钟保持时间是只能保证有效时钟沿止确采用的数据和使能信号的最小稳定时 间。定义的公式为:th= clock delay - data delay + micro th3、oock-to-output delay (tco):这个时间指的是当时钟冇效沿变化后,将数据推到同步时序路径的输出 端的最小时间间隔。tco = clock delay + micro tco 4- data delay4、rn to rn delay (tpd) : tpd指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需耍说 明的是,耍求输入到输出之间只有组合逻辑,才是tpd延时。5、slackslack是农示设计是否满足时序的 个称谓,正的slack表示满足时序(时序的余量),负的slack表示不 满足时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论