主要内容

使用延迟和指南转到块HDL代码生成

这些指导方针说明建模的推荐设置延迟你的模型。你延迟模型通过使用块中可用离散图书馆。每个指南都有严重性级别,表明合规要求的水平。欲了解更多,请看高密度脂蛋白建模指南严重的水平

适当的使用延迟块是寄存器

指导ID

2.6.1

严重程度

推荐

描述

块在你的模型推断目标FPGA啪嗒啪嗒地响,使用延迟块。您可以指定一个地方重置和启动信号延迟块。

默认情况下,延迟的长度块的设置2。在这种情况下,输入块传递到输出后两个步骤。如果延迟的长度被设置为0,输入传递到输出,没有任何延迟。生成的HDL代码将屏蔽线。来推断一个触发器或注册目标设备,设置对话框并指定一个延迟的长度大于零。

当使用一个延迟块,外部启用端口或内部启用子系统块,推荐使用国家控制在同步模式下。同样,当你使用延迟块,外部复位端口或内部复位子系统块,推荐使用国家控制在同步模式下。欲了解更多,请看HDL代码生成延迟

不使用单位延迟启用,单位延迟可重调,单位延迟启用复位块HDL代码生成。这些块已被移除。相反,代替这些块单位延迟启用同步,单位延时复位同步,单位推迟启用复位同步块。这些块使用国家控制在同步块硬件模式。要执行该块替代模型中,模型运行检查检查过时单位延迟启用/复位模块

吸收避免延误时间的差异

指导ID

2.6.2

严重程度

推荐

描述

某些块实现浮点操作和优化设置,如分布式流水线引入延迟生成的HDL代码和生成的模型。额外的延迟导致时间区别原始模型和生成的模型。为了避免这个时间差异,例如当您使用的是与反馈回路控制系统,使用一个建模模式能够吸收延迟。吸收延迟,延迟块后块引入延迟,并设置延迟的长度价值等于块延迟。此外,通过添加延迟块原始模型,可以模拟原始模型与延迟。

这些块可以引入延迟:

  • √6分,和互惠块定制延迟值大于零。

  • 三角函数块函数设置为,因为,要求,因为+ jsin,或量化和HDL架构设置CORDIC

  • 本机浮点操作符LatencyStrategy设置为马克斯,最小值,或一个自定义的值大于零。

了解与定点类型定制延迟块,打开HDLMathLib图书馆。库包含定点块控制信号。

open_system (“HDLMathLib”)

学习如何HDL编码器™吸收延迟,打开模型hdlcoder_absorb_delay_timing

open_system (“hdlcoder_absorb_delays”)set_param (“hdlcoder_absorb_delays”,“SimulationCommand”,“更新”)

HDL_DUT子系统,你看到一个延迟块延迟的长度等于12在划分块。这延迟的长度对应的延迟部门定点数据类型的操作。在这种情况下,必需的延迟的长度是进行重构的总和,8,4,等于12

open_system (“hdlcoder_absorb_delays / HDL_DUT”)

为DUT子系统生成HDL代码,使用makehdl函数。

makehdl (“hdlcoder_absorb_delays / HDL_DUT”)

在生成的模型中,把旁边的延迟块是块吸收延迟。当你双击这个块,你看原来的块划分和延迟块延迟的长度12

的一个例子显示了浮点操作,延迟吸收延迟因素与本机浮点

优化等分布式流水线可以引入延迟。例如,打开这个模型hdlcoder_absorb_delay_sharing。的DUT子系统包含两个子系统sub_scalarsub_add

open_system (“hdlcoder_absorb_delay_sharing”)set_param (“hdlcoder_absorb_delay_sharing”,“SimulationCommand”,“更新”)

sub_scalar子系统包括12产品块单元延迟在身旁。分享这些产品模块,SharingFactor12被指定的sub_scalar子系统。

open_system (“hdlcoder_absorb_delay_sharing / DUT / sub_scalar”)

生成HDL代码DUT子系统,使用makehdl函数。

makehdl (“hdlcoder_absorb_delay_sharing / DUT”)

当你指定一个值大于1SharingFactor、反序列化程序块1样品延迟后插入HDL代码生成。通过添加产品旁边的单位延迟块街区在原始模型中,这些延迟吸收产品块后执行共享优化。

在生成模型,反序列化器的延迟是吸收块。

地图大延迟块RAM

指导ID

2.6.3

严重程度

推荐

描述

保存区,当你设计包含大型设计延误和管道延迟,你可以延迟映射到块RAM和UltraRAM FPGA资源。设计延迟延误你手动插入设计使用延迟块,或其他国家包括街区队列,高密度脂蛋白FIFO,或缓冲块。管道延迟延误所产生的优化设置或块实现设置如牛顿迭代实现。

设计延迟映射到内存:

  • 在高密度脂蛋白块属性对话框延迟块,设置UseRAM。学习如何设置这个选项延迟块设计中以编程方式,请参阅以编程方式设置高密度脂蛋白块参数为多个块

  • 大大大延迟映射到UltraRAM资源,您可以指定ram_style在生成的HDL代码属性。

    ——这个硬件描述语言(VHDL)的代码显示了ramstyle属性设置为超:属性ram_style:字符串;属性ram_style内存:信号是“超”;/ /这个Verilog代码显示了ramstyle属性设置为超:(* ram_style =“超”*)
  • 中描述的流和分布式管道的影响,即使UseRAM,你可以地图大延迟超过一个阈值使用内存映射阈值(位)参数。你可以改变这个阈值取决于大延迟要映射到内存。

  • 当你使用MATLAB函数块,你可以映射持久变量MATLAB®RAM通过设置HDL架构代码MATLAB Datapath公司MapPersistentVarsToRAM高密度脂蛋白块属性

管道插入的延迟的优化,延迟平衡自动插入匹配并行路径延迟。如果滞关键路径长度和向量元素的数量在并行路径取大值,管道延误也可以变得很大。

这些大延迟映射到块内存:

  • 启用管道延迟映射到内存参数。

  • 调整内存映射阈值(位)参数的值小于所需的内存大小。

    RAM大小= DelayLength *字* VectorLength * ComplexLength

看到生成模型和验证模型

需要高密度脂蛋白设置转到

指导ID

2.6.4

严重程度

强制性的

描述

当你产生DUT HDL代码子系统使用转到块:

  • 不要使用转到各地块的边界DUT子系统。连接输入和输出端口DUT的使用轮廓尺寸外港块来代替。

  • 不要使用转到块的边界原子子系统。连接输入和输出端口DUT的使用轮廓尺寸外港块来代替。

使用转到块在一个子系统层次会影响模型的可读性。在生成HDL代码之前,建议您使用转到在同一块子系统和使用当地的作用域可见性。当你生成HDL代码,在生成的模型,每一个转到块成为一对转到子系统连接。

另请参阅

功能

相关的话题