修改三次方代码,优化系统延迟。
以下是三次方代码修改后的代码片段: module power3c(
output[7:0]XPower,
input[7:0]X
);
reg[7:0] XPower1,XPower2;
reg[7:0] X1,X2;
assign XPower=XPower2*X2;
always@*begin
X1=X;
XPower1=X;
end
always@*begin
X2=X1;
XPower2=XPower1*X1;
end
endmodule
|
与上一篇博文比较,这里将寄存器从代码中剥离,那么QuartusII编译的结果怎样呢,如图1所示。
图1:低延时实现方案
可以看到如图1所示,如果输入和输出都经过了寄存器寄存,那么输入和输出之间的延时最小,即一个时钟周期,前提是乘法操作的延时时间小于半个时钟周期。对比原书结果,没有丝毫差别。再次验证代码上的优化,跟综合工具没有相关关系。
文章评论(0条评论)
登录后参与讨论