guo407214944 发表于 2014-9-29 14:42:56

modelsim仿真疑问

本帖最后由 guo407214944 于 2014-9-29 14:45 编辑

modelsim中仿真verilog文件,写了一个对应的testbench文件,在modelsim中仿真时,只能看见testbench文件中涉及的信号波形。而与之对应的被激励文件中的端口无信号波形。应该怎样操作彩能看见被激励的文件中端口波形呢

cxhy 发表于 2014-9-29 15:16:12

楼主你仔细检查一下信号有没有正确的初始化。

guo407214944 发表于 2014-9-29 15:27:56

你是说testbench这边吗?算了,我把我的文件传上来
testbench文件下面
`timescale 1ns/1ps

module para_to_seri_tb;
reg in_clk;
reg in_rest;
reg in_en;
reg in_para_data;
wire out_seri_data;

always #5 in_clk=~in_clk;
initial
begin
        in_rest=1'b0;
        in_clk=1'b0;
        #200 in_rest=1'b1;
        in_para_data=8'b11001100;
end
reg count;
always@(posedge in_clk or negedge in_rest)
if(!in_rest)
        count<=7'b0;
else if(count>25)
        count<=0;
else
                count<=count+1;
always@(posedge in_clk or negedge in_rest)
if(!in_rest)
        in_en<=1'b0;
else if(count==6||count==18)
        in_en<=1'b1;
else
        in_en<=1'b0;
para_to_seri u
(
.clk(in_clk),
.rest(in_rest),
.en(in_en),
.data_in(in_para_data),
.data_out(out_seri_data)
);

endmodule



被激励的文件
module para_to_seri(clk,rest,en,data_in,data_out);
input clk,rest,en;
inputdata_in;
output data_out;
reg key1;
always@(posedge clk or negedge rest or negedge en)
        if(!rest)
                        key1<=1'd0;
        else if(!en)
                        key1<=en;
        else
                key1<=key1;
reg eadge_rise;
always@(posedge clk or negedge rest)       
        if(!rest)
                eadge_rise<=1'b0;
        else if(en&&!key1)
                eadge_rise<=1'b1;
        else
                eadge_rise<=eadge_rise;
reg count;
always@(posedge clk or negedge rest)       
if(!rest)
        count<=4'b0;
else if(eadge_rise==1)
                count<=4'b0;       
else if(count==4'd10)
                count<=4'b0;
else
        count<=count+1;
reg buffer;       
always@(posedge clk or negedge rest)       
if(!rest)
        buffer<=8'b0;
else if((count>1)&&(count<10))
        buffer<={buffer,buffer};
else if(count==4'd0)
                buffer<=data_in;
else
        buffer<=buffer;
assigndata_out=buffer;               
endmodule
               

Nuker 发表于 2014-9-29 16:05:26

可以的呀

guo407214944 发表于 2014-9-29 16:08:42

Nuker 发表于 2014-9-29 16:05
可以的呀

晕额,你quartus和moldesim分别用的哪个版本?我用的是9.1和10.1版本,不是通过quartus调用的。直接在moldesim中编译,通过后直接仿真,打死都出不来波形。

guo407214944 发表于 2014-9-29 16:34:23

Nuker 发表于 2014-9-29 16:05
可以的呀

被激励文件端口波形在添加时,需要对这些端口设置处理吗?我是直接把文件编译成功,就把被激励的文件和testbench文件中的相关引脚添加过来,然后RUN。我这过程是不是哪里漏了一步?我的QQ407214944

Nuker 发表于 2014-9-29 17:26:45

modelsim 10.1a
你加para_to_seri模块的波形加错了,很奇怪,你load了2个top level module,/para_to_seri和/para_to_seri_tb,正确的para_to_seri模块波形应该在/para_to_seri_tb/u里面加。

guo407214944 发表于 2014-9-29 17:40:16

哎。谢谢你了,我在load信号的时候,load错了。晕了一下午被这软件。谢谢你了/
页: [1]
查看完整版本: modelsim仿真疑问