我有一个简单的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不管怎样,我能让时间分析来解决这个问题吗?
发布于 2013-06-18 10:03:31
这里你面临的问题是常数的乘法是一个常数,因此没有时间。
一种测量时间的方法是用两个输入来综合乘法器。然后,执行包括SDF定时信息的门级sim。将这两个输入从0取到固定值。在波形编辑器中,您应该能够看到乘法器输出的纹波。测量从新输入到固定输出的时间。
记住,硅的时间是相当可变的,你可能会得到快速或缓慢(或中心)硅。温度也会影响时间。您将需要运行至少两个角落,Max和Min的sim。导致从(0输入到)固定输入到稳定结果的最大和最小转换时间。
同时认识到该方法所使用的定时是从0开始的,在不同的启动条件下是不同的。
您可以尝试让两个LUTs (查找表)保存输入值0和固定值,并查看synth工具的功能。很可能会以0和答案优化到LUT。
发布于 2013-06-18 05:50:28
需要有投入来进行任何时间分析。
合成器知道mult1和mult2是常量。因为outProd只依赖于常量,所以outProd将被优化为常量。常量没有计时信息。
https://stackoverflow.com/questions/17161162
复制相似问题