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 в проектах, где было необходимо другое имя для этого пакета. Это выглядит немного запутанным, возможно, было бы лучше разделить эту функциональность, используя другой параметр.

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