TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
以altera为例:
( P5 X" l e5 M1 J. o& A1 m' c* }% b; c5 a0 E k9 o2 A
assign led = cnt[127];8 s( f+ q9 e a7 b" t g
reg [127:0] cnt;) a0 H% H2 d3 j9 Q- L
6 D+ ~ U* I3 X$ z! z1 @$ U
always @(posedge clk or negedge rst)
( z W L: v' `% y5 sbegin/ G7 t4 B% X9 n4 N% [$ e
if(~rst)+ q& |8 \" F l- W" V4 [
cnt <= 0;9 A- X# E' g& t
else5 a4 [$ h5 {: s1 r ~' {
cnt <= cnt + 1'b1;;; C# t. X3 B8 J
end
& t* H/ L9 l" g3 `3 ~4 f复制代码
$ P( C% ~9 ?, [- ~6 X: h( ^# K" x' X7 D' [: \0 I8 _
一个128bit的计数器,消耗资源) h4 n! J% O/ @& B: N2 q* Z5 H
Total logic elements 128 / 10,320 ( 1 % )( W0 S$ W" Y7 k" I1 K& t5 e
Total combinational functions 128 / 10,320 ( 1 % )3 F! X/ r9 {. A3 _& O) k
Dedicated logic registers 128 / 10,320 ( 1 % )1 ]# L- L7 O. e" t, B; r
Total registers 128' E# {+ N: i3 C
复制代码0 |! s. s* k; b4 ?
) B U1 F4 a5 ^5 n: S0 e
assign led = cnt2[63];
. z- `- O8 C& U( A1 s5 I% _/ Nreg [63:0] cnt1;; U; x2 p" ? Y; F0 e8 c7 D: B9 M! P
reg [63:0] cnt2;
% U5 O7 T$ ?+ U3 D0 M; b/ q6 L6 e6 [4 ^% V
always @ (posedge clk or negedge rst)+ m$ w" X4 b! v5 g
begin
- t* n' Q1 S! g if(~rst)" l( d; b9 S; R! n; l
cnt1 <= 0;3 f7 [& s. i1 v
else0 |- ?, f" Y. s9 |( h, D7 f
cnt1 <= cnt1 + 1'b1;;4 W# J0 P) b. v3 e2 {8 {1 }
end
" B: V& _, d7 B1 |0 W$ r* y m6 W0 u! H- s1 e( O) w6 [ h( J0 `
always @ (posedge clk or negedge rst)
# ~3 Q" k1 Y# C% @* e& f& Rbegin% J" A. k6 Q6 k: y, H* o
if(~rst)
7 I# ^& x: R, \+ [( `. |' B& V cnt2 <= 0;% D- x5 n7 D- P) D
else if(cnt1 == {64{1'b1}})
3 u+ H% V' t' }5 e6 r8 _ cnt2 <= cnt2 + 1;: d5 a6 X$ @1 T1 e
end3 ^. D' ~. P- E( c$ c6 D- e. o. `- z
复制代码- r" V( z3 w" C0 h8 f% U0 Y, o0 R
4 h7 [( R- W8 p; k1 X. Z拆分成2个64bit的计数器,消耗资源
7 s- `7 p1 i" o; o8 M/ GTotal logic elements 149 / 10,320 ( 1 % )
3 _2 T* O& K% n8 |/ h# vTotal combinational functions 149 / 10,320 ( 1 % )
1 V2 Y. M) L. _1 X. J8 Y2 mDedicated logic registers 128 / 10,320 ( 1 % )
' a7 C6 ~: g3 F0 ?Total registers 1288 M4 w" ~, b, _; f) ?& F
复制代码
5 R) K& s k/ l, Y. X; ?0 Q. S( F/ H1 d! C/ a6 r4 w9 Z! W
& w7 z, q+ F; q2 S+ h5 Y+ k
可见拆分为2个更小的计数器,消耗的资源反而更多了,比较cnt2需要多一个比较逻辑才能加+ n; u3 Y$ K+ b& o/ ]# s
: D, B( J9 k8 x \# {
这么做只有一个理由,那就是减少了计数器的组合逻辑路径(减少了加法器的进位链级数),提高了Fmax' F0 T1 l# |- q. C0 B6 U
可以说是面积换速度吧。 |
|