TA的每日心情 | 开心 2019-11-19 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 j! K O( Y, C5 S, y5 H) V2 Q# L
4 \: C6 l5 w/ r) ^8 |" \0 a 一.面积与速度的平衡互换原则' F0 B- n: Z4 ^+ I, l# T8 x' f
这里的面积指的是FPGA的芯片资源,包括逻辑资源和I/O资源等;这里的速度指的是FPGA工作的最高频率(和DSP或者ARM不同,FPGA设计的工作频率是不固定的,而是和设计本身的延迟紧密相连)。 在实际设计中,使用最小的面积设计出最高的速度是每一个开发者追求的目标,但是“鱼和熊掌不可兼得”,取舍之间展示了一个开发者的智慧。- N: Y0 L- C! w/ W, o; c3 h" ?
1.速度换面积2 i* O# y& H3 \) ~& b
速度优势可以换取面积的节约。面积越小,就意味着可以用更低的成本来实现产品的功能。速度换面积的原则在一些较复杂的算法设计中常常会用到。在这些算法设计中,流水线设计常常是必须用到的技术。在流水线的设计中,这些被重复使用但是使用次数不同的模块将会占用大量的FPGA资源。对FPGA的设计技术进行改造,将被重复使用的算法模块提炼出最小的复用单元,并利用这个最小的高速代替原设计中被重复使用但次数不同的模块。当然,在改造的过程中必然会增加一些其他的资源来实现这个代替的过程。但是只要速度具有优势,那么增加的这部分逻辑依然能够实现降低面积提高速度的目的。0 X0 D& a* ~& l3 l. x
可以看到,速度换面积的关键是高速基本单元的复用。2 v- }+ a7 H# p3 H) u/ r8 h
2.面积换速度! v, E) l1 h" y/ p
在这种方法中面积的复制可以换取速度的提高。支持的速度越高,就意味着可以实现更高的产品性能。一些注重产品性能的应用领域可以采用并行处理技术,实现面积换速度。" T+ X5 E/ m7 r9 R
二.硬件可实现原则
" S% \; [ F7 s$ s FPGA设计通常会使用HDL语言,比如Verilog HDL或者VHDL。当采用HDL语言来描述一个硬件电路功能的时候,一定要确保代码描述的电路是硬件可实现的。
8 T+ J$ ]' K) U x9 D. U, }2 L Verilog HDL语言的语法与C语言很相似,但是它们之间有着本质的区别。C语言是基于过程的高级语言,编译后可以在CPU上运行。而Verilog HDL语言描述的本身就是硬件结构,编译后是硬件电路。因此,有些语句在C语言的环境中应用是没有问题的,但是在HDL语言环境下就会导致结果不正确或者不理想。如:
9 P$ i" F2 T7 C for(i=0;i<16;i++)( G. `0 W" T; ?" [" q9 B
DoSomething();! ?, l; b6 x E7 n, E" V& ^) e
在C语言中运行没有任何问题,但是在Verilog HDL的环境下编译就会导致综合后的资源严重浪费。
5 I! P* f t7 `3 G5 @ 三. 同步设计原则9 b' F/ T: \" C5 z! n% \
同步电路和异步电路是FPGA设计的两种基本电路结构形式。2 q$ Y& }+ T c0 \
异步电路的最大缺点是会产生毛刺。同步设计的核心电路是由各种触发器构成的。这类电路的任何输出都是在某个时钟的边沿驱动触发器产生的。所以,同步设计可以很好地避免毛刺的产生。
1 K9 f5 n) r2 z6 E) W8 Y2 }1 j) }' H& I) \+ K/ I. Z; i+ `
|
|