主要内容

时钟频率流水线

启用插入管道寄存器的速度和区域优化时,使用时钟速率流水线优化来识别设计中的多运行路径。时钟速率流水线以更快的时钟速率插入管道寄存器,这提高了时钟频率而不引入额外延迟或通过添加最小延迟。

时钟速率流水线的理由

当你指定特定的块实现或在模型上启用某些优化时,代码生成器会引入管道,例如:

  • 多循环块实现

  • 输入和输出管道

  • 分布式流水线

  • 浮点库映射

  • 本机浮点HDL代码生成

  • 资源共享

  • 流媒体

默认情况下,在慢路径中,这些管道寄存器以慢的数据速率运行。启用时钟速率流水线时,管道寄存器以更快的时钟速率运行。时钟速率流水线不会影响模型中的现有设计延迟。它是使用与合成工具使用多运行路径约束的替代方案。

时钟速率流水线如何运作

时钟速率流水线优化通过分析块采样时间来识别模型中的慢路径或区域。样本时间大于DUT基样本时间的块是慢路径的一部分,是时钟速率流水线的潜在候选对象。在这些慢路径中,代码生成器支持以时钟速率引入管道延迟的优化。

如果您指定了一个过采样因子大于1时,DUT采样时间变得比实际时钟速率慢。代码生成器根据DUT-to-block采样时间比和过采样因子确定它可以插入的时钟率管道的最大数目。

最大时钟速率延迟=(block_rate÷dut_base_rate.过采样

时钟速率管道识别模型中具有相同慢数据速率的区域,并由两者中的任何一个进行分隔延迟延迟速率转换的块或块。代码生成器通过引入将这些区域转换为更快的时钟速率重复块在输入的区域和率过渡块在输出区域。如果一个时钟速率区域的输出是延迟在数据速率下块,HDL编码器™吸收延迟堵塞。为了适应延迟,代码生成器引入了几个时钟速率流水线,对应于数据速率与时钟速率的比率。

HDL编码器生成一个脚本,该脚本突出显示模型中的块,这些块是针对时钟速率流水线的障碍和清除突出显示的脚本。有时,如果代码生成器无法以时钟速率实现资源共享或流式传输,则它将显示代码生成错误,具有改变的推荐过采样价值。要清除高亮显示,请单击clearhighlighting脚本在matlab中®命令窗口。

时钟速率流水线和层次扁平化

您可以使用时钟速率流水线优化,无论是否简化子系统层次结构。当您希望在设计中最大限度地共享资源时,请扁平化子系统层次结构。要使子系统层次扁平化,请启用FlattenHierarchy在顶级子系统上。默认情况下,所有子系统顶级子系统内部的块继承了此FlattenHierarchy设置。层次扁平化将多个时钟速率区域带到层次结构中相同的级别并将它们组合起来,这增加了时钟速率流水线的机会。但是,它会破坏设计的模块化,并影响生成的HDL代码的可读性。另请参阅层次结构压扁

在模型中的顶级子系统上施加时钟速率流水线而不展平层次结构,禁用FlattenHierarchy.如果您的设计使用定点数据类型,请在底层子系统上启用一些优化。在这种情况下,代码生成器在您的设计中引入时钟率管道,同时保留子系统层次结构,即:

  • 改进设计的模块化,使生成的模型更容易导航,特别是在具有复杂层次结构的大型设计中。

  • 通过创建多个Verilog或VHDL文件来提高生成的HDL代码的可读性子系统块在你的设计。

CLOW速率流水线用于DUT输出端口

要以时钟速率而不是数据速率插入DUT输出端口管道寄存器,请选择允许DUT输出端口的时钟速率流水线选项或使用ClockRatePipelineOutputports.财产。这个选项改变了您的DUT接口的时间,因为它改变了您的DUT输出端口的采样时间从慢速率到时钟速率。为了调整时间上的差异,HDL编码器生成提供每个输出端口的相位偏移的消息。例如,此消息意味着从portname在31个时钟周期后有效:输出端口相位portname: 31个时钟周期。

验证模型通过插入a率过渡块在DUT输出和比较输出率过渡用原始输出。RTL测试台在输入的输入时记录输出数据率过渡并将其与RTL仿真中的DUT输出进行比较。

时钟速率流水线的最佳实践

  • 如果您的设计使用率过渡块,切换率过渡块与A.下面块有非零样本抵消.时钟速率流水线优化下面通过避免额外的延迟率过渡块可以介绍,节省区域和时序。

  • 以一个速度设计您的DUT并指定过采样因子.避免使用率过渡Upsample下面,或其他速率变化模块。

指定时钟速率流水线

您可以在模型上设置时钟速率流水线,或在顶级DUT子系统中的子系统上设置更精细的控制。默认情况下,在模型上启用了时钟速率流水线。禁用UI的时钟速率流水线:

  1. 应用程序选项卡,选择HDL编码器.这HDL码出现选项卡。

  2. 点击设置.在HDL代码生成>优化>流水线标签,清晰时钟频率流水线然后点击好吧

在命令行,使用makehdlhdlset_param函数来设置ClockRatepipelining.财产离开

您可以为顶级DUT子系统中的一个子系统使用时钟速率管道。要在您的设计中以数据速率而不是时钟速率建模控制路径,请将控制路径放在一个子系统中,并禁用该子系统的时钟速率管道。若要禁用顶级DUT子系统中的一个子系统的时钟速率管道,请设置ClockRatepipelining.离开对于那个子系统。另请参阅为子系统设置时钟速率流水线

时钟速率流水线的限制

这些块抑制了时钟速率流水线,因此限定了时钟速率流水线区域:

  • 计数器不同步的

  • 柜台有限公司

  • deserializer1d.

  • 离散PID控制器

  • 双端口RAM.

  • 双速率双端口RAM

  • FFT HDL优化

  • HDL Cosimulation.

  • 高密度脂蛋白FIFO

  • 高密度脂蛋白计数器

  • 击球

  • 最小资源FFT

  • 高密度脂蛋白流FFT

  • MATLAB系统,如果它使用持久变量

  • 率过渡

  • Serializer1D

  • 简单双端口RAM

  • 单独的端口内存

  • 子系统, 如果FlattenHierarchy未启用

代码生成器不支持时钟速率流水线:万博1manbetx

  • 黑盒子系统或黑盒模型参考块。

  • 包含不支持时钟速率流水线的块的子系统。万博1manbetx

  • Altera DSP Builder子系统

  • Xilinx System Generator子系统

  • 通信工具箱™块。

  • 除了用于的DSP System Toolbox™块延迟离散冷冻过滤器

  • Stateflow®块。

在使用时钟速率流水线优化时,代码生成器不支持在相同资源上万博1manbetx应用流和共享优化。禁用时钟速率流水线或在启用时钟速率流水线时使用流优化或在相同资源上的共享优化。

另请参阅

万博1manbetxSimulink配置参数

相关的例子

更多关于