我正在创建一个相当复杂的模块,其中涉及 2 个模块的时序分析,每个模块都有自己的算法,但将 2 个有符号数作为输入并输出一个有符号数。
我正在使用 Xilinx 作为我的综合工具在 Verilog 中为 FPGA 设计这个模块。现在我了解到赛灵思通常会为任何模块提供最坏情况下的时序分析。这意味着,如果我有一个从输入到输出(包括路由时间)需要 250 皮秒的数字范围,如果甚至有一组输入需要 400 皮秒,那么 Xilinx 显示的时序分析将是 400 皮秒。
我的目标是找到:
1) 如果模块 1 对于任何一组数字都比模块 2 快。
1) 模块 1 比模块 2 快的数字范围。
我能想到的唯一合乎逻辑的方法是提高模块的工作频率。那就是强制两个模块在 300 皮秒而不是 400 皮秒之后给出它们的输出。
显然,如果我提高工作频率,测试台中的一些输入会给出错误的输出。我的假设是,首先开始给出错误答案的模块具有算法。
所以我的疑问是:
1)是否可以使用 Xilinx 增加 Verilog 中模块的工作频率(在综合或分析期间我必须强制执行的一些设置)。如果没有,是否有更好的工具可以进行时序分析?
2)这种方法可行吗?没有使用 Cadence 进行门级合成,无论如何,我可以使用 Verilog 找出每个门的每组有符号数字的实际时间延迟分析吗?