modelsim仿真的问题
时间:10-02
整理:3721RD
点击:
我编写了一个很小的文件,用modelsim仿真,发现输出始终为0,不知道为什么?代码如下:
被仿真代码:
module Devider(
clkout,
clkin,
fast,
slow
);
input clkin;
input fast;
input slow;
output clkout;
reg clkout;
reg [3:0] counter;
always @(posedge clkin)
begin
if(fast == 1)
counter <= counter + 2;
else
if(slow == 1)
counter <= counter;
else
counter <= counter + 1;
if(counter <= 4)
clkout <= 1;
else
clkout <= 0;
end
endmodule
testbench:
`timescale 100ns/10ns
//`include "Devider.v"
module T_Devider;
reg clkin;
reg fast;
reg slow;
wire clkout;
Devider dev(clkout,clkin,fast,slow);
initial
begin
clkin = 0;
forever #0.5 clkin = ~clkin;
end
// Devider dev(clkout,clkin,fast,slow);
// always #0.5 clkin = ~clkin;
initial
begin
fast = 0;
slow = 0;
#800 fast = 1;
#100 fast = 0;
#1000 slow = 1;
#100 slow = 0;
end
initial
begin
$monitor($time,,,clkin,,,fast,,,slow,,,clkout);
#10000 $stop;
end
endmodule
望高手帮帮忙看看,谢谢!
被仿真代码:
module Devider(
clkout,
clkin,
fast,
slow
);
input clkin;
input fast;
input slow;
output clkout;
reg clkout;
reg [3:0] counter;
always @(posedge clkin)
begin
if(fast == 1)
counter <= counter + 2;
else
if(slow == 1)
counter <= counter;
else
counter <= counter + 1;
if(counter <= 4)
clkout <= 1;
else
clkout <= 0;
end
endmodule
testbench:
`timescale 100ns/10ns
//`include "Devider.v"
module T_Devider;
reg clkin;
reg fast;
reg slow;
wire clkout;
Devider dev(clkout,clkin,fast,slow);
initial
begin
clkin = 0;
forever #0.5 clkin = ~clkin;
end
// Devider dev(clkout,clkin,fast,slow);
// always #0.5 clkin = ~clkin;
initial
begin
fast = 0;
slow = 0;
#800 fast = 1;
#100 fast = 0;
#1000 slow = 1;
#100 slow = 0;
end
initial
begin
$monitor($time,,,clkin,,,fast,,,slow,,,clkout);
#10000 $stop;
end
endmodule
望高手帮帮忙看看,谢谢!
你的测试平台提供的时钟是不是产生出来了呢?看代码好像没有什么问题,就是不知道时间精度这个地方是否正确。
程序本身有问题。 没有复位信号,ALWAYS里面的语句没有执行。
4楼说得对,程序没有复位信号,reg [3:0] counter的初始值不定,所以是不会有输出的
上电时给reg [3:0] counter确定一个值应该就可以了
没有复位信号a!
各位高手,我在modelsim仿真编译时,报错
`timescale 100ns/10ns 说时间精度 syntax error unexpected “base”,expecting“class”
请问是怎么回事啊 急问啊?
我这边没有报错呀
没有初始状态!
'timescale改为`timescale试试看
