当前位置: 首页 > article >正文

Matlab Simulink HDL Coder开发流程(一)— 创建HDL兼容的Simulink模型

创建HDL兼容的Simulink模型

  • 一、使用Balnk DUT模板
  • 二、从HDL Coder库中选择模块
  • 三、为DUT开发算法/功能
  • 四、为设计创建Testbench
  • 五、仿真验证设计功能
  • 六、Simulink模型生成HDL代码

这个例子说明了如何创建一个用于生成HDL代码的Simulink模型。要创建兼容HDL代码生成的MATLAB算法,请参见“Guidelines for Writing MATLAB Code to Generate Efficient HDL and HLS Code”。

该模型是一种简单的计数器算法,它向上计数,并在达到您指定的上限后包装回零。

一、使用Balnk DUT模板

要创建一个与HDL兼容的Simulink模型,请使用Blank DUT模板。使用hdlsetup函数对模板进行预配置,以便生成HDL代码。
1、在MATLAB工具栏上,单击Simulink按钮。
2、在Simulink开始页中,导航到HDL Coder部分,然后选择Blank DUT模板。
3、用文件名hdlcoder_simple_up_counter.slx保存模型到可写的工作文件夹中。
在这里插入图片描述
Blank DUT模板有一个HDL_DUT子系统,对应于为其生成HDL代码的测试下设计(DUT)。为了验证DUT的功能,该模板包含一个位于HDL_DUT子系统之外的Create HDL-Compatible Simulink Model 3-5测试台,该测试台为DUT提供输入并记录输出值。

二、从HDL Coder库中选择模块

要设计计数器算法,请使用HDL Coder库中的块。这个库中的块是为生成HDL代码而预先配置的。要过滤Simulink库浏览器以显示支持HDL代码生成的块库:
1、在Apps选项卡上,选择HDL Coder。
2、从HDL Code选项卡中选择HDL Block Properties>Open HDL Block Library。
或者,在命令行输入hdllib:

hdllib

在这里插入图片描述
HDL Coder库中的块可与Simulink一起使用。如果没有HDL Coder,则可以在模型中对块进行仿真,但不能生成HDL代码。
你可以在这些块库中找到额外的支持HDL的块:

  • DSP System T oolbox HDL Support
  • Communications T oolbox HDL Support
  • Vision HDL T oolbox
  • Wireless HDL T oolbox

若要将库浏览器恢复为默认视图,请在库浏览器中单击返回按钮。或者,在命令行输入:

hdllib('off')

三、为DUT开发算法/功能

1、双击HDL_DUT子系统。将块从HDL Coder库拖到模型中。
该表列出了要添加到模型中用于设计计数器的块。要了解块的作用并指定其块参数,请双击该块。
在这里插入图片描述
2、将输入端口In1和In2分别重命名为count_threshold和Enable。将模块放入模型中并连接它们。
在这里插入图片描述
Enable信号指定计数器是否从前一个值向上计数。当Enable信号为逻辑高时,计数器从0开始计数到count_threshold值。当out的值等于count_threshold值时,计数器将返回零,并且再次开始计数。当使能信号变为逻辑低时,计数器保持先前的值。

四、为设计创建Testbench

导航到模型的顶层并更改输入设置。

  • 常量块输入到count_threshold:该输入指示计数器计数的最大值。这个例子展示了如何设计一个4位向上计数器。设置常量值为15(2^4 - 1),并设置输出数据类型为uint8。然后,这个常量块的输出数据类型与HDL_DUT子系统中常量块的输出数据类型相匹配。
  • 自由计数器模块输入到 Enable:移除自由计数器模块。将此块替换为值为1的常量块,输出数据类型设置为布尔,采样时间设置为1。
    在这里插入图片描述
    前一节展示了hdlcoder_simple_up_counter。您按照上面描述的步骤创建的SLX模型。要在MATLAB中打开模型,请单击“打开模型”按钮。

五、仿真验证设计功能

将模型的停止时间设置为50。通过单击仿真按钮模拟您的模型。要查看模拟结果,请打开模型顶层的Scope块。
仿真结果显示使能信号产生一个常数1。输出信号从0计数到15,包装回0,然后再次计数。
在这里插入图片描述

六、Simulink模型生成HDL代码

在生成HDL代码之前,您可以验证模型设置是否与HDL代码生成兼容。本例中使用的计数器模型与HDL代码生成兼容。要验证和更新HDL兼容性的模型,请使用HDL Code Advisor。

本章节内容在下篇文章中进行详细说明:Matlab Simulink HDL Coder开发流程(二)—从Simulink模型生成HDL代码

参考文档:Matlab Simulink HDL Coder官方使用文档说明


http://www.kler.cn/a/418825.html

相关文章:

  • 多点DMALL启动招股:将在港交所上市,聚焦数字零售服务
  • 1180 - 【入门】数字出现次数
  • 缓存与缓冲
  • 不修改内核镜像的情况下,使用内核模块实现高效监控调度时延
  • 电路基础——相量法
  • 银联大数据面试题及参考答案
  • 未来已来!联想推出汽车智能空间解决方案
  • PWN的简单了解
  • 逆向攻防世界CTF系列42-reverse_re3
  • 论文解读:Reward criteria impact on the performance ofreinforcement learning...
  • Hbase2.2.7集群部署
  • 阿里云CPU过载的一点思考
  • 深度学习模型: BERT(Bidirectional Encoder Representations from Transformers)详解
  • word文档ctrl+v失效的解决方法
  • Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组
  • 网络安全-网络安全审计
  • C# 2024年Visual Studio实用插件集合
  • Oracle—系统包使用
  • SAP SD学习笔记17 - 投诉处理3 - Credit/Debit Memo依赖,Credit/Debit Memo
  • 永久停用PostgreSQL 归档功能
  • Linux——自定义简单shell
  • day05 Linux bash核心及目录命令
  • 手机卡限速丨中国移动5G变3G,网速500kb
  • 【RISC-V CPU debug 专栏 2 -- Debug Module (DM), non-ISA】
  • java 基础语法速成
  • 【阅读笔记】Android广播的处理流程