可编程指令集计算机集成电路的制作方法

文档序号:6563391阅读:298来源:国知局
专利名称:可编程指令集计算机集成电路的制作方法
技术领域
本发明涉及到 一种可编程集成电路,特别是涉及到 一种在正常运行中可 动态改变逻辑电路的集成电路。二、 背景技术现在AUera公司的FPGA和Xiiinx公司的FPGA (现场可编程集成电路),利 用SRAM(静态存储器)进行配置,在重新配置FPGA的逻辑时,FPGA停止工作, 待完成所有电路配置,经校验通过后,FPGA按新的配置逻辑进行工作。Altera公司的FPGA逻辑部分采用嵌入式阵列块(EAB),可参照王金明等 编著的《数字系统设计与Verilog HDL》,电子工业出版社2002年1月第一版 第74-76页。图l为现有技术,Altera公司的Clone的FPGA的内部结构,101为输入/输 出控制块,102为PLL(可编程锁相环)模块,103为FPGA内部块状SRAM, 104为 EAB(嵌入式阵列块),各种功能模块之间利用通用或局部走线相连接,通 用或局部走线是可通过编程实现。注意Altera的Clone系列的FPGA中有两种SRAM:配置SRAM,该SRAM对 用户来说是不透明的,用户不能使用,FPGA的程序即配置在配置SRAM中。另 外一种为SRAM BLOCK (块状SRAM),供用户使用的。Xilinx公司的FPGA逻辑部分采用可配置逻辑块CLB (Configuration Logic Bloack配置逻辑块)是同步电路和组合电路的主要逻辑资源。具体的 说明见徐欣、于红旗等编著的《基于FPGA的嵌入式系统设计》,机械工业出 版社2005年1月第一版,第21-2 3页、第47-48页。孙航编著的《Xilinx可编 程逻辑器件的高级应用与设计技巧》,电子工业出版社2004年8月第一版第 22-26页。现有技术的配置电路以现有的Altera的配置电路予以说明,Altera有 下面几种方式对FPGA进行配置被动串行下栽方式,快速被动并行方式、被 动并行异步方式、被动并行同步方式、被动串行异步方式、JTAG方式。可 参考王诚等编著的《Altera FPGA/CPLD设计》基础篇,人民邮电出版社2005 年7月第一版。第187-213页,.Altera配置的过程(状态机)见图3,FPGA上电nSTATUS和CONF —DONE信号变低,所有的输入/输出引脚为高 阻,清除所有的配置SRAM中的信息。复位信号为低电平nSTATUS和CONF-DONE信号保持为低,清除所有SRAM 中的配置信号。配置SRAM信息nCONFIG或CONF —DONE为高电平,配置数据写入到FPGA的 配置SRAM中。初始化内部逻辑电路初始化,寄存器初始化,输入/输出初始化,输入 /输出驱动器有效。进入用户正常使用模式。Altera下栽状态机图见图3,本图取自王诚等编著的《Altera FPGA/CPLD 设计》基础篇,人民邮电出版社2005年7月第一版。第191页(书上的图是英 文的在附图中已翻译为中文)。三、发明内容1、新的定义名词(1) 动态配置时钟(DCCLK Dynamic Configuration Clock):在 本发明中增加了 一个动态配置电路时钟,该时钟可同步控制配 置控制电路的带^许输出端的同步D触发器。(2) 动态控制输出时钟在本发明中增加一个动态控制输出时钟, 该时钟同步控制所有的功能单元的带允许输出端的同步D触发 器。动态配置时钟和动态控制输出时钟可以是同一个,也可以 是不同的两个时钟。(3) 功能单元在动态可编程集成电路中,局部走线、通用走线、 嵌入式阵列块、可编程输入/输出块、SRAM块、数字信号处理 块、乘法器等配置后能完成一定功能的单元,我们称它为"功 能单元"。 (4) 配置单元在动态可编程集成电3各中,乂于每一个"功能单元" 均可以进行重新单独配置逻辑电路的功能,这些单元的配置电 路我们称它为"配置单元",配置单元由临时配置寄存器、允 许配置寄存器、配置控制电路、被配置SRAM组成。(5) 动态可编程集成电^各(DFPGA Dynamic Field-programmable Gate Array): —种现场可编程逻辑电i 各,其集成电^各正常运 行时可重新配置内部的部分"功能单元"的功能,并能保存中 间结果,其它部分仍能正常运行;或重新配置全部的"功能单 元",并保留中间结果的集成电路。2、 要解决的问题现有技术的不足现在的FPGA不能在FPGA正常工作时,更改可编程 集成电路的一部分电路,其它部分电路仍能正常工作。或更改FPGA的全 部电路,而上一次运行的结果仍能正常保存。本发明的目的是为了提供一种可在正常工作时更改可编程集成电路 的逻辑电路。可更改可编程集成电路的一部分电路,也可更改可编程集 成电路的全部电路。本更改部分动态配置时钟的下一周期就会正常工作。3、 技术方案如图2所示201为输入/输出控制块,202为PLL ( PLL模块),203为块 状SRAM, 204为EAB (嵌入式阵列块),以上与现有技术完全相同。3. 1动态可编程集成电路配置状态机本发明"动态可编程集成电路"的配置过程状态机(见图4)401为上电或RESET (低电平有效)有效清除所有的配置数 据,输入/输出模块为高阻;402为动态可编程集成电路第一次配置数据配置可编程阵 列块、PLL、输入/输出控制块、块状SRAM完成所有的配置后FPGA 有效,正常工作。403为重新配置 一个"动态配置时钟"到来时,临时配置寄 存器中的数据在允许配置寄存器及控制电i 各的作用下,发送给"配 置单元"。在配置时钟的作用下,不断重新配置,"动态配置时钟" 的配置完成后逻辑电路就能正常工作,未重新配置的功能单元一 直正常工作。3.2动态可重新配置控制电路为了达到能在集成电路正常工作时,不断地按需求重新配置电 路。本发明增加的以下的控制模块,205为配置输出给"配置单元" 的连接线,206为重新配置控制电路(带允许输出控制端的同步D触 发器),207为配置允许配置寄存器输出线,208为允许配置锁存器, 209为(动态配置时钟)时钟输出线,210为动态配置时钟,211为EAB 逻辑结果输出线,212为允许输出寄存器,213为输出控制逻辑电路 (带允许输出控制端的同步[)触发器),215为动态控制时钟输出线, 214为输出结果线,216为动态输出控制时钟。如图5所示,为"配置单元"构成电路501为临时配置寄存器,502为配置控制电路,503为允许配置寄 存器,504为同步可重新配置时钟连接线,506为动态配置时钟,505 为DFPGA^皮配置SRAM。502为带允许输出端的同步D触发器,1脚为D触发器的输入端,2 脚为D触发器的输出端,3脚为D触发器同步时钟的输入脚,4脚为D触 发器的允许输出控制端。502的1脚连接临时配置寄存器501,在FPGA中,有通用走线、局 部走线、嵌入式阵列块、输入/输出控制块、乘法器、数字信号处理 模块。对每个"配置单元"所有的"临时配置寄存器,,位统一编写 地址,用串行或并行办法下载到各个"功能单元"的"临时配置寄 存器"中。502的4脚连接允许配置寄存器,每个"配置单元"有一个允许 配置寄存器,允许配置寄存器与"临时配置寄存器,, 一一对应,允 许配置寄存器的数据配置也采用单独编址,每个单元的允许配置寄 存器的地址均不相同,用串行或并行办法下载到各个"功能单元',
的"允许配置寄存器"中,02的3脚连接"动态配置时钟",当临时配置寄存器数据已准 备好,允许寄存器的数据也已准备好后,动态配置时钟的上升沿到 来时,允许配置寄存器如果为O (即有效),配置寄存器的lt据即 在同步时钟的作用下,由控制电路的2脚输出到动态可编程集成电路 的被配置SRAM中。当部分允许配置寄存器数据为0,配置时钟上升沿到来后可实现 对动态可编程集成电路的部分电路的重新编程,当允许配置寄存器 的所有配置单元位均为有效时(允许配置寄存器的值都是O时),可 实现动态可编程集成电路全部重新配置。从而实现在动态可编程集成电路正常工作时实现对动态可编程 集成电路的部分电路或全部电路的重新编程。3. 3输出控制电路3. 3. 1输出控制电路的作用(a) 因为部分"功能单元"进行了重新配置,在配置期间可能出 现一段时间的输出不确定态,不确定态的逻辑与其它电路连 接可能产生不能预测的结果,可能导致电路的损坏。增加了 输出控制电路后、部分重配置单元中,对输出的数据进行锁 存,在整个配置期间其结果不变,因此不会发生不同单元之 间的相互干扰,对于对全部芯片重新配置的,该输出锁存器 能锁存中间结果,供重新配置后使用。(b) 增加输出控制电路后可存储重新配置前得到的"功能单元" 输出的中间结果,大大增加了系统的灵活性,可实现可编程 指令集处理器.,3. 3. 2输出控制电路的实现电路如图6所示,输出控制电路由601 "功能单元"输出,602 输出控制电路,603为输出控制电路的输出结果连接线,604为
允许输出寄存器,605为动态时钟连接线,606为动态控制输出 时钟。图6中的6 0 6动态控制输出时钟和图5中的5 0 6动态配置时 钟,可以用同一个时钟,也可以用不同的时钟。602带允许输出端的同步D触发器,l脚为输入端,2脚为输 出端,3脚为同步时钟输入端,4脚为允许输出寄存器控制端。602的1脚连接到"功能单元"输出连接线,"功能单元" 可为通用走线、局部走线、嵌入式阵列块、输入/输出控制块、 数字信号处理块、乘法器、块状SRAM块的输出信号。602的2脚为输出脚,通过603连线连接到局部走线或通用 走线。602的3脚为D触发器的同步时钟输入脚,通过时钟树连接 动态控制输出时钟,当输入为上升沿时有效。602的4脚为D触发器允许输出脚,连接到允许输出寄存器 输出脚,当允许寄存器输出为低电平时允许输出,当允许寄存 器为高电平时输出锁存上一次执行的结果。604为允许输出寄存器,输入采用统一编址,采用串行或 并行的方法对本寄存器赋值,输出端连接到602的4脚,控制电 路输出是否有效。3.4工作原理为了避免实现动态可编程电路在电路部分或全部配置时电路的 相互影响,本发明增加了输出控制电路。当部分重新配置电路时, 带允许输出端的同步緩存寄存器保存上一次的结果,在配置同步时 钟的作用下重新配置。未配置的电路仍能正常工作。对本单元的电 路是否重新配置受允许配置寄存器的控制。所有的允许配置位均有 效,可对整个动态可编程集成电路所有的电路在配置时钟的同步作 用下重新配置,配置前本单元输出的中间结果可保存在D触发器中, 供电路配置完成后使用这个中间结果。4、有益效果本发明的集成电路,能在集成电路正常工作时,对整个电路或 电路的 一部分逻辑电路进行重新配置,且对整个FPGA的重新配置只 需要一个配置时钟周期;在配置过程中,不需要重新配置的电路仍 能正常工作,需要重新配置的电路能保存上一次的计算结果。而不 像现有的FPGA在配置器件,在配置过程中器件逻辑不能正常工作, 待完全配置完成后才能正常工作,且不能保存上一次的计算结果。本发明可实现FPGA的动态重新配置,从而实现FPGA硬件电路重 构和重用,提高了硅片的利用率,提高了集成电路性能,同时大大 拓展了FPGA的用途。四

图l表示现有技术Altera公司的Clone FPGA电路结构图。 图2表示本发明动态可编程集成电路的FPGA电路结构图。 图3表示Altera公司的FPGA配置状态机。 图4表示本发明配置状态机。 图5表示"配置单元"控制电路。 图6表示输出控制电路。图7表示配置控制电路、输出控制电路的允许控制端、同步时钟输入端的不 同情况的优选实例。图8表示阵列配置电路。 图9表示阵列输出控制电路。五具体实施方式
下面通过优选实例对本发明进行进一步说明。1、带允许输出端的同步D触发器的允许输出控制端、同步输入时钟的不 同优选实例
简单地说,就是在[)触发器的时钟输入端加上一个反向器,即可 实现,时钟输入信号由原来的上升沿有限变为下降沿时有效;在D触 发器的允许输入端加上一个D触发器,由原来的低电平允许输出,变 为高电平时允许输出。配置电路和输出控制电路的D触发器电路完全 相同,因此本优选实例既适用于配置电路也适用于输出控制电路。如图7所示,701为带允许输出端的同步D触发器,703为输入连 接线,705为输出连接线,702为同步时钟输入端加上一个反向器,704 为允许输出控制端加上一个反向器,706为同步时钟连接线,707为允 许输出连接线。图5中"配置电路"502的3脚配置时钟输入端通过504连接到 动态配置时钟506上,当时钟输入为上升沿时,带允许输出端的同步 D触发器同步输出。图7中在701的3脚连接线增加702反向器后, 706为下降沿时带允许输出端的同步D触发器有同步信号输出。图5中"配置电路"502的4脚连接到503允许配置寄存器输出 端,当允许配置寄存器输出为低电平时,带允许输出端的同步D触发 器在同步时钟的作用下能输出信号。当允许配置寄存器为高电平时输 出带允许输出端的同步D触发器无效。图7中在带允许输出端的同步 D触发器的允许输出端增加了一个反向器704即可实现当707输入为 高电平时本带允许输出端的同步D触发器有效,当707输入为低电平 时本带允许输出端的同步D触发器不发送数据,而是锁存上次执行的 结果。输出控制电路与配置控制电路完全相同,不再叙述。2、动态可重新配置控制电路配置块状SR感、通用走线、局部走线、嵌入 式阵列块、乘法器、数字信号处理块阵列配置电路简单地说实际应用中,要实现一个配置电路地功能,并不 是一位就能解决问题,需要多位组合起来并行才能完成一个功能, 就一位来说跟3. 2的描述完全相同,只不过是多位同时并行的完 成。
对通用走线、局部走线、块状SRAM、嵌入式阵列块、乘法器、数 字信号处理块、输入/输出块不是一位配置位就可以了 , 一般需要多 个配置位。如图8所示,为多个配置位阵列。801为临时配置寄存器组,804为第一位控制电路,803为第二位 控制电路,802为第n路控制电路,805为被配置寄存器组,806为动 态配置时钟,807为允许配置寄存器组。801为临时配置寄存器组,临时配置寄存器组采用按位单独编址 或对临时配置寄存器组作为一个并行寄存器进行编址,通过串口或并 口对临时寄存器赋值,寄存器组的输出一一分别连接到D触发器组控 制电路的1到n位,将输出值送到带允许输出端的同步D触发器组的 输入端。804、 803、 802为阵列控制电路,输入端分别连接到临时配置寄 存器组的每个位;804、 803、 802控制电路阵列组的时钟输入端连接 在一起连接到806动态配置时钟上;804、 803、 802的输出端分别连 接到805被配置寄存器组的每个位;804、 803, 802的允许输出端分 别连接到允许配置寄存器组的每个位上。8 0 5被配置寄存器组的输入端分别连接到控制配置带允许输出端 的同步D触发器組的输出端。8 0 7允许配置寄存器组采用按位编址或按寄存器组统 一 编址方 法,利用串行或并行方法对允许配置寄存器进行赋值;允许配置寄存 器组,输出连接到804、 803、 802组成的带允许输出端的同步D触发 器组的允许输出端。当动态配置时钟的输出为上升沿,允许输出寄存器组的对应的控 制位为0时同步D触发器,其输入的数据直接输出;对应的允许输出 寄存器为1的位,其输出不变,锁存中间结果。3、动态可重新配置控制电路配置通用走线、局部走线、块状SRAM、嵌入
式逻辑块、乘法器、数字信号处理块阵列输出控制电路简单地说就是通过将多位输出控制电路组成一个阵列,来实现 多位并行同时处理。对通用走线、局部走线、块状SRAM、嵌入式阵列块、乘法器、数 字信号处理块、输入/输出块有的是一位输出,有的是多位并行输出。 图9为解决多位同时输出的优选实例。如图9所示901为多位功能单元输出寄存器组,904为第一路输 出控制电路,903为第二路输出控制电路,902为第n路输出控制电 路,905为第一路输出连线,908为第二路输出连线,909为第n路输 出连线,906为动态控制输出时钟,907为允许输出寄存器组。901多位功能单元输出寄存器组分别连接到904、 903、 902等组 成的并行控制输出控制阵列。904、 903、 902为利用带允许输出端的同步D触发器组成的输出 控制阵列。输入引脚分别连接到901中的每个位。时钟输入端连接在 一起连接到动态控制输出时钟。允许输入端分别连接到907允许输出 寄存器组的每个位。904、 903、 902的输出端905 、 908、 909分别连接到局部走线或 通用走线上。907为允许输出寄存器组,允许输出寄存器组采用按位单独编址 或寄存器组为一个整体编址,按位单独编址的采用串行方式下配置允 许输出寄存器数据,按寄存器组统一编址的采用并行方式下载数据。 允许输出寄存器组的输出电路分别连接到同步D触发器阵列的允许输 出控制端。
权利要求
1. 可编程指令集计算机集成电路,包括局部走线、通用走线、嵌入式阵列块、可编程输入/输出模块、数字时钟管理器或可编程锁相环、块存储器、乘法器、数字信号处理器模块,其特征在于在可编程集成电路中的局部走线、通用走线、嵌入式阵列块、输入/输出块、乘法器、数字信号处理块、块状SRAM的每个配置单元增加配置控制电路由临时配置寄存器、允许配置寄存器、带允许输出端的同步D触发器、动态配置时钟电路、被配置寄存器组成;在可编程集成电路中的局部走线、通用走线、嵌入式阵列块、输入/输出块、乘法器、数字信号处理块、块状SRAM的每个输出单元增加输出控制电路由功能单元输出、允许输出寄存器、带允许输出端的同步D触发器、动态控制输出时钟、输出寄存器组成。
2、 根据权利要求1所述可编程指令集计算机集成电路,其特征是 在动态可编程集成电路上增加了一个动态配置时钟,利用时钟 树连接到每个配置单元的D触发器的同步时钟输入端。
3、 根据权利要求1所述可编程指令集计算机集成电路,其特征是: 在每个配置单元中增加了一个临时配置寄存器,该寄存器在动 态可编程集成电路各个配置单元中采用统一编址,通过串行或 并行的办法对该临时配置寄存器赋值,临时配置寄存器直接连接到带允许输出端的同步D触发器的输入端。
4、 根据权利要求1所述可编程指令集计算机集成电路,其特征是在每个配置单元中增加了一个允许配置寄存器,对一片动态可 编程集成电路中所有的允许配置寄存器统一编址,利用串行或 并行的办法对该寄存器进行赋值,允许配置寄存器直接连接带允许输出端的同步D触发器的允许控制端。
5、 根据权利要求1所述可编程指令集计算机集成电路,其特征是 在每个配置单元中增加一个配置控制电路,由带允许输出端的 同步D触发器組成;带允许输出端的同步D触发器的输入端连 接临时配置寄存器输出端,带允许输出端的同步D触发器的输 出端连接动态可编程集成电路的被配置SRAM,带允许输出端的 同步D触发器的时钟输入端连接到动态配置时钟上,带允许输 出端的同步D触发器的允许输入端连接到允许配置寄存器输出 端。
6、 根据权利要求1所述可编程指令集计算机集成电路,其特征是 输出控制电路由功能单元输出端、带允许输出端的同步D触发 器、允许输出寄存器、动态控制输出时钟组成;功能单元输出端局部走线、通用走线、输入/输出模 块、乘法器、数字信号处理块、块状SRAM的输出端连接在 带允许输出端的同步D触发器输入端;带允许输出端的同步D触发器的输出端通过通用或局部 走线连接到其它功能单元; 允许输出寄存器的输出端连接到带允许输出端的同步D 触发器的允许输出端;动态控制输出时钟通过时钟树连接到带允许输出端的同步D触发器的同步时钟输入端:。
7、 根据权利要求1所述可编程指令集计算机集成电路,其特征是 在局部走线、通用走线、嵌入式逻辑块、输入/输出块、乘法器、 数字信号处理块、块状SRAM输出端每个功能单元输出端连接到 带允许输出端的同步D触发器输入端。
8、 根据权利要求1所述可编程指令集计算机集成电路,其特征是 在一块动态可编程集成电路中,允许输出寄存器采用统一编址, 可利用串行或并行的办法对该寄存器进行赋值,允许输出寄存 器直接连接到带允许输出端的同步D触发器的允许输出端。
9、 根据权利要求1所述可编程指令集计算机集成电路,其特征是: 带允许输出端的同步D触发器输出端连接到通用或局部走线与 其它功能单元相连。
10、 根据权利要求1所述可编程指令集计算机集成电路,其特征是: 动态控制输出时钟输出端连接到带允许输出端的同步D触发器 的同步时钟输入端。
全文摘要
可编程指令集计算机集成电路,涉及到一种在正常运行中可部分或全部改变逻辑电路的动态现场可编程集成电路。解决现在可编程集成电路不能动态重用的问题。通过增加了一组临时配置寄存器、配置控制电路、动态配置时钟、允许配置寄存器,在FPGA正常工作时,实现对逻辑单元重新配置。通过增加动态允许输出控制电路、动态控制输出时钟、允许输出寄存器、输出寄存器,从而实现对输出电路的控制,避免在重新配置过程中对可编程集成电路影响。可广泛应用在图像处理,网络处理器,可编程指令集计算机,网格刀片式服务器,可信计算机,可信路由器等场所。
文档编号G06F15/00GK101211330SQ20061015542
公开日2008年7月2日 申请日期2006年12月25日 优先权日2006年12月25日
发明者华晓军, 华晓勤, 顾士平 申请人:顾士平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1