关于QUARTUS直接调用Modelsim时testbench中的双向口问题
如题,这个问题怎么处理啊?比如我在verilog中定义了双向口SDA,然后生成testbench时出现了reg treg_SDA,和wire SDA,那这个treg_SDA我要怎么处理啊?谢谢大家了。。 treg好像是控制方向的?NEWT 发表于 2013-11-1 20:15 static/image/common/back.gif
treg好像是控制方向的?
额 这个我也纠结啊 不知道怎么弄,我是调用的modelsim,生成的testbench有一句是assign SDA=treg_SDA, 双向口我记得是一个寄存器控制方向,一个寄存器控制数据,输出的时候就把数据输出,输入的时候就输出高阻 // 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一直是未知的状体,没有数据。 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一直是未知的状体,没有数据。 IO口方向控制寄存器,你.v程序里肯定定义过,比如该寄存器为1时是输出,0时是输入。你在VT激励文件里控制一下就行
页:
[1]