5.7 FPGA设计的IP和算法应用
基于IP的设计已成为目前FPGA设计的主流方法之一,本章首先给出IP的定义,然后以FFT IP核为例,介绍赛灵思IP核的应用。
5.7.1 IP核综述
IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC 阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。对于FPGA 开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。
5.6 大规模设计的调试经验
在大规模设计的调试应该按照和设计理念相反的顺序,从底层测试,主要依靠ChipScope Pro 工具。下面主要介绍ChipScope Pro、FPGA Editor 组件的使用方法。
5.6.1 ChipScope Pro组件应用实例
在赛灵思软件设计工具中,ISE 可集成赛灵思公司的所有工具和程序。ChipScope Pro 也不例外,在ISE 中将其作为一类源文件,和HDL 源文件、IP Core 以及嵌入式系统的地位是等同的。本节在Xilinx Spartan3E-D开发板上实现一个计数器模块,基于该模块详细介绍如何在ISE 中新建ChipScope 应用以及观察、分析数据的详细操作。
5.5.3 SPI串行Flash配置模式
1.SPI串行配置介绍
串行Flash的特点是占用管脚比较少,作为系统的数据存贮非常合适,一般都是采用串行外设接口(SPI 总线接口)。Flash 存贮器与EEPROM根本不同的特征就是EEPROM可以按字节进行数据的改写,而Flash只能先擦除一个区间,然后改写其内容。一般情况下,这个擦除区间叫做扇区(Sector),也有部分厂家引入了页面(Page) 的概念。选择Flash产品时,最小擦除区间是比较重要的指标。在写入Flash时,如果写入的数据不能正好是一个最小擦除区间的尺寸,就需要把整个区间的数据全部保存另外一个存贮空间,擦除这个空间,然后才能重新对这个区间改写。大多数Flash工艺更容易实现较大的擦除区间,因此较小擦除区间的Flash 其价格一般会稍贵一些。此外,SPI是标准的4线同步串行双向总线,提供控制器和外设之间的串行通信数据链路,广泛应用于嵌入式设备中。
5.5 FPGA相关电路设计知识
FPGA的相关电路主要就是FPGA的配置电路,其余的应用电路只要将外围芯片连接到FPGA的通用I/O管脚上即可。
5.5.1 配置电路
FPGA配置方式灵活多样,根据芯片是否能够自己主动加载配置数据分为主模式、从模式以及JTAG模式。典型的主模式都是加载片外非易失( 断电不丢数据) 性存储器中的配置比特流,配置所需的时钟信号( 称为CCLK) 由FPGA内部产生,且FPGA控制整个配置过程。从模式需要外部的主智能终端( 如处理器、微控制器或者DSP等) 将数据下载到FPGA中,其最大的优点就是FPGA 的配置数据可以放在系统的任何存储部位,包括:Flash、硬盘、网络,甚至在其余处理器的运行代码中。JTAG 模式为调试模式,可将PC 中的比特文件流下载到FPGA中,断电即丢失。此外,目前赛灵思还有基于Internet 的、成熟的可重构逻辑技术System ACE解决方案。
5.3.4 综合高手揭秘XST的11个技巧
作者:Ricky Su(www.rickysu.com)
技巧1、XST 主要参考资料:XST User Guide (ISE 安装目录doc 中的xst.pdf)
技巧2、 辅助参考资料:WP231 - HDL Coding Practices to Accelerate Design Performance
技巧3、特别注意之一:请给XST 加时序约束。
5.3.3 和FPGA接口相关的设置以及时序分析
5.3.3.1 使用约束文件添加时序约束
一般来讲,添加约束的原则为先附加全局约束,再补充局部约束,而且局部约束比较宽松。其目的是在可能的地方尽量放松约束,提高布线成功概率,减少ISE 布局布线时间。典型的全局约束包括周期约束和偏移约束。在添加全局时序约束时,需要根据时钟频率划分不同的时钟域,添加各自的周期约束;然后对输入输出端口信号添加偏移约束,对片内逻辑添加附加约束。
5.3.综合和仿真技巧
作者:田耘/云创工作室
5.3.1 综合工具XST的使用
所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接( 网表),并根据目标和要求( 约束条件) 优化所生成的逻辑连接,生成EDF 文件。XST 内嵌在ISE 3 以后的版本中,并且在不断完善。此外,由于XST 是赛灵思公司自己的综合工具,对于部分赛灵思芯片独有的结构具有更好的融合性。
5.2 如何进行FPGA设计早期系统规划
作者:Ricky Su (www.rickysu.com)
这篇文章讲述了如何用工具提高效率的方法,适用程度因人而异。
Situation: 在对FPGA 设计进行最初步的系统规划的时候,需要进行模块划分,模块接口定义等工作。通常,我们起初会在纸上进行设计,到了一定阶段的定稿可能会输入Visio 等工具,方便在Team 内部交流和审阅。虽然在纸上我们可以很随意地书写,而用纸画的不方便就在于,如果想对某一个模块进行一些改动或者重画模块,那么常常因为留出的空余纸张不够,而导致拿一张新的白纸重新画一遍,比较浪费时间。对于电子化的Visio 来说,方便修改是好处,但他不是专为设计FPGA 系统而设计的,添加输入输出端口没那么方便,也不会根据定义的模块自动生成HDL文件。
最新评论
2 天 5 小时之前
2 天 5 小时之前
2 天 5 小时之前
2 天 9 小时之前
3 天 5 小时之前
5 天 3 小时之前
5 天 10 小时之前
6 天 9 分钟之前
6 天 5 小时之前
6 天 9 小时之前