CN102789815B - 一种用于fpga配置的prom电路架构 - Google Patents
一种用于fpga配置的prom电路架构 Download PDFInfo
- Publication number
- CN102789815B CN102789815B CN201210148171.XA CN201210148171A CN102789815B CN 102789815 B CN102789815 B CN 102789815B CN 201210148171 A CN201210148171 A CN 201210148171A CN 102789815 B CN102789815 B CN 102789815B
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- state
- signal
- hang
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明介绍了一种用于FPGA配置的PROM电路架构,采用模块化设计,通过增加特定功能的外围电路,将FLASH存储器设计为可存储FPGA配置数据,并且可适应FPGA不同配置模式需求的PROM电路,最终能够完成边界扫描模式、串行模式或者并行模式下FPGA的独立配置。采用此电路架构的PROM可以通过级联的方式进行容量扩充,并且兼容IEEE 1149.1及IEEE1532边界扫描标准,这极大提升了面向FPGA应用的灵活性。
Description
技术领域
本发明涉及一种PROM电路架构,特别是一种针对FPGA配置应用而优化了的PROM电路架构,属于集成电路领域。
背景技术
图1是一个现场可编程门阵列(FPGA,Field Programmable Gate Array)的配置接口示意图。在此处为了方便示意FPGA100器件的配置原理,仅仅将其与配置相关的接口信号标注了出来,主要包括:配置数据输入信号DIN[7:0]、模式选择引脚MODE PINS、FPGA配置时钟信号CCLK、配置完成信号DONE、配置初始化信号INITn、编程使能信号PROGRAMn、测试数据输入信号TDI、测试模式选择信号TMS、测试时钟信号TCK和测试数据输出信号TDO。
针对FPGA100器件的配置,一般存在边界扫描模式、串行模式和并行模式三种配置方式。在边界扫描模式下,FPGA100器件与相应的配置存储器件通过各自边界扫描电路的TAP接口级联形成串行扫描链路,配置数据从DIN[0]端送入FPGA100器件;在串行模式下,数据输入信号DIN[7:0]的第一位DIN[0]会作为FPGA100器件配置所需的串行数据输入端;在并行模式下,数据输入信号DIN[7:0]会作为FPGA100器件配置所需的并行数据输入信号。
传统的FLASH存储器无法直接应用于FPGA100器件的配置,必须通过增加特定功能的外围电路,以达到适应FPGA100器件不同配置模式需求的目的。在存储容量上,直接采用大容量的FLASH存储器不利于减小芯片体积外形,也不利于降低封装成本,因此设计一款可通过级联方式进行容量扩容的PROM芯片就显得非常有意义。在应用上,现今FPGA100器件大多都支持IEEE 1149.1或者IEEE 1532边界扫描标准,因而有必要将IEEE 1149.1及IEEE 1532边界扫描标准应用于PROM芯片中边界扫描电路的优化设计当中,以便拥有更灵活的应用特性。
发明内容
本发明的技术解决问题是:克服现有技术的不足之处,提供一种针对FPGA配置应用而优化了的PROM电路架构,解决了传统的FLASH存储器无法直接满足FPGA不同配置模式需求的问题,并且克服了单个PROM芯片存储容量过小、不利于配置规模扩充的问题。
本发明的技术解决方案是:
一种用于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的数据配置过程顺利完成。
所述并串转换电路204的具体工作方式为:
在配置时钟信号和转换复位信号的作用下,并串转换电路204进入状态701;进入状态701之后,在配置时钟信号和配置控制器507的控制信号的作用下,进入状态702;进入状态702之后,若当前数据转换模式为将N位数据转换为1位串行数据输出,则进入状态703,若当前数据转换模式为将N位数据转换为8位并行数据输出,则进入状态707;进入状态703之后,在配置时钟信号和配置控制器507的控制信号的作用下,工作步骤依次为:状态704和状态705;进入状态705之后,若取数计数次数未达到预定最大次数则返回状态703,否则进入状态706;进入状态707之后,在配置时钟信号和配置控制器507的控制信号的作用下,工作步骤依次为:状态708和状态709;进入状态709之后,若取数计数次数未达到预定最大次数则返回状态707,否则进入状态710;所述取数计数次数是指将N位数据串行或者并行输出的计数次数,串行输出的一次计数过程是指从N位数据中取一位数据,并行输出的一次计数过程是指从N位数据中取八位数据;N为8的整数倍
所述状态701为并串转换电路204初始化过程;
所述状态702为将位宽为N的数据取入并串转换电路204的过程,该数据一次并行取入并串转换电路204;
所述状态703为在将N位数据转换为1位串行数据输出模式下的数据准备过程;
所述状态704为在将N位数据转换为1位串行数据输出模式下的数据移位过程,该状态下并串转换电路204进行1位数据取数操作,同时串行输出所取的数据;
所述状态705为取数计数过程,该状态下并串转换电路204进行取数次数统计,并与预定最大次数N次进行比较;
所述状态706为在将N位数据转换为1位串行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为1位串行数据输出;
所述状态707为在将N位数据转换为8位并行数据输出模式下的数据准备过程;
所述状态708为在将N位数据转换为8位并行数据输出模式下的数据移位过程,该状态下并串转换电路204进行8位数据取数操作,同时并行输出所取的数据;
所述状态708为取数计数过程,该状态下并串转换电路204进行取数次数统计,并于预定最大次数进行比较,若N为8的整数倍,则该预定最大次数为N/8,若N不为8的整数倍,则该预定最大次数为N/8取整加1;
所述状态710为在将N位数据转换为8位并行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为8位并行数据输出。
所述BIST控制器208的具体工作步骤为:
在内建自测试时钟信号和内建自测试复位信号的作用下,BIST控制器208进入状态801;进入状态801之后,在内建自测试时钟信号和FLASH控制器203的控制信号作用下,工作步骤依次为:状态802、状态803、状态804和状态805;进入状态805之后,BIST控制器208输出内建自测试标识信号并返回状态801;所述内建自测试标识信号表示自测试成功或者不成功;
所述状态801为BIST控制器208空闲状态;
所述状态802为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据擦除的过程;
所述状态803为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据写的过程;
所述状态804为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据读的过程;
所述状态805为内建自测试完成过程,该状态下BIST控制器208输出内建自测试标识信号。
本发明与现有技术相比的有益效果是:
(1)与传统的FLASH存储器相比,采用本发明提供的PROM电路架构可以满足FPGA器件在边界扫描模式、串行模式或者并行模式下的配置需求;
(2)采用本发明提供的PROM电路架构可以通过级联的方式进行容量扩充,克服了单个PROM芯片存储容量过小、不利于配置规模扩充的问题;
(3)采用本发明提供的PROM电路架构兼容IEEE 1149.1及IEEE 1532边界扫描标准,极大提升了面向FPGA应用的灵活性。
附图说明
图1为FPGA器件配置接口示意图;
图2为本发明PROM电路架构的模块详图;
图3为图2中JTAG控制器的模块详图;
图4为IEEE 1149.1标准所规定的TAP状态机的状态转移图;
图5为图2中FLASH控制器的模块详图;
图6为图5中写控制器、读控制器、擦除控制器和配置控制器的工作状态转移图;
图7为图2中并串转换电路的工作状态转移图;
图8为图2中BIST控制器的工作状态转移图;
图9为使用本发明PROM电路在边界扫描模式下配置FPGA的电路结构示意图;
图10为使用本发明PROM电路在串行模式下配置FPGA的电路结构示意图;
图11为使用本发明PROM电路在并行模式下配置FPGA的电路结构示意图。
具体实施方式
图1为FPGA 100器件配置接口示意图,其与配置相关的接口信号主要包括:配置数据输入信号DIN[7:0]、模式选择引脚MODE PINS、FPGA配置时钟信号CCLK、配置完成信号DONE、配置初始化信号INITn、编程使能信号PROGRAMn、测试数据输入信号TDI、测试模式选择信号TMS、测试时钟信号TCK和测试数据输出信号TDO。其中,测试数据输入信号TDI、测试模式选择信号TMS、测试时钟信号TCK和测试数据输出信号TDO也是FPGA器件中边界扫描电路所专用的信号。
图2为本发明PROM 200电路架构的模块详图,包括FLASH存储器201、JTAG控制器202、FLASH控制器203、并串转换电路204、时钟复位电路205、上电复位电路206、晶振207和BIST控制器208。
FLASH存储器201的地址信号端Addr、片选信号端CE、数据输入信号端DIN、输出使能信号端OE和写使能信号端WE与FLASH控制器203的输出信号相连,FLASH存储器201输出的READY/BUSY信号RDYBSY和数据输出信号DOUT连接到FLASH控制器203的输入端;JTAG控制器202接收外部输入的测试数据输入信号TDI和测试模式选择信号TMS,以及时钟复位电路205输出的JTAG时钟信号TTCK和测试异步复位信号TRST,JTAG控制器202还通过写控制总线2001、读控制总线2002、擦除控制总线2003、配置控制总线2004、JTAG地址总线2005和JTAG数据交换总线2006完成与FLASH控制器203之间的数据交换,JTAG控制器202输出测试数据输出信号TDO给外部;FLASH控制器203接收时钟复位电路205输出的JTAG时钟信号TTCK、配置时钟信号ICCLK、工作时钟信号WCLK和同步复位信号RST,并通过输出控制总线2007、输出地址总线2008和输出数据交换总线2009完成与并串转换电路204之间的数据交换,FLASH控制器203还通过内建自测试控制总线2010完成与BIST控制器208之间的数据交换。
并串转换电路204分别与BIST控制器208输出的内建自测试标识信号bist、第一控制使能信号CEn、时钟复位电路205输出的配置时钟信号ICCLK和转换复位信号PS_RST相连作为输入信号,并串转换电路204输出第一数据信号D[0]/BIST_DONE、数据信号D[7:1]、第二控制使能信号CEO和配置信号CFn;上电复位电路206为时钟复位电路205提供上电复位脉冲POR,时钟复位电路205还接收测试时钟信号TCK、时钟信号CLK、输出使能复位信号OE/RSTn和晶振207输出的晶振时钟信号OCLK,并输出内建自测试时钟信号b_clk和内建自测试复位信号b_rst给BIST控制器208,同时输出晶振使能信号OEN连接到晶振207的使能端。
本发明采用模块化设计,以FLASH存储器201为核心存储模块,通过增加特定功能的电路模块,使得所设计的PROM 200电路适应于FPGA 100器件的不同配置模式需求。其中:
FLASH存储器201:用于存储FPGA 100器件所需的配置数据,该配置数据是通过JTAG控制器202的测试数据输入信号TDI写入的;
JTAG控制器202:用于本发明PROM 200电路中边界扫描电路的控制,并根据FLASH控制器203的工作行为实现相应控制逻辑的译码输出以及地址和数据交换;JTAG控制器202在设计上完全兼容IEEE 1149.1和IEEE 1532边界扫描标准,能够与同样兼容IEEE 1149.1或者IEEE 1532边界扫描标准的FPGA 100器件通过各自边界扫描电路的TAP接口级联形成串行扫描链路;
FLASH控制器203:用于控制FLASH存储器201的工作行为并与其进行地址和数据交换,该模块是其余模块与FLASH存储器201之间数据交换的中转站;
并串转换电路204:用于将FLASH控制器203通过输出数据交换总线2009送入的位宽为N的数据信号转换为特定位宽的数据信号,包括1位宽的第一数据信号D[0]/BIST_DONE或者8位宽的数据信号D[7:1]和第一数据信号D[0]/BIST_DONE;该模块还用于接收第一控制使能信号CEn及输出第二控制使能信号CEO和配置信号CFn,并通过输出地址总线2008实现与FLASH控制器203的控制信号交换;该模块还可以实现输出端口复用的功能,将BIST控制器208输出的内建自测试标识信号bist与D[0]合并生成第一数据信号D[0]/BIST_DONE,当PROM 200电路进行内建自测试时,第一数据信号D[0]/BIST_DONE可用于标识内建自测试成功与否,其余情况下用于数据输出;
时钟复位电路205:用于生成PROM 200电路内部模块工作所需的时钟信号及复位信号;
上电复位电路206:能够提供一个短暂的上电复位脉冲POR,用于初始化时钟复位电路205;
晶振207:接收时钟复位电路205提供的晶振使能信号OEN,若晶振使能信号OEN有效则为时钟复位电路205提供晶振时钟信号OCLK;其中,晶振时钟信号OCLK可以参与生成JTAG时钟信号TTCK、工作时钟信号WCLK或者内建自测试时钟信号b_clk;
BIST控制器208:通过内建自测试控制总线2010触发FLASH控制器203的擦除、写和读操作,完成PROM 200电路的功能验证;该内建自测试控制总线2010中包含JTAG控制器202通过其余控制总线引入的内建自测试控制信号。
图3所示为图2中JTAG控制器202的模块详图,包括TAP状态机301、指令译码器302、指令寄存器303、多路选择器304、帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310,其中:
TAP状态机301:是一个16状态的有效状态机,如图4所示,TAP状态机301与指令寄存器303控制了边界扫描电路专用测试存取端口(TCK、TMS、TDI和TDO)的数据通路;
指令译码器302:用于接收指令寄存器303并行输出的指令代码,以及接收PROM 200芯片中的一些全局控制信号,从而译码输出边界扫描电路所需的各种控制信号;
指令寄存器303:指令寄存器限定了PROM 200芯片操作指令并控制了边界扫描电路的内部数据通路,一条指令定义了扫描操作过程中在测试数据输入信号TDI和测试数据输出信号TDO之间连接的串行数据寄存器;
帧数据寄存器305和帧地址寄存器306:分别用于存储面向PROM 200芯片中FLASH存储器201的数据和地址信息;
边界扫描寄存器307:由围绕在芯片核心逻辑周围的边界扫描单元组成,能够完成数据移位,数据捕获和数据加载等操作;
旁路寄存器308:用于旁路PROM 200芯片,从而在板级测试时缩短测试数据输入信号TDI和测试数据输出信号TDO之间的扫描路径,旁路寄存器308的基本结构是一个触发器;
设备标识寄存器309:常也被称为IDCODE寄存器,用于存储PROM 200芯片的ID编码,通常为32位的数据寄存器,可存储制造厂商信息、版本信息和器件型号信息等;
用户编码寄存器310:用于存储PROM 200芯片中由用户定义的器件相关信息。
测试数据输入信号TDI同时连接到指令寄存器303、帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310的数据输入端;帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310分别接收指令译码器302输出的寄存器使能信号3001~3007,用于寄存器数据通路选择,帧数据寄存器305还与JTAG数据交换总线2006相连,帧地址寄存器306还与JTAG地址总线2005相连;帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310的数据输出端同时与多路选择器304的一个输入端DDATA相连,多路选择器304的另一个输入端IDATA与指令寄存器303的数据输出端相连,多路选择器304的输出端与测试数据输出信号TDO相连,多路选择器304的信号选择端与TAP状态机301输出的选择信号Select相连;指令寄存器303还接收TAP状态机301输出的指令控制信号3009,同时输出指令数据信号3008给指令译码器302;指令译码器302接收TAP状态机301输出的状态控制信号3010,并通过写控制总线2001、读控制总线2002、擦除控制总线2003和配置控制总线2004与所述FLASH控制器203相连;TAP状态机301的三个输入端分别与测试模式选择信号TMS、JTAG时钟信号TTCK和测试异步复位信号TRST相连。
当PROM 200电路上电时,上电复位电路206能够提供一个短暂的上电复位脉冲POR,用于初始化时钟复位电路205,使得测试异步复位信号TRST变为低电平,从而使JTAG控制器202中的TAP状态机301处于图4所示的TEST LOGIC RESET状态。TAP状态机301的功能设计完全依据IEEE 1149.1标准和IEEE 1532边界扫描标准,其输入的测试模式选择信号TMS和JTAG时钟信号TTCK用于状态转换,测试异步复位信号TRST用于异步复位。测试数据输入信号TDI和测试数据输出信号TDO之间的数据通路选择由指令译码器302输出的寄存器使能信号3001~3007和TAP状态机301输出的选择信号Select共同完成,具体表现为:在载入指令的过程中,TAP状态机301将指令寄存器303置于测试数据输入信号TDI和测试数据输出信号TDO之间的数据通路中;指令生效后,指令译码器302根据当前指令将寄存器使能信号3001~3007中的一个信号置为高电平,从而将相应的测试数据寄存器置于测试数据输入信号TDI和测试数据输出信号TDO之间的数据通路中。指令寄存器303、帧数据寄存器305、帧地址寄存器306、边界扫描寄存器307、旁路寄存器308、设备标识寄存器309和用户编码寄存器310的功能设计也完全依据IEEE 1149.1标准和IEEE 1532边界扫描标准。JTAG控制器202还通过指令译码器302为写控制总线2001、读控制总线2002、擦除控制总线2003、配置控制总线2004和内建自测试控制总线2010提供相应操作所需的控制信号。
图5所示为图2中FLASH控制器203的模块详图,包括写控制器501、写接口电路502、读控制器503、读接口电路504、擦除控制器505、擦除接口电路506、配置控制器507和缓存508。
工作时钟信号WCLK同时连接到写控制器501的时钟端和擦除控制器505的时钟端,同步复位信号RST同时连接到写控制器501的复位端、读控制器503的复位端和擦除控制器505的复位端,读控制器503的时钟端与JTAG时钟信号TTCK相连,配置控制器507的时钟端与配置时钟信号ICCLK相连,配置控制器507的复位端与输出使能复位信号OE/RSTn相连;JTAG地址总线2005、JTAG数据交换总线2006、输出地址总线2008和输出数据交换总线2009同时与缓存508相连。
写控制器501通过写控制总线2001、JTAG地址总线2005和JTAG数据交换总线2006与所述JTAG控制器202相连,同时通过写地址总线5001和写数据总线5002与写接口电路502相连,写控制器501还输出写使能信号PENA给写接口电路502,并接收写接口电路502输出的写完成信号POK;写接口电路502接收所述FLASH存储器201输出的READY/BUSY信号RDYBSY,并输出地址信号Addr、写使能信号WE和数据输入信号给DIN所述FLASH存储器201。
读控制器503通过读控制总线2002、JTAG地址总线2005和JTAG数据交换总线2006与所述JTAG控制器202相连,同时通过读地址总线5003和读数据总线5004与读接口电路504相连,读控制器503还输出读使能信号RENA给读接口电路504,并接收读接口电路504输出的读完成信号ROK;读接口电路504接收所述FLASH存储器201输出的READY/BUSY信号RDYBSY和数据输出信号DOUT,并输出地址信号Addr和输出使能信号OE给所述FLASH存储器201。
擦除控制器505通过擦除控制总线2003与所述JTAG控制器202相连,擦除控制器505还输出擦除使能信号EENA给擦除接口电路506,并接收擦除接口电路506输出的擦除完成信号EOK;擦除接口电路506接收所述FLASH存储器201输出的READY/BUSY信号RDYBSY,并输出地址信号Addr、写使能信号WE和数据输入信号DIN给所述FLASH存储器201。
配置控制器507通过配置控制总线2004与所述JTAG控制器202相连,同时通过输出控制总线2007、输出地址总线2008和输出数据交换总线2009完成与所述并串转换电路204之间的数据交换,配置控制器507还接收第一控制使能信号CEn、所述FLASH存储器201输出的READY/BUSY信号RDYBSY和数据输出信号DOUT,并输出地址信号Addr给所述FLASH存储器201。
图6为图5中写控制器501、读控制器503、擦除控制器505和配置控制器507的工作状态转移图。
所述写控制器501的具体工作步骤为:
在工作时钟信号WCLK和同步复位信号RST的作用下,写控制器501进入状态601;进入状态601之后,在工作时钟信号WCLK和写控制总线2001中控制信号的作用下,工作步骤依次为:状态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地址总线2005和JTAG数据交换总线2006,从所述JTAG控制器202的帧地址寄存器306和帧数据寄存器305中更新地址及数据;
所述状态607为完成过程,该状态标识所述FLASH存储器201的数据写入过程顺利完成。
所述读控制器503的具体工作步骤为:
在JTAG时钟信号TTCK和同步复位信号RST的作用下,读控制器503进入状态611;进入状态611之后,在JTAG时钟信号TTCK和读控制总线2002中控制信号的作用下,工作步骤依次为:状态612、状态613、状态614和状态615;进入状态615之后,若当前读次数未达到预定最大读次数则进入状态616,否则进入状态617;进入状态616之后,若完成更新地址过程,则读控制器503进入状态613;
所述状态611为读初始化过程;
所述状态612为取地址过程,该状态下读控制器503通过JTAG地址总线2005从所述JTAG控制器202的帧地址寄存器306中取出用于读出所述FLASH存储器201中所存储数据的起始地址信息;
所述状态613为开始读过程,即读控制器503通过所述读接口电路504开始从所述FLASH存储器201读出数据的准备过程;
所述状态614为等待过程,即读控制器503通过读接口电路504从所述FLASH存储器201读出数据,并通过JTAG数据交换总线2006写入所述帧数据寄存器305的过程;
所述状态615为读计数过程,该状态下读控制器503进行读次数统计,并与预定最大读次数进行比较;
所述状态616为更新地址过程,该状态下读控制器503通过JTAG地址总线2005从所述JTAG控制器202的帧地址寄存器306中更新地址信息;
所述状态617为完成过程,该状态标识所述FLASH存储器201的数据读出过程顺利完成。
所述擦除控制器505的具体工作步骤为:
在工作时钟信号WCLK和同步复位信号RST的作用下,擦除控制器505进入状态621;进入状态621之后,在工作时钟信号WCLK和擦除控制总线2003中控制信号的作用下,工作步骤依次为:状态622和状态623;进入状态623之后,若擦除未完成则继续保持状态623,否则进入状态624;
所述状态621为擦除初始化过程;
所述状态622为开始擦除过程,即擦除控制器505通过所述擦除接口电路506开始对所述FLASH存储器201进行擦除的准备过程;
所述状态623为等待过程,即擦除控制器505通过所述擦除接口电路506对所述FLASH存储器201进行擦除的过程;
所述状态624为完成过程,该状态标识所述FLASH存储器201的数据擦除过程顺利完成。
所述配置控制器507的具体工作步骤为:
在配置时钟信号ICCLK和输出使能复位信号OE/RSTn的作用下,配置控制器507进入状态631;进入状态631之后,在配置时钟信号ICCLK和配置控制总线2004中控制信号的作用下,工作步骤依次为:状态632和状态633;进入状态633之后,若当前与配置相关的地址计数次数未达到预定最大次数则返回状态632,否则进入状态634;
所述状态631为配置初始化过程;
所述状态632为发送地址过程,即配置控制器507通过所述FLASH存储器201的地址信号端Addr向所述FLASH存储器201发送地址;
所述状态633为返回数据过程,即所述FLASH存储器201通过数据输出信号端DOUT向配置控制器507输出数据,同时配置控制器507通过输出控制总线2007、输出地址总线2008和输出数据交换总线2009完成与所述并串转换电路204之间的数据交换;该状态下配置控制器507进行配置地址计数,并与预定最大计数次数进行比较;
所述状态634为完成过程,该状态标识所述FLASH存储器201的数据配置过程顺利完成。
图7所示为图2中并串转换电路的工作状态转移图,所述并串转换电路204的具体工作步骤为:
在配置时钟信号ICCLK和转换复位信号PS_RST的作用下,并串转换电路204进入状态701;进入状态701之后,在配置时钟信号ICCLK和输出控制总线2007中控制信号的作用下,进入状态702;进入状态702之后,若当前数据转换模式为将N位数据转换为1位串行数据输出,则进入状态703,若当前数据转换模式为将N位数据转换为8位并行数据输出,则进入状态707;进入状态703之后,在配置时钟信号ICCLK和输出控制总线2007中控制信号的作用下,工作步骤依次为:状态704和状态705;进入状态705之后,若取数计数次数未达到预定最大次数则返回状态703,否则进入状态706;进入状态707之后,在配置时钟信号ICCLK和输出控制总线2007中控制信号的作用下,工作步骤依次为:状态708和状态709;进入状态709之后,若取数计数次数未达到预定最大次数则返回状态707,否则进入状态710;所述取数计数次数是指将N位数据串行或者并行输出的计数次数,串行输出的一次计数过程是指从N位数据中取一位数据,并行输出的一次计数过程是指从N位数据中取八位数据;
所述状态701为并串转换电路204初始化过程;
所述状态702为将位宽为N的数据取入并串转换电路204的过程,N的取值可以在设计时自行定义,一般可以定义为8的整数倍,如64位、128位等,该数据一次并行取入并串转换电路204;
所述状态703为在将N位数据转换为1位串行数据输出模式下的数据准备过程;
所述状态704为在将N位数据转换为1位串行数据输出模式下的数据移位过程,该状态下并串转换电路204进行1位数据取数操作,并通过所述第一数据信号D[0]/BIST_DONE端串行输出所取的数据;
所述状态705为取数计数过程,该状态下并串转换电路204进行取数次数统计,并与预定最大次数N次进行比较;
所述状态706为在将N位数据转换为1位串行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为1位串行数据输出;
所述状态707为在将N位数据转换为8位并行数据输出模式下的数据准备过程;
所述状态708为在将N位数据转换为8位并行数据输出模式下的数据移位过程,该状态下并串转换电路204同时进行8位数据取数操作,并通过所述第一数据信号端D[0]/BIST_DONE及所述数据信号D[7:1]端并行输出所取的数据;
所述状态709为取数计数过程,该状态下并串转换电路204进行取数次数统计,并于预定最大次数进行比较,若N为8的整数倍,则该预定最大次数为N/8,若N不为8的整数倍,则该预定最大次数为N/8取整加1;
所述状态710为在将N位数据转换为8位并行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为8位并行数据输出。
图8所示为图2中BIST控制器的工作状态转移图,所述BIST控制器208的具体工作步骤为:
在内建自测试时钟信号b_clk和内建自测试复位信号b_rst的作用下,BIST控制器208进入状态801;进入状态801之后,在内建自测试时钟信号b_clk和内建自测试控制总线2010中控制信号的作用下,工作步骤依次为:状态802、状态803、状态804和状态805;进入状态805之后,BIST控制器208输出内建自测试标识信号并返回状态801;
所述状态801为BIST控制器208空闲状态;
所述状态802为BIST控制器208通过内建自测试控制总线2010触发所述FLASH控制器203对FLASH存储器201进行数据擦除的过程;
所述状态803为BIST控制器208通过内建自测试控制总线2010触发所述FLASH控制器203对FLASH存储器201进行数据写入的过程;
所述状态804为BIST控制器208通过内建自测试控制总线2010触发所述FLASH控制器203对FLASH存储器201进行数据读的过程;
所述状态805为内建自测试完成过程,该状态下BIST控制器208输出内建自测试标识信号bist。
基于以上设计,本发明所设计的用于FPGA 100配置的PROM 200电路可以通过JTAG指令进行控制,整个电路的写、读、擦除、配置和内建自测试操作都可以通过JTAG控制器202进行初始化,并且FPGA 100器件所需的配置数据是储存在FLASH存储器201中的。
图9所示为使用本发明PROM 200电路在边界扫描模式下配置FPGA的电路结构示意图,包括主PROM 200电路(First PROM)901、从PROM 200电路(Cascaded PROM)902和FPGA 100器件,具体连接方式为:
通过模式选择引脚MODE PINS将FPGA 100器件配置模式置于边界扫描模式下,将FPGA 100器件的配置数据输入信号DIN[0]、FPGA配置时钟信号CCLK、配置完成信号DONE、配置初始化信号INITn和编程使能信号PROGRAMn分别与主PROM 200电路(First PROM)901的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn相连,如果需要通过级联的方式进行容量扩充,则只需将从PROM 200电路(Cascaded PROM)902的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn分别与主PROM 200电路(First PROM)901的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第二控制使能信号CEO、输出使能复位信号OE/RSTn和配置信号CFn相连即可,最后通过主PROM200电路(First PROM)901、从PROM 200电路(Cascaded PROM)902和FPGA 100器件各自边界扫描电路的TAP接口将三个器件级联,形成从测试数据输入信号TDI到测试数据输出信号TDO的串行边界扫描通路。
图10所示为使用本发明PROM 200电路在串行模式下配置FPGA的电路结构示意图,包括主PROM 200电路(First PROM)1001、从PROM 200电路(Cascaded PROM)1002和FPGA 100器件,具体连接方式为:
通过模式选择引脚MODE PINS将FPGA 100器件配置模式置于串行模式下,将FPGA 100器件的配置数据输入信号DIN[0]、FPGA配置时钟信号CCLK、配置完成信号DONE、配置初始化信号INITn和编程使能信号PROGRAMn分别与主PROM 200电路(First PROM)1001的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn相连,如果需要通过级联的方式进行容量扩充,则只需将从PROM 200电路(Cascaded PROM)1002的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn分别与主PROM 200电路(First PROM)1001的第一数据信号D[0]/BIST_DONE、时钟信号CLK、第二控制使能信号CEO、输出使能复位信号OE/RSTn和配置信号CFn相连即可。
图11所示为使用本发明PROM 200电路在并行模式下配置FPGA的电路结构示意图,包括主PROM 200电路(First PROM)1101、从PROM 200电路(Cascaded PROM)1102和FPGA 100器件,具体连接方式为:
通过模式选择引脚MODE PINS将FPGA 100器件配置模式置于并行模式下,将FPGA 100器件的配置数据输入信号DIN[7:0]、FPGA配置时钟信号CCLK、配置完成信号DONE、配置初始化信号INITn和编程使能信号PROGRAMn分别与主PROM 200电路(First PROM)1101的D[7:0]、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn相连,如果需要通过级联的方式进行容量扩充,则只需将从PROM 200电路(Cascaded PROM)1102的D[7:0]、时钟信号CLK、第一控制使能信号CEn、输出使能复位信号OE/RSTn和配置信号CFn分别与主PROM 200电路(First PROM)1101的D[7:0]、时钟信号CLK、第二控制使能信号CEO、输出使能复位信号OE/RSTn和配置信号CFn相连即可。
基于以上设计,如果无需进行配置数据存储容量扩充,则无需选择从PROM 200电路(Cascaded PROM)进行级联;如果需要进行配置数据存储容量扩充,则只需特别关注从PROM 200电路(Cascaded PROM)的第一控制使能信号CEn和主PROM 200电路(First PROM)的第二控制使能信号CEO即可。
Claims (3)
1.一种用于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的数据配置过程顺利完成。
2.根据权利要求1所述的一种用于FPGA配置的PROM电路架构,其特征在于:所述并串转换电路204的具体工作方式为:
在配置时钟信号和转换复位信号的作用下,并串转换电路204进入状态701;进入状态701之后,在配置时钟信号和配置控制器507的控制信号的作 用下,进入状态702;进入状态702之后,若当前数据转换模式为将N位数据转换为1位串行数据输出,则进入状态703,若当前数据转换模式为将N位数据转换为8位并行数据输出,则进入状态707;进入状态703之后,在配置时钟信号和配置控制器507的控制信号的作用下,工作步骤依次为:状态704和状态705;进入状态705之后,若取数计数次数未达到预定最大次数则返回状态703,否则进入状态706;进入状态707之后,在配置时钟信号和配置控制器507的控制信号的作用下,工作步骤依次为:状态708和状态709;进入状态709之后,若取数计数次数未达到预定最大次数则返回状态707,否则进入状态710;所述取数计数次数是指将N位数据串行或者并行输出的计数次数,串行输出的一次计数过程是指从N位数据中取一位数据,并行输出的一次计数过程是指从N位数据中取八位数据;N为8的整数倍;
所述状态701为并串转换电路204初始化过程;
所述状态702为将位宽为N的数据取入并串转换电路204的过程,该数据一次并行取入并串转换电路204;
所述状态703为在将N位数据转换为1位串行数据输出模式下的数据准备过程;
所述状态704为在将N位数据转换为1位串行数据输出模式下的数据移位过程,该状态下并串转换电路204进行1位数据取数操作,同时串行输出所取的数据;
所述状态705为取数计数过程,该状态下并串转换电路204进行取数次数统计,并与预定最大次数N次进行比较;
所述状态706为在将N位数据转换为1位串行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为1位串行数据输出;
所述状态707为在将N位数据转换为8位并行数据输出模式下的数据准备过程;
所述状态708为在将N位数据转换为8位并行数据输出模式下的数据移位过程,该状态下并串转换电路204进行8位数据取数操作,同时并行输出所取的数据;
所述状态709为取数计数过程,该状态下并串转换电路204进行取数次数统计,并与 预定最大次数进行比较,若N为8的整数倍,则该预定最大次数为N/8,若N不为8的整数倍,则该预定最大次数为N/8取整加1;
所述状态710为在将N位数据转换为8位并行数据输出模式下的数据转换完成过程,该状态标识并串转换电路204顺利将所取位宽为N的数据转换为8位并行数据输出。
3.根据权利要求1所述的一种用于FPGA配置的PROM电路架构,其特征在于:所述BIST控制器208的具体工作步骤为:
在内建自测试时钟信号和内建自测试复位信号的作用下,BIST控制器208进入状态801;进入状态801之后,在内建自测试时钟信号和FLASH控制器203的控制信号作用下,工作步骤依次为:状态802、状态803、状态804和状态805;进入状态805之后,BIST控制器208输出内建自测试标识信号并返回状态801;所述内建自测试标识信号表示自测试成功或者不成功;
所述状态801为BIST控制器208空闲状态;
所述状态802为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据擦除的过程;
所述状态803为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据写的过程;
所述状态804为BIST控制器208控制所述FLASH控制器203对FLASH存储器201进行数据读的过程;
所述状态805为内建自测试完成过程,该状态下BIST控制器208输出内建自测试标识信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148171.XA CN102789815B (zh) | 2012-05-10 | 2012-05-10 | 一种用于fpga配置的prom电路架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148171.XA CN102789815B (zh) | 2012-05-10 | 2012-05-10 | 一种用于fpga配置的prom电路架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789815A CN102789815A (zh) | 2012-11-21 |
CN102789815B true CN102789815B (zh) | 2015-02-11 |
Family
ID=47155197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210148171.XA Active CN102789815B (zh) | 2012-05-10 | 2012-05-10 | 一种用于fpga配置的prom电路架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789815B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830159B (zh) * | 2014-11-27 | 2019-04-09 | 京微雅格(北京)科技有限公司 | 块存储器配置结构和配置方法 |
CN105306068B (zh) * | 2015-10-30 | 2018-10-02 | 南京理工大学 | 一种基于时钟调相的并串转换电路 |
CN105549990B (zh) * | 2015-12-07 | 2018-10-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种网络节点远程升级逻辑的多用户竞争控制方法 |
KR20180076571A (ko) * | 2016-12-28 | 2018-07-06 | 에스케이하이닉스 주식회사 | 반도체 장치 및 반도체 시스템 |
KR20180092476A (ko) * | 2017-02-09 | 2018-08-20 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN107908418B (zh) * | 2017-12-12 | 2021-03-30 | 上海赛治信息技术有限公司 | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 |
CN108874720A (zh) * | 2018-05-31 | 2018-11-23 | 中国兵器装备集团自动化研究所 | 一种高精度定时串口数据发送方法及系统 |
CN111338700B (zh) * | 2020-02-24 | 2022-11-25 | 杭州迪普科技股份有限公司 | 加载fpga版本的方法及装置、存储介质 |
-
2012
- 2012-05-10 CN CN201210148171.XA patent/CN102789815B/zh active Active
Non-Patent Citations (3)
Title |
---|
基于USB2.0的FPGA配置接口及实验开发评估板设计与实现;曹扬;《中国优秀硕士学位论文全文数据库》;20090313;第14-18页 * |
基于U盘和单片机的FPGA安全配置的设计与实现;周银祥;《中国优秀硕士学位论文全文数据库》;20101103;第20-32页 * |
张承畅等.基于XCF32P的多FPGA配置方案.《计算机工程》.2010,第36卷(第15期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102789815A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789815B (zh) | 一种用于fpga配置的prom电路架构 | |
CN101694512B (zh) | 测试电路和片上系统 | |
CN100585852C (zh) | 使用最少引脚而被测试的半导体器件、以及测试其的方法 | |
CN102970013B (zh) | 基于扫描链的芯片内部寄存器复位方法及复位控制装置 | |
US8331163B2 (en) | Latch based memory device | |
US8489780B2 (en) | Power saving in NAND flash memory | |
WO2007109613A1 (en) | Ultra low pin count interface for die testing | |
CN105550119A (zh) | 一种基于jtag协议的仿真装置 | |
CN103116551A (zh) | 应用于CLB总线的NorFLASH存储接口模块 | |
CN101126794B (zh) | 集成电路 | |
CN101436171A (zh) | 模块化通信控制系统 | |
CN104238957A (zh) | 串行外围接口控制器、串行外围接口快闪存储器及其存取方法和存取控制方法 | |
CN103903651A (zh) | 双线串行端口内建自测电路及其通讯方法 | |
CN100368818C (zh) | 一种芯片内建电可擦除存储器的测试模块及其测试方法 | |
CN203858630U (zh) | Pcie接口切换装置 | |
CN102723107A (zh) | 多个闪存的同时操作 | |
CN103135730A (zh) | 电源控制器及电源控制方法 | |
CN101788646A (zh) | Fpga配置器件的ate测试方法 | |
CN1215391C (zh) | 计算机系统 | |
CN101692214A (zh) | Cpu与fpga间高速间接存取装置和方法 | |
CN109656350A (zh) | 一种基于dft扫描链的低功耗实现方法 | |
CN108197063A (zh) | Fpga的spi接口主动串行配置方法及装置 | |
CN104616574A (zh) | 一种fpga可拆装且高速运行的验证开发板 | |
CN1982910A (zh) | 基于位数可选的EFlash串口测试方法 | |
CN102938642A (zh) | 基于扫描链的芯片内部寄存器的复位方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |