2014-10-26 2 views
0

Я пытаюсь скомпилировать мой модуль, и он отлично работает, когда я удаляю регистр badData из testbench. Однако, как только я добавляю его, verilog жалуется на «Ошибка загрузки дизайна».Verilog: Can not Attach Register As Output?

Модуль Код:

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 
       ); 

Testbench код:

`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

+0

Я переместил код в pastebin, потому что он немного длинный: http://pastebin.com/u9w5Ef8Y Это версия, которая терпит неудачу. – Faytll

+1

Я скопировал его на [EDA Playground] (http://www.edaplayground.com/x/Xim), но выглядит так же, как и в вопросе. там компилируется. – Morgan

ответ

1

BadData является выход из вашего uut. Он должен быть подключен к wire в ТБ. Также не должно быть назначено какое-либо значение в ТБ (вы назначаете 0).

Когда вы удалите reg error, его автоматически будет выведено как wire. поэтому нет ошибок.