Порт записи VHDL взаимодействует с SystemVerilog / SystemC с использованием Synopsys VCSMX - PullRequest
1 голос
/ 25 февраля 2012

Добрый день, и спасибо за просмотр этого вопроса

Я использую VCSMX (версия от июня 2011 г.) для моделирования ядра с интерфейсом типа записи.Ядро написано все на VHDL.Я использую Systemverilog (SV) Testbench для возбуждения этого ядра.

Запись выглядит примерно так:

type ll_port is record
    frame_name      : std_logic_vector(WIDTH-1 downto 0);
    frame_valid     : std_logic;
 .
 .
 .
end record;

Я прочитал, что тип записи VHDL такой же, как struct в SV.Тем не менее, кажется, что это все еще не поддерживается в VCSMX, когда я пытаюсь реализовать структуру ll_port в SV.Верное решение состоит в том, чтобы разложить порт записи на std_logic и std_logic_vector.

Однако этот тип записи в VHDL будет использоваться несколько раз, и в окончательной системе будет взаимодействовать несколько ядер, что приведет к разложению каждой записипорт действительно громоздкий.

Я искал, как решить эту проблему и какие советы я могу получить в этом вопросе.У меня уже есть пользовательская инфраструктура моделирования в SystemVerilog, и я хотел бы знать, есть ли обходные пути для этой проблемы.

RRS

1 Ответ

1 голос
/ 28 февраля 2012

Не тот ответ, который вы ищете, но я думаю, что вы застряли с разложением порта.

Если честно, записи о типах портов в VHDL заставляют меня нервничать, так как они были великолепныспособ ломать все виды инструментов на протяжении многих лет.Я знаю инструменты синтеза, которые использовали для обратного соединения (MSB <-> LSB), если записи использовались в портах, и поэтому во многих компаниях были внутренние правила, запрещающие использование записей таким образом.

Вы могли бы написать некоторые функциис обеих сторон, чтобы сгладить запись в один широкий std_logic_vector и затем восстановить его, но я думаю, что это более трудоемко и менее читабельно, чем просто наличие портов для каждого поля.

...