EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
随着电子技术的发展,芯片的复杂程度越来越高,人们对数万门乃至数百万门电路设计的需求也越来越多;采用硬件描述语言HDL的设计方式应运而生,而在利用硬件描述语言HDL进行FPGA设计时,高效的代码有利于得到较为理想的电路。. K0 v2 U1 B( c ]
" j( M3 F* u( \' \
Verilog HDL因其提供了非常精炼和易读的语法而受到广大硬件工程师的青睐。本文讨论了在进行FPGA设计中,如何通过编写VerilogHDL代码达到预期的设计要求。* R/ T7 w; i4 k' q5 U% s1 x
2 R# Q- }) N8 W D: j3 L2 |1 y
2 设计技巧
% Y( J, a3 {6 O# @0 q' l* {5 v! Q
2.1 如何减少关键路径上的组合逻辑单元数
, d" _3 i- @5 ?$ V [
+ E% o% \: X) c4 M Y( c( `3 e0 K# o在FPGA中每条关键路径上的逻辑单元都会增加一定的时延。因此为了保证关键路径能满足时序约束,设计时必须考虑在关键路径上如何减少逻辑单元的使用。下面的例子说明了如何减少关键路径上的逻辑单元个数。 P$ a- k) N p' Y0 Z
Q" |3 Q5 h4 Z首先假设"critical"所经的路径是一条关键路径,在下面的例子中"critical"经过了2个逻辑单元。. I8 O f2 z* @, X
2.2 资源共享/ c+ \& R$ j; d/ I) q* G0 F2 ? k
: f; \+ t" k+ g1 u& T资源共享能减少宏单元的使用数量,因此在设计时同样可以通过编写合适的程序来达到资源共享的目的。下面举一个简单的例子来说明。
" F4 Z5 o6 z3 T. }# c" F; ]) o( ^8 l7 {; A, ~3 `# a
下面是1个二选—选择器和2个加法器。6 D8 G% m V( P" V, `! S
( y: ], T+ t4 I* ]3 k
2.3 为优化逻辑而进行的复制
; ^& t- _ I0 X8 X; j O% ^" o0 x0 |. Q
设计人员在利用综合工具对可编程逻辑器件进行综首时,都会面临一个问题,即综合工具并不能对复杂的设计实现最佳的布局、布线结果。大多数综合工具都有一个扇出控制.因此,为了优化设计,建议在设计代码中产生复制逻辑,许多综合工具都可以优化复制,但必须告诉综合
. y: F1 }& s1 G3 |- ^6 t工具保持其重复逻辑.
" [! x) X3 o+ ~# @5 t
) ?) |% b0 |( I9 j, @; L2.3.1 复制组合逻辑( L9 D8 E: v' f, x, M
4 Y Q* P/ c1 K' u" f% h4 M l$ c
如果一个扇出大于1的组合逻辑不能在CLB内部实现,这时需要对组合逻辑进行复制。下面给出组合逻辑复制的例子。# F$ C: P3 L; g1 F: G& q1 R
" ?) @& h8 v0 X0 l! o& v可以重新书写代码达到组合逻辑复制的目的。
, Z d% ~1 u" _* w0 P9 x$ Y& _2.3.2复制触发器
4 ~* O9 [' R' A) a
! l' |) i0 o! a6 J {2 F& X. Z为了优化设计,可对大扇出信号的触发器进行复制。因为大扇出信号能减缓布线速度,并增加布线的难度。可以通过复制触发器解决2个问题:减小扇出,缩短布线延迟;复制后每个触发器可以驱动芯片的不同区域,有利于布线。下面给出复制触发器的例子。
) z y( k+ q7 y% @7 y" |
4 G8 p0 {, Y3 m L2 s3 结 语, O8 }. n" f B5 U6 r
e5 v, O4 n& {" ^ U随着硬件描述语言HDL被广泛接受,掌握好硬件描述语言HDL对缩短开发时间,提高设计效率大有裨益。" J. U) c s: f1 V7 Q) l
|