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

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为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”。
在 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 会话。
如以下截屏所示:
步骤 2:将工作目录更改为包含创建的 sysgen 模型的任意本地目录。
单击位于 matlab 窗口右上角的 simulink 图标。
这样将打开 simulink start page:
步骤 3:单击 simulink 下拉选项的“blank model”图标。
这样将打开空白或“untitled”模型,其中包含空白的模型画布。
步骤 4:单击“untitled”模型窗口中的“library browser”图标以便在“simulink library browser”窗口中查看赛灵思块集合。
单击并展开“xilinx blockset”菜单,以查看不同类别的块。单击“basic elements”类别,以查看基本 sysgen 块,如下所示:
步骤 5:右键单击并选择“add block to model”(ctrl+i) 选项将 system generator 标识块添加到模型中以定义 fpga 技术。
以同样方式添加“gateway in”和“gateway out”块,以定义设计的 system generator 部分与 simulink 部分之间的界限。
注:任何模型都必须包含这些必需的块。每个模型都必须至少包含 1 个 system generator 块,可包含多个“gateway in”和“gateway out”块,具体取决于设计的输入和输出。
此处演示的是添加乘累加 (mult-add) 运算的建模过程,因此我们需要将“mult”、“addsub”和“delay”块添加到模型中。
步骤 6:选中“xilinx blockset”下的“floating-point”类别中的“addsub”块,右键单击,然后单击“add block to model”选项。
步骤 7:以同样方式选中“xilinx blockset”下的“floating-point”类别中的“mult”块和“basic elements”类别下的“delay”块,并将这两个块添加到模型中。
这样模型将如下图所示:
步骤 8:现在,添加 3 个“constant”块实例,此“constant”块可在“simulink library browser”的“simulink”块集合下的“sources”类别中找到:
以同样方式添加来自“simulink”块集合下的“sinks”类别的“display”块。
这些块用作为 system generator 设计的激励块。
步骤 9:按住鼠标左键并绘制一条从源端口到目标端口的线,以将块连接在一起。
完整的模型将如下所示:
步骤 10:双击“gateway in”块以打开“properties editor”,根据块 gui 中的“output type”和“sample period”下的输入值来设置输入数据类型,然后单击“ok”。
针对其他输入重复该过程:
步骤 11:双击 system generator 标识以更改系统和仿真参数。
确保“clocking”选项卡下的“simulink system period”与“gateway in”块的样本周期相同。
“fpga clock period”应为“simulink system period”的整数倍。
单击“ok”。
步骤 12:单击模型工具栏上的保存按钮、为其提供有效的名称,然后单击“save”以保存设计(在步骤 3-9 间可随时执行此步骤)。
步骤 13:单击“run”按钮以对模型进行仿真并验证输出:
步骤 14:双击 system generator 标识,确保:
“compilation”已设置为“hdl netlist” “target directory”选项设置为包含所生成 rtl 代码的任意有效目录(在此示例中目录为 netlist) 已选中“compilation”选项卡上的“create testbench”选项 对于其他选项,保留默认设置。
现在,单击“apply”,然后单击“generate”按钮。
注:system generator 标识充当用于控制系统和仿真参数的控制面板,并且还可用于调用代码生成器。
步骤 15:代码生成过程开始后,就会弹出状态窗口,如下所示:
步骤 16:代码生成完成后,状态窗口将通知您代码生成过程已完成。
在此处截屏中所示的示例中,system generator 已成功生成 kintex-7 xc7k325t-3fbg676 器件的 vhdl rtl 设计,包括测试矢量和测试激励文件。
现在,请启动 vivado,打开“netlist/hdl_netlist/multadd_test.xpr”文件,然后按下文中详述的步骤运行 vivado 流程:
vivado 设计输入纪事 - rtl 设计输入

人工智能究竟会如何改变搜索呢?
毫米波雷达产品实现无接触测量生命体征和呼吸速率,推动医疗保健行业变革
荣耀官宣V40系列发布会
PCB埋磁芯印制板工艺加工流程
airpods2真假区别_airpods2和1怎么区分
Xilinx System Generator for DSP纪事—RTL设计的生成
USB4/雷电转PCIE Gen4*4之祥硕ASM2464PD
串联电抗器安装时的注意事项都有哪些
厉害了 虚幻4引擎制作的VR版《红色警戒2》
用光创造价值,探讨欧普照明的发展战略
并行循环冗余校验算法
鸿蒙OS系统系统强势崛起 已有业内“霸主”之相
印度交通部部长证实特斯拉2021年将开始在印度运营
微流控技术助力VR手套,让虚拟世界拥有真实触感
物联网大规模爆发前夜的重大战略布局
烟密度测试仪介绍
紫光成都建设基地,打造12英寸3D NAND存储器晶圆生产线
区块链项目如何打假?区块链代码审计,造就完美虚拟世界
深耕三元软包 桑顿新能源成锂电又一匹“黑马”
安徽富捷电子爆发式增长,优势显现
s