testbench的写法,这样写是规范的么?
module ex2_6;//test bench
reg clk=0,nrst=1,sel=0;
reg din=0,dout;
always #10 clk=~clk;
initial begin
#50 nrst=0;
#70 nrst=1;
#80 sel=1;
#15 sel=0;
end
integer seed=4;
always@(posedge clk)
din<=#1 $random(seed);
//circuit
wire temp={dout,dout};
always @(posedge clk or negedge nrst)
if (~nrst) dout<=0;
else if (sel==1) dout<=din;
else dout<=temp;
endmodule
只看语法,这样写是规范的么? 没有什么不对的地方啊 非常规范呀,当然必须调整好缩进。 很标准阿,不错 呵呵,一直是这么写的呢 没有问题。 不太规范. 疑问的话也没说出来在什么地方, 第一,在一些公司里,reg clk=0,nrst=1,sel=0,像这样的赋值是要分开来写的,就是要用三个reg来写,一是不容易将位宽写错,二是便于以后程序的修改,而且每个语句后要加上说明.<br>
第二,#10最好不用数字,而定义成parameter变量,方便读程序和以后的引用.<br>
第三,wire temp={dout,dout};在定义变量时最好不要赋值.赋值用连续赋值语句<br>
第四,always @(posedge clk or negedge nrst)<br>
if (~nrst) dout<=0;<br>
else if (sel==1) dout<=din;<br>
else dout<=temp;<br>
alwyas后面的语句群要用begin-end,if/else后面即使是单语句,最好也用begin-end,养成习惯,因为if/else后如果没有一个过程块,那么在有多条语句时只执行一句的. 受教了,谢谢