为子系统生成黑匣子接口
什么是黑匣子接口?
一个黑盒接口的子系统是一个生成的VHDL®组件或Verilog®模块,其中仅包括子系统的HDL输入和输出端口定义。通过生成这样一个组件,您可以在您的模型中使用子系统来生成一个接口,以连接现有的手动编写的HDL代码、第三方IP或HDL Coder™生成的其他代码。
需求
黑盒实现仅适用于DUT级别以下的子系统块。低于DUT级别的自定义库的虚拟和原子子系统块也可以使用黑盒实现。
一个黑匣子子系统最多可以生成一个时钟端口和一个时钟使能端口。因此,即使是在多速率DUT中,黑匣子子系统也必须是单速率的。
为子系统生成一个黑匣子接口
要生成接口,选择黑箱
实现一个或多个子系统块。考虑以下包含子系统的模型前
,即正在测试的设备。
子系统前
包含两个较低级别的子系统:
假设您想从生成HDL代码前
,具有黑匣子接口接口
子系统。使用实例指定黑匣子接口。
右键单击
接口
子系统和选择HDL代码>HDL块属性.出现“HDL属性”对话框。
集体系结构来
黑箱
.以下参数可用于黑匣子实现:
用于黑匣子实现的HDL块参数使您能够自定义生成的接口。看到自定义黑匣子或HDL协同仿真接口获取有关这些参数的信息。
根据需要修改参数,单击应用.
点击好吧关闭“HDL属性”对话框。
为黑盒子系统实现生成代码
中为DUT生成代码时ex_blackbox_subsys
模型时,会出现以下消息:
>> makehdl('ex_blackbox_subsys/top') ###为'ex_blackbox_subsys/top'生成HDL### HDL检查完成,0错误,0警告和0消息。###开始VHDL代码生成### ex_blackbox_subsys/top/gencode作为hdlsrc\gencode将ex_blackbox_subsys/top作为hdlsrc\top。vhd ### HDL代码生成完成
在进度消息中,注意到gencode
子系统生成一个单独的文件,gencode.vhd
的VHDL实体定义。的接口
子系统不生成这样的文件。该子系统的接口代码已插入top.vhd
,由ex_blackbox_subsys /顶
.类生成的组件定义和实例化,下面的代码清单显示接口
子系统。
组件接口端口(clk: IN std_logic;clk_enable: IN std_logic;reset: IN std_logic;In1: IN std_logic_vector(7 DOWNTO 0);——uint8 In2: IN std_logic_vector(15 DOWNTO 0);——uint16 In3: IN std_logic_vector(31 DOWNTO 0);——uint32 Out1: OUT std_logic_vector(31 DOWNTO 0)——uint32);结束组件;...u_Interface: Interface PORT MAP(clk => clk, clk_enable => enb, reset => reset, In1 => gencode_out1,——uint8 In2 => gencode_out2,——uint16 In3 => gencode_out3,——uint32 Out1 => Interface_out1——uint32); enb <= clk_enable; ce_out <= enb; Out1 <= Interface_out1;
缺省情况下,子系统生成的黑匣子接口包括clock、clock enable和reset三个端口。自定义黑匣子或HDL协同仿真接口描述如何重命名或抑制这些信号的生成,以及如何自定义所生成接口的其他方面。