数电第四周周结

1.赋值语句

  • 基本概念:

    数电第四周周结_by_yc-小白菜博客

 

  • 连续赋值:
      1.连续赋值不能出现在过程块(如initial,always)中间;
      2.连续赋值语句之间是并行的;
      3. 只能对wire型变量进行赋值。
     
  • 过程赋值-阻塞赋值:
      1.操作符:=
      2.操作符左边的赋值变量必须是reg型变量;
      3.过程块中,阻塞赋值语句是按照从上到下顺序执行的;
      4.执行过程:首先计算右端赋值表达式的取值,然后立即将计算结果赋给“=”左端的被赋值变量。
     
  • 过程赋值-非阻塞赋值:
      1.操作符:<=
      2.操作符左边的赋值变量必须是reg型变量;
      3.过程块中,非阻塞赋值语句是并行执行的;
      4.执行过程:首先计算右端赋值表达式的取值,然后等到当前仿真时间结束时将计算结果赋给“=”左端的被赋值变量。
     
  • 延时:
      赋值号左侧延时为相隔与上一条语句执行的延时量;
      赋值号右侧延时为右侧表达式得到运算结果后延时将结果赋给左边变量。
     
  • 小tips:
      ① 组合逻辑电路:阻塞赋值;
      ② 时序逻辑电路:非阻塞赋值;
      ③ 锁存器:非阻塞赋值。
      ④ 时序和组合逻辑混合电路:非阻塞赋值;
      ⑤ 同一过程块中,最好不要同时使用阻塞赋值和非阻塞赋值;
     

2.时间标记指令

  `timescale 1ns/100ps 表示时延单位为1ns, 时延精度为100ps。在模块说明外部出现, 并且影响后面所有的时延值。时延值5.22对应5.2 ns, 时延6.17对应6.2 ns.
  同时有:时延精度不应大于时延单位,时延精度表示的是电路仿真时的精度。

E1

E2