0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Xilinx System Generator for DSP纪事—RTL设计的生成

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 次阅读

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师

以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。

本篇博文是面向希望学习 Xilinx System Generator for DSP 入门知识的新手的系列博文第一讲。

其中提供了有关执行下列操作的分步操作方法指南:

  • 使用 Xilinx System Generator 块集合对用户算法进行建模
  • 对设计进行仿真并以可视化方式直观展示输入/输出以验证设计
  • 为设计生成测试激励文件、测试矢量和 RTL (VHDL/Verilog) 代码

Xilinx System Generator for DSP 可为基于模型的设计与系统集成平台提供模块框图环境,以支持将 DSP 系统的 RTL、Simulink®、MATLAB® 和 C/C++ 组件整合到面向赛灵思 FPGA 器件的单一仿真和实现环境中。

它包含一个已预定义并预优化的开箱即用的块集合,可用于对算法进行建模、仿真和分析,并生成测试激励文件、测试矢量以及 HDL 代码,从而加速 FPGA 开发。

System Generator 支持针对以下编译目标生成自动代码 (Automatic Code):

  • HDL 网表
  • IP 目录
  • 已综合的检查点
  • 硬件协同仿真

配置 MATLAB

首先,我们需要安装 MATLAB 并对 MATLAB 进行相应配置,确保它可配合 Vivado Design Suite 一起使用。

具体操作如下:

在 Windows 上:

以管理员身份打开“开始 >(所有)程序 > Xilinx Design Tools > Vivado 2019.x > System Generator > System Generator 2019.x MATLAB Configurator”。

出现 MATLAB 配置窗口后,勾选相应版本的 MATLAB 对应的复选框。

单击“Apply”,然后单击“OK”。

poYBAGIMpmOAO2CpAABsF9ltLr0664.png

Linux 上:

请确保可在 Linux 系统的 $PATH 环境变量中找到 MATLAB 可执行文件。

Linux 下的 System Generator 是使用名为“sysgen”的 shell 脚本处理的,此脚本位于 /bin 目录中。

本实践教程操作步骤如下:

本篇博文是面向希望学习 Xilinx System Generator for DSP 入门知识的新手的系列博文第一讲。

其中提供了有关执行下列操作的分步操作方法指南:

1. 使用 Xilinx System Generator 块集合对用户算法进行建模
2. 对设计进行仿真并以可视化方式直观展示输入/输出以验证设计
3. 为设计生成测试激励文件、测试矢量和 RTL (VHDL/Verilog) 代码

实践教程将按以上指定的编译目标顺序予以展示。

步骤 1:遵循以下对应于您的操作系统的步骤调用 System Generator:

  • 在 Windows 系统上,选择“开始 >(所有)程序 > Xilinx Design Tools > Vivado 2019.x >System Generator > System Generator 2019.x”
  • 在 Linux 系统上的命令提示符处输入 sysgen

此步骤将打开包含 System Generator 块集合的 MATLAB 会话。

如以下截屏所示:

pYYBAGIMpmSASYFWAAIc874x8ZU549.png

步骤 2:将工作目录更改为包含创建的 Sysgen 模型的任意本地目录。

单击位于 MATLAB 窗口右上角的 Simulink 图标。

这样将打开 Simulink Start Page:

pYYBAGIMpmaAVpYjAAJNrravNTM873.png

步骤 3:单击 Simulink 下拉选项的“Blank model”图标。

这样将打开空白或“Untitled”模型,其中包含空白的模型画布。

poYBAGIMpmeABytyAACnlWyLnTg301.png

步骤 4:单击“Untitled”模型窗口中的“Library browser”图标以便在“Simulink Library Browser”窗口中查看赛灵思块集合。

单击并展开“Xilinx Blockset”菜单,以查看不同类别的块。单击“Basic elements”类别,以查看基本 sysgen 块,如下所示:

pYYBAGIMpmmAAwWzAAJu7jnbaHM339.png

步骤 5:右键单击并选择“Add block to model”(Ctrl+I) 选项将 System Generator 标识块添加到模型中以定义 FPGA 技术。

以同样方式添加“Gateway In”和“Gateway Out”块,以定义设计的 System Generator 部分与 Simulink 部分之间的界限。

注:任何模型都必须包含这些必需的块。每个模型都必须至少包含 1 个 System Generator 块,可包含多个“Gateway In”和“Gateway Out”块,具体取决于设计的输入和输出。

poYBAGIMpmuAWae1AAEmlPpOtgQ228.png

此处演示的是添加乘累加 (Mult-add) 运算的建模过程,因此我们需要将“Mult”、“AddSub”和“Delay”块添加到模型中。

步骤 6:选中“Xilinx Blockset”下的“Floating-Point”类别中的“AddSub”块,右键单击,然后单击“Add block to model”选项。

pYYBAGIMpm2AIrxTAAFGtyMfaaA399.png

步骤 7:以同样方式选中“Xilinx Blockset”下的“Floating-Point”类别中的“Mult”块和“Basic Elements”类别下的“Delay”块,并将这两个块添加到模型中。

这样模型将如下图所示:

pYYBAGIMpm6AGk6WAADJgmQiwsU017.png

步骤 8:现在,添加 3 个“Constant”块实例,此“Constant”块可在“Simulink Library Browser”的“Simulink”块集合下的“Sources”类别中找到:

poYBAGIMpm-ATYuVAAEePJQfU9E400.png

以同样方式添加来自“Simulink”块集合下的“Sinks”类别的“Display”块。

这些块用作为 System Generator 设计的激励块。

步骤 9:按住鼠标左键并绘制一条从源端口到目标端口的线,以将块连接在一起。

完整的模型将如下所示:

poYBAGIMpnGABzkzAAEAnQeKIYs518.png

步骤 10:双击“Gateway In”块以打开“Properties Editor”,根据块 GUI 中的“Output type”和“Sample period”下的输入值来设置输入数据类型,然后单击“OK”。

针对其他输入重复该过程:

pYYBAGIMpnKAHlreAAFiCwBsggY287.png

步骤 11:双击 System Generator 标识以更改系统和仿真参数。

确保“clocking”选项卡下的“Simulink system period”与“Gateway In”块的样本周期相同。

“FPGA clock period”应为“Simulink system period”的整数倍。

单击“OK”。

pYYBAGIMpnOARY8RAAGTdFiOmMM923.png

步骤 12:单击模型工具栏上的保存按钮、为其提供有效的名称,然后单击“Save”以保存设计(在步骤 3-9 间可随时执行此步骤)。

步骤 13:单击“Run”按钮以对模型进行仿真并验证输出:

poYBAGIMpnWAGempAAEyAW04drI063.png

步骤 14:双击 System Generator 标识,确保:

  • “Compilation”已设置为“HDL Netlist”
  • “Target directory”选项设置为包含所生成 RTL 代码的任意有效目录(在此示例中目录为 netlist)
  • 已选中“Compilation”选项卡上的“Create testbench”选项

对于其他选项,保留默认设置。

现在,单击“Apply”,然后单击“Generate”按钮。

poYBAGIMpnaAFX9HAAHLYjmPSuc851.png

注:System Generator 标识充当用于控制系统和仿真参数的控制面板,并且还可用于调用代码生成器。

步骤 15:代码生成过程开始后,就会弹出状态窗口,如下所示:

pYYBAGIMpniAdy4kAAGXBP471eA014.png

步骤 16:代码生成完成后,状态窗口将通知您代码生成过程已完成。

poYBAGIMpnaAFX9HAAHLYjmPSuc851.png

在此处截屏中所示的示例中,System Generator 已成功生成 Kintex-7 xc7k325t-3fbg676 器件的 VHDL RTL 设计,包括测试矢量和测试激励文件。

现在,请启动 Vivado,打开“netlist/hdl_netlist/Multadd_test.xpr”文件,然后按下文中详述的步骤运行 Vivado 流程:

Vivado 设计输入纪事 - RTL 设计输入


审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7686

    浏览量

    344378
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59069
收藏 人收藏

    评论

    相关推荐

    XILINX FPGA IP之AXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互连以及其他AXI4系统外设上生成特定序列(流量)。它根据IP的编程和选择的操作模式生成各种类型的AXI事务。是一个比较好用的AXI4协议测
    的头像 发表于 11-23 16:03 828次阅读
    <b class='flag-5'>XILINX</b> FPGA IP之AXI Traffic <b class='flag-5'>Generator</b>

    Xilinx FPGA IP之Block Memory Generator AXI接口说明

    之前的文章对Block Memory Generator的原生接口做了说明和仿真,本文对AXI接口进行说明。
    的头像 发表于 11-14 18:25 803次阅读
    <b class='flag-5'>Xilinx</b> FPGA IP之Block Memory <b class='flag-5'>Generator</b> AXI接口说明

    Xilinx FPGA IP之Block Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一个先进的内存构造器,它使用Xilinx fpga中的嵌入式块RAM资源生成面积和 性能优化的内存。
    的头像 发表于 11-14 17:49 957次阅读
    <b class='flag-5'>Xilinx</b> FPGA IP之Block Memory <b class='flag-5'>Generator</b>功能概述

    真随机数生成器TRNG外设模块应用要点

    国产车规微控制器原厂云途半导体设计和发售的YTM32ME微控制器上集成的真随机数生成器TRNG(True Random Number Generator)外设模块
    的头像 发表于 11-08 14:52 809次阅读
    真随机数<b class='flag-5'>生成</b>器TRNG外设模块应用要点

    RTL8211F参考原理图

    RTL8211F参考原理图
    发表于 10-11 15:26 40次下载

    HLS中RTL无法导出IP核是为什么?

    请教一下,我在HLS里面要将以下程序生成IP核,C Synthesis已经做好了,但是在export RTL的时候一直在运行 int sum_single(int A int B
    发表于 09-28 06:03

    安装System GeneratorSystem Generator for DSP这个选项没有出现怎么办?

    各位大佬,我在安装System Generator时,跟着教程走,发现在vivado中没有出现System Generator for DSP
    发表于 09-26 21:54

    XILINX FPGA IP之FIFO Generator例化仿真

    上文XILINX FPGA IP之FIFO对XILINX FIFO Generator IP的特性和内部处理流程进行了简要的说明,本文通过实际例子对该IP的使用进行进一步的说明。本例子例化一个读数据位宽是写数据位宽两倍的FIFO
    的头像 发表于 09-07 18:31 911次阅读
    <b class='flag-5'>XILINX</b> FPGA IP之FIFO <b class='flag-5'>Generator</b>例化仿真

    请问如何下载Package和生成对应的RTL代码?

    求助:如何下载Package和生成对应的RTL代码?这些视频的内容在哪里能搜索到,谢谢
    发表于 08-11 07:41

    Xilinx Vivado DDS IP使用方法

    DDS(Direct Digital Frequency Synthesizer) 直接数字频率合成器,本文主要介绍如何调用Xilinx的DDS IP核生成某一频率的Sin和Cos信号。
    的头像 发表于 07-24 11:23 2143次阅读
    <b class='flag-5'>Xilinx</b> Vivado DDS IP使用方法

    Cadence 推出 Joules RTL Design Studio,将 RTL 生产力和结果质量提升到新的高度

    内容提要 将 RTL 收敛速度加快 5 倍,结果质量改善 25% RTL 设计师可快速准确地了解物理实现指标,根据提供的指引有效提升 RTL 性能 与 Cadence Cerebrus
    的头像 发表于 07-17 10:10 531次阅读
    Cadence 推出 Joules <b class='flag-5'>RTL</b> Design Studio,将 <b class='flag-5'>RTL</b> 生产力和结果质量提升到新的高度

    Xilinx Zynq7035算力指标

    本文介绍广州星嵌DSP C6657+Xilinx Zynq7035平台下Xilinx Zynq7035算力指标。
    的头像 发表于 07-07 14:15 876次阅读
    <b class='flag-5'>Xilinx</b> Zynq7035算力指标

    RTL8380MI/RTL8382MI管理型交换机系统软件操作指南六:RSTP/快速生成树协议

    RTL8380MI模块,RTL8382MI模块,交换机核心模块,千兆交换机模块,工业级交换机模块
    的头像 发表于 06-07 10:08 934次阅读
    <b class='flag-5'>RTL</b>8380MI/<b class='flag-5'>RTL</b>8382MI管理型交换机系统软件操作指南六:RSTP/快速<b class='flag-5'>生成</b>树协议

    Easier UVM Code Generator Part 4:生成层次化的验证环境

    本文使用Easier UVM Code Generator生成包含多个agent和interface的uvm验证环境。
    的头像 发表于 06-06 09:13 658次阅读

    RTL8211F(I)-CG_RTL8211FD(I)-CG.P以太网收发器

    IEEE 802.3标准的以太网收发器。它提供所有必要的物理层功能,通过CAT传输和接收以太网数据包。5UTP电缆。RTL8211FI和RTL8211DI是按照工业级标准制造的。RTL8211F(I)/
    发表于 05-15 10:16 54次下载