格子博客

分享:

FPGA设计中计时约束的重要性

FPGA设计中计时约束的重要性
Eugen Krassin于2021年6月7日发布

张贴在

“LEC2工作台”将是一个正在进行的系列技术博客文章,重点是使用Lattice产品进行应用程序开发。这些帖子是由FPGA设计专家撰写的格莱格教育能力中心(LEC2),完整的培训和教育计划,与莱迪思半导体密切合作。亚博体彩官网培训计划将包括整个格子半导体FPGA和解决方案堆栈组合,包括设计工具和方法。亚博体彩官网

在芯片设计的早期,平均的低功耗FPGA包括几千个查找表(lut)。然而,随着深亚微米制造技术的进步,今天的低功耗fpga可以支持100K或更多LUTS。亚搏国际网址这些更复杂的fpga结合了处理器、内存块和其他IP(知识产权)块。这种增加的复杂性需要一个结构良好的设计流,该设计流是可伸缩的,并为FPGA设计者提供足够的灵活性来定义无缝的设计方法。

FPGA开发的首要目标是设计出符合应用程序性能要求的安全可靠的电路。因此,FPGA设计周期中最重要的步骤之一是正确地指定和验证设计的时序约束,以确保它们针对模块的时序和性能要求进行了优化。这也适用于无约束路径,因为验证失败意味着它们不仅不会被优化,而且也不会被报告。幸运的是,Lattice Radiant®设计软件包括FPGA开发人员需要的工具来满足这两个要求。

时间限制

用于规范和验证时序参数的基本路径类型是以一个时钟元素开始和结束的路径。在典型的FPGA设计中,这种路径可以存在于不同的位置。让我们来看一些例子。

FPGA输入路径(示例1)

FPGA输入路径(示例1)

在上面的例子中,FPGA的输入信号是由外部组件产生的。一般来说,CLKA和CLKB时钟是不同的。

FPGA输入路径(例1)代码块

Radiant时间约束编辑器为用户提供了适当的模板,大大减少了输入参数所需的工作量。

FPGA内部路径(示例2)

上面描述的一般路径类型在下面的图片中可见。

FPGA内部路径(示例2)

与例1相比,源触发器和目标触发器现在都在FPGA内。这里的区别是,除了时钟规格,不需要进一步指定时间参数,因为内部时间参数值已经被Radiant软件知道了。下面的说明通常就足够了。

FPGA内部路径(示例2)代码块1

但是可以有例外。在最简单的情况下,定时约束定义要开发系统中的时钟(或时钟)的工作频率。然而,并非设计中的所有时钟都具有可以更详细地分析的时序关系。异步时钟是一个示例,因为它不可能精确地确定它们的阶段。

  • 同步时钟具有可预测的时间/相位关系。这通常是主时钟及其派生时钟的情况,因为它们都基于一个共同的生成(根),并且有一个共同的周期。
  • 异步时钟没有可预测的时间/相位关系。这种情况经常发生在不同的主杆,以及由它们衍生出来的杆。异步时钟基于不同的根。

在约束文件和循环组声明的帮助下,可以设置循环路径之间的关系。例如,如果FPGA中使用了两个异步时钟(CLKB1和CKKB2),则可以使用以下规范。

FPGA内部路径(示例2)代码块2

在典型的FPGA设计中,我们还必须处理所谓的定时异常(也称为多周期路径)。定时异常是每隔一个时钟周期才需要的结果。例如,在下面的图表中,信号EN只会在每秒钟出现一次

FPGA内部路径(例2

当两个时钟都是同步时,定时异常的另一个例子是从较慢到更快的时钟系统(反之亦然)的数据传输。最后,假路径也可以被视为一种定时异常。

FPGA内部路径(示例2)代码块3

通过提前识别定时异常,定时引擎可以将精力集中在优化更关键的路径上,以交付更高质量的结果。

FPGA输出路径(示例3)

FPGA输出路径(示例3)

在上面的例子中,FPGA的输出信号从外部组件接受额外的处理。通常,时钟CLKB和CLKC是不同的,但它们也可以是相同的。

FPGA输出路径(例3)代码块

在本例中,Radiant Timing Constraints Editor为用户提供了合适的模板,并显著减少了输入参数所需的工作量。

时序约束分析

辐射软件包括一个定时分析仪,以检查指定的定时参数。分析器可以创建一个报告,显示所有指定的和不受约束的定时路径的结果和分析。时序约束编辑器与时序分析仪的结合使得优化FPGA变得更加容易。

Eugen Krassin是格子教育能力中心(LEC2)的总裁兼创始人

分享:

像大多数网站一样,我们使用cookie和类似的技术来增强您的用户体验。我们也允许第三方在我们的网站上放置cookie。如继续使用本网站,即表示您同意使用我们所述的cookies饼干的政策