使用万博1manbetx用于HDL代码生成的模板
Simulink中的HDL Coder™模型模板万博1manbetx®为您提供用于HDL代码生成的模型的设计模式和最佳实践。您从HDL Coder模型模板之一创建的模型已经为HDL代码生成设置了它们的配置参数和求解器设置。要为HDL代码生成配置现有模型,请使用hdlsetup
.
使用创建模型高密度脂蛋白编码器模型模板
要为高效的HDL代码生成建模硬件,请使用HDL Coder模型模板创建一个模型。
打开Simulin万博1manbetxk开始页。在MATLAB中®Home选项卡,选择万博1manbetx按钮。或者,在命令行输入:
万博1manbetx
在高密度脂蛋白编码器节中,您将看到为HDL代码生成预配置的模板。选择模板将在Simulink编辑器中打开一个空白模型。万博1manbetx要保存模型,请选择文件>另存为.
打开Simulink库浏万博1manbetx览器,然后打开高密度脂蛋白编码器块库,选择库浏览器按钮在Simulink编辑器万博1manbetx中。或者,在命令行中输入
slLibraryBrowser
若要筛选Simulink库浏万博1manbetx览器以显示支持HDL代码生成的块库,请使用万博1manbetx
hdllib
功能:hdllib
高密度脂蛋白编码器模型模板
复杂的乘数
Complex Multiplier模板展示了如何建模一个复杂的乘数-累加器,并手动管道中间阶段。复杂乘法的硬件实现使用四个乘法器和两个加法器。
该模板应用了以下最佳实践:
2 .在“配置参数”对话框中,单击HDL代码生成>全局设置,重置类型设置为
同步
.为了提高速度,延迟块映射到硬件中的寄存器,位于乘法器和加法器的输入和输出。
为了支万博1manbetx持全精度复杂乘数的输出数据,需要手动指定输出数据字长为(
operand_word_length
2) + 1。例如,在模板中,操作数字长为18,输出字长为37。
MATLAB算术
MATLAB算术模板包含在硬件中推断DSP48s的MATLAB算术运算。
例如,ml_mul_acc
MATLAB函数block展示了如何在MATLAB中编写乘法累加运算。hdlfimath为HDL代码生成应用定点数学设置。
函数Y = fcn(u1, u2)%设计的6x6倍增器%相同的重置输入和输出%后面跟着一个加法器Nt =数字类型(0,6,0);Nt2 = numerictype(0,12,0);FM = hdlfimath;持续的U1_reg u2_reg mul_reg add_reg;如果Isempty (u1_reg) u1_reg = fi(0, nt, fm);U2_reg = fi(0, nt, fm);Mul_reg = fi(0, nt2, fm);Add_reg = fi(0, nt2, fm);结束Mul = mul_reg;Mul_reg = u1_reg * u2_reg;Add = add_reg;Add_reg (:) = mul+add;U1_reg = u1;U2_reg = u2;Y = add;
罗
ROM模板是映射到硬件中的ROM的设计模式。
该模板应用了以下最佳实践:
在查找表的输出中,有一个Delay块
ResetType
=没有一个
.查找表的结构使断点之间的间距为2的幂。
使用2的幂的表维使HDL Coder能够生成移位操作而不是除法操作。如有必要,在表格中填上零。
查找表项的数量是2的幂。对于一些综合工具,有2次幂条目的查找表更好地映射到ROM。如果有必要,用0填充表。
注册
Register模板展示了如何建模硬件寄存器:
在Si万博1manbetxmulink中,使用延迟块。
在MATLAB中,使用持久变量。
这个设计模式还展示了如何使用
投
自动传播数据类型。
的MATLAB代码MATLAB函数Block使用一个持久化变量对寄存器进行建模。
函数Y = fcn(u)映射到硬件中寄存器的单位延迟实现持续的u_d;如果isempty (u_d)%定义在时间步骤0时由单位延迟驱动的初始值U_d = cast(0,“喜欢”u);结束返回上次采样命中的延迟输入Y = u_d;%存储当前输入U_d = u;
生存研究实验室
SRL模板展示了如何在硬件中实现一个映射到SRL16的移位寄存器。您可以使用类似的模式映射到SRL32。
在移位寄存器子系统中利用延迟实现移位操作,而MATLAB函数,select_tap
,实现输出mux。
在select_tap
,从零开始的地址,addr
增量为1,因为MATLAB索引是基于1的。
函数dout = fcn(addr, tdelay) %#codegen addr1 = fi(addr+1,0,5,0);Dout = tdelay(addr1);
该模板还应用以下最佳实践来映射到硬件中的SRL16:
为利用延迟布洛克:
在“块参数”对话框中在输出矢量中包含当前输入未启用。
在“HDL块属性”对话框中,ResetType设置为
没有一个
.
为子系统在HDL块属性对话框中,FlattenHierarchy设置为
在
.
万博1manbetx硬件模式
Simu万博1manbetxlink硬件模式模板包含常见硬件操作的设计模式:
串行到并行移位寄存器
探测上升边缘
检测下降边缘
SR闭锁
RS门闩
例如上升沿检测和下降沿检测的设计模式:
状态机MATLAB
状态机在MATLAB模板展示了如何实现Mealy和Moore状态机使用MATLAB函数块。
要了解有关建模状态机的最佳实践的更多信息,请参见为HDL和SystemC代码生成建模一个状态机.