Quartus prime 使用power analyzer(功耗估计流程)
国内网上参考了有关quartus功耗分析的博客,但是资料相当少,而且大部分不适用。然后去参考外网最终整理了这个流程。
本文将介绍一下使用Quartus的功耗分析工具进行功耗分析的流程。使用的是quartus prime 18.1版本,quartus早期不同版本很多内容不太一样,但是18.1版本之后的内容都是比较类似的。
目录
第一步:设计展示
首先展示一下我们的design,实现的是一个简单的D触发器:
module nine_five(j,k,q,clk,rst);
input j,k,clk,rst;
output reg q;
always@(posedge clk or posedge rst)
begin
if(rst == 1'b1)
q = 0;
else
case({j,k})
2'b00:q = q;
2'b10:q = 1;
2'b01:q = 0;
2'b11:q = ~q;
endcase
end
endmodule
然后这是我们的testbench:
`timescale 1ns/1ns
module nine_five_tb;
reg j,k,clk,rst;
wire q;
nine_five u1(.j(j),.k(k),.clk(clk),.rst(rst),.q(q));
always #5 clk = ~clk;
initial
begin
rst = 0; clk = 0; j = 1; k = 0;
#10 j=0;k=0;
#10 j=1;k=0;
#10 j=0;k=1;
#10 j=1;k=1;
#15 rst = 1;
#10 j=0;k=0;
#10 j=1;k=0;
#10 j=0;k=1;
#10 j=1;k=1;
$stop;
end
endmodule
第二步:全编译
首先我们要全编译,点击start compilation:
全编译的目的是完成Place&Route,然后我问才可以进行后仿真,也就是quartus中的gate level simulation。
第三步:配置setting,以生成VCD文件
-
首先在Assignments–>setting中将generate VCD file
script选项勾选上。然后quartus才会将后仿的波形信息记录到VCD文件中。 -
Design instance name指的是testbench里面你实例化的模块名称,这里我的是u1。
3,点击more EDA netlists writer settings,将里面的这一条设置为on。 -
重点来了,网上有很多教程要把generate functional simulation netlist
only设置成on,但是在quartus prime18.1版本里面该选项变成了generate functional
simulation netlist,这里我们需要保持默认off,否则gate level
simulation出来的波形与rtl仿真的波形没有变化。
情况1:该选项设置为off,可以看出仿真波形有明显delay。
情况2:该选项设置为on,仿真波形与功能仿真一样!
第四步:时序仿真(gate level simulation)
将上面配置完成后就可以点击gate level simulation。
步骤:Tools–>Run simulation–>Gate Level Simulation。
仿真完成,quartus会自动生成VCD文件,一般在类似如下路径:
nine_five\simulation\modelsim\xxx.vcd
至此,我们得到了VCD文件。
第五步:power analyzer使用
终于轮到我们的主角上场了。
- 点开power analyzer tool工具。
- 加入input file,点击add power input files。(也就是vcd文件)。
- 然后配置如下:
(1),点击add加入vcd文件。
(2),两个write前面的勾勾是可选的。
配置完后就可以点击start开始功耗分析。
第六步:功耗分析结果
我们看到动态功耗很小,这跟我们的设计很小有关。