verilog综合小结

本文总结了Verilog编程中的关键概念,包括变量类型、语句结构的门级映射、逻辑操作符、算术操作及移位运算。强调了在设计组合逻辑时使用阻塞赋值,时序逻辑时使用非阻塞赋值,以及如何避免产生latch。还提到了模块优化、资源共享和参数化设计的重要性,并提醒在验证过程中注意敏感表和异步复位的处理。
摘要由CSDN通过智能技术生成

一:基本
Verilog中的变量有线网类型和寄存器类型。线网型变量综合成wire,而寄存器可能综合成WIRE,锁存器和触发器。

二:verilog语句结构到门级的映射

  1. 连续性赋值:assign
    连续性赋值语句逻辑结构上就是将等式右边的驱动左边的结点。因些连续性赋值的目标结点总是综合成由组合逻辑驱动的结点。Assign语句中的延时综合时都将忽视。
  2. 过程性赋值:
    过程性赋值只出现在always语句中。
    阻塞赋值和非阻塞赋值就该赋值本身是没有区别的,只是对后面的语句有不同的影响。
    建议设计组合逻辑电路时用阻塞赋值,设计时序电路时用非阻塞赋值。
    过程性赋值的赋值对象有可能综合成wire,latch,和flip-flop,取决于具体状况。如,时钟控制下的非阻塞赋值综合成flip-flop。
    过程性赋值语句中的任何延时在综合时都将忽略。
    建议同一个变量单一地使用阻塞或者非阻塞赋值。
  3. 逻辑操作符:
    逻辑操作符对应于硬件中已有的逻辑门
  4. 算术操作符:
    Verilog中将reg视为有符号数,而integer视为有符号数。因此,进行有符号操作时使用integer,使用无符号操作时使用reg。
  5. 进位:
    通常会将进行运算操作的结果比原操作数扩展一位,用来存放进位或者借位。如:
    Wire [3:0] A,B;
    Wire [4:0] C;
    Assign C=A+B;
    C的最高位用来存放进位。
  6. 关系运算符:
    关系运算符:<,>,<=,>=
    和算术操作符一样,可以进行有符号和无符号运算,
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值