Чувствительность к регистру при использовании модуля Verilog в VHDL

Во время смешивания VDHL и Verilog я столкнулся с проблемой чувствительности к регистру.

Параметр "APB_ADDR" записывается в верхнем регистре, а провод "apb_addr" - в нижнем. Поскольку Verilog чувствителен к регистру, он может различаться для двух выражений.

module verilog_module #(
...
parameter APB_ADDR              = 32,
...
) (
...
input   wire    [APB_ADDR-1:0]  apb_addr,
input   wire                    apb_sel,
input   wire                    apb_enable,
input   wire                    apb_write
....
);

Теперь я хочу создать экземпляр модуля в VDHL:

inst0: entity work.verilog_module 
GENERIC MAP (
    APB_ADDR => APB_ADDR_WIDTH
)
PORT MAP(
    ...
    apb_addr => apb_addr,
    ...
);

Синтез не удается. Общий "apb_addr" не знаю. VHDL не имеет чувствительности к регистру.

Как я могу получить доступ к универсальному APB_ADDR? Я не хочу менять IP-ядро, написанное на Verilog.

1 ответ

Решение

Если вы не можете изменить ядро ​​IP, другой вариант - создать оболочку (в Verilog), которая создает ядро, устанавливает параметр APB_ADDR и передает apb_addr и другие сигналы между ядром и вашим объектом VHDL.

Другие вопросы по тегам