|

楼主 |
发表于 2003-11-22 08:49:57
|
显示全部楼层
用modelsim做综合布线后的仿真出现了问题!
我的测试模块是test_counter.v,sdf指定在测试模块上了。
现在把这个程序和测试模块贴出来,希望各位帮忙分析一下
module counter (count, clk, rst);
output [7:0] count;
input clk, rst;
reg [7:0] count;
parameter tpd_clk_to_count = 1;
parameter tpd_reset_to_count = 1;
function [7:0] increment;
input [7:0] val;
reg [3:0] i;
reg carry;
begin
increment = val;
carry = 1'b1;
/*
* Exit this loop when carry == zero, OR all bits processed
*/
for (i = 4'b0; ((carry == 4'b1) || (i <= 7)); i = i+ 4'b1)
begin
increment = val ^ carry;
carry = val & carry;
end
end
endfunction
/*****************************************************************
* The following always block was changed to make it synthesizable.
always @ (posedge clk or posedge rst)
if (rst)
count = #tpd_reset_to_count 8'h00;
else
count <= #tpd_clk_to_count increment(count);
******************************************************************/
always @ (posedge clk or posedge rst)
if (rst)
count = 8'h00;
else
count <= count + 8'h01;
endmodule
测试文件
module test_counter;
reg clk, rst;
wire [7:0] count;
counter counter1(count,clk,rst);// #(5,10) counter (count,clk,rst);
initial // Clock generator
begin
clk = 0;
#10 forever #10 clk = !clk;
end
initial// Test stimulus
begin
rst = 0;
#5 rst = 1;
#4 rst = 0;
#50000 $stop;
end
initial
$monitor($stime,, rst,, clk,,, count);
endmodule
|
|