经过Quartus2编译后的Verilog程序和激励代码,在ModelSim可以进行RTL级仿真,但是不能进行门级仿真???
上面是ModelSim中显示的错误激励文件是`timescale1ns/1nsmodulemod_m_bin_counter_tb;parameterT=20;//clo...
上面是ModelSim中显示的错误
激励文件是
`timescale 1ns/1ns
module mod_m_bin_counter_tb;
parameter T=20; // clock period
parameter M = 16;
parameter N = log2(M);
// global clock and asyn reset
reg clk, rst_n;
wire o_clk;
// counter interface
wire max_tick, min_tick;
wire [N-1:0] q;
// log2 constant function
function integer log2(input integer n);
integer i;
begin
log2 = 1;
for(i=0; 2**i<n; i = i + 1)
log2 = i + 1;
end
endfunction
// clcok
always
begin
clk = 1'b0;
#(T/2);
clk = 1'b1;
#(T/2);
end
// reset
initial
begin
rst_n = 1'b0;
#(T/2)
rst_n = 1'b1;
end
// inst
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);
// stimulus body
initial
begin
// initial input
@(posedge rst_n); // wait to deassert rst_n
@(negedge clk); // wait for a clock
// run 1024 cock cycle
repeat(1024) @(negedge clk); // last 1024 clock cycle
$stop;
end
endmodule
用这个激励文件做RTL仿真就没有问题!
没有多少财富值了,请一定帮帮忙!非常感谢!!! 展开
激励文件是
`timescale 1ns/1ns
module mod_m_bin_counter_tb;
parameter T=20; // clock period
parameter M = 16;
parameter N = log2(M);
// global clock and asyn reset
reg clk, rst_n;
wire o_clk;
// counter interface
wire max_tick, min_tick;
wire [N-1:0] q;
// log2 constant function
function integer log2(input integer n);
integer i;
begin
log2 = 1;
for(i=0; 2**i<n; i = i + 1)
log2 = i + 1;
end
endfunction
// clcok
always
begin
clk = 1'b0;
#(T/2);
clk = 1'b1;
#(T/2);
end
// reset
initial
begin
rst_n = 1'b0;
#(T/2)
rst_n = 1'b1;
end
// inst
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);
// stimulus body
initial
begin
// initial input
@(posedge rst_n); // wait to deassert rst_n
@(negedge clk); // wait for a clock
// run 1024 cock cycle
repeat(1024) @(negedge clk); // last 1024 clock cycle
$stop;
end
endmodule
用这个激励文件做RTL仿真就没有问题!
没有多少财富值了,请一定帮帮忙!非常感谢!!! 展开
2013-03-14
展开全部
是不是门级网表中这个器件没有参数 M 啊,综合之后参数可能被优化掉吧?
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);
检查一下门级网表,有帮助请采纳,谢谢!
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);
检查一下门级网表,有帮助请采纳,谢谢!
更多追问追答
追问
这个应该怎么解决啊?我看了门级网表,貌似真的没有看到参数M
追答
不用参数啊,直接把参数值(常数)写入mod_m_bin_counter 中啊。
或者是添加端口 M[7:0]。
不要用参数传递到模块里面去啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询