2

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

考虑以下示例,该示例对赛灵思 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;

我该如何解决?

4

1 回答 1

3

是的,toVHDL()支持一个use_clauses属性。这可以保存一个(可能是多行的)字符串,该字符串将被插入到适当的位置。这只是插入,因此您还可以添加库声明。

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

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

于 2014-05-02T13:13:16.850 回答