2013-12-14 4 views
2

Я пытаюсь выяснить, как создать экземпляр универсального модуля с помощью функции generate, переопределяя два из его параметров.Мгновенирование общего модуля в Verilog

У меня есть родовой арбитр, что я должен послать к нему два параметрам (ВЫСОТЫ и Размера). эти два параметра также определяются как параметры в «верхнем» модуле

Вот как я создаю модуль PRRA (внутренний модуль) в верхней иерархии.

genvar i; 
generate for(i=0 ; i<M ; i=i+1) 
begin 
    PRRA arbiter (
     .clk(clk), 
     .reset(reset), 
     .request(request[i]), 
     .grant(grant[i]) 
     ); 
end 
endgenerate 

используя defparam не работает. Видимо, я использую это неправильно.

Я пытался использовать его до/после/внутри генерации, но он не прошел:/

Может кто-нибудь помочь, пожалуйста

ответ

7

Это не ясно, как вы пытались передавать параметры нижнего модуля, как приводимый пример кода не ссылается ВЫСОТА или размер, но это, как вы бы передать параметры:

PRRA #(
    .HEIGHT (HEIGHT_from_top) 
    .SIZE (SIZE_from_top ) 
) arbiter (
    .clk  (clk  ), 
    .reset (reset ), 
    .request (request[i]), 
    .grant (grant[i] ) 
); 

Где у вас есть:

module PRRA #(
    parameter HEIGHT = -1, 
    parameter SIZE = -1 
)(
//inputs ... 
//outputs ... 
); 
//... 
endmodule 
Смежные вопросы