MyHDL:库在用户定义的代码中使用子句

时间:2014-05-02 08:35:24

标签: myhdl

在使用MyHDL用户定义代码时,有没有办法指定库使用子句?

考虑以下示例,该示例模拟Xilinx unisim库中可用的差分缓冲区:

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文件头中的以下use子句:

library unisim;
use unisim.vcomponents.all;

我该如何解决?

1 个答案:

答案 0 :(得分:3)

是的,toVHDL()支持use_clauses属性。这可以保存将插入适当位置的(可能是多行)字符串。这只是插入,所以你也可以添加库声明。

这是支持的,但我注意到我忘了将它添加到文档中 - 需要修复。

目前,在使用此属性时,省略了pck_myhdl* use声明 - 我在项目中使用了use_clauses,其中需要该包的另一个名称。这看起来有些令人困惑,也许最好使用不同的参数将该功能分开。