在使用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;
我该如何解决?
答案 0 :(得分:3)
是的,toVHDL()
支持use_clauses
属性。这可以保存将插入适当位置的(可能是多行)字符串。这只是插入,所以你也可以添加库声明。
这是支持的,但我注意到我忘了将它添加到文档中 - 需要修复。
目前,在使用此属性时,省略了pck_myhdl*
use声明 - 我在项目中使用了use_clauses
,其中需要该包的另一个名称。这看起来有些令人困惑,也许最好使用不同的参数将该功能分开。