2014-10-26 209 views
0

我想編譯我的模塊,當我從測試臺中刪除badData寄存器時,它工作正常。然而,我添加它的那一刻,verilog抱怨「錯誤加載設計」。Verilog:無法將寄存器作爲輸出連接?

模塊代碼:

module hamming_code #(parameter TOTAL_LENGTH = 15, 
           parameter PARITY_BITS = 4 
          ) 
       (
        //inputs 
        input [TOTAL_LENGTH-1:0] codeword, 

        //outputs 
        output [TOTAL_LENGTH-1:0] correctedWord, 
       output reg badData 
       ); 

測試平臺代碼:

`timescale 1ns/1ps 
module tb(); 
integer pass_count, fail_count; 
reg clock; 
reg [14:0] cw; 
wire [14:0] ccw; 
reg error; 
integer i; 

hamming_code uut (// Inputs 
          .codeword(cw), 
          // Outputs 
          .correctedWord(ccw), 
          .badData(error) 

         ); 

initial begin 
// initial values 
clock <= 0; 
pass_count <= 0; 
fail_count <= 0; 
error <= 0; 
wait(0); 
end 

[email protected](*) 
#5 clock <= ~clock; 

endmodule 
+0

你是否也刪除了尾隨逗號?你可以發佈失敗和正在運行的版本,幷包括你得到的實際錯誤。 – Morgan 2014-10-26 17:17:54

+0

我已將代碼移至pastebin,因爲它有點長:http://pastebin.com/u9w5Ef8Y 這是失敗的版本。 – Faytll 2014-10-26 17:22:25

+1

我已將它複製到[EDA Playground](http://www.edaplayground.com/x/Xim),但看起來像問題中發佈的相同版本。在那裏編譯好。 – Morgan 2014-10-26 20:19:28

回答

1

BadData是從uut輸出。 它應該連接到TB中的wire。也不應該在TB中分配任何值(您正在分配0)。

當你刪除reg error時,它自動推斷爲wire。這就是爲什麼沒有錯誤。