在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2321|回复: 5

[求助] verilog中testbench的赋值问题,求解答

[复制链接]
发表于 2012-4-5 10:57:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
下面是一段testbench的程序,在modelsim中编译报错了。
`timescale 1ns/100ps
module tb;
   reg Clk,Rst;
   reg Din,BofIn;
   wire dm,bof;
   wire Dout,BofOut;
      
   IntLvr U1(Clk,Rst,Din,BofIn,dm,bof);
   IntLvr U2(Clk,Rst,dm,bof,Dout,BofOut);
   
   initial begin
         Clk = 0;
         forever #5 Clk = ~ Clk;
      end           
   initial begin
         Rst = 1;
         BofIn = 0;
         #8 Rst = 0;
         #24  BofIn = 1;
         #10  BofIn = 0;
                 
      end
      
   always @(negedge Clk)
      Din = 1;
      Din = 2;
      Din = 3;
      Din = 4;
      Din = 5;
      Din = 6;
      Din = 7;
      Din = 8;
      Din = 9;
      
endmodule      

   报错位置在Din=2这里,报错显示的是tb.v(28): near "=": expecting: IDENT
   我想给Din依次赋值,从1到9。
   请告诉我如何修改??谢谢。
发表于 2012-4-5 11:59:29 | 显示全部楼层
always()
begin
............
end

你这个是不是每个posedge 都 clk Din+1?是的话也不用这么写吧!
for(i=1;i<10,i=i+1)
begin
@(posedge clk) Din=i;
end
发表于 2012-4-5 12:05:19 | 显示全部楼层
还有那啥 ……

我见着的时钟一般都是在 initial的外面 用 always #(CLK_PERIOD/2) clk=~clk;在initial 里面用 clk=0;不知道这有什么说道没
发表于 2012-4-5 13:27:18 | 显示全部楼层
赋值中间没有延迟。
发表于 2012-4-5 14:13:55 | 显示全部楼层
回复 1# qingjiao


    1,你的always 后面没有加begin  end 所以 din=2 及以后的语句是在 always外面的。

    2.  你是不是想在每次时钟的下降沿,给din赋值?

可以这样写:
initial
begin
@(negedge clk);
din=1;
@ (negedge clk);
din =2;
@(negedge clk);
din = 3;
后面依次类推。
end
发表于 2012-4-5 22:29:27 | 显示全部楼层
回复 1# qingjiao


    报错的最直接原因是你的always语句中缺少begin end。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-10 22:46 , Processed in 0.041115 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表