主要内容

为子系统生成黑匣子接口

什么是黑匣子接口?

一个黑盒接口的子系统是一个生成的VHDL®组件或Verilog®模块,其中仅包括子系统的HDL输入和输出端口定义。通过生成这样一个组件,您可以在您的模型中使用子系统来生成一个接口,以连接现有的手动编写的HDL代码、第三方IP或HDL Coder™生成的其他代码。

需求

  • 黑盒实现仅适用于DUT级别以下的子系统块。低于DUT级别的自定义库的虚拟和原子子系统块也可以使用黑盒实现。

  • 一个黑匣子子系统最多可以生成一个时钟端口和一个时钟使能端口。因此,即使是在多速率DUT中,黑匣子子系统也必须是单速率的。

为子系统生成一个黑匣子接口

要生成接口,选择黑箱实现一个或多个子系统块。考虑以下包含子系统的模型,即正在测试的设备。

子系统包含两个较低级别的子系统:

假设您想从生成HDL代码,具有黑匣子接口接口子系统。使用实例指定黑匣子接口。

  1. 右键单击接口子系统和选择HDL代码>HDL块属性

    出现“HDL属性”对话框。

  2. 体系结构黑箱

    以下参数可用于黑匣子实现:

    用于黑匣子实现的HDL块参数使您能够自定义生成的接口。看到自定义黑匣子或HDL协同仿真接口获取有关这些参数的信息。

  3. 根据需要修改参数,单击应用

  4. 点击好吧关闭“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协同仿真接口描述如何重命名或抑制这些信号的生成,以及如何自定义所生成接口的其他方面。

相关的话题