2015-05-08 1 views
2

Я новичок в verilog, и я получилне может управляться примитивов или непрерывного присвоения

рег OUT; не может управляться примитивами или непрерывным назначением.

погрешность.

Модуль Счетчик:

module Counter(
    input    clk, 
    input    clear, 
    input    load, 
    input    up_down, // UP/~DOWN 
    input[3:0]  IN, 
    input    count, 
    output reg[3:0] OUT 
    ); 
    always @(posedge clk, negedge clear) 
    if (~clear) OUT <= 4'b0000; 
    else if(load) OUT <= IN; 
    else if(count) 
    begin 
     if(up_down) OUT <= OUT + 1'b1; 
     else OUT <= OUT - 1'b1; 
    end 
    else OUT <= OUT; 
endmodule 

И испытательный стенд является:

module test; 
    . 
    . 
    . 
    reg [3:0] IN; 
    reg [3:0] OUT; 

    Counter c1(clk, clear, load, up_down, IN, count, OUT); 
endmodule 

Ошибка в Counter c1(clk, clear, load, up_down, IN, count, OUT); линии. Я искать проблемы, но я не понял ничего

ответ

3

Проблема заключается в том, что test модуль имеет это заявление:

reg [3:0] OUT; 

reg не должен быть подключен к модулю output.

Изменения reg к wire в test, то убедитесь, что ни один другой сигнал не гонит OUT сети в test:

wire [3:0] OUT; 
Смежные вопросы