您好、欢迎来到现金彩票网!
当前位置:PC蛋蛋 > 组合逻辑综合 >

硬件描述语言Verilog HDL设计进阶之: 逻辑综合的原则以及可综合

发布时间:2019-06-10 13:17 来源:未知 编辑:admin

  硬件描述语言Verilog HDL设计进阶之: 逻辑综合的原则以及可综合的代码设计风格

  (2)always块可以表示时序逻辑或者组合逻辑,也可以用always块既表示电平敏感的透明锁存器又同时表示组合逻辑。但是不推荐使用这种描述方法,因为这容易产生错误和多余的电平敏感的透明锁存器。

  (3) 带有posedge 或 negedge 关键字的事件表达式表示沿触发的时序逻辑;没有posedge 或negedge关键字的表示组合逻辑或电平敏感的锁存器,或者两种都表示。在表示时序和组合逻辑的事件控制表达式中如有多个沿和多个电平,其间必须用关键字“or” 连接 。

  (4)每个表示时序逻辑的always块只能由一个时钟跳变沿触发,置位或复位最好也由该时钟跳变沿触发。

  (5)每个在always块中赋值的信号都必需定义成reg型或整型。整型变量缺省为32bit,使用Verilog操作符可对其进行二进制求补的算术运算。综合器还支持整型量的范围说明,这样就允许产生不是32位的整型量,句法结构如下:

  (6)always块中应该避免组合反馈回路。每次执行always块时,在生成组合逻辑的always块中赋值的所有信号必需都有明确的值;否则需要设计者在设计中加入电平敏感的锁存器来保持赋值前的最后一个值。

  只有这样,综合器才能正常生成电路。如果不这样做,综合器会发出警告,提示设计中插入了锁存器。如果在设计中存在综合器认为不是电平敏感锁存器的组合回路时,综合器会发出错误信息(例如设计中有异步状态机时)。

  用always块设计纯组合逻辑电路时,在生成组合逻辑的always块中,参与赋值的所有信号都必须有明确的值,即在赋值表达式右端参与赋值的信号都必需在always @(敏感电平列表)中列出。

  如果在赋值表达式右端引用了敏感电平列表中没有列出的信号,那么在综合时,将会为该信号产生一个隐含的透明锁存器。这是因为该信号的变化不会立刻引起所赋值的变化,而必须等到敏感电平列表中某一个信号变化时,它的作用才显现出来。

  也就是相当于存在着一个透明锁存器把该信号的变化暂存起来,待敏感电平列表中某一个信号变化时再起作用,纯组合逻辑电路不可能做到这一点。这样,综合后所得电路已经不是纯组合逻辑电路了。这时综合器会发出警告提示设计中插入了锁存器,如下所示:

  e = d a b; //因为d没有在敏感电平列表中,所以d变化时,e不能立刻变化,

  (7)对一个寄存器型(reg)或整型(integer)变量的赋值只允许在一个always块内进行,如果在另一always块也对其赋值,这是非法的。

  (8)把某一信号值赋为bx,综合器就把它解释成无关状态,因而综合器为其生成的硬件电路最简洁。

  例4.7:指令译码电路的设计实例(利用电平敏感的always块来设计组合逻辑)。

  例4.8:比较后重组信号的组合逻辑(利用task和电平敏感的always块设计)。

  使用assign赋值语句、case语句或if-else语句可以生成多路器电路。如果条件语句(case或if-else)中分支条件是互斥的话,综合器能自动地生成并行的多路器。

  例4.18:带置位和复位端的电平敏感型锁存器设计实例二(assign语句)。

  注意 有的综合器会产生一个警告信息,提示将产生了一个电平敏感型锁存器。因为此例中设计的就是一个电平敏感型锁存器,所以这个警告信息是没有问题的。

  英特尔宣布首款 58Gbps FPGA 收发器开始批量生产,支持 400G 以太网部署

  英特尔借助全新10纳米英特尔® Agilex™ FPGA家族,推动打造以数据为中心的世界

  上一篇:硬件描述语言Verilog HDL设计进阶之: 典型实例-状态机应用

  下一篇:硬件描述语言Verilog HDL设计进阶之:自动转换量程频率计控制器

http://dietamujer.com/zuheluojizonghe/6.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有