5.7 FPGA设计的IP和算法应⽤
基于IP的设计已成为⽬前FPGA设计的主流⽅法之⼀,本章⾸先给出IP的定义,然后以FFT IP核为例,介绍赛灵思IP核
的应⽤。
5.7.1 IP核综述
IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯
⽚制造⼯艺⽆关,可以移植到不同的半导体⼯艺中。到了SOC 阶段,IP核设计已成为ASIC电路设计公司和FPGA提供
商的重要任务,也是其实⼒体现。对于FPGA 开发软件,其提供的IP核越丰富,⽤户的设计就越⽅便,其市场占⽤率就
越⾼。⽬前,IP核已经变成系统设计的基本单元,并作为独⽴设计成果被交换、转让和销售。
从IP核的提供⽅式上,通常将其分为软核、硬核和固核这3类。从完成IP核所花费的成本来讲,硬核代价最⼤;从使⽤
灵活性来讲,软核的可复⽤使⽤性最⾼。( 这部分内容前⾯已经阐述,这⾥再重申⼀下)
软核(Soft IP Core)
软核在EDA设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA设计中指的是对电路的硬件语⾔描述,
包括逻辑描述、⽹表和帮助⽂档等。软核只经过功能仿真,需要经过综合以及布局布线才能使⽤。其优点是灵活性⾼、
可移植性强,允许⽤户⾃配置;缺点是对模块的预测性较低,在后续设计中存在发⽣错误的可能性,有⼀定的设计风
险。软核是IP 核应⽤最⼴泛的形式。
固核(Firm IP Core)
固核在EDA设计领域指的是带有平⾯规划信息的⽹表;具体在FPGA设计中可以看做带有布局规划的软核,通常以RTL
代码和对应具体⼯艺⽹表的混合形式提供。将RTL描述结合具体标准单元库进⾏综合优化设计,形成门级⽹表,再通过
布局布线⼯具即可使⽤。和软核相⽐,固核的设计灵活性稍差,但在可靠性上有较⼤提⾼。⽬前,固核也是IP核的主流
形式之⼀。
硬核(Hard IP Core)
硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和⼯艺固定、经过前端和后端验证的设计,
设计⼈员不能对其修改。不能修改的原因有两个:⾸先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物
理版图;其次是保护知识产权的要求,不允许设计⼈员对其有任何改动。IP 硬核的不许修改特点使其复⽤有⼀定的困
难,因此只能⽤于某些特定应⽤,使⽤范围较窄。
IP Core⽣成器(Core Generator) 是Xilinx FPGA设计中的⼀个重要设计⼯具,提供了⼤量成熟的、⾼效的IP Core为⽤户
所⽤,涵盖了汽车⼯业、基本单元、通信和⽹络、数字信号处理、FPGA特点和设计、数学函数、记忆和存储单元、标
准总线接⼝等8 ⼤类,从简单的基本设计模块到复杂的处理器⼀应俱全。配合赛灵思⽹站的IP中⼼使⽤,能够⼤幅度减
轻设计⼈员的⼯作量,提⾼设计可靠性。
Core Generator最重要的配置⽂件的后缀是xco,既可以是输出⽂件⼜可以是输⼊⽂件,包含了当前⼯程的属性和IP
Core的参数信息。
5.7.2 FFT IP核应⽤⽰例
ISE提供了FFT/IFFT的IP Core,可以完成实数、复数信号的FFT以及IFFT运算。FFT的IP Core提供三种结构,分别
为:
(1) 流⽔线,Streaming I/O结构:允许连续的数据处理;
(2) 基4,Burst I/O结构:提供数据导⼊/导出阶段和处理阶段。此结构拥有较⼩的结构,但转换时间较长;
(3) 基2,Burst I/O结构:使⽤最少的逻辑资源,同Radix-4相同,提供两阶段的过程。其配置界⾯有3页,第⼀页如图5-
57所⽰,主要⽤于配置实现结构;第⼆页配置数据位宽以及数据处理操作;第三页配置数据缓存空间。