第1节 FPGA 设计流程
FPGA设计的一般流程

设计准备
设计输入
将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程成为设计输入。设计输入通常有以下几种形式:
功能仿真
- 功能仿真也叫前仿真。
- 用户所设计的电路必须在编译之前进行逻辑功能验证,此时的仿真没有延时信息,对于初步的功能检测非常方便。
- 仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量(即将所关心的输入信号组合成序列),
仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。
- 如果发现错误,则返回设计输入中修改逻辑设计。
设计处理
- 设计处理是FPGA设计中的核心环节。在设计处理过程中,编译软件对设计输入文件进行逻辑简化、综合优化和适配,最后产生编程用的编程文件。
--语法检查和设计规则检查
--逻辑优化和综合
--适配和分割
--布局和布线
时序仿真
- 时序仿真又称后仿真或延时仿真。
- 由于不同器件的内部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,
分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等是非常有必要的。
- 实际上这也是与实际器件工作情况基本相同的仿真。
器件编程与测试
- 时序仿真完成后,软件可产生供器件编程使用的数据文件。
- 器件的编程就是将编程数据放到相应的FPGA器件中去。
- 器件编程需要满足一定的条件,如编程电压、编程时序、编程算法等。一次性编程的FPGA需要专用的编程器完成器件的编程工作,
基于SRAM的FPGA可以由EPROM或其他存储器件进行配置。在线可编程的FPGA器件不需要专门的编程器,只需要一根编程下载电缆就可以了。
- 器件在编程完毕后,可以用编译时产生的文件对器件进行校验、加密等工作。对于支持JTAG技术,具有边界扫描测试能力和在线编程能力的器件来说,测试起来就更加方便。
CPLD/FPGA配置方式
配置:又称为编程、加载、或下载,是对可编程逻辑器件的内容进行编程的过程。
FPGA:
- 基于SRAM的FPGA每次上电后都需要配置。
- 基于反熔丝的FPGA,一次性可编程。
CPLD:配置信息保存在片内,掉电不丢失;
CPLD编程方式
单独的编程模式
JTAG (边界扫描)模式
- 用下载电缆、微处理器或其它外部逻辑驱动CPLD的JTAG引脚,每个TCK载入一个比特的数据。
- 在系统的编程方式。
基于SRAM的FPGA配置方式
按照FPGA器件在配置电路中的角色不同,有三种方式将配置数据下载到FPGA内部:
- FPGA主动的方式
由目标FPGA主动输出控制和时钟信号,读取配置芯片中的配置数据。
- FPGA被动的方式
由其他设备(如处理器或CPLD等)驱动控制信号和时钟信号,发起配置信息的下载过程。FPGA只是输出一些状态信号来配合配置过程。
- JTAG方式
利用IEEE 1149.1边界扫描测试标准接口对FPGA进行配置。可以使用下载电缆或处理器驱动JTAG接口信号。
Altera FPGA配置模式
- JTAG
--绝大多数Altera FPGA支持该方式
--具有最高的配置优先级
- 主动串行方式
--Stratix II,Cyclone II,Cyclone
- 被动串行
--所有Altera FPGA支持该配置方式
- 被动串行异步
--FLEX6000
- 快速被动并行
--Stratix II,Stratix GX,Stratix,APEX II
- 被动并行异步
--Cyclone II,Cyclone,FLEX6000不支持
- 被动并行同步
--APEX,ACEX,FLEX10K,Mercury
Xilinx FPGA配置模式
- JTAG(边界扫描)模式
JTAG是一个工业界标准(IEEE 1149.1 或1532)的串行编程模式。由于它的标准化和通用性,这种模式非常流行。在这种模式下,每个TCK 载入一个比特的数据。
- SelectMAP/从并模式
SelectMAP/从并模式允许通过一个字节宽的端口并行读和写。此时需要一个外部的时钟源,微处理器,下载电缆或其它的FPGA。在这种模式下,每个CCLK 周期载入一个字节数据。
- 主串模式
主串模式被Xilinx所有FPGA器件所支持,是FPGA 配置的一个最简单的方法。FPGA下载来自串行PROM 的配置数据。利用FPGA提供时钟,可以利用驱动配置时钟的内部振荡器自行下载。FPGA提供所有的控制逻辑。在该模式下,数据在每个CCLK周期被载入一个比特。
- 从串模式
Xilinx所有FPGA器件都支持从串模式。在这种模式下,需要一个外部的时钟、微处理器、另外的FPGA 或下载电缆。在该模式下,数据在每个CCLK周期被载入一个比特。
目前常用的下载电缆
Altera
- MasterBlaster (USB、串口)
- ByteBlaster II (并口)
- USB-Blaster (USB)
Xilinx
- Parallel Cable IV(并口)
- Platform Cable USB(USB)
- MultiLINX Cable(USB、串口)
第三方
<<上一节 下一节>>