我是Verilog的新手,我陷入了一個問題。我不是我做錯了什麼。我有兩個模塊(A和B)。模塊B進行一些處理並將值存入模塊B輸出的寄存器'數據'中,並作爲模塊A的輸入。模塊A比較數據中的值併發送一個信號以重置模塊B中的寄存器'數據'。數據在模塊B處理存在並且是正確而它不是在模塊A出現未將數據複製到寄存器
ModuleB (address,indata,Data,reset,clk,ResetSignal,Out)
input [15:0] address;
input [15:0] indata;
input ResetSignal;
output [5:0] Data;
output [15:0] Data;
reg[15:0] DataReceived;
reg[0:5] Data = 6'b000000;
reg[15:0] Out;
if(address == 16'h01a0)
begin
DataReceived<= indata;
Data = (Data| 6'b000001); // all 6 values will be copied on basis of some address
end
.
.
.
ModuleA (...)
reg[15:0] address;
reg[15:0] indata;
reg[15:0] Out;
reg ResetSignal;
reg[5:0] Data; //it is an internal register of module B which contains data received from module B
wire reset,clk;
ModuleB (.address(address),.indata(indata),.Data(Data),.clk(clk),.reset(reset),.ResetSignal(ResetSignal),.Out(Out));
always @ (posedge clk or posedge reset)
begin
if (reset)
ResetSignal = 1'b0;
else if (Data == 6'b111111)
begin
//set some signals
ResetSignal = 1'b1; // send signal back to reset the buffer Data
end
end
我已經聲明的數據作爲REG因此從模塊B的值應該被映射。他們不應該嗎?
是的,這是問題!我改變了reg在moduleA中的連線,它現在正在工作。謝謝。我有實例名稱,我已經複製了一段有問題的代碼,所以錯過了:) – Eshaal