发明名称 一种用于FPGA配置的PROM电路架构
摘要 本发明介绍了一种用于FPGA配置的PROM电路架构,采用模块化设计,通过增加特定功能的外围电路,将FLASH存储器设计为可存储FPGA配置数据,并且可适应FPGA不同配置模式需求的PROM电路,最终能够完成边界扫描模式、串行模式或者并行模式下FPGA的独立配置。采用此电路架构的PROM可以通过级联的方式进行容量扩充,并且兼容IEEE 1149.1及IEEE1532边界扫描标准,这极大提升了面向FPGA应用的灵活性。
申请公布号 CN102789815B 申请公布日期 2015.02.11
申请号 CN201210148171.X 申请日期 2012.05.10
申请人 北京时代民芯科技有限公司;中国航天科技集团公司第九研究院第七七二研究所 发明人 陈雷;蒋玉东;刘增荣;陈煜;郭晨光;周涛;李学武;张彦龙;孙华波;倪俊达
分类号 G06F13/16(2006.01)I;G11C16/10(2006.01)I;G06F12/02(2006.01)I 主分类号 G06F13/16(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种用于FPGA配置的PROM电路架构,其特征在于包括:FLASH存储器201、JTAG控制器202、FLASH控制器203、并串转换电路204、时钟复位电路205、上电复位电路206、晶振207和BIST控制器208; 时钟复位电路205给JTAG控制器202、FLASH控制器203、并串转换电路204和BIST控制器208提供时钟信号和复位信号,同时时钟复位电路205还给晶振207提供使能信号,晶振207给时钟复位电路205提供时钟,上电复位电路206给时钟复位电路205提供上电复位脉冲; FLASH存储器201、JTAG控制器202、并串转换电路204和BIST控制器208均与FLASH控制器203连接并且进行数据交互,FLASH存储器201用于存储FPGA配置数据,JTAG控制器202通过FLASH控制器203对存储在FLASH存储器201中的FPGA配置数据进行控制操作,通过FLASH控制器203与并串转换电路204进行数据交互,由并串转换电路204进行数据并串转换并输出给FPGA芯片进行配置; 所述JTAG控制器202包括TAP状态机301、指令译码器302、指令寄存器303、多路选择器304、帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310; JTAG控制器202的测试数据输入信号同时连接到指令寄存器303、帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310的数据输入端;帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310分别接收指令译码器302输出的寄存器使能信号用于寄存器数据通路选择, JTAG控制器202通过帧数据寄存器305和帧地址寄存器306分别完成与FLASH控制器203之间的数据交互和地址交互; 帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310的数据输出端同时与多路选择器304的一个输入端相连,多路选择器304的另一个输入端与指令寄存器303的数据输出端相连,多路选择器304的输出信号即为JTAG控制器202的测试数据输出信号; 多路选择器304的信号选择端与TAP状态机301输出的选择信号相连;指令寄存器303还接收TAP状态机301输出的指令控制信号,同时指令寄存器303输出指令数据信号给指令译码器302;指令译码器302接收TAP状态机301输出的状态控制信号,并与FLASH控制器203进行控制信号的交互; 所述FLASH控制器203包括写控制器501、写接口电路502、读控制器503、读接口电路504、擦除控制器505、擦除接口电路506、配置控制器507和缓存508; 时钟复位电路205提供的工作时钟信号同时连接到写控制器501的时钟端和擦除控制器505的时钟端,时钟复位电路205提供的同步复位信号同时连接到写控制器501的复位端、读控制器503的复位端和擦除控制器505的复位端; 读控制器503的时钟端与时钟复位电路205提供的JTAG时钟信号相连,配置控制器507的时钟端与时钟复位电路205提供的配置时钟信号相连,配置控制器507的复位端与外部输入的输出使能复位信号相连;FLASH控制器203与JTAG控制器202或并串转换电路204之间进行交互的数据和地址均存放在缓存508之中; 写控制器501和读控制器503均通过缓存508与JTAG控制器202连接,并通过缓存508与JTAG控制器202之间进行数据交互和地址交互;配置控制器507通过缓存508与并串转换电路204连接,并通过缓存508与并串转换电路204之间进行数据交互和地址交互;写控制器501、读控制器503、擦除控制器505和配置控制器507直接与JTAG控制器202连接进行控制信号的交互,配置控制器507还直接与并串转换电路204连接进行控制信号的交互; 写控制器501、读控制器503和擦除控制器505分别依次通过写接口电路502、读接口电路504和擦除接口电路506与FLASH存储器201连接并进行交互;JTAG控制器202通过FLASH控制器203中的配置控制器507将FLASH存储器201中存储的FPGA配置数据通过缓存508与并串转换电路204进行交互; 所述写控制器501的具体工作方式为: 在时钟复位电路205提供的工作时钟信号和同步复位信号的作用下,写控制器501进入状态601;进入状态601之后,在所述工作时钟信号和JTAG控制器202的控制信号的作用下,工作步骤依次为:状态602、状态603、状态604和状态605;进入状态605之后,若当前写次数未达到预定最大写入次数则进入状态606,否则进入状态607;进入状态606之后,若完成更新缓存过程,则写控制器501进入状态603; 所述状态601为写入初始化过程; 所述状态602为取地址及数据过程,该状态下写控制器501从缓存508中取出用于所述FLASH存储器201写入的数据及相关地址信息; 所述状态603为开始写过程,即写控制器501通过所述写接口电路502开始向所述FLASH存储器201写入数据的准备过程; 所述状态604为等待过程,即写控制器501将从缓存508中取出的数据通过所述写接口电路502写入所述FLASH存储器201的过程; 所述状态605为写计数过程,该状态下写控制器501进行写次数统计,并与预定最大写次数进行比较,该最大写次数与缓存508的容量相关; 所述状态606为更新缓存过程,该状态下缓存508从所述JTAG控制器202的帧地址寄存器306和帧数据寄存器305中更新地址及数据; 所述状态607为完成过程,该状态标识所述FLASH存储器201的数据写入过程顺利完成; 所述读控制器503的具体工作步骤为: 在JTAG时钟信号和同步复位信号的作用下,读控制器503进入状态611;进入状态611之后,在JTAG时钟信号和JTAG控制器202的控制信号的作用下,工作步骤依次为:状态612、状态613、状态614和状态615;进入状态615之后,若当前读次数未达到预定最大读次数则进入状态616,否则进入状态617;进入状态616之后,若完成更新地址过程,则读控制器503进入状态613; 所述状态611为读初始化过程; 所述状态612为取地址过程,该状态下读控制器503从所述JTAG控制器202的帧地址寄存器306中取出用于读出所述FLASH存储器201中所存储数据的起始地址信息; 所述状态613为开始读过程,即读控制器503通过所述读接口电路504开始从所述FLASH存储器201读出数据的准备过程; 所述状态614为等待过程,即读控制器503通过读接口电路504从所述FLASH存储器201读出数据,并写入所述帧数据寄存器305的过程; 所述状态615为读计数过程,该状态下读控制器503进行读次数统计,并与预定最大读次数进行比较; 所述状态616为更新地址过程,该状态下读控制器503从所述JTAG控制器202的帧地址寄存器306中更新地址信息; 所述状态617为完成过程,该状态标识所述FLASH存储器201的数据读出过程顺利完成; 所述擦除控制器505的具体工作步骤为: 在工作时钟信号和同步复位信号的作用下,擦除控制器505进入状态621;进入状态621之后,在工作时钟信号和JTAG控制器202的控制信号的作用下,工作步骤依次为:状态622和状态623;进入状态623之后,若擦除未完成则继续保持状态623,否则进入状态624; 所述状态621为擦除初始化过程; 所述状态622为开始擦除过程,即擦除控制器505通过所述擦除接口电路506开始对所述FLASH存储器201进行擦除的准备过程; 所述状态623为等待过程,即擦除控制器505通过所述擦除接口电路506对所述FLASH存储器201进行擦除的过程; 所述状态624为完成过程,该状态标识所述FLASH存储器201的数据擦除过程顺利完成; 所述配置控制器507的具体工作步骤为: 在配置时钟信号和输出使能复位信号的作用下,配置控制器507进入状态631;进入状态631之后,在配置时钟信号和JTAG控制器202的控制信号的作用下,工作步骤依次为:状态632和状态633;进入状态633之后,若当前与配置相关的地址计数次数未达到预定最大次数则返回状态632,否则进入状态634; 所述状态631为配置初始化过程; 所述状态632为发送地址过程,即配置控制器507通过所述FLASH存储器201的地址信号端向所述FLASH存储器201发送地址; 所述状态633为返回数据过程,即所述FLASH存储器201通过数据输出信号端向配置控制器507输出数据,同时配置控制器507完成与所述并串转换电路204之间控制信号交互,并通过缓存508完成与所述并串转换电路204之间的数据交互和地址交互;该状态下配置控制器507进行配置地址计数,并与预定最大计数次数进行比较; 所述状态634为完成过程,该状态标识所述FLASH存储器201的数据配置过程顺利完成。 
地址 100076 北京市丰台区东高地四营门北路2号