基于现场可编程芯片的动态应用研究

出处:qijilin 发布于:2009-11-09 15:39:58


  摘要:通过对现有可编程芯片方案的研究,针对某些用户对“现场可编程”的要求,本文提出了一种基于FPGA的数据高速动态方案,并简要介绍了该方案的硬件设计与实现思想。

  1 引言

  随着可编程逻辑器件的快速发展,器件的成本不断降低,已有越来越多的应用领域用到 可编程逻辑器件。它本身具有的可编程能力,可以方便设计者轻松升级系统,并且使设计的 算法以硬件的方式执行,大大提高了系统的处理速度。FPGA 以其具有极大的灵活性和现场 可编程特性得到广泛的应用。按工艺划分,FPGA 可分为反熔丝型、FLASH 型和SRAM 型。 反熔丝型虽然具有极强的保密性、但由于仅能编程,在使用上受到极大限制;FLASH 型FPGA 克服了反熔丝型FPGA 的缺点,但受结构和工艺限制,在容量上有时很难满足实 际需求;目前SRAM 型FPGA 以其具有容量大、可反复编程特性得到广泛应用,目前市场 上大容量FPGA(10 万门以上)无一例外都是基于SRAM 结构。然而SRAM 型FPGA 的缺点是需要外挂一片FLASH 配置芯片,该芯片对用户完全透明,可以通过电缆或专 用编程器进行编程。由于该芯片可以方便的进行复制和修改,因此配置文件极易被非法窃取, 设计师的知识产权无法得到充分保障。

  本文分析研究了 ALTERA 公司的FPGA 方式、文件数据结构及被动串行 时序,提出了一种基于PCI 接口总线的现场配置电路设计方案。该电路模块与PCI9656 芯 片控制模块融合在一起,配合上层应用软件,借助于主机PCI 总线和PCI 设备驱动程序, 利用QUARTUS II 软件产生的二进制流文件直接对FPGA 芯片进行现场,采用 ALTERA 公司FPGA 的被动串行方式,具有很好的通用性。

  2 适配卡电路结构

  本设计方案的设计是基于PCI 总线适配卡,适配卡为一高速数据采集卡,主要包括PCI 总线接口芯片、局部总线控制模块、内部运算与通信控制模块。电路的整体结构框图如图1 所示。

  通过分析 PCI 总线的传输与外围设备如FIFO、SRAM、Flash 的时序知道,SRAM 属于 同步设备,所有的读写操作均发生在时钟上升沿,SRAM 写时序与PCI 总线的时序一致, 可直接采用该时序进行控制,FIFO 也属于同步设备,FIFO 读写时序及Flash 属于异步设备 通过设计相应的简单时序控制逻辑就能满足与PCI 总线通信时序的要求。

  3 电路硬件设计方案

  3.1 PS 配置时序

  FPGA 具有被动串行(PS)、主动串行(AS)和JTAG 三种方式,其中PS 模式为 ALTERA 公司FPGA 的通用方式,操作透明、配置简单。在该模式下,外部电路采用5 条信号线对FPGA 进行配置,分别为配置时钟DCLK,配置数据DATA0,配置启动nCONFIG, 配置状态nSTATUS,配置完成CONF_DONE 信号。配置时序如图2 所示。

  3.2 模块电路设计

  在 EPM7256A 内部设计电路,电路由D 锁存器、长度计数器、数据移位寄存器、 状态机、状态寄存器及局部总线控制模块构成。D 锁存器锁存主机送入的命令,输入连接局 部总线数据为LD[1:0],LD[1:0]=01 为启动配置、10 为等待数据命令、11 为结束配置命令, 该命令输出到配置控制状态机,作为控制输入。数据长度计数--器内部存放本次配置的数据 长度,位宽5bit,连接局部总线LD[7:3],计数器计数范围为24,每写入1bit,长度值 减1,当减至0 时,产生借位信号,作为本次配置完成信号,送入状态机。数据移位寄存器共计24bit 宽,内部装载本次配置的数据,在状态机的控制下,顺序移出,写入FPGA。局 部总线控制模块产生局部总线的写使能、读有效信号,当PCI9054 寻址到20004000H 时, 产生写使能信号,PCI9054 寻址到20000000H 时,产生状态寄存器读输出有效信号。状态寄 存器输出连接局部总线,输入连接FPGA 配置状态信号nSTATUS、CONF_DONE 和本次配 置完成信号。电路框图如图3 所示:


  3.3 电路状态机设计

  状态机是该模块的重要组成部分,负责协调各个模块的工作。其输入时钟信号 LCLK,复位信号LRESET#,电路写使能,DLC_WEN,本次配置完成指示:CONFIG_DATA_BO;输 出 为 配 置时钟DCLK , 配置启动nCONFIG , 配置数据: DATA0 , 移位使能 CONFIG_DATA_SHEN,计数使能CONFIG_LEN_EN。状态机包括“等待命令状态”SF0、 “启动配置状态”SF1、“等待数据状态”SF2、“配置数据状态1”SF31、“配置数据状态2” SF32,其状态转换过程如下:

  状态SF0:“等待命令状态”,等待软件配置启动命令。

  此时:CONFIG_EN = 1、CONFIG_DATA_SHEN = 0 、CONFIG_LEN_EN = 0 、DCLKQ = 0、nCONFIGQ = 1;

  若DLC_WEN_SH=1 且命令为0x01H,则进入状态S1;

  否则维持 S0 状态不变。

  状态 SF1:“启动配置状态”。

  此时:CONFIG_EN = 0、CONFIG_DATA_SHEN = 0 、CONFIG_LEN_EN = 0 、DCLKQ = 0、nCONFIGQ = 0;

  若 DLC_WEN_SH=1 且命令为0x02H,则进入“等待数据状态”;否则维持 S1 状态不变。

  状态 SF2:“等待数据状态”。

  此时: CONFIG_EN = 0、CONFIG_DATA_SHEN = 0 、CONFIG_LEN_EN = 0 、DCLKQ = 0、nCONFIGQ = 1;

  若 DLC_WEN_SH=1 且命令为0x03H,则进入“配置数据状态1”S31,若 DLC_WEN_SH=1 且命令为0x00H,则返回“等待命令状态”S0,否则维持 S2 状态不变。

  状态 SF31:“配置数据状态1”。发DCLK 为高电平及第N-bit 有效数据此时:CONFIG_EN = 0、CONFIG_DATA_SHEN = 1 、CONFIG_LEN_EN =1 、

  DCLKQ = 1、nCONFIGQ = 1;进入状态 S32。

  状态 SF32:“配置数据状态2”。发DCLK 为低电平及第(N+1)-bit 有效的数据此时:CONFIG_EN = 0、CONFIG_DATA_SHEN = 0 、CONFIG_LEN_EN = 0 、

  DCLKQ = 0、nCONFIGQ = 1;

  若 CONFIG_DATA_BO = 1 则进入状态 S31;

  否则返回“等待数据状态”S2。

  4 电路软件设计方案

  电路软件设计主要功能是读取待文件,初始化硬件设备,按照电路的时 序要求将数据和控制命令写入相应的PCI 存储空间。初始化、配置设置、的实质都是 通过数据总线将固定格式的命令和数据写入到命令寄存器,并在这个过程中不断读取状态寄 存器的值以监测是否有错误发生。

  首先开机,启动操作系统,EPM7256A 内部电路已。其次进行初始化操作。通过 数据总线向地址S0+E000H(配置端口)写入初始化命令0x01H,延迟一段时间,读取地址 S0+0000H(状态寄存器)内的数据,直至检测到配置标志位CONF_DONE、nSTATUS 均为 0,初始化工作完成。再次进行配置启动。向地址S0+E000H(配置端口)写入配置命令0x02H, 延迟一段时间,读取地址S0+0000H 状态寄存器内的数据,直至检测到配置标志位 CONF_DONE 为0、nSTATUS 为1,配置FPGA2 工作完成。接着进行配置数据,向地址 S0+E000H(配置端口)写入数据。Bit[2..0]固定接为011,作为配置数据命令;Bit[7..3]为本 次的有效数据长度;Bit[31:8]为要数据,Bit[31]、Bit[8]。读取地 址S0+0000H(状态寄存器)内的数据,直至检测到配置标志位CONFIG_DATA_BO 为0。 若检测到CONFIG_DATA_BO=1,表明本次操作尚未完成,继续执行配置数据,否则执行下 一步。进行数据配置完成检验。读取地址S0+0000H(状态寄存器)内容,直至检测到 配置标志位CONF_DONE、nSTATUS 均为1,表明全部数据配置完成,向地址S0+E000H (配置端口)写入数据0x00H,完成本次软件操作。

  5 结束语

  方案严格按照 FPGA 的PS 模式进行配置,实现了专用芯片在DOS 系统下的动态配置。 经过试验验证,按照该方案设计的电路速度快,运行稳定,设计完全达到了预期的目的。

  本文作者创新点: 该设计方案实现了FGPA 掉电后内部数据的自动清除,可以保障专用 芯片的保密性;另外本方案选用ALTERA 公司的EPM7256A 作为配置芯片,在其内部实现 电路,真正实现了“现场可编程”,根据本设计思想还可以轻松做到在线升级。


  

参考文献:

[1]. PCI  datasheet https://www.dzsc.com/datasheet/PCI+_1201469.html.
[2]. EPM7256A  datasheet https://www.dzsc.com/datasheet/EPM7256A+_301023.html.
[3]. 1bit datasheet https://www.dzsc.com/datasheet/1bit_2178090.html.
[4]. PCI9054  datasheet https://www.dzsc.com/datasheet/PCI9054+_1054563.html.
[5]. SF2 datasheet https://www.dzsc.com/datasheet/SF2_1184527.html.
[6]. SF31 datasheet https://www.dzsc.com/datasheet/SF31_604269.html.
[7]. SF32 datasheet https://www.dzsc.com/datasheet/SF32_604270.html.


关键词:基于现场可编程芯片的动态下载应用研究PCI9054PCI9656EPM7256A可编程芯片编程逻辑器件

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!