找回密码
 注册
关于网站域名变更的通知
查看: 266|回复: 1
打印 上一主题 下一主题

FPGA的灵活性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-1 09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
FPGA的灵活性

' M" p$ ~( p! {; }' J/ R! p1 b7 U8 u2 }1 J1 D; @) T9 G
如果说用一个词来描述FPGA的特性,灵活性肯定名列前茅。
5 O0 h' z: J! [, D8 n% s7 |- B8 I) L
& Q* G  S& |/ l, ^# h       FPGA的灵活性在于:
3 A8 J& o3 o0 U) m6 f* F  (一)I/O的灵活性,其可以通过其I/O组成各种接口与各种器件连接,并且支持不同的电气特性。% v+ b' P1 q0 {' K' E, n" ~" i2 I# l
  (二)内部存储器灵活性,可以通过IP生成工具生成各种深度和宽度的RAM或者FIFO等。
2 ]. D! U2 I% F; G0 ~  (三)逻辑的灵活性,内部逻辑通可生成的各种类型IP。7 e& y1 V& j  `; {( D

: S2 a/ s) O$ R# D  对于I/O接口来说,FPGA的I/O可以支持不同类型的电平和驱动能力,各I/O未定义之前其地位平等,例如一个数据信号可将其约束在任意引脚,只要其电平符合连接的规范。因此硬件工程师基于这种认识,在PCB布线时,基于布线需要,便调整其布线的顺序,例如互换两个信号的位置。通常情况上,这种调整是没有任何问题的。但是随着FPGA的接口IP核硬核化的趋势,逐渐由很多的接口IP不能支持这种调整。例如对于较早的SDRAM或者DDRSDRAM来说,在xilinx和ALTERA的FPGA上,其数据、地址信号等都是可调的。但是随着DDR2,DDR3接口的出现,其IP接口,只能支持在某个BANK并且例化结束后直接生成相应的约束文件,而这些的改动将会导致布局布线的错误。另一些例子则是一些高速SERDES的组合。例如对于XAUI接口来说,其硬核IP(ALTERA)上就不支持4组SERDES的顺序互换,这将会影响其硬核FCS的编码。如果板级连接上与PHY的顺序与FPGA例化IP的约束不一致,则其硬核PCS就不能布局布线通过(软核FCS可以支持调整)。这种灵活性认识导致硬件板级互联的问题可谓屡见不鲜,特别是系统复杂度的上升,板级连线的增加,将会导致设计人员疏忽从而掉入“灵活性的陷阱”。解决此类问题的方法。包括(1)预评估,在设计之前就在FPGA上评估所需的接口的逻辑占用、约束位置、时钟需求等等,预先评估给系统设计提供相应的数据支撑和设计参考。(2)沟通,对于设计的变更,要进行有效沟通,不能使铁路警察,各管一段。(3)设计评审,虽然老套,但每个环节上的评审能有效减少掉入类似陷阱的几率。
$ I1 a7 ~( c2 [7 t' c3 k6 x; F- p8 h! ^0 Z6 `+ t- m
  对于内部存储资源,大多数FPGA工程师就是拿来就用的状态。而缺少整体内部memory规划,一般来说,对于单端口、双端口、假双端口,各型芯片手册中都有明确的定义,例如xilinx的SPATAN3系列中最小RAM单元为18K。一个RAM例化最小单位就是18K。而新的器件中最小单位一般为9K。也就是说虽然工程师例化的较小的RAM,例如256*16.只有4K,但是其也占用一个最小单元,根据器件的不同而不同。而乱用双端口导致RAM资源的过分占用则是更常见的设计问题。FPGA内部对于单个RAM能够支持的真双端口是有限制的。举例说明,对于ALTERA的9K的存储单元一般支持512*18的双端口RAM。但如果是一个256*32的双端口则需要占用2个9K的存储RAM。也就是说,RAM器件的能力是有限的,这取决于RAM的外部互联线是有限的,以刚才说的256*32的双端口RAM来说,其需要数据线就是64根(双端口),对于单个RAM的连线资源来说,这是FPGA内部逻辑资源难以承受的。所以根据器件特定,合理规划内部memory资源,才能在最大限度的达到高效的利用。
8 p* e6 B1 T4 E: a9 S9 v
, B- m6 Y* J/ i8 W  FPGA内部可以例化各型IP,基于IP的复用的可以大大增加研发的进度。但是各种IP的互联之间则需对IP的特性了解清楚,明确IP是否为业务所需的IP。有的IP和工程所需可能只是名称一致,但其功能却不是你想要的。例如网口IP在MII连接方式下,是用于FPGA连接PHY的操作。如果FPGA与CPU通过MII连接,现有的IP则难以满足需求。这是因为MII连接PHY其所有的时钟都是PHY提供的。CPU的设计也是与PHY连接,其时钟也有PHY提供。而如果二者连接,就变成都等着对方提供时钟,则就变成没有时钟。这种调试问题相对来说容易解决,不过在系统规划是,就需要对整个IP是否能够满足系统的设计要求,有着明确的判断。
- S8 G8 h/ b. K; K# t$ X* E7 f' X& E1 Y% u
  灵活性是FPGA最大的特性,在设计中避开那些灵活性的陷阱,才能从FPGA整体上提升设计能力,而不是做只会写Verilog的码农。毕竟FPGA设计不是软件设计,其最终要成为变成硬件承载的,每一行语句都要考虑其综合后的电路,才能真正领会FPGA设计的精髓。

* Q* A) r8 x$ G( z6 w
' \, D2 z7 j) S" q! S: }2 Q+ j
" S) Z, u" q  P% X- ]: s
0 x/ K$ A4 M& h2 K5 h9 y. m! Q4 X/ T$ b

5 q* a+ U! A5 s

3 c6 ]1 P8 q9 U3 g$ v5 V3 R
; y. F# R2 P2 ]* ]: H4 I
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-26 08:31 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表