Verilog-tips

※ 参考书: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)。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 10#数据类型 合并数组和非合并数组 合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以...
    constant007阅读 33,338评论 0 18
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 27,957评论 5 19
  • 2017.7.17凌晨 我越想烦心事越睡不着,突然打了两个喷嚏,然后发觉放松了很多。 一而再再而三的原谅容易养成对...
    禾必阅读 257评论 8 1
  • 今天终于把小项目给做完了,感觉在实战过程中学到的知道很多,做一个项目比看十遍视频都要强,在做项目的过程中会发现很多...
    符男帮阅读 145评论 0 0
  • 我算过一笔帐, 我在某二流学校读新闻专业, 朋友A读重本,四年都没拿奖学金,我年年拿,年年都是一等奖; +朋友B是...
    兔U阅读 4,802评论 26 172