网站搜索:
第1节 FPGA 设计流程
文章出处:与非网
更新于2008-05-17 14:34:15

第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、串口)

    第三方

  • 定制
  • 全兼容


<<上一节  下一节>> 



关于OpenHW | OpenHW使用说明 | FAQ | 相关法律 | 版权声明 | 网站地图
联系邮件:xiaoquan@eefocus.com  联系电话: 010-58859035-8012
Powered by eefocus.com