美文网首页
Verilog-tips

Verilog-tips

作者: falrom | 来源:发表于2016-07-08 16:45 被阅读88次

    ※ 参考书:Verilog HDL 数字设计与综合(第二版)(本科教学版)

    • 字符串:必须在一行内写完。不可以包含回车。
    • module中的input和output与函数值传递不同。物理意义是相连。接口的内与外是不同的,也各自有各自的要求。
    • 惯性延迟:当输入的脉冲信号宽度小于延迟时,该信号变化(即脉冲)对输出不起任何作用。
    • x&&0 → x,不是0。
    • initial与always之后的语句块(begin-end)中均为顺序执行。#延迟参数均是相对于上一条语句的相对时间。区别见表格:
    initial always
    只执行一次 循环执行
    不可综合 可综合
    • 连续赋值语句需要标识符assign,表示的是一种连接关系,时刻是active的,参量的变换一直会及时反映的左值。过程赋值语句只是一次性赋值。
      • 隐式连续赋值中,在定义变量同时确定链接关系,没有使用assign关键字,注意一定与过程性赋值有所区分!!!
    • 非阻塞赋值语句:
      • 总体的时间延迟仍旧受之前的阻塞语句影响。
      • 写在一起的所有非阻塞赋值语句并行走,对顺序不敏感。
      • 执行瞬间,仿真器现将所有语句右值存储,之后根据时间调度运算赋值。因而使用的均为“旧值”。
      • 例子详见课本81页下。
    • 电平跳变:
      • posedge:0→x,z,1;x,z→1。即脱离0或者到达1。
      • negedge:1→x,z,0;x,z→0。即脱离1或者到达0。
    • case语句与C语言中的switch语句并不完全相同:
      • 是case-endcase。
      • 每个case语句块最后不需要写break;也无法完成顺延执行的功能。
      • 但可以实现多种case执行同一个语句块,用“,”隔开。
    • 总线为inout并赋值z时,表示悬挂, 读取该总线值为z,没有数据;但是与驱动源连接时,该总线可以被赋值为驱动源值,并可以将值赋给reg等。见P158上。
    • 可综合原则8条:
      1. 时序电路建模时,使用非阻塞赋值。
      2. 锁存器电路建模时,用非阻塞赋值。
      3. 用always块建立组合逻辑模型时,用阻塞赋值。
      4. 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。
      5. 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。
      6. 不要在一个以上的always块中为同一个变量赋值。
      7. 用$strobe系统任务来显示用非阻塞赋值的变量值。
      8. 在赋值时不要使用延迟(包括#0)。

    相关文章

      网友评论

          本文标题:Verilog-tips

          本文链接:https://www.haomeiwen.com/subject/qikrjttx.html