我正在创建一个相当复杂的模块,它涉及2个模块的时序分析,每个模块都有自己的算法,但是输入2个带符号的数字作为输入并输出带符号的数字。
我正在使用Xilinx作为我的综合工具为Verilog中的FPGA设计此模块。现在我了解到Xilinx通常会为任何模块提供最坏情况的时序分析。这意味着如果我有一个数字范围需要250皮秒,从输入到输出包括路由时间,如果甚至有一组输入需要400皮秒,那么Xilinx显示的时序分析将是400皮秒。
我的目标是找到:
1)如果模块1比任何数字组都快于模块2。
1)模块1比模块2快的数字范围。
我能想到的唯一合乎逻辑的方法是,通过提高模块的工作频率。那就是强制两个模块在说出300皮秒而不是400皮秒之后给出它们的输出。
显然,如果我增加工作频率,测试平台中的一些输入会给出错误的输出。我的假设是,首先开始给出错误答案的模块有算法。
所以我怀疑是:
1)是否可以使用Xilinx提高Verilog模块的工作频率(我必须在综合或分析过程中强制执行某些设置)。如果没有,是否有更好的工具可以进行时序分析?
2)这种方法是否可行?没有使用Cadence进行门级综合,无论如何,我可以使用Verilog找出每个门的每组有符号数的实际时间延迟分析?
答案 0 :(得分:0)
你是正确的假设Xilinx总是报告整个设计的最坏情况时序,其中涉及时钟速率,不要将综合结果视为非常准确 - 一旦你发现它们会变化很多放置并布置设计。
我猜你可以采用后PAR Verilog网表并使用不同的模拟时钟速度模拟各种输入 - 如果有慢速路径不用于某些输入,你应该能够运行模拟时钟这些投入更快。
听起来非常耗时,而且我不确定这是什么意思。我来自哪里(汽车)“最坏情况”是我们可以放心的唯一数字!