System Generator学习——将代码导入System Generator(二)

简介: System Generator学习——将代码导入System Generator

System Generator学习——将代码导入System Generator(一)https://developer.aliyun.com/article/1472311


二、步骤 2:用 HDL 建模模块

1、引言

在本实验练习中,您将把 RTL 设计作为黑盒导入 System Generator。黑盒子允许将设计导入 System Generator,即使描述是硬件描述语言(HDL)格式

2、目标

完成此步骤后,你将能够:

  • 将 RTL HDL 描述导入到 DSP 的 System Generator 中
  • 配置黑盒以确保设计能够成功模拟

3、步骤

①、我们将用到下面目录中的文件 D:\Work\system_generator学习资料\ug948-design-files\SysGen_Tutorial\Lab2\HDL

以下文件位于此目录中:

  • Lab2_2.slx:一个包含黑盒示例的 Simulink 模型
  • transpose_fir.vhd。顶级 VHDL 的转置形式的 FIR 滤波器。该文件是与黑盒相关联的 VHDL
  • mac.vhd:用于构建转置 FIR 滤波器的乘法和加法器组件。

    ②、启动 System Generator 并打开 Simulink 将 Lab2\M_code\Lab2_2.slx 打开

②、打开名为 Down Converter(下变频器)的子系统,打开名为 Transpose FIR Filter Black Box 的子系统。此时,子系统包含两个输入端口和一个输出端口。你将向这个子系统添加一个黑盒。此时,子系统包含两个输入端口和一个输出端口。你将在这个子系统中添加一个黑盒:

③、右键单击设计画布,选择 Xilinx BlockAdd,并向该子系统添加一个 Black Box 块。打开一个浏览器窗口,列出可以与黑盒关联的 VHDL 源文件。从这个窗口中,选择顶级 VHDL 文件 transpse_fir.vhd。如下图所示:

关联的配置 M-code 为 transpose_fir_config 在编辑器中打开以进行修改

④、关闭编辑器,将黑匣子的端口连接到相应的子系统端口并保存设计

⑤、双击 Black Box 以打开此对话框

以下是对话框中的字段:

  • Block configuration m-function:这为黑匣子指定配置 m 函数的名称。在本例中,该字段包含由 Configuration Wizard 生成的函数的名称。默认情况下,黑盒使用向导生成的函数。但是,你可以替换你自己创建的一个。
  • Simulation mode:有三种模拟模式
  • Inactive: 当模式为 Inactive 时,黑盒通过忽略其输入并产生零来参与模拟。此设置通常用于当一个单独的仿真模型可用于黑盒,并且该模型使用仿真多路复用器与黑盒并行连接时。
  • Vivado Simulator:当模式为 Vivado Simulator 时,对与黑盒相关的 HDL 进行联合仿真,生成黑盒的仿真结果
  • External co-simulator:当模式为外部协同模拟器时,需要在设计中添加 ModelSim HDL 协同仿真模块,并在 HDL 协同模拟器使用字段中指定 ModelSim 模块的名称。在该模式下,使用 HDL 协同仿真对黑盒进行仿真。

将模拟模式设置为 Inactive(非活动),然后单击“确定”关闭对话框

⑥、移动到设计的顶层,点击 run simulation 按钮运行仿真;然后双击 Scope 块。

注意,output Signal 作用域中显示的黑箱输出为零。这是预期的,因为黑盒在模拟期间被配置为 Inactive

⑦、从 Simulink 编辑器菜单中,选择 Display > Signals & Ports > Port Data Types 显示黑匣子的端口类型

⑧、编译模型(Ctrl-D)以确保端口数据类型是最新的。注意,黑匣子端口输出类型是 UFix_26_0。这意味着它是无符号的,26 位宽,并且在最低有效位的左边有一个二进制点 0

⑨、打开配置 M-function transpose_fir_config。将输出类型从 “UFix_26_0” 修改为 “Fix_26_12”。修改后的行(第 26 行)应该是这样的

dout_port.setType('Fix_26_12');

继续执行以下步骤,编辑配置 m-函数,将另一个 HDL 文件与黑盒关联起来,定位第 65 行:

this_block.addFile('transpose_fir.vhd');

在这行代码的上方,添加以下代码:

this_block.addFile('mac.vhd');

保存对配置 m-函数 的更改并关闭该文件

⑩、单击设计画布并重新编译模型(Ctrl-D),你的转置 FIR 滤波器黑盒子系统应显示如下:

在 “黑匣子” 块参数对话框中,将 “模拟模式” 字段从 “非活动” 更改为 “Vivado 模拟器”,然后单击 “确定”

⑪、移到设计的顶层并运行模拟,在模拟完成后检查范围输出。注意波形不再为零。当模拟模式为非活动时,输出信号范围显示恒定零。现在,输出信号显示一个正弦波作为 Vivado 模拟的结果。

右键单击 Output Signal 显示并选择 Configuration Properties。在 Main 选项卡中,将轴缩放设置为自动设置。

你应该看到类似于下面所示的显示

System Generator学习——将代码导入System Generator(三)https://developer.aliyun.com/article/1472314

目录
相关文章
|
2月前
|
Python
Generator 函数
Generator 函数是 ES6 引入的一种异步编程解决方案,它允许函数执行过程中暂停并保存当前状态,待需要时再恢复执行。通过 `function*` 定义,使用 `yield` 关键字控制暂停点。
|
7月前
|
SQL 数据库
一个很实用的造数工具—Spawner Data Generator
一个很实用的造数工具—Spawner Data Generator
228 0
|
7月前
|
算法 C++
System Generator学习——将代码导入System Generator(三)
System Generator学习——将代码导入System Generator
123 2
|
7月前
|
C++
System Generator学习——将代码导入System Generator(一)
System Generator学习——将代码导入System Generator
55 1
/etc/init.d/functions运用实战配置system服务详解
/etc/init.d/functions运用实战配置system服务详解
|
Java 测试技术 Spring
在进行SSM单元测试时出现的Could not load TestContextBootstrapper [null]. Specify @BootstrapW错误
在进行SSM单元测试时出现的Could not load TestContextBootstrapper [null]. Specify @BootstrapW错误
110 0
|
Java Apache Maven
mybatis-generator运行报错Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate (default-cli) on project testone: Exec
"C:Program FilesJavajdk-9.0.4binjava.exe" -Dmaven.multiModuleProjectDirectory=E:testone "-Dmaven.home=D:IDEAIntelliJ IDEA 2018.
16250 0
Travis CI Could not find or load main class org.gradle.wrapper.GradleWrapperMain 错误
问题 在 Travis CI 编译的时候出现 Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain 错误。
1526 0