Verilogを初めて使用しています。問題が残っています。私が間違っていることはしません。私は2つのモジュール(AとB)を持っています。モジュールBは何らかの処理を行い、モジュールBの出力であるレジスタ「データ」に値を置き、モジュールAの入力として機能する。モジュールAはデータの値を比較し、モジュールBのレジスタ「データ」をリセットする信号を送る。データモジュールBで処理が存在し、それがデータが登録されていません
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
Iは、モジュールBの値をマッピングしなければならないので、データREGとして宣言されたモジュールAに現れていない状態で正確です。彼らはいけませんか?
はい、それが問題でした!私はregをmoduleAで配線するように変更しました、そして、今働いています。ありがとうございました。私はインスタンス名を持っている、私は問題コードの一部をコピーしているので、それを逃した:) – Eshaal