MyHDL: предложения по использованию библиотеки в пользовательском коде
Есть ли способ указать условия использования библиотеки при использовании пользовательского кода MyHDL?
Рассмотрим следующий пример, который моделирует дифференциальный буфер, доступный в библиотеке unisim Xilinx:
from myhdl import *
def ibufds(I, IB, O):
""" Xilinx Differential Signaling Input Buffer"""
@always_comb
def output():
O.next = I
return instances()
ibufds.vhdl_code = """
IBUFDS_inst : IBUFDS
generic map (
DIFF_TERM => FALSE,
IBUF_LOW_PWR => TRUE,referenced I/O standards
IOSTANDARD => "DEFAULT")
port map (
O => O,
I => I,
IB => IB
);"""
Преобразование этого модуля в код VHDL работает нормально, но отсутствует следующее условие использования в заголовке файла VHDL:
library unisim;
use unisim.vcomponents.all;
Как я могу это исправить?
1 ответ
Да, toVHDL()
поддерживает use_clauses
приписывать. Это может содержать (возможно, многострочную) строку, которая будет вставлена в соответствующем месте. Это просто вставлено, так что вы также можете добавить объявления библиотеки.
Это поддерживается, но я заметил, что забыл добавить его в документацию - необходимо исправить.
В настоящее время при использовании этого атрибута pck_myhdl*
объявление использования опущено - я использовал use_clauses
в проектах, где было необходимо другое имя для этого пакета. Это выглядит немного запутанным, возможно, было бы лучше разделить эту функциональность, используя другой параметр.