打印

下面的电路,testbench如何写

[复制链接]
2358|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小鱼儿1045|  楼主 | 2012-7-16 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟初学FPGA,刚写了一个LED灯的闪烁电路,下载到板子上是可以运行的,但是我想写testbench,写了一个,但是输出总是为X,出不了波形。下面代码,希望那位大侠能给个简单的testbench代码,让我实例学习学习。谢谢了!
module exp2(led,clk);
input clk;
output        led;
reg        led;
reg        [24:0]cnt;
always @(posedge clk)
begin
        cnt <= cnt + 1;
        if(cnt == 25000000)
        begin
                led <= ~led;
                cnt <= 0;
        end
end
endmodule

相关帖子

沙发
GoldSunMonkey| | 2012-7-16 23:23 | 只看该作者
没有初始化?

使用特权

评论回复
板凳
kdurant| | 2012-7-16 23:52 | 只看该作者
必须的

使用特权

评论回复
地板
shell.albert| | 2012-7-17 07:25 | 只看该作者
在modelsim中仿真,如果输出老是x,则说明输入没有进行初始化。可将输入寄存器简单的赋值为0或1

使用特权

评论回复
5
小鱼儿1045|  楼主 | 2012-7-17 08:13 | 只看该作者
2# GoldSunMonkey
这是我自己写的testbench代码,请大神指正那里不对!
module exp2_tb;
reg clk;
reg cnt;
exp2 uut(.clk(clk),.led(led));
initial begin
clk = 0;
cnt = 0;
#100
end
always #10 clk = ~clk; //是不是只要给源文件增加这个激励就行了????
endmodule

使用特权

评论回复
6
小鱼儿1045|  楼主 | 2012-7-17 08:14 | 只看该作者
3# kdurant
我看的那个是输出结果,output不能赋值,一赋值就编译提示错误!也就是上面的LED值

使用特权

评论回复
7
小鱼儿1045|  楼主 | 2012-7-17 08:20 | 只看该作者
4# shell.albert
我用的是ISE12.4仿真的 ,不是modelsim

使用特权

评论回复
8
cat241406119| | 2012-7-17 13:53 | 只看该作者
1、testbench 里不必再有信号cnt;

2、testbench中应该定义 wire 型信号 led.

使用特权

评论回复
9
小鱼儿1045|  楼主 | 2012-7-17 17:26 | 只看该作者
8# cat241406119
除了这个wire led 。那是不是我只要给它个时钟激励就行了啊?其它的应该不要写了吧?

使用特权

评论回复
10
可木| | 2012-7-17 20:25 | 只看该作者
楼主你的模块里的寄存器貌似都没有初始化吧。。。

使用特权

评论回复
11
小鱼儿1045|  楼主 | 2012-7-17 21:32 | 只看该作者
11# 可木
clk = 0;
cnt = 0;
不就是初始化吗??

使用特权

评论回复
12
GoldSunMonkey| | 2012-7-17 23:57 | 只看该作者
11# 可木  
clk = 0;
cnt = 0;
不就是初始化吗??
小鱼儿1045 发表于 2012-7-17 21:32
TB里面不需要cnt

使用特权

评论回复
13
GoldSunMonkey| | 2012-7-17 23:58 | 只看该作者
8# cat241406119  
除了这个wire led 。那是不是我只要给它个时钟激励就行了啊?其它的应该不要写了吧?
小鱼儿1045 发表于 2012-7-17 17:26
我觉得是

使用特权

评论回复
14
cat241406119| | 2012-7-18 08:52 | 只看该作者
楼主,抛开你的待测程序正确与否来说,testbench 其实可以看成是对黑盒进行测试,假设你的待测程序是对的,那么在testbench 中只需对待测程序中的输入信号进行激励,激励之前不要忘记初始化,然后定义wire型信号,将待测程序中的输出信号引出,待测程序中端口以外的信号是不用考虑的。重申一下,这一切都是建立在你的待测程序正确的前提下。希望对你有所帮助。

使用特权

评论回复
15
小鱼儿1045|  楼主 | 2012-7-18 10:09 | 只看该作者
15# cat241406119
恩,cat哥这么一说,我有点懂你的什么意思了,也就是说testbench就是模拟待测电路所需要的激励信号,然后看输出结果!

使用特权

评论回复
16
GoldSunMonkey| | 2012-7-18 15:33 | 只看该作者
15# cat241406119  
恩,cat哥这么一说,我有点懂你的什么意思了,也就是说testbench就是模拟待测电路所需要的激励信号,然后看输出结果!
小鱼儿1045 发表于 2012-7-18 10:09
你难道这个也不知道么?兄弟?果然是新人

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

1966

帖子

19

粉丝