HDL编码器™使您可以查看HDL优化和块设置在生成的模型中的效果。
在生成代码之前,HDL Coder创建一个称为的HDL代码行为模型生成的模型.生成的模型是一个中间模型,它捕获在代码生成期间区域和时间优化中生成的代码的周期精确和位真实行为。它显示了你的Simulink之间的延迟和数值差异金宝app®DUT和生成的HDL代码。延迟代码生成器插入在各种颜色的生成模型中突出显示。请参阅下表,在代码生成和相应的突出显示颜色中看到不同的延迟。
延误 | 突出显示颜色 |
---|---|
阻止实现 Ram Mapping. |
青色 |
限制输出管道 |
绿 |
分布式流水线 输入和输出流水线 延迟平衡 时钟速率流水线 |
橘子 |
通过时间和区域优化,生成的模型与原始模型有很大的不同。例如,如果您请求优化,您可以在块旁边看到额外的整数延迟和额外的平衡延迟(在任何需要保持算法准确性的地方)。如果您请求资源共享或流优化(其中同一个操作符跨多个操作进行时间复用),您将在模型中看到额外的速率。
生成的模型用于RTL TestBench生成。从生成的模型而不是原始模型捕获输入刺激和输出响应,因为生成的模型反映了优化所需的算法时间更改。如果禁用模型生成,则无法在HDL编码器中生成测试台。
代码生成后,生成的模型保存在目标文件夹中。默认情况下,生成的模型前缀是GM_
.例如,如果您的型号名称是mymodel.
,您生成的型号名称是GM_
mymodel.
.
要自定义生成的模型名称的前缀,请使用generatedmodelnameprefix.
财产与makehdl
或hdlset_param.
.看生成的模型名称的前缀.
您还可以指定生成模型的布局的各种选项。看布局选项.
因为生成的模型通常与原始模型有很大的不同,编码人员也可以创建一个验证模型比较原始模型和生成的模型。验证模型在原始模型的输出中插入延迟,以补偿延迟差异,并比较两个模型的输出。在模拟验证模型时,输出数据中的数值差异会触发断言。
使用验证模型,您可以验证优化DUT的输出与原始DUT产生的结果是否为true。
验证模型包括:
生成的模型。
一个有延迟的原始模型插入了延迟。
原始输入,路由到原始模型和生成的模型。
用于比较和查看原始模型和生成模型的输出的范围。
一些块体系结构和优化介绍延迟。例如,对于互惠块,您可以指定实现Newton-Raphson方法的HDL块体系结构。Newton-Raphson方法是迭代的,因此块架构使用它是多运行的,并以块速率引入延迟。
类似地,资源共享区域优化在共享硬件资源上使用共享硬件资源的数据,这引入了ups采样率的本地多速率和延迟。
HDL块体系结构会引入数字上的差异。例如:
牛顿-Raphson方法是近似值。如果选择牛顿Raphson块实现,则生成的模型显示了数字的变化。
信号处理块的HDL实现,如滤波器,可以改变数字。
也可以看看在速度优化后找到数字差异.
在“配置参数”对话框中,在HDL代码生成>全局设置>模型生成窗格,选择验证模型.
在HDL工作流程顾问中,在HDL代码生成>生成RTL代码和测试台窗格中,使生成验证模型.
使用generateValidationModel.
财产与makehdl
或hdlset_param.
.
要自定义生成的验证名称的后缀,请使用ValidationModelnamesuffix.
财产与makehdl
或hdlset_param.
.看验证模型名称的后缀.
要生成验证模型,必须为DUT子系统生成HDL代码。不支持为整个模型生成代码而不是为DUT子系统生成金宝app代码。