TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
以altera为例:
$ M9 C3 r/ B; S5 T4 N( N
/ `! l \& a( kassign led = cnt[127];
2 v5 m5 k8 X- [& N" u% Wreg [127:0] cnt;9 h2 Q" i6 r O# y9 R+ ]
$ N2 G+ N E2 }% `1 [. ralways @(posedge clk or negedge rst), ~+ X, F( j4 u: R, A9 H y6 V8 v, x8 U
begin
1 N# f# {! j7 ~5 g1 | if(~rst)
+ _4 X' z! H3 O6 @ cnt <= 0;4 `: V* h' w( x
else. p5 h, h- m, ?4 P' c% r
cnt <= cnt + 1'b1;;% s" y/ v: T S
end( w% O" P- n5 {1 B/ m
复制代码3 h1 H' r! \9 `& o- G, m3 B" B
/ T0 g |* e8 I! t0 `/ E一个128bit的计数器,消耗资源" M; A) I& D- v+ r7 l \& B
Total logic elements 128 / 10,320 ( 1 % )* F6 V2 ]( X! W' H$ O1 n
Total combinational functions 128 / 10,320 ( 1 % )2 g5 r) z3 w% f9 \ `; A$ @+ \
Dedicated logic registers 128 / 10,320 ( 1 % )! ^/ |' p; p6 C7 i
Total registers 128
% U# {5 h. w" ]7 H" o复制代码9 f. F. f2 S' c: w* h- k
) j0 f9 E. o4 [, J- M* A+ i% {assign led = cnt2[63];
# f. K, D# T" P- ?2 ?" zreg [63:0] cnt1;8 ~" D8 ~1 c7 n9 r$ H6 [) G& F# z
reg [63:0] cnt2;
5 j6 V* q; X3 e J; |2 `
3 o# A& b0 _* X" ]! halways @ (posedge clk or negedge rst)
) O. y; {# U& x M8 F) {' ibegin+ c$ h, C! j4 u" B: [8 |0 V: H- ?
if(~rst)5 m; O$ R2 N) y1 M# G1 t& k6 u1 y
cnt1 <= 0;4 l5 \7 u. d$ [( d
else
2 F g1 n1 i- o+ h# L) N9 ~ cnt1 <= cnt1 + 1'b1;;
8 g, a- A" X+ |7 X6 Z; r# Fend9 u* A1 U% E9 ^9 t3 t
' b) c( a5 A- u) A; J& e
always @ (posedge clk or negedge rst)5 j2 w: g3 u2 }' C/ J) c
begin
( R2 X! Z4 X3 }* A7 E; K if(~rst)
% B. A I9 y; ?: q3 f2 P# S. v+ |' E cnt2 <= 0;5 t) q% G* S6 |: m7 M7 |
else if(cnt1 == {64{1'b1}})4 A) q+ O/ w T+ W; [' B
cnt2 <= cnt2 + 1;
) H- t0 }( k. i" v# a3 o. Q8 Zend' A/ ]) l9 \# g$ I, l
复制代码+ ^3 v0 Z3 e/ i5 G% H
* d& ?/ D- Y. ]5 ]! p4 n
拆分成2个64bit的计数器,消耗资源. O- |# L" l, X k# T* |
Total logic elements 149 / 10,320 ( 1 % )
. s+ V# {9 R$ Z6 p8 e/ i0 pTotal combinational functions 149 / 10,320 ( 1 % ) o/ P- x; t0 f$ P8 S( T8 R
Dedicated logic registers 128 / 10,320 ( 1 % )
( E" E9 H& N3 ^; j( j$ |% TTotal registers 128
3 s) r% K7 K: Z6 U4 ]& u9 _8 w复制代码* y9 c+ \+ @6 c* D% {5 r6 `! H
; R1 W% `5 I1 H- k5 i3 `# t, g; e% ?: r1 c
可见拆分为2个更小的计数器,消耗的资源反而更多了,比较cnt2需要多一个比较逻辑才能加
% ~$ T6 C: I6 O7 {0 g7 ?, x
' ~4 v: \) p: p+ y3 \- a这么做只有一个理由,那就是减少了计数器的组合逻辑路径(减少了加法器的进位链级数),提高了Fmax
' |% b0 o" O0 U" ]9 @: q# C可以说是面积换速度吧。 |
|