集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 10298|回复: 22

testbench的写法,这样写是规范的么?

[复制链接]
inter 发表于 2010-6-27 23:27:03 | 显示全部楼层 |阅读模式
module ex2_6;
//test bench
reg clk=0,nrst=1,sel=0;
reg [7:0] 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 [7:0] temp={dout[1:0],dout[7:2]};
always @(posedge clk or negedge nrst)
if (~nrst)   dout<=0;
else if (sel==1) dout<=din;
else     dout<=temp;

endmodule
只看语法,这样写是规范的么?
CHANG 发表于 2010-6-28 00:12:14 | 显示全部楼层
没有什么不对的地方啊
CCIE 发表于 2010-6-28 00:52:08 | 显示全部楼层
非常规范呀,当然必须调整好缩进。
CHA 发表于 2010-6-28 02:31:40 | 显示全部楼层
很标准阿,不错
CCIE 发表于 2010-6-28 03:04:37 | 显示全部楼层
呵呵,一直是这么写的呢
CHA 发表于 2010-6-28 03:14:36 | 显示全部楼层
没有问题。
ngtim 发表于 2010-6-28 05:03:30 | 显示全部楼层
不太规范.
longtime 发表于 2010-6-28 06:02:31 | 显示全部楼层
疑问的话也没说出来在什么地方,
ICE 发表于 2010-6-28 07:31:17 | 显示全部楼层
第一,在一些公司里,reg clk=0,nrst=1,sel=0,像这样的赋值是要分开来写的,就是要用三个reg来写,一是不容易将位宽写错,二是便于以后程序的修改,而且每个语句后要加上说明.<br>
第二,#10最好不用数字,而定义成parameter变量,方便读程序和以后的引用.<br>
第三,wire [7:0] temp={dout[1:0],dout[7:2]};在定义变量时最好不要赋值.赋值用连续赋值语句<br>
第四,always @(posedge clk or negedge nrst)<br>
if (~nrst)&nbsp; &nbsp;&nbsp; &nbsp; dout&lt;=0;<br>
else if (sel==1) dout&lt;=din;<br>
else&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; dout&lt;=temp;<br>
alwyas后面的语句群要用begin-end,if/else后面即使是单语句,最好也用begin-end,养成习惯,因为if/else后如果没有一个过程块,那么在有多条语句时只执行一句的.
CTT 发表于 2010-6-28 09:22:26 | 显示全部楼层
受教了,谢谢
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 03:14 , Processed in 0.066545 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表