2013-10-15 4 views
0

Я просто попробовал пример SystemVerilog.Генерация часов на тестовом стенде верхнего уровня SystemVerilog

Верхний уровень тестбенча выглядит следующим образом:

module top(); 
    // `timescale 1ns/1ps 

    reg_intf intfc(.clk(Clk)); 
    register_m dut (intfc); 
    register_test_m (intfc); 

    bit Clk = 0; 
    initial 
    forever #1 Clk = ~Clk; 
endmodule : top 

reg_intf представляет собой интерфейс, register_m является конструкция модуля, register_test_m является программа (испытательный стенд).

Я получаю ошибку компиляции, как -

Net тип не может быть использован на левой стороне этого задания. Оскорбительное выражение : Clk Источник информации: Clk = (~ Clk);

Я попытался использовать Logic, Reg, Wire для Clk и получил ту же ошибку.

Можете ли вы предложить какой-либо SOLN ..

ответ

1

Переместить декларацию Clk до его использования:

module top(); 
    // `timescale 1ns/1ps 

    bit Clk = 0; 

    reg_intf intfc(.clk(Clk)); 
    register_m dut (intfc); 
    register_test_m (intfc); 

    initial 
    forever #1 Clk = ~Clk; 
endmodule : top 

Unrelated вашей проблемы: вам нужно имя экземпляра для модуля register_test_m:

register_test_m tb (intfc); 
+2

Следует отметить, что причина, по которой вы получали эту ошибку, заключалась в том, что «Clk» становился неявным объявленным как провод или тип сети, когда он впервые встретился в порту m apping. – dwikle

 Смежные вопросы

  • Нет связанных вопросов^_^