CN105224493A - 一种可通过用户输入输出端口完成fpga重配的配置电路 - Google Patents
一种可通过用户输入输出端口完成fpga重配的配置电路 Download PDFInfo
- Publication number
- CN105224493A CN105224493A CN201510634203.0A CN201510634203A CN105224493A CN 105224493 A CN105224493 A CN 105224493A CN 201510634203 A CN201510634203 A CN 201510634203A CN 105224493 A CN105224493 A CN 105224493A
- Authority
- CN
- China
- Prior art keywords
- configuration
- input
- signal
- interface circuit
- user
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
本发明提出了一种可通过用户输入输出端口完成FPGA重配的配置电路。通过在传统配置电路架构中增加用户配置接口电路,将用户输入输出端口(用户IOB)与配置电路连接,为用户输入输出端口能访问配置电路,并完成动态重配提供了条件,同时对配置电路中的总线接口电路作了改进,使其兼容用户输入输出端口并行配置、系统输入输出端口并行配置和串行配置的三种工作模式。本发明避免了配置电路对固定系统输入输出端口的依赖,使FPGA器件在置入用户系统后仍可改变其内部功能实现系统内可重构,增加了FPGA芯片的灵活性和可靠性。
Description
技术领域
本发明涉及一种FPGA的配置电路,特别是可通过用户输入输出端口完成对FPGA动态重配的配置电路。
背景技术
图1是FPGA的框图,输入输出端口(IOB)位于芯片的四周,可配置逻辑模块(CLB)在内部按阵列排布,块存储器(BRAM)穿插在可配置逻辑模块(CLB)中,还包括配置逻辑和配置接口。图1只显示了少量的输入输出模块(IOB)和可配置逻辑模块(CLB)以及块存储器(BRAM),只是作为示意用。FPGA还包含其它组成部分:遍布整个芯片连接各个模块的可编程互联结构和配置存储器阵列(CSRAM),这些在图1中没有具体图示。配置存储器阵列(CSRAM)中的SRAM配置位决定了FPGA的具体功能。
SRAM型FPGA芯片在配置前不具备任何逻辑功能,通过加载用户应用指定的配置数据进入内部的配置存储器阵列(CSRAM)来完成配置。配置是通过一组器件输入输出端口(IOB)来完成的,这些端口称为系统输入输出端口(系统IOB)。如图1中所示,这些端口通常集中在FPGA芯片的一个角,如配置接口电路附近。这些系统输入输出端口中有一些是专用的,有一些在配置完成后可以被重新用作通用目的的输入输出端口。
FPGA芯片在空间环境应用时,空间高能粒子穿过FPGA内部会引起电路节点上的瞬间电流,使配置存储单元发生单粒子翻转,某些区域的电路会产生局部功能错误、互联线短路或断路,使该区域的电路无法正常工作。FPGA芯片可以利用动态重配技术在不影响电路正常工作的情况下,对出错的逻辑进行局部重新配置,绕过损坏的电路继续工作,以适应恶劣的太空辐射环境,延长其使用寿命。而传统FPGA芯片中的配置电路只能接收来自固定几个系统输入输出端口的配置数据,这样一方面会限制用户使用时在布局布线方面的灵活性,另一方面总是通过少数的固定系统输入输出端口对FPGA进行海量的读写动作,不利于资源的充分利用、影响器件的可靠性。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供一种可通过用户输入输出端口完成FPGA重配的配置电路,避免了配置电路对固定系统输入输出端口的依赖,增加了FPGA芯片的灵活性和可靠性。
本发明的技术方案是:一种可通过用户输入输出端口完成FPGA重配的配置电路,其特征在于:包括通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器、配置状态机和配置存储器阵列;
通用配置接口电路接收用户通过系统输入输出端口输入的通用配置控制信号、时钟信号及数据信号,输出给总线接口电路;所述通用配置控制信号包括片选信号、写使能信号和模式选择信号M0、M1、M2;
用户配置接口电路在FPGA重配时,接收用户通过任意用户输入输出端口输入的用户配置控制信号、时钟信号及数据信号,在配置存储器阵列的控制下将接收的数据进行选通并输出给总线接口电路;所述用户配置控制信号包括片选信号和写使能信号;
总线接口电路在配置时接收通用配置接口电路输入的数据信号,在重配时接收通用配置接口电路或用户配置接口电路输入的数据信号,并在配置存储器阵列和配置状态机的控制下对接收的信号进行选通,然后将选通后的信号转化为32位的配置数据IDB[31:0]输出给配置总线;
配置总线将接收的32位配置数据输出给配置寄存器;
配置寄存器解析配置数据中的地址信息,根据解析出的地址信息将该配置数据写入到配置存储器阵列相应的地址位;
配置状态机用于控制通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器和配置存储器阵列的工作时序,以及控制通用配置接口电路或用户配置接口电路的数据选通;
配置存储器阵列接收配置寄存器写入的配置数据,控制用户配置接口电路和总线接口电路的数据选通;
所述数据信号包括配置地址信息和配置数据信息。
用户配置接口电路包括11个32选1多路选择器MUX32、11个半锁存器HalfLatch以及11个缓冲器buffer;每个MUX32的输入端与用户输入输出端口连接,输出端通过一个半锁存器HalfLatch与一个缓冲器buffer连接,缓冲器buffer的输出与总线接口电路连接,每个MUX32的选择控制端与配置存储器阵列的SRAM单元连接;所述用户配置接口电路在配置存储器阵列SRAM单元的控制下将来自用户输入输出端口的输入选通输出,其中8路接收用户通过用户输入输出端口输入的数据信号,经过选通后作为FPGA的重配数据输出给总线接口电路,另外3路分别接收用户通过用户输入输出端口输入的用户配置控制信号和时钟信号,经过选通后分别作为FPGA的配置控制信号和时钟信号输出给总线接口电路,所述用户配置控制信号包括片选信号和写使能信号。
总线接口电路包括数据传输模块和控制模块;
数据传输模块包括第一二选一多路选择器组、第二二选一多路选择器组、32个二输入与非门以及32个寄存器,第一二选一多路选择器组包括9个二选一多路选择器MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10,第二二选一多路选择器组包括32个二选一多路选择器MX11、MX12、MX13、MX14、MX15、MX16、MX17、MX18、MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、MX40、MX41、MX42;32个寄存器记为R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31、R32;
第一二选一多路选择器组MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10的选择控制端由控制模块控制;MX1、MX2、MX3、MX4、MX5、MX6、MX7和MX8的0输入端接收通用配置接口电路输出的数据信号,1输入端接收用户配置接口电路输出的数据信号,在控制模块控制下向第二二选一多路选择器组中的MX12、MX13、MX14、MX15、MX16、MX17和MX18输出选通后的数据信号,MX10的两个输入端分别接收通用配置接口电路和用户配置接口电路输出的时钟信号,在控制模块控制下向32个寄存器的时钟端输出选通后的时钟信号;
第二二选一多路选择器组32个二选一多路选择器的选择控制端由控制模块控制,用于对输入数据进行选通;32个二选一多路选择器的输出分别与32个二输入与非门的一个输入端连接,32个二输入与非门的另一个输入端由控制模块控制,以决定总线接口电路是否使能工作,32个二输入与非门的输出分别与32个寄存器的数据输入端连接,32个寄存器将接收的信号转化为32位的配置数据IDB[31:0]输出给配置总线;M11的两个输入端分别接收通用配置接口电路输出的串行数据信号和MX1的输出,MX12、MX13、MX14、MX15、MX16、MX17和MX18的0输入端分别连接寄存器R1、R2、R3、R4、R5、R6、R7的输出,1输入端分别连接MX2、MX3、MX4、MX5、MX6、MX7、MX8的输出,MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、MX40、MX41、MX42的0输入端分别连接寄存器R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31的输出,1输入端分别连接寄存器R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24的输出。
所述控制模块包括接口选择模块、串并选择模块和使能控制模块;
接口选择模块包含二输入与门AND1、二输入与门AND2、反相器IV1以及反相器IV2;反相器IV1的输入端接收来自配置状态机的Persist信号,反相器IV1的输出端与二输入与门AND1的一个输入端相连;反相器IV2的输入端与配置存储器阵列中的SRAM单元相连,反相器IV2的输出端与二输入与门AND2的一个输入端相连;二输入与门AND2的另一个输入端接收来自配置状态机的启动完成信号,二输入与门AND2的输出端与二输入与门AND1的另一个输入端相连;二输入与门AND1的输出端输出控制信号UserISel,该控制信号UserISel用于控制数据传输模块中第一二选一多路选择器组MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10的选择控制端以及串并选择模块和使能控制模块;
串并选择模块包含二输入与非门NAND1、二输入与非门NAND2、异或门XOR1和反相器IV3;异或门XOR1的两个输入端分别接收通用配置接口电路的模式选择信号M0和M2,异或门的输出端与二输入与非门NAND1的一个输入端相连;二输入与非门NAND1的另一个输入端接收通用配置接口电路的模式选择信号M1,二输入与非门NAND1的输出端与二输入与非门NAND2的一个输入端相连;反相器IV3的输入端接收接口选择模块的输出信号UserISel,反相器IV3的输出端与二输入与非门NAND2的另一个输入端相连;二输入与非门NAND2的输出端输出控制信号Paral,该控制信号用于控制数据传输模块中第二二选一多路选择器组32个二选一多路选择器的选择控制端;
使能控制模块包含反相器IV4、反相器IV5、反相器IV6、反相器IV7、二选一多路选择器MX61、二选一多路选择器MX62和二输入与门AND3;反相器IV4的输入端接收来自通用配置接口电路的片选信号,反相器IV4的输出端与二选一多路选择器MX61的0输入端相连;反相器IV5的输入端接收来自用户配置接口电路的片选信号,反相器IV5的输出端与二选一多路选择器MX61的1输入端相连;反相器IV6的输入端接收来自通用配置接口电路的写使能信号,反相器IV6的输出端与二选一多路选择器MX62的0输入端相连;反相器IV7的输入端接收来自用户配置接口电路的写使能信号,反相器IV7的输出端与二选一多路选择器MX62的1输入端相连;二选一多路选择器MX61和二选一多路选择器MX62的选择控制端与接口选择模块的输出信号UserISel相连,二选一多路选择器MX61和二选一多路选择器MX62的输出端连接二输入与门AND3的两个输入端,二输入与门AND3的输出端输出控制信号EN,该控制信号用于控制数据传输模块中每个二输入与非门的一个输入端。
与现有技术相比,本发明具有如下有益效果:
(1)本发明通过在传统配置电路架构中增加用户配置接口电路,将用户输入输出端口(用户IOB)与配置电路连接,为用户输入输出端口能访问配置电路并完成动态重配提供了条件,使FPGA器件在置入用户系统后仍可改变其内部功能实现系统内可重构,具有很强的灵活性和可靠性,可很好的应用于航天系统中,适应恶劣的太空辐射环境。
(2)本发明中的用户配置接口电路受FPGA中配置存储器阵列中的SRAM单元控制,而SRAM单元具有可以在线不限次地重新写的特点,这样用户配置接口电路可以多次反复重新编程,提高了用户应用的灵活性;
(3)本发明中的总线接口电路采用二选一多路选择器和32个寄存器,以及简单有效的控制电路,实现了兼容系统输入输出端口并行配置、系统输入输出端口串行配置、用户输入输出端口并行配置三种工作模式,这种用户配置接口和通用配置接口共用总线接口电路的形式占用的电路资源较少,节省了FPGA芯片在物理实现时的版图面积。
附图说明
图1为现场可编程门阵列FPGA的整体框图;
图2为本发明配置电路的模块图;
图3为本发明所提出的用户配置接口电路示意图;
图4为多路选择器MUX32的一种具体实现方式;
图5为本发明所提出的总线接口电路的数据传输模块示意图;
图6为总线接口电路控制模块示意图,其中(a)为接口选择模块示意图,(b)为串并选择模块示意图,(c)为使能控制模块。
具体实施方式
本发明在传统配置结构的基础上增加了用户配置接口电路,以及对传统配置电路中的总线接口电路作出改进,使得FPGA芯片中的配置电路可以接收来自用户输入输出端口的配置数据,由于FPGA芯片中用户输入输出端口远多于系统输入输出端口,用户在对FPGA芯片进行重配时可以任意选择用户输入输出端口作为配置端口,这种可选择可重配的特性不仅提高了配置方式的灵活性,资源的充分利用,并且为FPGA芯片在宇航辐射应用环境下规避损坏模块的需求提供了硬件基础。
本发明可通过用户输入输出端口完成FPGA重配的配置电路如图2所示。包括通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器、配置状态机和配置存储器阵列;
通用配置接口电路接收用户通过系统输入输出端口输入的通用配置控制信号、时钟信号及数据信号,输出给总线接口电路;所述通用配置控制信号包括片选信号写使能信号和模式选择信号M0、M1、M2;
用户配置接口电路在FPGA重配时,接收用户通过任意用户输入输出端口输入的用户配置控制信号、时钟信号及数据信号,输出给总线接口电路;所述用户配置控制信号包括片选信号和写使能信号
总线接口电路在配置时接收通用配置接口电路输入的数据信号,在重配时接收通用配置接口电路或用户配置接口电路输入的数据信号,将接收的信号转化为32位的配置数据IDB[31:0]输出给配置总线;配置总线将接收的32位配置数据输出给配置寄存器;配置寄存器解析配置数据中的地址信息,根据解析出的地址信息将该配置数据写入到配置存储器阵列相应的地址位;配置状态机用于控制通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器和配置存储器阵列的工作时序,以及控制通用配置接口电路或用户配置接口电路的数据选通;
配置存储器阵列接收配置寄存器写入的配置数据,控制用户配置接口电路和总线接口电路的数据选通;
其中数据信号包括配置地址信息和配置数据信息。
用户配置接口电路如图3所示,包括11个32选1多路选择器MUX32、11个半锁存器HalfLatch以及11个缓冲器buffer;每个MUX32的输入端与用户输入输出端口连接,输出端通过一个半锁存器HalfLatch与一个缓冲器buffer连接,缓冲器buffer的输出与总线接口电路连接,11个MUX32的输入标注为UserIO1,UserIO2,...UserIO32,多路选择器的选择控制端由配置存储器阵列中的SRAM单元控制,标注为S0,S1,…S11,这11个多路选择器MUX32在SRAM单元的控制下将来自用户输入输出端口的输入选通输出到标注为UserIO_D0,UserIO_D1,UserIO_D2,UserIO_D3,UserIO_D4,UserIO_D5,UserIO_D6,UserIO_D7,UserIO_CLK,UserIO_CS,UserIO_Write的输出端;其中的UserIO_D0,UserIO_D1,UserIO_D2,UserIO_D3,UserIO_D4,UserIO_D5,UserIO_D6,UserIO_D7为使用用户输入输出端口进行动态重配时的数据输入,UserIO_D0为最高有效位;其中的UserIO_CLK为使用用户输入输出端口进行动态重配时的时钟输入,其上升沿触发输入端的数据被寄存;UserIO_CS,UserIO_Write分别为使用用户输入输出端口进行动态重配时的片选信号和写使能信号。
图4为32选1多路选择器MUX32的一种具体实现方式,第一级由四组8选1多路选择器组成,这四组的输入来自不同的用户输入输出端口,而控制端均由S0~S7,8个SRAM位控制,在通过用户输入输出端口进行重配时,控制SRAM位S0~S7中只有一位为“1”,其他为“0”,每组选通一路送入第二级4选1多路选择器,由4个SRAM位S8~S11选通4选1多路选择器中的一路,最终输出到UserIO_D0信号线上。通过在用户输入输出端口(用户IOB)与配置电路的总线接口电路之间增加类似图3中这些——由SRAM单元控制的多路选择器——作为两者之间连接的“桥梁”,为用户输入输出端口能访问配置电路,并完成动态重配提供了初步条件。
本发明的另外一个重要内容在于对传统配置电路中的总线接口电路作了改进,改进后的总线接口电路如图5所示。
总线接口电路将来自接口电路的不同位宽的配置码流转化为32位的配置数据IDB[31:0],输出给配置总线。图6为图5中总线接口电路的控制逻辑,包括接口选择模块、串并选择模块和使能控制模块。
接口选择模块如图6中(a)所示,其中的反相器IV1接收来自配置状态机的Persist信号,输出给二输入与门AND1;反相器IV2受配置存储器阵列中的SRAM单元控制(S信号),所述SRAM单元用于控制是否接收用户配置接口电路输入的数据,反相器IV2的输出给二输入与门AND2;二输入与门AND2的另一个输入端接收来自配置状态机的启动完成信号EOS,二输入与门AND2的输出端与二输入与门AND1的另一个输入端相连;二输入与门AND1的输出端输出控制信号UserISel;
串并选择模块如图6中(b)所示,其中异或门XOR1的两个输入端分别接收通用配置接口电路的模式选择信号M0和M2,异或门的输出端与二输入与非门NAND1的一个输入端相连;二输入与非门NAND1的另一个输入端接收通用配置接口电路的模式选择信号M1,二输入与非门NAND1的输出端与二输入与非门NAND2的一个输入端相连;反相器IV3的输入端接收图6(a)中接口选择模块的输出信号UserISel,反相器IV3的输出端与二输入与非门NAND2的另一个输入端相连;二输入与非门NAND2的输出端输出控制信号Paral。
使能控制模块如图6中(c)所示,其中反相器IV4的输入端接收来自通用配置接口电路的片选信号,反相器IV4的输出端与二选一多路选择器MX61的0输入端相连;反相器IV5的输入端接收来自用户配置接口电路的片选信号,反相器IV5的输出端与二选一多路选择器MX61的1输入端相连;反相器IV6的输入端接收来自通用配置接口电路的写使能信号,反相器IV6的输出端与二选一多路选择器MX62的0输入端相连;反相器IV7的输入端接收来自用户配置接口电路的写使能信号,反相器IV7的输出端与二选一多路选择器MX62的1输入端相连;二选一多路选择器MX61和二选一多路选择器MX62的选择控制端与图6中(a)的接口选择模块的输出信号UserISel相连,二选一多路选择器MX61和二选一多路选择器MX62的输出端连接二输入与门AND3的两个输入端,二输入与门AND3的输出端输出控制信号EN。
总线接口电路包含第一二选一多路选择器组、第二二选一多路选择器组、32个二输入与非门以及32个寄存器,第一二选一多路选择器组包括9个二选一多路选择器,分别记为MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8、MX10,这些二选一多路选择器的0输入端与通用配置接口电路相连,接收来自系统输入输出端口的信号,依次对应为D7_PAD、D6_PAD、D5_PAD、D4_PAD、D3_PAD、D2_PAD、D1_PAD、D0_PAD和CCLK_PAD,这些二选一多路选择器的1输入端与用户配置接口电路的32选1多路选择器MUX32的输出相连,依次对应为UserIO_D7、UserIO_D6、UserIO_D5、UserIO_D4、UserIO_D3、UserIO_D2、UserIO_D1、UserIO_D0和UserIO_CCLK,第一二选一多路选择器组的选择控制端受图6中(a)的接口选择模块的输出信号UserISel控制,这个信号决定选择使用系统输入输出端口还是用户输入输出端口输入的数据信号;第二二选一多路选择器组包括32个二选一多路选择器,记为MX11、MX12、MX13、MX14、MX15、MX16、MX17、MX18、MX19,......MX40、MX41、MX42;这32个二选一多路选择器的输出分别送到32个与非门的一个输入端,而这32个与非门的另外一个输入端连接在一起受图6的(c)中使能控制模块的输出信号EN控制,用于决定总线接口电路是否使能工作;32个与非门的输出端分别与32个寄存器的数据输入端相连,这32个寄存器依次标注为R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、......R30、R31、R32,这32个寄存器的时钟控制端与第一组二选一多路器中的M10的输出相连,32个寄存器的输出依次标注为IDB<0>、IDB<1>、IDB<2>、IDB<3>、IDB<4>、IDB<5>、IDB<6>、IDB<7>、IDB<8>、IDB<9>、IDB<10>、......IDB<29>、IDB<30>、IDB<31>;第二二选一多路选择器组中32个二选一多路选择器中的前8个,即MX11、MX12、MX13、MX14、MX15、MX16、MX17、MX18的0输入端分别连接D0_PAD、IDB<0>、IDB<1>、IDB<2>、IDB<3>、IDB<4>、IDB<5>、IDB<6>,1输入端分别连接第一二选一多路选择器组MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8的输出,第二二选一多路选择器组中余下的24个二选一多路选择器即M19、M20、M21、M22、M23、M24、M25、M26、M27、M28、M29、M30、M31、M32、M33、M34、M35、M36、M37、M38、M39、M40、M41、M42的0输入端分别连接IDB<7>、IDB<8>、IDB<9>、IDB<10>、IDB<11>、IDB<12>、IDB<13>、IDB<14>、IDB<15>、IDB<16>、IDB<17>、IDB<18>、IDB<19>、IDB<20>、IDB<21>、IDB<22>、IDB<23>、IDB<24>、IDB<25>、IDB<26>、IDB<27>、IDB<28>、IDB<29>、IDB<30>,这24个二选一多路选择器的1输入端分别连接IDB<0>、IDB<1>、IDB<2>、IDB<3>、IDB<4>、IDB<5>、IDB<6>、IDB<7>、IDB<8>、IDB<9>、IDB<10>、IDB<11>、IDB<12>、IDB<13>、IDB<14>、IDB<15>、IDB<16>、IDB<17>、IDB<18>、IDB<19>、IDB<20>、IDB<21>、IDB<22>、IDB<23>,第二二选一多路选择器组的选择控制端受图6中(b)的串并选择模块的输出信号Paral控制,在串行配置模式时选通0输入端,在并行配置模式时选通1输入端。
图5中的总线接口电路在图6电路的控制下可兼容三种工作模式,系统输入输出端口的并行配置模式、系统输入输出端口的串行配置模式和用户输入输出端口的并行配置模式,用户可根据自身需求选择其中的一种完成对FPGA的配置。下面将结合图6中的控制电路对图5中总线接口电路在每种工作模式下的详细情况做出介绍:
一、系统输入输出端口(系统IOB)使能的8数据位宽并行配置
根据图6(a)中的控制电路我们可以看出,Persist信号使能(Persist=1)时,UserISel信号为0。控制信号Persist的意义在于维持系统输入输出端口的配置功能。UserISel信号作用在图5中二选一多路选择器MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8、MX10的控制端上,其为0时多路选择器的0输入端选通,上述9个二选一多路器会将来自系统输入输出端口(系统IOB)D0_PAD~D7_PAD及CCLK_PAD的信号输出。此时若图6中(b)的配置模式选择信号M1为1并且M0与M2互异,产生的并行信号Paral为1。图5中32个二选一多路选择器MX11、MX12、MX13、MX14......MX40、MX41、MX42的1输入端选通。图6中(c)的电路在UserISel信号为0时,输入端的/CS_PAD和/Write_PAD信号起作用,在FPGA配置期间,来自系统输入输出端口的/CS_PAD片选信号和/Write_PAD写使能信号均为0,因此输出的EN信号为1。
在这种工作模式下图5中总线接口电路接收来自系统输入输出端口D0_PAD~D7_PAD的8位宽的配置数据,在系统时钟端口CCLK_PAD的第一个上升沿触发寄存器组将D0_PAD~D7_PAD上的8位数据存储并输出到IDB<7>~IDB<0>端;IDB<7>~IDB<0>端经过二选一多路器MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26的选通,又分别作为寄存器R9~R16的输入,在CCLK_PAD的第二个上升沿触发寄存器组将IDB<7>~IDB<0>端的数据存储并输出到IDB<15>~IDB<8>端;同样的在CCLK_PAD的第三个上升沿触发寄存器组将IDB<15>~IDB<8>端的数据存储并输出到IDB<23>~IDB<16>端;在CCLK_PAD的第四个上升沿触发寄存器组将IDB<23>~IDB<16>端的数据存储并输出到IDB<31>~IDB<24>端。这样总线接口电路通过四个时钟周期完成了将来自系统输入输出端口8位宽的配置码流转化为32位的配置数据IDB[31:0],输出给配置总线的工作。
二、用户输入输出端口(用户IOB)使能的8数据位宽并行配置
总线接口电路的这种工作状态同样是受图6中电路的控制。Persist信号不使能(Persist=0)时,并且来自配置SRAM的信号Sx为0,启动完成信号EOS为1时,UserISel信号为1。此时图5中二选一多路选择器MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8、MX10的1输入端选通,这9个多路选择器的输出为来自用户输入输出端口(用户IOB)UserIO_D0~UserIO_D7及UserIO_CCLK的信号。UserISel信号为1时图6中(b)的并行信号Paral也为1,图5中第二二选一多路选择器组中MX11、MX12、MX13、MX14......MX40、MX41、MX42同样也是1输入端选通。图6中(c)的电路在UserISel信号为1时,输入端的UserIO_CS和UserIO_Write信号起作用,在FPGA配置期间,来自用户输入输出端口的片选信号和写使能信号也均为0,输出的EN信号为1。
在这种工作模式下总线接口电路接收来自用户输入输出端口UserIO_D0~UserIO_D7的8位宽的配置数据,在用户时钟端口UserIO_CCLK的第一个上升沿触发寄存器组将UserIO_D0~UserIO_D7上的8位数据存储并输出到IDB<7>~IDB<0>端;IDB<7>~IDB<0>端经过二选一多路器MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26的选通,又分别作为寄存器R9~R16的输入,在UserIO_CCLK的第二个上升沿触发寄存器组将IDB<7>~IDB<0>端的数据存储并输出到IDB<15>~IDB<8>端;同样的在UserIO_CCLK的第三个上升沿触发寄存器组将IDB<15>~IDB<8>端的数据存储并输出到IDB<23>~IDB<16>端;在UserIO_CCLK的第四个上升沿触发寄存器组将IDB<23>~IDB<16>端的数据存储并输出到IDB<31>~IDB<24>端。这样总线接口电路完成了将来自用户输入输出端口8位宽的配置码流转化为32位的配置数据IDB[31:0],输出给配置总线的工作。
UserIO_D0~UserIO_D7、UserIO_CCLK、UserIO_CS和UserIO_Write可以为图1中用户输入输出模块(IOB)中的任何一个,而不必再通过几个固定的系统输入输出模块(系统IOB)进行FPGA芯片的重配置工作。这种可选择性不仅提高了配置方式的灵活性,资源的充分利用,更重要的是在空间应用中可以规避对固定资源的依赖。
三、系统输入输出端口(系统IOB)使能的串行配置
图5中总线接口电路还兼容一种串行的配置模式。此时图6(b)中UserISel信号为0,配置模式选择信号M1为1、M0与M2逻辑相同,或者配置模式选择信号M1为0时,产生的Paral信号为0。此时图5中第二二选一多路选择器组中MX11、MX12、MX13、MX14......MX40、MX41、MX42的0输入端选通。这样D0_PAD端的配置数据在第一个时钟周期被寄存器R1寄存并输出到IDB<0>信号线上,IDB<0>信号又通过二选一多路选择器MX12的0端输出到寄存器R2的数据端,并在第二个时钟周期被寄存器R2寄存并输出,在随后的每个时钟上升沿依次被寄存器R3、R4、R5、......R32寄存并输出。这样总线接口电路就将来自系统输入输出端口1位宽的配置码流转化为32位的配置数据IDB[31:0],输出给配置总线。
本说明书中未作详细描述的内容属本领域专业技术人员的公知技术。
Claims (4)
1.一种可通过用户输入输出端口完成FPGA重配的配置电路,其特征在于:包括通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器、配置状态机和配置存储器阵列;
通用配置接口电路接收用户通过系统输入输出端口输入的通用配置控制信号、时钟信号及数据信号,输出给总线接口电路;所述通用配置控制信号包括片选信号、写使能信号和模式选择信号M0、M1、M2;
用户配置接口电路在FPGA重配时,接收用户通过任意用户输入输出端口输入的用户配置控制信号、时钟信号及数据信号,在配置存储器阵列的控制下将接收的数据进行选通并输出给总线接口电路;所述用户配置控制信号包括片选信号和写使能信号;
总线接口电路在配置时接收通用配置接口电路输入的数据信号,在重配时接收通用配置接口电路或用户配置接口电路输入的数据信号,并在配置存储器阵列和配置状态机的控制下对接收的信号进行选通,然后将选通后的信号转化为32位的配置数据IDB[31:0]输出给配置总线;
配置总线将接收的32位配置数据输出给配置寄存器;
配置寄存器解析配置数据中的地址信息,根据解析出的地址信息将该配置数据写入到配置存储器阵列相应的地址位;
配置状态机用于控制通用配置接口电路、用户配置接口电路、总线接口电路、配置总线、配置寄存器和配置存储器阵列的工作时序,以及控制通用配置接口电路或用户配置接口电路的数据选通;
配置存储器阵列接收配置寄存器写入的配置数据,控制用户配置接口电路和总线接口电路的数据选通;
所述数据信号包括配置地址信息和配置数据信息。
2.根据权利要求1所述的一种可通过用户输入输出端口完成FPGA重配的配置电路,其特征在于:用户配置接口电路包括11个32选1多路选择器MUX32、11个半锁存器HalfLatch以及11个缓冲器buffer;每个MUX32的输入端与用户输入输出端口连接,输出端通过一个半锁存器HalfLatch与一个缓冲器buffer连接,缓冲器buffer的输出与总线接口电路连接,每个MUX32的选择控制端与配置存储器阵列的SRAM单元连接;所述用户配置接口电路在配置存储器阵列SRAM单元的控制下将来自用户输入输出端口的输入选通输出,其中8路接收用户通过用户输入输出端口输入的数据信号,经过选通后作为FPGA的重配数据输出给总线接口电路,另外3路分别接收用户通过用户输入输出端口输入的用户配置控制信号和时钟信号,经过选通后分别作为FPGA的配置控制信号和时钟信号输出给总线接口电路,所述用户配置控制信号包括片选信号和写使能信号。
3.根据权利要求1所述的一种可通过用户输入输出端口完成FPGA重配的配置电路,其特征在于:总线接口电路包括数据传输模块和控制模块;
数据传输模块包括第一二选一多路选择器组、第二二选一多路选择器组、32个二输入与非门以及32个寄存器,第一二选一多路选择器组包括9个二选一多路选择器MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10,第二二选一多路选择器组包括32个二选一多路选择器MX11、MX12、MX13、MX14、MX15、MX16、MX17、MX18、MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、MX40、MX41、MX42;32个寄存器记为R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31、R32;
第一二选一多路选择器组MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10的选择控制端由控制模块控制;MX1、MX2、MX3、MX4、MX5、MX6、MX7和MX8的0输入端接收通用配置接口电路输出的数据信号,1输入端接收用户配置接口电路输出的数据信号,在控制模块控制下向第二二选一多路选择器组中的MX12、MX13、MX14、MX15、MX16、MX17和MX18输出选通后的数据信号,MX10的两个输入端分别接收通用配置接口电路和用户配置接口电路输出的时钟信号,在控制模块控制下向32个寄存器的时钟端输出选通后的时钟信号;
第二二选一多路选择器组32个二选一多路选择器的选择控制端由控制模块控制,用于对输入数据进行选通;32个二选一多路选择器的输出分别与32个二输入与非门的一个输入端连接,32个二输入与非门的另一个输入端由控制模块控制,以决定总线接口电路是否使能工作,32个二输入与非门的输出分别与32个寄存器的数据输入端连接,32个寄存器将接收的信号转化为32位的配置数据IDB[31:0]输出给配置总线;M11的两个输入端分别接收通用配置接口电路输出的串行数据信号和MX1的输出,MX12、MX13、MX14、MX15、MX16、MX17和MX18的0输入端分别连接寄存器R1、R2、R3、R4、R5、R6、R7的输出,1输入端分别连接MX2、MX3、MX4、MX5、MX6、MX7、MX8的输出,MX19、MX20、MX21、MX22、MX23、MX24、MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、MX40、MX41、MX42的0输入端分别连接寄存器R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31的输出,1输入端分别连接寄存器R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24的输出。
4.根据权利要求3所述的一种可通过用户输入输出端口完成FPGA重配的配置电路,其特征在于:所述控制模块包括接口选择模块、串并选择模块和使能控制模块;
接口选择模块包含二输入与门AND1、二输入与门AND2、反相器IV1以及反相器IV2;反相器IV1的输入端接收来自配置状态机的Persist信号,反相器IV1的输出端与二输入与门AND1的一个输入端相连;反相器IV2的输入端与配置存储器阵列中的SRAM单元相连,反相器IV2的输出端与二输入与门AND2的一个输入端相连;二输入与门AND2的另一个输入端接收来自配置状态机的启动完成信号,二输入与门AND2的输出端与二输入与门AND1的另一个输入端相连;二输入与门AND1的输出端输出控制信号UserISel,该控制信号UserISel用于控制数据传输模块中第一二选一多路选择器组MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10的选择控制端以及串并选择模块和使能控制模块;
串并选择模块包含二输入与非门NAND1、二输入与非门NAND2、异或门XOR1和反相器IV3;异或门XOR1的两个输入端分别接收通用配置接口电路的模式选择信号M0和M2,异或门的输出端与二输入与非门NAND1的一个输入端相连;二输入与非门NAND1的另一个输入端接收通用配置接口电路的模式选择信号M1,二输入与非门NAND1的输出端与二输入与非门NAND2的一个输入端相连;反相器IV3的输入端接收接口选择模块的输出信号UserISel,反相器IV3的输出端与二输入与非门NAND2的另一个输入端相连;二输入与非门NAND2的输出端输出控制信号Paral,该控制信号用于控制数据传输模块中第二二选一多路选择器组32个二选一多路选择器的选择控制端;
使能控制模块包含反相器IV4、反相器IV5、反相器IV6、反相器IV7、二选一多路选择器MX61、二选一多路选择器MX62和二输入与门AND3;反相器IV4的输入端接收来自通用配置接口电路的片选信号,反相器IV4的输出端与二选一多路选择器MX61的0输入端相连;反相器IV5的输入端接收来自用户配置接口电路的片选信号,反相器IV5的输出端与二选一多路选择器MX61的1输入端相连;反相器IV6的输入端接收来自通用配置接口电路的写使能信号,反相器IV6的输出端与二选一多路选择器MX62的0输入端相连;反相器IV7的输入端接收来自用户配置接口电路的写使能信号,反相器IV7的输出端与二选一多路选择器MX62的1输入端相连;二选一多路选择器MX61和二选一多路选择器MX62的选择控制端与接口选择模块的输出信号UserISel相连,二选一多路选择器MX61和二选一多路选择器MX62的输出端连接二输入与门AND3的两个输入端,二输入与门AND3的输出端输出控制信号EN,该控制信号用于控制数据传输模块中每个二输入与非门的一个输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510634203.0A CN105224493B (zh) | 2015-09-29 | 2015-09-29 | 一种可通过用户输入输出端口完成fpga重配的配置电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510634203.0A CN105224493B (zh) | 2015-09-29 | 2015-09-29 | 一种可通过用户输入输出端口完成fpga重配的配置电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224493A true CN105224493A (zh) | 2016-01-06 |
CN105224493B CN105224493B (zh) | 2018-01-19 |
Family
ID=54993473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510634203.0A Active CN105224493B (zh) | 2015-09-29 | 2015-09-29 | 一种可通过用户输入输出端口完成fpga重配的配置电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224493B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105702296A (zh) * | 2016-03-07 | 2016-06-22 | 北京时代民芯科技有限公司 | 一种单粒子加固fpga的用户寄存器状态捕获电路 |
CN108227607A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种简化电路板配置电路的方法 |
CN110515891A (zh) * | 2019-10-22 | 2019-11-29 | 广东高云半导体科技股份有限公司 | 一种fpga芯片及其配置方法 |
CN111599390A (zh) * | 2020-05-25 | 2020-08-28 | 无锡中微亿芯有限公司 | 基于动态可重配技术的块状存储单元 |
CN112213967A (zh) * | 2019-07-11 | 2021-01-12 | 深圳市航顺芯片技术研发有限公司 | 一种微控制器串口接收发送引脚自动检测系统 |
CN112954492A (zh) * | 2021-01-26 | 2021-06-11 | 北京源启先进微电子有限公司 | 应用于多路选择器的选择装置及多路选择器 |
CN113035253A (zh) * | 2021-03-11 | 2021-06-25 | 厦门智多晶科技有限公司 | 一种集成于fpga的动态多启动电路与fpga |
CN116187241A (zh) * | 2023-05-04 | 2023-05-30 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga配置电路架构、配置方法、存储介质和电子设备 |
CN117318734A (zh) * | 2023-11-27 | 2023-12-29 | 芯来智融半导体科技(上海)有限公司 | 芯片信号发射电路及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262596B1 (en) * | 1999-04-05 | 2001-07-17 | Xilinx, Inc. | Configuration bus interface circuit for FPGAS |
CN101673101A (zh) * | 2009-09-27 | 2010-03-17 | 电子科技大学 | 一种在线编程的fpga可重构装置 |
CN102361451A (zh) * | 2011-09-06 | 2012-02-22 | 北京时代民芯科技有限公司 | 一种fpga配置电路架构 |
CN103677916A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于fpga的在线重配置系统及方法 |
CN104731744A (zh) * | 2015-03-13 | 2015-06-24 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于SiP的可重构嵌入式计算机模块 |
-
2015
- 2015-09-29 CN CN201510634203.0A patent/CN105224493B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262596B1 (en) * | 1999-04-05 | 2001-07-17 | Xilinx, Inc. | Configuration bus interface circuit for FPGAS |
CN101673101A (zh) * | 2009-09-27 | 2010-03-17 | 电子科技大学 | 一种在线编程的fpga可重构装置 |
CN102361451A (zh) * | 2011-09-06 | 2012-02-22 | 北京时代民芯科技有限公司 | 一种fpga配置电路架构 |
CN103677916A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于fpga的在线重配置系统及方法 |
CN104731744A (zh) * | 2015-03-13 | 2015-06-24 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于SiP的可重构嵌入式计算机模块 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105702296A (zh) * | 2016-03-07 | 2016-06-22 | 北京时代民芯科技有限公司 | 一种单粒子加固fpga的用户寄存器状态捕获电路 |
CN108227607A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种简化电路板配置电路的方法 |
CN108227607B (zh) * | 2016-12-14 | 2020-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种简化电路板配置电路的方法 |
CN112213967B (zh) * | 2019-07-11 | 2021-07-02 | 深圳市航顺芯片技术研发有限公司 | 一种微控制器串口接收发送引脚自动检测系统 |
CN112213967A (zh) * | 2019-07-11 | 2021-01-12 | 深圳市航顺芯片技术研发有限公司 | 一种微控制器串口接收发送引脚自动检测系统 |
CN110515891A (zh) * | 2019-10-22 | 2019-11-29 | 广东高云半导体科技股份有限公司 | 一种fpga芯片及其配置方法 |
CN111599390A (zh) * | 2020-05-25 | 2020-08-28 | 无锡中微亿芯有限公司 | 基于动态可重配技术的块状存储单元 |
CN111599390B (zh) * | 2020-05-25 | 2022-02-18 | 无锡中微亿芯有限公司 | 基于动态可重配技术的块状存储单元 |
CN112954492A (zh) * | 2021-01-26 | 2021-06-11 | 北京源启先进微电子有限公司 | 应用于多路选择器的选择装置及多路选择器 |
CN112954492B (zh) * | 2021-01-26 | 2022-03-22 | 北京源启先进微电子有限公司 | 应用于多路选择器的选择装置及多路选择器 |
CN113035253A (zh) * | 2021-03-11 | 2021-06-25 | 厦门智多晶科技有限公司 | 一种集成于fpga的动态多启动电路与fpga |
CN113035253B (zh) * | 2021-03-11 | 2023-10-27 | 厦门智多晶科技有限公司 | 一种集成于fpga的动态多启动电路与fpga |
CN116187241A (zh) * | 2023-05-04 | 2023-05-30 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga配置电路架构、配置方法、存储介质和电子设备 |
CN116187241B (zh) * | 2023-05-04 | 2023-08-11 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga配置电路架构、配置方法、存储介质和电子设备 |
CN117318734A (zh) * | 2023-11-27 | 2023-12-29 | 芯来智融半导体科技(上海)有限公司 | 芯片信号发射电路及方法 |
CN117318734B (zh) * | 2023-11-27 | 2024-02-02 | 芯来智融半导体科技(上海)有限公司 | 芯片信号发射电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105224493B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224493A (zh) | 一种可通过用户输入输出端口完成fpga重配的配置电路 | |
CN109495272A (zh) | 一种基于忆阻器的强puf电路 | |
CN105159695B (zh) | 一种基于非易失控制的射频模块初始化系统及方法 | |
US20160274816A1 (en) | Programmable Logic Device With On-Chip User Non-Volatile Memory | |
CN105468547A (zh) | 一种基于axi总线的便捷可配置帧数据存取控制系统 | |
CN105761746B (zh) | 一种单粒子加固fpga分布式ram的写入时序匹配电路 | |
CN108228513A (zh) | 一种基于fpga架构的智能串口通讯模块及控制方法 | |
CN103427844B (zh) | 一种基于gpu和cpu混合平台的高速无损数据压缩方法 | |
CN102945217A (zh) | 一种基于三模冗余的星载综合电子系统 | |
CN105468568A (zh) | 高效的粗粒度可重构计算系统 | |
CN205450909U (zh) | 一种基于fpga实现的bmc | |
CN103310841B (zh) | 非易失fpga编程点电路 | |
CN103886916B (zh) | 输入位宽可伸缩的编码/编解码存储系统 | |
CN204374981U (zh) | 基于计算机验证码信息处理技术的智能处理设备 | |
CN105356875B (zh) | 一种单粒子加固fpga的查找表电路 | |
CN110727543A (zh) | 一种商用非对称密码算法硬件模块 | |
CN102376348A (zh) | 一种低功耗的动态随机存储器 | |
US9026747B2 (en) | Memory device with a logical-to-physical bank mapping cache | |
CN107783726A (zh) | 存储系统和存储系统中传输信号的方法 | |
CN101783165A (zh) | 一种半导体存储器、半导体存储器系统及其对应编程方法 | |
CN105741872B (zh) | 适用于宇航用fpga的加固配置存储器阵列及配置方法 | |
CN103426452B (zh) | 一种存储器级联以及封装方法及其装置 | |
CN103226977B (zh) | 基于fpga的快速nand flash控制器及其控制方法 | |
CN203909724U (zh) | 一种block ram级联实现结构 | |
CN105930287B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |