mayo20102012 发表于 2013-11-1 15:44:06

关于QUARTUS直接调用Modelsim时testbench中的双向口问题

如题,这个问题怎么处理啊?比如我在verilog中定义了双向口SDA,然后生成testbench时出现了reg treg_SDA,和wire SDA,那这个treg_SDA我要怎么处理啊?谢谢大家了。。

NEWT 发表于 2013-11-1 20:15:34

treg好像是控制方向的?

mayo20102012 发表于 2013-11-1 20:17:13

NEWT 发表于 2013-11-1 20:15 static/image/common/back.gif
treg好像是控制方向的?

额 这个我也纠结啊 不知道怎么弄,我是调用的modelsim,生成的testbench有一句是assign SDA=treg_SDA,

NEWT 发表于 2013-11-1 20:19:55

双向口我记得是一个寄存器控制方向,一个寄存器控制数据,输出的时候就把数据输出,输入的时候就输出高阻

mayo20102012 发表于 2013-11-1 20:23:45

// Simulation tool : ModelSim-Altera (Verilog)
//

`timescale 1 ps/ 1 ps
module OV7670_config_vlg_tst();
// constants                                          
// general purpose registers
reg eachvec;
// test vector input registers
reg Rst_n;
reg treg_SDA;
reg Sccb_clk;
reg Sccb_data;
// wires                                             
wire SCK;
wire SDA;
wire W_en;

// assign statements (if any)                        
assign SDA = treg_SDA;
OV7670_config i1 (
// port map - connection between master ports and signals/registers   
        .Rst_n(Rst_n),
        .SCK(SCK),
        .SDA(SDA),
        .Sccb_clk(Sccb_clk),
        .Sccb_data(Sccb_data),
        .W_en(W_en)
);
initial                                                
begin
Sccb_clk=0;                                                
Rst_n=0;
Sccb_data=24'h420180;
#20
Rst_n=1;
end

always #10 Sccb_clk=~Sccb_clk;                                       
endmodule

以上是代码,你能帮看下怎么弄不?仿真的时候SDA一直是未知的状体,没有数据。

mayo20102012 发表于 2013-11-1 20:25:02

NEWT 发表于 2013-11-1 20:19 static/image/common/back.gif
双向口我记得是一个寄存器控制方向,一个寄存器控制数据,输出的时候就把数据输出,输入的时候就输出高阻 ...

// Simulation tool : ModelSim-Altera (Verilog)
//

`timescale 1 ps/ 1 ps
module OV7670_config_vlg_tst();
// constants                                          
// general purpose registers
reg eachvec;
// test vector input registers
reg Rst_n;
reg treg_SDA;
reg Sccb_clk;
reg Sccb_data;
// wires                                             
wire SCK;
wire SDA;
wire W_en;

// assign statements (if any)                        
assign SDA = treg_SDA;
OV7670_config i1 (
// port map - connection between master ports and signals/registers   
      .Rst_n(Rst_n),
      .SCK(SCK),
      .SDA(SDA),
      .Sccb_clk(Sccb_clk),
      .Sccb_data(Sccb_data),
      .W_en(W_en)
);
initial                                                
begin
Sccb_clk=0;                                                
Rst_n=0;
Sccb_data=24'h420180;
#20
Rst_n=1;
end

always #10 Sccb_clk=~Sccb_clk;                                       
endmodule

以上是代码,你能帮看下怎么弄不?仿真的时候SDA一直是未知的状体,没有数据。

fx568000 发表于 2015-3-22 10:40:00

IO口方向控制寄存器,你.v程序里肯定定义过,比如该寄存器为1时是输出,0时是输入。你在VT激励文件里控制一下就行
页: [1]
查看完整版本: 关于QUARTUS直接调用Modelsim时testbench中的双向口问题