2024年5月2日发(作者:)

word格式-可编辑-感谢下载支持

=阻塞串行

<=非阻塞并行

1)时序逻辑----使用非阻塞赋值

2)锁存器----使用非阻塞赋值

3)用always块生成的组合逻辑----用阻塞赋值

4)在同一个always块中既有时序逻辑又有组合逻辑---

用非阻塞赋值

5)在同一个always块中不要既用阻塞赋值又用非阻塞赋值

6)不要在一个以上的always块中对同一个变量赋值

7)用$strobe显示用非阻塞赋值指定的变量值

8)不要用 #0 过程性赋值Modport将信号分组并指明方向

函数不能消耗时间,不能有#100@(posedge clk)wait之类的阻塞语句

Interface arb_if(input bit clk);

Logic [1:0] a,b;

Logic rst;

Modport test(output a,rst,

Input b,clk);

Endinterface

Module arb(arb_ arbif);

word格式-可编辑-感谢下载支持

…………

Endmodule

数组定位

Int tq[$],d[]=’{9,1,8,3,4,4};

Tq=_index(x) with (item>3); //{0,2,4,5}得到的是脚标

Tq= with (item>3); //{9,8,4,4}

数组求和

Int count,total;

Count= with(item>7); //2:{9,8} 返回结果为元素与7比较表达式

返回1为真或者零这里面返回 ,{1,0,1,0,0,0}求和得2

Total= with ((item>7)*item) ; //{1,0,1,0,0,0}和对应元素相乘求和得17=9

加8

数组排序

e(); //逆序

(); //从小到大

(); //从大到小

e();

时钟块

指定同步信号相对于时钟的时序