单独的 HDL 模块的时序分析

问题描述

我们总是有一些 HDL 模块用于不同的 FPGA 项目。可能是 DSP 模块或协议控制器等。设计可重用的模块是一种很好的做法。

typical project

我们将 HDL 模块视为有限结构。它让我们牢记一些重要的时序分析问题。 Fmax 是多少?我们必须在哪里放置寄存器才能实现统一的寄存器到寄存器时序?

registers retimings

获得答案会给我们带来好处。我们设计的模块可以为未来的项目轻松配置。我们避免更改 HDL 代码。例如,我们可以简单地将 Fmax 指定为模块描述下方的注释。粗略的慢角估计就够了。

//  Name        :   multiplexer
//  Author      :   Alex Shepel
//  Description :   Multiplexes input signals. Selects channel by binary number on "sel" bus.                    
//  Fmax        :   10M50SCE144I7G  =  250 MHz
//                  10M50SCE144I6G  =  300 MHz

所以我们需要对单独的模块进行后映射时序分析。在这种情况下,我们必须为它们编写 SDC 约束。我在这里遇到了麻烦。我们选择什么样的数据输入延迟?我认为我们必须将我们的模块想象成某个抽象项目的一部分。假设数据在完美的时间到达模块输入端口(因为它是同步的)。

这些时间是什么时候?至少,它们必须涵盖触发器的建立时间。但是我在哪里可以找到这个值?收到数据表的链接会很棒。不幸的是,我无法自己为 Max10 系列找到这些时间。

register setup time

此外,收到其他对单独 HDL 模块的映射后时序分析的建议也会很棒。也许我的问题有误,或者这样的时序分析毫无意义。看到这样的想法也会很棒。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...