可配置的可编程逻辑单元的时序控制电路的制作方法

文档序号:7513085阅读:224来源:国知局

专利名称::可配置的可编程逻辑单元的时序控制电路的制作方法
技术领域
:本发明属于集成电路设计
技术领域
,具体涉及一种可编程逻辑单元的时序控制电路。技术背景可编程逻辑单元(CLB)是整个现场可编程门阵列(FPGA)芯片的核心,FPGA器件正是靠它来实现所有的组合逻辑函数和绝大多数数据锁存功能;随着工艺进步,集成电路的设计实现能力越来越强大,对数据的快速存取和移位操作越来越频繁,这样,设计CLB单元时,除了强调组合逻辑功能和数据锁存功能外,还要求CLB具有分布式RAM和移位寄存器这两项功能[l],而实现分布式RAM功能需要一个数据写入使能脉冲信号,实现移位寄存器功能也需要一个两相非交叠脉冲信号,这些信号就需要一个时序控制电路来产生。现有的文献中对可编程逻辑单元的时序控制电路讨论不多,主要原因是目前国际上做可编程器件的单位很少,主要技术目前完全被XILINX、ALTERA等少数几家公司所拥有。文献[2]中介绍了分布式RM1功能的一种实现电路,该电路采用动态锁存器(LATCH)结构来实现分布式RAM的写入同步,这种LATCH结构面积虽稍小,但对控制电路的时序要求较为苛刻,所以文献[2]中所提出的时序控制电路较为复杂。考虑到LATCH面积只占整个可编程逻辑单元面积的1/30到1/40,所以本发明所提出的时序控制电路是基于静态LATCH来设计的,静态LATCH可靠性好,可以大大简化时序控制电路。文献[2]中提到的时序控制电路只是用来产生分布式RAM的写入使能脉冲信号,而实现移位寄存器功能也需要一个时序控制电路来产生两相非交叠脉冲信号,目前尚未找到一篇文献介绍可同时用于分布式RAM和移位寄存器功能的时序控制电路。考虑到这两个脉冲信号宽度可以一样,所以本发明共用一个脉冲产生电路,将两个用于不同功能时序控制单元合并成一个,从而减小面积。
发明内容本发明的目的在于提出一种面积较小并可同时用于实现分布式RAM和移位寄存器功能的可编程逻辑单元的时序控制电路。首先介绍一下可编程逻辑单元实现分布式RAM和移位寄存器这两项功能所需要基本硬件结构以及实现的基本原理。图1所示即为所需要的基本硬件结构。它由四输入査找表G电路101和F电路102、分布式RAM的写地址锁存器103、分布式RAM的写入数据锁存器105和107、分布式RAM的地址译码器104、二选一的选择器106、另一二选一的选择器108以及时序控制单元109;其中四输入査找表G电路101和F电路102由16个存储单元(M1…M16)201和16到1的传输管树202组成;为了使分布式RAM的写入操作与时钟信号ck同步,写入地址G[4:l]通过写地址锁存器103锁存后再接入地址译码器104,译码出来的信号同时接到四输入査找表G电路101、F电路102的字线wl[15:0]上;作为移位寄存器的写入数据BY、BX分别接到四输入査找表G电路101、F电路102的D—sr端;作为分布式RAM的写入数据BY经过数据锁存器105接到四输入查找表G电路101的D_ram和Db_ram端;作为分布式RAM的写入数据BX与BY经过二选一的选择器106后再通过数据锁存器107接到四输入查找表F电路102的D_ram和Db—ram端;二选一的选择器106的控制端D一F是一个编程点;G[4:l]、F[4:l]作为分布式RAM的读地址或移位寄存器的长度调节控制端分别接到四输入査找表G电路101和F电路102的16到1的传输管树202上,输出分别是OUTB与OUTC,此两输出端再经过另一二选一的选择器108得到输出OUTA,另一二选一的选择器108的控制端为BX;时序控制单元109产生四输入查找表G电路101所需要的控制信号WS一G,CI—G,C2_G,时序控制单元还产生四输入查找表F电路102所需要的控制信号WS—F,C1_F,C2—F,同时与编程下载结束信号doneb、移位使能或分布式RAM数据写入使能信号SR/WE连接,此外还控制五个编程点ramG、ramF、ram—both、shiftG以及shiftF。16个存储单元201的作用是存储分布式RAM的写入或读取数据以及作为移位寄存器的一个单元,每个存储单元的具体电路如图2所示,包括基本的6管存储单元301、分布式RAM的数据写入路径302、移位寄存器的数据移入单元的路径303以及移位寄存器的数据移出单元的路径304。分布式RAM的写入数据D—ram、Db—ram在字线wl—ram和写入使能脉冲信号ws的控制下经过分布式RAM的数据写入路径302写入基本的6管存储单元301中,Cl、C2为移位寄存器的两相非交叠信号,移位寄存器的数据写入端SIN在C2的控制下经过移位寄存器的数据移入单元的路径303写入基本的6管存储单元301中,然后在Cl的控制下经过移位寄存器的数据移出单元的路径303将存储在基本的6管存储单元301中的数据移出到输出端SOUT,每个存储单元的SOUT端都接到下一个存储单元的SIN端,这样就将这16个存储单元串联起来形成移位寄存器,第一个存储单元的SIN端为移位寄存器的数据写入端即图1中所示的D—sr。图3所示为实现移位寄存器功能所需要的两相非交叠脉冲信号的波形图。当C2为高电平、Cl为低电平时,图2中移位寄存器的数据移出单元的路径304关断、移位寄存器的数据移入单元的路径303打开,上一个移位寄存器单元的数据写入基本的6管存储单元301中,当C2为低电平、Cl为高电平时,图2中移位寄存器的数据移入单元的路径303关断、移位寄存器的数据移出单元的路径304打开,存储在基本的6管存储单元301中的数据写入下一个移位寄存器单元。因为16个存储单元是串联起来的,若C1、C2同时为高电平的话,会造成穿通现象,也就是数据有可能从第一个存储单元写到最后一个存储单元,所以图3中所示的tl、t3时间段就是保证Cl、C2为非交叠信号。根据上面介绍,图1所示的可编程逻辑单元部分结构可实现分布式RAM、移位寄存器这两项功能,具体描述如下可配置成以下四种分布式RAM:(1)、单个ramJ6xl,数据输入端为BY,读写地址为G[4:l],输出端为OUTB;(2)、ram一16x2,数据输入端为BY和BX,读写地址为G[4:l](需要软件布线将F[4:l]连到G[4:1]),输出端为OUTB和OUTC;(3)、rami6x1—dualport(双口16x1的ram),数据输入端为BY,写地址为G[4:l],读地址为G[4:l]和F[4:l],输出端为OUTB和OUTC;(4)、ram32xl,数据输入端为BY,读写地址为(BX,G[4:l]},输出端为OUTA。可配置成两个长度可变的(1至16位)的移位寄存器,输入数据为BY和BX,输出是OUTB和OUTC,长度选择信号为G[4:1]和F[4:1]。下面介绍的就是可编程逻辑单元的时序控制电路(图1中109单元),如图4所示,电路输入端为CK、doneb、SR/WE、BX、ramG、ramF、ram_both、shiftG以及shiftF,输出端为WS—G、WS_F、C1_G、C1_F、C2_G以及C2_F,电路由脉冲宽度产生电路401、分布式RAM写入使能脉冲信号(WS—G、WS_F)产生电路402和移位寄存器两相非交叠信号(Cl一G、C2—G、Cl一F、C2_F)产生电路403组成;其中,脉冲宽度产生电路401由带清零端RN的D触发器501、反相延时单元502、与非门503、与门504和反相器505连接组成,移位使能或分布式RAM数据写入使能信号SR/WE经过触发器501锁存后接到与非门503的一个输入端和反相延时单元502的输入端,与非门503的另一个输入是反相延时单元502的输出,与门504的一个输入是与非门503的输出端,另一个输入是编程下载结束信号doneb经过反相器505的输出,与门504的输出接到触发器501的清零端;分布式RAM写入使能脉冲信号产生电路402由锁存器601、或非门602、或非门602'、反相器603、反相器603'、或非门604、或非门604,和反相器605组成,分布式RAM的第五根地址线(当可编程逻辑单元配置成32xl的分布式RAM)BX经过锁存器601后,正相端Q接到或非门602的一个输入上,反相端QN接到或非门602,的一个输入上,或非门602、602,的另一个输入都是ramJ)oth,它们的输出分别接到或非门604、604'的一个输入上,或非门604、604,的第二个输入都是触发器501的Q端经过反相器506的输出,第三个输入分别是ramG经过反相器603的输出和ramF经过反相器603'的输出,它们的输出分别是WS—G和WS—F;移位寄存器两相非交叠信号产生电路403由与门700、与门700'、同相延时单元701、同相延时单元701'、同相延时单元702、同相延时单元702'、或非门703以及或非门703'组成,与门700、700'的一个输入端都是触发器501的Q端,另一个输入分别是shiftF和shiftG,与门700的输出端同时接到或非门703的一个输入和同相延时单元701的输入端,同相延时单元701的输出端即C2—G接到同相延时单元702的输入端,或非门703的另一个输入是同相延时单元702的输出端,输出为C1_G,与门700,的输出端同时接到或非门703'的一个输入和同相延时单元701'的输入端,同相延时单元701'的输出端即C2—F接到同相延时单元702'的输入端,或非门703'的另一个输入是同相延时单元702'的输出端,输出为CI—F。ramG、ramF、ram_both、shiftG以及shiftF为五个编程点,其含义如下ramG的含义为是否将四输入査找表G配置成分布式RAM,高电平有效,ramF的含义为是否将四输入查找表F配置成分布式RAM,高电平有效,ram_both的含义为是否将四输入査找表F(G)联合起来配置成16x2或dualport类型的分布式RAM,高电平有效,shiftG的含义为是否将四输入査找表G配置成移位寄存器,高电平有效,shiftF的含义为是否将四输入查找表F配置成移位寄存器,高电平有效。本发明设计的时序控制电路,面积小,并可同时用于实现分布式RAM和移位寄存器功能。图1为可编程逻辑单元的部分结构。图2为存储单元的具体电路。图3为两相非交叠脉冲信号的波形图。图4为可编程逻辑单元的时序控制电路。具体实施例方式本发明所提出的可编程逻辑单元的时序控制电路是可配置的,根据六个编程点(ramG、ramF、ram—both、D—F、shiftG、shiftF,记为矢量P)不同取值将可编程逻辑单元配置成多种分布式RAM或长度(1-16位)可调的移位寄存器。具体实施方式如表1所示(1)若想将可编程逻辑单元配置成容量为16x1的分布式RAM,则需将矢量P的值下载为[IOOIOO],此时WS—G有效、WS—F无效、C1_G为高、C2_G为低、CI—F为高、C2—F为低,raml6xl的数据输入端为BY,读写地址为G[4:l],输出端为OUTB(需要将BX置为高电平);(2)若想将可编程逻辑单元配置成容量为16x2的分布式RAM,则需将矢量P的值下载为[lllOOO],此时WS—G有效、WS—F有效、Cl—G为高、C2—G为低、C1—F为高、C2_F为低,raml6x2的数据输入端为BY和BX,读写地址为G[4:l](需要软件布线将F[4:l]连到G[4:1]),输出端为OUTB和OUTC;(3)若想将可编程逻辑单元配置成容量为16x1的双口分布式RAM,则需将矢量P的值下载为[111100],此时WS—G有效、WS一F有效、Cl—G为高、C2—G为低、C1_F为高、C2—F为低,rami6x1—dualport(双口16x1的ram)的数据输入端为BY,写地址为G[4:l],读地址为G[4:l]禾卩F[4:l],输出端为OUTB和OUTC;(4)若想将可编程逻辑单元配置成容量为32x1的分布式RAM,则需将矢量P的值下载为[IIOIOO],此时C1—G为高、C2—G为低、C1—F为高、C2—F为低,WS_G、WS_F是否有效取决于第五根地址(BX)的值,BX为1时,WS—G有效、WS_F无效,反之,WS—G无效、WS—F有效,ram32xl的数据输入端为BY,读写地址为(BX,G[4:l]},输出端为OUTA;(5)若只想将可编程逻辑单元的101部分即四输入査找表G配置成长度可调(1-16位)的移位寄存器,则需将矢量P的值下载为(x表示任意值),此时WS—G无效、WS—F无效、C1—F为高、C2—F为低,C1_G、C2_G为两相非交叠信号,移位寄存器G的数据输入端为BY,长度调节控制端为G[4:1];(6)若只想将可编程逻辑单元的102部分即四输入査找表F配置成长度可调(1-16位)的移位寄存器,则需将矢量P的值下载为(x表示任意值),此时WS—G无效、WS—F无效、C1—G为高、C2—G为低,C1_F、C2—F为两相非交叠信号,移位寄存器F的数据输入端为BX,长度调节控制端为F[4:1];(7)若想将可编程逻辑单元的101和102即四输入查找表F和四输入查找表G都配置成长度可调(1-16位)的移位寄存器,则需将矢量P的值下载为(x表示任意值),此时WS—G无效、WS—F无效、C1—G、C2—G与C1一F、C2一F均为两相非交叠信号,移位寄存器G的数据输入端为BY,长度调节控制端为G[4:l],移位寄存器F的数据输入端为BX,长度调节控制端为F[4:1]。<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表1各种功能的配置方案参考文献Xilinxcorporation,"Virtex-IIProandVirtex-IIProXPlatformFPGAs:CompleteDatasheet",2005。RobertAndersJohnson,"RAMwithsynchronouswriteportusingdynamiclatches",PatentNo.5933369。权利要求1、一种可编程逻辑单元的时序控制电路,其特征在于电路由脉冲宽度产生电路(401)、分布式RAM写入使能脉冲信号WS_G、WS_F产生电路(402)和移位寄存器两相非交叠信号C1_G、C2_G、C1_F、C2_F产生电路(403)组成;其中,脉冲宽度产生电路(401)由带清零端RN的D触发器(501)、反相延时单元(502)、与非门(503)、与门(504)和反相器(505)连接组成,移位使能或分布式RAM数据写入使能信号SR/WE经过触发器(501)锁存后接到与非门(503)的一个输入端和反相延时单元(502)的输入端,与非门(503)的另一个输入是反相延时单元(502)的输出,与门(504)的一个输入是与非门(503)的输出端,另一个输入是编程下载结束信号doneb经过反相器(505)的输出,与门(504)的输出接到触发器(501)的清零端;分布式RAM写入使能脉冲信号产生电路(402)由锁存器(601)、或非门(602)、或非门(602’)、反相器(603)、反相器(603’)、或非门(604)、或非门(604’)和反相器(605)组成,分布式RAM的第五根地址线BX经过锁存器(601)后,正相端Q接到或非门(602)的一个输入上,反相端QN接到或非门(602)’的一个输入上,或非门(602、602’)的另一个输入都是ram_both,它们的输出分别接到或非门(604、604’)的一个输入上,或非门(604、604’)的第二个输入都是触发器(501)的Q端经过反相器(506)的输出,第三个输入分别是ramG经过反相器(603)的输出和ramF经过反相器(603’)的输出,它们的输出分别是WS_G和WS_F;移位寄存器两相非交叠信号产生电路(403)由与门(700、700’)、同相延时单元(701、701’)、同相延时单元(702、702’)、或非门(703、703’)组成,与门(700、700’)的一个输入端都是触发器(501)的Q端,另一个输入分别是shiftF和shiftG,与门(700)的输出端同时接到或非门(703)的一个输入和同相延时单元(701)的输入端,同相延时单元(701)的输出端即C2_G接到同相延时单元(702)的输入端,或非门(703)的另一个输入是同相延时单元(702)的输出端,输出为C1_G,与门(700’)的输出端同时接到或非门(703’)的一个输入和同相延时单元(701’)的输入端,同相延时单元(701)’的输出端即C2_F接到同相延时单元(702’)的输入端,或非门(703’)的另一个输入是同相延时单元(702’)的输出端,输出为C1_F;ramG、ramF、ram_both、shiftG以及shiftF为五个编程点,其含义如下ramG的含义为是否将四输入查找表G配置成分布式RAM,高电平有效,ramF的含义为是否将四输入查找表F配置成分布式RAM,高电平有效,ram_both的含义为是否将四输入查找表F(G)联合起来配置成16×2或dualport类型的分布式RAM,高电平有效,shiftG的含义为是否将四输入查找表G配置成移位寄存器,高电平有效,shiftF的含义为是否将四输入查找表F配置成移位寄存器,高电平有效。全文摘要本发明属于集成电路设计
技术领域
,具体为一种可配置的可编程逻辑单元的时序控制电路。该电路由脉冲宽度产生电路、分布式RAM写入使能脉冲信号(WS_G、WS_F)产生电路和移位寄存器两相非交叠信号(C1_G、C2_G、C1_F、C2_F)产生电路组成;它与五个编程点ramG、ramF、ram_both、shiftG以及shiftF连接。本发明通过配置不同编程点的值使得时序控制电路产生多种分布式RAM功能(16×1、16×2、32×1、16×1_dualport)所需要的写入使能脉冲信号以及移位寄存器功能所需要的两相非交叠信号。文档编号H03K19/173GK101286737SQ20081003857公开日2008年10月15日申请日期2008年6月5日优先权日2008年6月5日发明者来金梅,潘光华,元王,童家榕,陈利光申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1