EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
今天和大侠简单聊一聊 FPGA设计中不同设计方法硬件资源消耗对比,话不多说,上货。
* }7 Z* o+ E6 n! P* b
4 P5 l( l$ j2 Q: s& H# u 在这里,我们使用Verilog HDL 设计计数器,通过两种不同的写法,对比资源消耗。计数器实现的功能是计数记到24,清零,然后重新计数。很简单的两个例子,让我们来看一看。
" e) Z6 I8 r, ?
; S% h- w( q; B, [: [7 n
& Q4 ^1 Z) `, A7 v; G& } U* _9 Q; Q% |' z. \
$ K. a& ^. B7 e' R第一种设计方法,代码如下:
1 e2 ?" [2 T; O; U, A
5 l( N# I' o: O: ?
- }4 p! ^$ m( p, I) B7 x5 Y7 c3 x' H
& F* X e* h: K; X* \+ s' c4 Y
2 Y" ^0 e$ q/ t9 K! GRTL级视图如下: " q- x1 P& v$ G9 g; R- W% K& i+ ]
. ]+ H3 ^4 H3 g7 O
4 y% o) K( l, z: u& F
8 J) g$ a+ L. R8 k4 a& e# A# B& g! U
' _4 N, t4 o% r
& \! M1 l9 x$ n+ p! O& Y$ e现在来看看消耗的逻辑单元。如下:
" ]0 w% R' J- X' N' g4 T# E5 v8 b3 X& }+ X; Z9 S
' J2 _! a, s4 e% F7 `+ R* o& p1 a, \) C; g" F, O5 M! _( g
% x- q8 Y9 N& o$ i$ H
8 E2 m' U) }( u第二种设计方法,代码如下:
. ~" {7 O$ K* o6 ^0 s: ?& d1 L. T; Y, h6 }8 A' Z9 F0 E
# ]" P1 B% p, V
: ^. w( e5 }' S! N( L' d
; F( L6 C7 S& `. F# S
( @: r0 ^& S0 O8 |$ K# C) V ~
RTL级视图如下: / l1 i4 f6 @7 V% ^
/ ~ ~0 v' `; F8 t r
/ \4 U1 d* G3 ?, b0 ~4 U2 f5 a" L& Y0 f. B6 Y% w8 g+ M+ {
7 m' h. z3 I; R0 d& A; f; |# X* w/ _
8 i& h- X# l: W2 YRTL级视图如下: % j0 i. [" i0 g! ]- P. P9 i1 [
; S+ T& p. i, k# n1 J) q
o" [- B1 W8 E* J" y2 u7 y8 e S6 q$ P* u/ a2 d6 a. F7 R2 X: @: v
2 U) @6 x$ o" u" p) r1 z
! _' j" X" p6 ?- r7 W; V6 a/ Y
2 O8 g+ j3 |+ R& y, }3 s! ?, [0 W* x+ H7 b5 x, h0 ]7 Z
8 s; h' ~* c# @# z* O; ^
3 H+ Q4 g3 B- A第一种写法比第二种写法多耗了3个逻辑单元。5 p; D" |! Y9 \
7 N+ |: R2 h4 ?3 w; x# @) p
从上面的逻辑单元和RTL级视图对比,在用计数器实现相同的功能时,可以看出 == count 消耗的逻辑单元比 < count消耗的逻辑单元要多。所以我们在做设计的时候需要考虑到硬件资源的时候也需要优化自己的设计代码,在做时序约束分析的时候也是一样的道理,后续再更新相关内容,告辞。 0 G& t/ {2 t" C0 z! `: Y- e: A
: x0 v/ d) u! S* m: O0 z$ I# M$ Q" N% v
|