EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/ S- K- p( N; x( F( c. M
经过前面的学习,我想大家已经意识到计数器的重要性,可以这样说,在FPGA的设计中,计数器无处不在,有时候计数器的性能决定了一个项目的成败,所以在这里,我们分别比较三种计数器的性能,第一种综合工具自动综合出来的计数器,第二种是经过优化的计数器,而第三种就是使用IP核的计数器。在比较这三种计数器之前,我们首先来了解一下计数器的数学模型。 计数器的数学模型: 有位宽是N的同步计数器count: QN-1QN-2QN-3…Q1Q0= count[N-1:0]; 其中: Q0 = Q0(clk↑) Q1 = Q1(clk↑, Q0 = 1) Q2 = Q2(clk↑, Q1 & Q0 = 1) Q3 = Q3(clk↑, Q2 & Q1 & Q0 = 1) …………… QN-2 = Qn-2(clk↑, Qn-3 & Qn-4 &…… Q1 & Q0= 1) QN-1 = Qn-1(clk↑, Qn-2 & Qn-3 &…… Q1 & Q0= 1) 若有EN-1EN-2 EN-3……E0满足: E0 = 1 E1 = E0& Q0 E2 = E1& Q1 ………… EN-2 = EN-3& QN-3 EN-1 = EN-2& QN-2 则可以得到: Q0 = Q0^ E0 Q1 = Q1^ E1 Q2 = Q2^ E2 ………… QN-2 = QN-2^ EN-2 QN-1 = QN-1^ EN-1
' L5 c! I% c& m; Z; N/ T$ \
自动综合的计数器 架构图: 用Verilog HDL描述出来的代码如下: 测试代码如下: 仿真结果如下: 资源使用率如下图所示: 经过静态时序分析后,这种架构下的计数器最快可以去到327.23Mhz。 经过优化的计数器 3 H8 E7 f0 U( r
架构图: 用Verilog HDL描述出来的代码如下: & h& e4 {/ }8 F7 H
+ P, a+ @6 L* L
% j* g0 k p% x. R) M2 o
7 O: f W1 P# G% `7 z
5 _: ~5 Q; L) B. R6 b" J
9 z2 X9 r8 E" Z9 e9 U
! I* ^) H& }" X
) }' w* o- `+ u4 `6 `% P7 Y3 F
测试代码如下: 仿真结果如下: 资源使用率如下图所示: 经过静态时序分析后,这种架构下的计数器最快可以去到357.27Mhz,比未优化的计数器频率提升20Mhz。 使用IP核计数器 测试代码如下: 仿真结果如下: 资源使用率如下图: 经过静态时序分析后,这种架构下的计数器最快可以去到397.93Mhz,比优化的计数器频率提升40Mhz,比未优化的计数器频率提升了60Mhz 总结: 速度方面 : IP核计数器 > 优化计数器 > 为优化计数器; 资源使用 : 优化计数器 > IP核计数器 >未优化计数器; w/ E4 g- |9 L
$ s* O) u2 h8 m! Q; _& F
% \1 P* D0 p( M4 P+ k$ `1 i5 R7 C
|