利用Altera增强型配置片实现FPGA动态配置
扫描二维码
随时随地手机看文章
1. 引言
在当今复杂数字电路设计中,大多采用以"嵌入式微控制器+fpga"为核心的体系结构此体系结构中fpga配置效率和灵活性的差异影响了产品的开周期和产品升级的易施性。传统的fpga配置方案(例如调试阶段的专用下载电缆方式。成品阶段的专用配置片方式)在成本、效率、灵活性方面都存在着明显不足。针对这样的实际问题,基于嵌入式微控制器与fpga广泛共存于复杂数字系统的背景,借鉴软件无线电"一机多能"的思想,提出了一种对现有传统fpga配置方案硬件电路稍做调整并增加部分软件功能。即可实现fpga动态配置的方案。本文将在介绍altera公司stratix系列fpga配置模式、fpga配置流程、增强型配置片内部工作原理的基础上给出利用epci6实现fpga动态配置的方案。并给出软硬件接口电路。2 fpga配置方式可编程器件的配置方式分为主动配置和被动配置两类。主动配置由可编程器件引导配置过程,被动配置则由外部处理器控制配置过程。 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以bit(比特)为单位将配置数据载人可编程器件:而并行配置一般以byte(字节)为单位向可编程器件载入配置数据。被动配置根据配置数据与时钟的关系可分为同步和异步两种方式。
表1列举了altera公司常用fpga(stratix、cyclone、apexⅱ、apex20k、mercury、ace xk、flexlok和flex6000)的配置方式。 3 fpga配置流程fpga的配置数据存储在内部sram单元中。由于sram掉电后配置数据会丢失,因此每次上电时必须重新将配置数据写入sram中。这个过程称为fpga的配置。fpga配置过程如图1所示。表2为stratix配置引脚定义。
(1) 上电
上电过程中fpga内部状态机被复位,nsta-tus和conf_done引脚由fpga置为低电平,所有i/o引脚为三态且fpga内部配置寄存器被清空。(2) 复位当nconfig或nstatus引脚为低电平时,fpga进入复位状态。在此状态下,fpga采样msel引脚的电平值,以确定采用的配置方式。同时nstatus和conf_done引脚被拉低,所有i/o引脚三态并且fpga内部配置寄存器被清空。 (3) 配置当nconfig为高电平,nstatus被fpga释放并由外部上拉电阻拉为高电平后进入配置状态。此状态下配置数据在dclk时钟的上升沿载入fp-ga。若正确接收所有配置数据(crc校验无误)。fpga释放conf_done引脚且当其被外部上拉电阻拉高后进入初始化状态。(4) 初始化此状态下fpga内部逻辑和寄存器被初始化:使能i/0缓冲,释放init_done引脚(可选)。(5) 用户模式在此状态下fpga开始执行用户程序。4增强型配置片工作原理ahera公司增强型配置片支持在一块配置片上进行多块高密度pld(programmable logic de-vice)配置。配置片主要由两大核心模块构成一控制器和flash存储器。存储空间除用于存储配置数据外,未使用的部分可用于微处理器或pld的外部存储器。下面将分别阐述增强型配置片的核心模块。4.1增强型配置片控制单元控制单元由以下子模块构成:(1) 上电复位电路(por)在电源电压未达到需要的稳定电压时此模块将使配置片处于复位状态。有两种上电复位时间可选,100 ms,和2 ms,。配置片porsel引脚决定复位时间长短。此引脚为低电平时复位时间为100 ms,反之为2 ms。(2) 内部振荡器(iosc)内部振荡器有四种模式(四个不同频率),可通过编译fpga代码在ouatrusⅱ软件中选择。
(3) 时钟分频单元(cdu)时钟分频单元对内部振荡器产生的时钟或外部输入时钟进行分频,得到配置片内部系统时钟sysclk和外部数据输出时钟dclk。其内部有两个分频器,一个分频器的分频系数为n,产生dclk信号;另一个分频器的分频系数为m,产生sysclk信号。其内部结构如图2所示。
上电后配置片默认采用内部振荡器中a模式,振荡频率为8 mhzo其中,一个分频器分频系数为1。另一个分频器分频系数为2。(4)压缩引擎(pcu)增强型配置片支持数据压缩。数据压缩由quatrusⅱ软件实现,解压由压缩引擎实现。