2017-03-16 6 views
0

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に現れていない状態で正確です。彼らはいけませんか?

答えて

2

あなたはModuleAにレジスタとしてreg[5:0] Dataを定義し、あなたのモジュールModuleBの出力に接続されている:

ModuleB moduleBInstance(.address(address),.indata(indata),.Data(Data),.clk(clk),.reset(reset),.ResetSignal(ResetSignal),.Out(Out)); 

(私はここにインスタンス名があるとしていますがに忘れて、ここでインスタンス名を追加しました

一部のVerilogシンセサイザでは、regに非同期で割り当てることができないため、regタイプのネットをモジュールの出力に接続することはできません。 DataのタイプをModuleAに変更して配線する(wire[5:0] Data)。あなたはそれに割り当てることができるはずです。

+0

はい、それが問題でした!私はregをmoduleAで配線するように変更しました、そして、今働いています。ありがとうございました。私はインスタンス名を持っている、私は問題コードの一部をコピーしているので、それを逃した:) – Eshaal

1

あなたは、そうでない場合、私はそれをシミュレートするでしょう、あなたのコードの部分を残し、しかし、ここで私が始めることに気づくものですしている:あなたは二つの出力レジスタは、データを呼び出す必要があり、モジュールBでは

。入力と出力には固有の名前が必要です。

モジュールAのように、データをreg [5:0]として定義します。それをワイヤー[5:0]として宣言する必要があります。モジュールBにはレジスタがあるので、モジュールAは単なるワイヤです。

まず、テストベンチがある場合は、完全なコードを投稿してください。

+0

登録番号を変更するとワイヤーが加工されました!私はちょうど問題の原因となっているコードの部分を投稿しました。 – Eshaal

関連する問題