05-Verilog基础语法_4

Verilog基础语法

Mixed Model(混合设计模型)

System Tasks(系统任务,系统函数)

  • 用随机数驱动验证
fd = $fopen("文件路径及文件名")

// 将含有参数的字符串写到fd打开的文件中
$fdisplay(fd,"xxx",arg1,arg2,arg3...)

// 关闭文件
$fclose(fd)
$random 返回32bit 有符号随机整数

// 范围 -(b-1) - (b-1)
num = $random % b

// 范围:0 - (b-1)
// num = {$random} % b; 

格式化输出

parameter

  • 参数化定义,比如设计一个四位的DFF和2位的DFF,位宽不同,可以将位宽写成参数形式,在下次进行设计的时候只需要修改位宽就可以了。

  • 使用参数化设计

Testbench

FFs & latch






  • DFF和Latch建模区别
always @(posedge)  // 参数列表有上升沿
if(rst_n)
  Q <= 0;
else
  Q <= D;

always @(rst_n,Q,d,g) // 参数列表没有上升沿
if(rst_n)
  Q <= 0;
else if(g)  // if g == 1的时候数据通过,g != 1的时候数据锁存,就形成了锁存器
  Q <= d;  

  • 同步复位信号,同步在Clk的上升沿上
  • 移位寄存器

upper counter with load value

FSM(有限状态机)



  • 有限状态机一般写为三段式



Blocking and Non-Blocking Assignments(阻塞赋值和非阻塞赋值)


posted @ 2023-02-09 21:35  Icer_Newer  阅读(29)  评论(0编辑  收藏  举报