|
|
1、功能定义/器件选型# d3 Y/ G$ t( ?' s
; Q/ s5 O* n2 W& v+ a: A& k, \
一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。
" @4 ~9 O2 A" F+ |% d: z0 B4 h# u+ U6 P, t0 ?9 V: t/ T
2、设计输入- `% E9 A5 t6 {- b7 d; b
" W5 S+ s) u( R! n7 J' t4 X设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。- ?/ r ?/ U) Z) j
$ z& i* D: H# y3、功能仿真
/ A) s! ^( O e; y8 {- `- l& r5 T8 P& S+ n( D2 A2 N# m
功能仿真也称为前仿真是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。( C1 ]/ d5 L% {
( y& G; ?7 s/ i* h7 p3 i
4、综合优化) n( q/ U# `$ f1 C' ^2 n: h
( x6 W/ O2 S, v所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。2 v; \, D4 O( j* u+ m
) _0 j! I- E; ?* M& [5 |/ {
5、综合后仿真
, d) o) Y0 w- w4 E# |- a6 X- t# N7 v J: m% u- k# Y+ c
综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。
" s/ A; w' x2 e+ [( s! X" y
; B% F: q8 b+ R" O7 M8 S' h5 L9 I+ n4 [" \
4 _/ D) q }! g- p2 _1 Z! l
6、实现与布局布线% i) p" G- Y) r7 b# e8 a) F
8 E+ T' z. ~2 g* Y6 k
布局布线可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。* `# q& t+ s* |7 N* v2 ?3 k3 a
- B/ b* P3 K0 y- U% z) }
7、时序仿真
\: `+ `4 w' w0 d+ T
4 i7 Q9 n& u. f9 v时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。
- z7 d) H+ W1 s1 `
x8 {/ t7 \* d" k2 J0 ~8、板级仿真与验证5 k; C9 a! U9 p
- M$ }1 U% p7 g7 D" C3 p
板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。6 D6 k% c$ r# r$ q X, U& q
/ ]+ D7 p ]* G5 l4 Y
9、芯片编程与调试+ l% `5 @3 Y# y- F% u2 x5 q
2 K* }: h6 K" Y- _设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。3 L( @, W# J; }# f' w. m7 s7 j- h
|
|