创建兼容hdl的Simulink模型万博1manbetx
这个例子说明了如何创建Simulink万博1manbetx®模型用于HDL代码生成。创建一个MATLAB®兼容HDL代码生成的算法,参见编写MATLAB代码以生成高效HDL和SystemC代码的指南.
该模型是一个简单的计数器算法,它向上计数,并在达到指定的上限后返回零。若要直接打开模型而不执行上述步骤,请参见简单计数器模型.
使用空白DUT模板
若要创建与hdl兼容的Simulink模型,请使用万博1manbetx空白DUT模板。模板被预先配置为用于生成HDL代码hdlsetup
函数。
在MATLAB工具条上,单击按钮。
在“Simul万博1manbetxink开始页”中,导航到高密度脂蛋白编码器部分,然后选择空白DUT模板。
保存带有文件名的模型
hdlcoder_simple_up_counter.slx
在可写的工作文件夹中。
的空白DUT模板具有HDL_DUT
子系统,它对应于您为其生成HDL代码的未测试设计(DUT)。为了验证DUT功能,模板在HDL_DUT
为DUT提供输入并记录输出值的子系统。看到将模型划分为DUT和试验台.
从HDL编码器库中选择块
要设计计数器算法,请使用高密度脂蛋白编码器块库。这个库中的块是为HDL代码生成而预先配置的。要过滤Simulink Li万博1manbetxbrary浏览器以显示支持HDL代码生成的块库:万博1manbetx
在应用程序选项卡上,选择高密度脂蛋白编码器.
从HDL代码选项卡上,选择HDL块属性>开放HDL块库.
或者,在命令行中输入hdllib
.
hdllib
块的高密度脂蛋白编码器库可以在Simulink中使用。万博1manbetx如果没有HDL Coder™,则可以模拟模型中的块,但不能生成HDL代码。
你可以在这些块库中找到额外的支持hdl的块:万博1manbetx
DSP系统工具箱HDL支持万博1manbetx
通信工具箱HDL支持万博1manbetx
视觉HDL工具箱
无线HDL工具箱
若要将库浏览器恢复到默认视图,请在“库浏览器”中单击按钮。或者,在命令行输入:
hdllib (“关闭”)
开发DUT算法
双击
HDL_DUT
子系统。从高密度脂蛋白编码器库到您的模型。此表列出要添加到设计计数器的模型中的块。若要了解块的功能并指定其块参数,请双击该块。重命名输入端口
三机一体
而且In2
来count_threshold
而且启用
分别。将这些块放在模型中并连接起来。
的启用
信号指定计数器是否从前一个值开始向上计数。当启用
信号逻辑高,计数器计数从零到count_threshold
价值。当的值出
变成等于count_threshold
值时,计数器返回0并重新开始计数。当启用
信号变得逻辑低,计数器保持先前的值。
创建设计测试平台
导航到模型的顶层并更改输入设置。
常数阻塞输入
count_threshold
:此输入指示计数器计数的最大值。这个例子展示了如何设计一个4位上计数器。设置恒定值来15
(2^4 - 1)然后设输出数据类型来uint8
.它的输出数据类型常数块的输出数据类型匹配常数控件中的
HDL_DUT
子系统。计数器不同步的阻塞输入
启用
:移除计数器不同步的块。将此块替换为常数值为的块1
,输出数据类型设置为布尔
,样品时间的1
.
另请参阅创建一个简单的模型.
上一节展示了hdlcoder_simple_up_counter.slx
按照上面描述的步骤创建的模型。要在MATLAB中打开模型,请单击开放模式按钮。
简单计数器模型
打开这个模型可以看到一个简单的计数器。该模型从0开始计数到一个阈值,然后返回到0。将阈值设置为15
.若要更改阈值,请将输入的值更改为count_threshold
端口。Enable信号指定计数器是向上计数还是保持前一个值。值为1
计数器连续向上计数。
模拟和验证设计功能
设置停止时间模型的50
.控件模拟模型按钮。要查看模拟结果,请打开范围块在你的模型的顶层。
仿真结果表明启用
产生恒定值的信号1
.的出
信号计数来自0
来15
,返回0,然后再次计数。
从Simulink模型生成HDL代码万博1manbetx
在生成HDL代码之前,您可以验证模型设置是否与HDL代码生成兼容。本例中使用的计数器模型与HDL代码生成兼容。要验证和更新您的模型以获得HDL兼容性,请使用HDL代码顾问。看到使用HDL Code Advisor检查Simulin万博1manbetxk模型的HDL兼容性.
另请参阅
hdllib
|checkhdl
|hdlsetup
|hdlcodeadvisor