固定输入的Verilog时序分析

时间:2013-06-18 05:27:58

标签: verilog synthesis

我有一段简单的Verilog代码,我修复了两个数字。 45和46.将它们相乘并显示输出。我写了一段简单的Verilog代码来做到这一点。

但是,当我生成后合成模拟模型时,综合报告没有显示任何时序分析。但是,当变量是输入时,它会找到电路的逻辑和布线时间。

我对为固定输入创建的电路的这些指标感兴趣。

这是我的代码:

module SimpleMult(
    outProd
     );
    reg signed[7:0] mult1;
    reg signed[7:0] mult2;
   output reg signed[15:0]outProd;
    initial begin
     mult1 = 45;
     mult2 = 46;
    end

    always@(*) begin
    outProd = mult1 * mult2;
    end
endmodule

无论如何,我可以让时间分析为此工作吗?

2 个答案:

答案 0 :(得分:4)

你在这里遇到的问题是常数的乘法是一个常数,因此没有时间。

测量时序的方法是将乘法器与2个输入进行合成。然后执行包括SDF定时信息的门级SIM。将两个输入从0到固定值。在波形编辑器中,您应该能够在乘法器的输出上看到纹波。测量从新输入到稳定输出的时间。

记住硅时序变化很大,你可能会快速或慢速(或集中)硅。温度也会影响时间。你需要运行至少有两个角Max和Min的sim。导致从(0输入到)固定输入转换到稳定结果的最大和最小时间。

同时也意识到此方法中使用的时序为0,不同的起始条件会有所不同。

您可以尝试使用两个LUT(查找表)保存输入值0和固定值,然后查看合成工具的功能。可能会优化到LUT为0和答案。

答案 1 :(得分:2)

需要输入才能进行任何时间分析。

合成器知道mult1mult2是常量。由于outProd仅取决于常量,因此outProd将优化为常量。常数没有时间信息。