CN101286737B - 可配置的可编程逻辑单元的时序控制电路 - Google Patents
可配置的可编程逻辑单元的时序控制电路 Download PDFInfo
- Publication number
- CN101286737B CN101286737B CN2008100385761A CN200810038576A CN101286737B CN 101286737 B CN101286737 B CN 101286737B CN 2008100385761 A CN2008100385761 A CN 2008100385761A CN 200810038576 A CN200810038576 A CN 200810038576A CN 101286737 B CN101286737 B CN 101286737B
- Authority
- CN
- China
- Prior art keywords
- input
- gate
- output
- delay unit
- homophase
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
本发明属于集成电路设计技术领域,具体为一种可配置的可编程逻辑单元的时序控制电路。该电路由脉冲宽度产生电路、分布式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)所需要的写入使能脉冲信号以及移位寄存器功能所需要的两相非交叠信号。
Description
技术领域
本发明属于集成电路设计技术领域,具体涉及一种可编程逻辑单元的时序控制电路。
背景技术
可编程逻辑单元(CLB)是整个现场可编程门阵列(FPGA)芯片的核心,FPGA器件正是靠它来实现所有的组合逻辑函数和绝大多数数据锁存功能;随着工艺进步,集成电路的设计实现能力越来越强大,对数据的快速存取和移位操作越来越频繁,这样,设计CLB单元时,除了强调组合逻辑功能和数据锁存功能外,还要求CLB具有分布式RAM和移位寄存器这两项功能[1],而实现分布式RAM功能需要一个数据写入使能脉冲信号,实现移位寄存器功能也需要一个两相非交叠脉冲信号,这些信号就需要一个时序控制电路来产生。
现有的文献中对可编程逻辑单元的时序控制电路讨论不多,主要原因是目前国际上做可编程器件的单位很少,主要技术目前完全被XILINX、ALTERA等少数几家公司所拥有。文献[2]中介绍了分布式RAM功能的一种实现电路,该电路采用动态锁存器(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:1]通过写地址锁存器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:1]、F[4:1]作为分布式RAM的读地址或移位寄存器的长度调节控制端分别接到四输入查找表G电路101和F电路102的16到1的传输管树202上,输出分别是OUTB与OUTC,此两输出端再经过另一二选一的选择器108得到输出OUTA,另一二选一的选择器108的控制端为BX;时序控制单元109产生四输入查找表G电路101所需要的控制信号WS_G,C1_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中,C1、C2为移位寄存器的两相非交叠信号,移位寄存器的数据写入端SIN在C2的控制下经过移位寄存器的数据移入单元的路径303写入基本的6管存储单元301中,然后在C1的控制下经过移位寄存器的数据移出单元的路径303将存储在基本的6管存储单元301中的数据移出到输出端SOUT,每个存储单元的SOUT端都接到下一个存储单元的SIN端,这样就将这16个存储单元串联起来形成移位寄存器,第一个存储单元的SIN端为移位寄存器的数据写入端即图1中所示的D_sr。
图3所示为实现移位寄存器功能所需要的两相非交叠脉冲信号的波形图。当C2为高电平、C1为低电平时,图2中移位寄存器的数据移出单元的路径304关断、移位寄存器的数据移入单元的路径303打开,上一个移位寄存器单元的数据写入基本的6管存储单元301中,当C2为低电平、C1为高电平时,图2中移位寄存器的数据移入单元的路径303关断、移位寄存器的数据移出单元的路径304打开,存储在基本的6管存储单元301中的数据写入下一个移位寄存器单元。因为16个存储单元是串联起来的,若C1、C2同时为高电平的话,会造成穿通现象,也就是数据有可能从第一个存储单元写到最后一个存储单元,所以图3中所示的t1、t3时间段就是保证C1、C2为非交叠信号。
根据上面介绍,图1所示的可编程逻辑单元部分结构可实现分布式RAM、移位寄存器这两项功能,具体描述如下:可配置成以下四种分布式RAM:
(1)、单个ram_16x1,数据输入端为BY,读写地址为G[4:1],输出端为OUTB;
(2)、ram_16x2,数据输入端为BY和BX,读写地址为G[4:1](需要软件布线将F[4:1]连到G[4:1]),输出端为OUTB和OUTC;
(3)、ram16x1_dualport(双口16x1的ram),数据输入端为BY,写地址为G[4:1],读地址为G[4:1]和F[4:1],输出端为OUTB和OUTC;
(4)、ram32x1,数据输入端为BY,读写地址为{BX,G[4:1]},输出端为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和移位寄存器两相非交叠信号(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的第五根地址线(当可编程逻辑单元配置成32x1的分布式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)联合起来配置成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的值下载为[100100],此时WS_G有效、WS_F无效、C1_G为高、C2_G为低、C1_F为高、C2_F为低,ram16x1的数据输入端为BY,读写地址为G[4:1],输出端为OUTB(需要将BX置为高电平);
(2)若想将可编程逻辑单元配置成容量为16x2的分布式RAM,则需将矢量P的值下载为[111000],此时WS_G有效、WS_F有效、C1_G为高、C2_G为低、C1_F为高、C2_F为低,ram16x2的数据输入端为BY和BX,读写地址为G[4:1](需要软件布线将F[4:1]连到G[4:1]),输出端为OUTB和OUTC;
(3)若想将可编程逻辑单元配置成容量为16x1的双口分布式RAM,则需将矢量P的值下载为[111100],此时WS_G有效、WS_F有效、C1_G为高、C2_G为低、C1_F为高、C2F为低,ram16x1_dualport(双口16x1的ram)的数据输入端为BY,写地址为G[4:1],读地址为G[4:1]和F[4:1],输出端为OUTB和OUTC;
(4)若想将可编程逻辑单元配置成容量为32x1的分布式RAM,则需将矢量P的值下载为[110100],此时C1_G为高、C2_G为低、C1_F为高、C2_F为低,WS_G、WS_F是否有效取决于第五根地址(BX)的值,BX为1时,WS_G有效、WS_F无效,反之,WS_G无效、WS_F有效,ram32x1的数据输入端为BY,读写地址为{BX,G[4:1]},输出端为OUTA;
(5)若只想将可编程逻辑单元的101部分即四输入查找表G配置成长度可调(1-16位)的移位寄存器,则需将矢量P的值下载为[00xx10](x表示任意值),此时WS_G无效、WS_F无效、C1_F为高、C2_F为低,C1_G、C2_G为两相非交叠信号,移位寄存器G的数据输入端为BY,长度调节控制端为G[4:1];
(6)若只想将可编程逻辑单元的102部分即四输入查找表F配置成长度可调(1-16位)的移位寄存器,则需将矢量P的值下载为[00xx01](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的值下载为[00xx11](x表示任意值),此时WS_G无效、WS_F无效、C1_G、C2_G与C1_F、C2_F均为两相非交叠信号,移位寄存器G的数据输入端为BY,长度调节控制端为G[4:1],移位寄存器F的数据输入端为BX,长度调节控制端为F[4:1]。
ramG | ramF | ram_both | D_F | shiftG | shiftF | |
ram16x1 | 1 | 0 | 0 | 1 | 0 | 0 |
ram16x2 | 1 | 1 | 1 | 0 | 0 | 0 |
ram16x1_dualport | 1 | 1 | 1 | 1 | 0 | 0 |
ram32x1 | 1 | 1 | 0 | 1 | 0 | 0 |
G为SR | 0 | 0 | x | x | 1 | 0 |
F为SR | 0 | 0 | x | x | 0 | 1 |
G、F同时为SR | 0 | 0 | x | x | 1 | 1 |
表1各种功能的配置方案
参考文献:
[1]Xilinx corporation,“Virtex-II Pro and Virtex-II Pro X Platfirm FPGAs:CompleteData Sheet”,2005。
[2]Robert Anders Johnson,“RAM with synchronous write port using dynamic latches”,Patent No.5933369。
Claims (1)
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端经过反相器605的输出,第三个输入分别是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)联合起来配置成16x2或dualport类型的分布式RAM,高电平有效,shiftG的含义为是否将四输入查找表G配置成移位寄存器,高电平有效,shiftF的含义为是否将四输入查找表F配置成移位寄存器,高电平有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100385761A CN101286737B (zh) | 2008-06-05 | 2008-06-05 | 可配置的可编程逻辑单元的时序控制电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100385761A CN101286737B (zh) | 2008-06-05 | 2008-06-05 | 可配置的可编程逻辑单元的时序控制电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101286737A CN101286737A (zh) | 2008-10-15 |
CN101286737B true CN101286737B (zh) | 2011-02-09 |
Family
ID=40058742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100385761A Expired - Fee Related CN101286737B (zh) | 2008-06-05 | 2008-06-05 | 可配置的可编程逻辑单元的时序控制电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101286737B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198854B (zh) * | 2013-04-03 | 2015-12-02 | 复旦大学 | FPGA中具有多种写入模式的Block RAM |
CN104681092B (zh) * | 2015-02-12 | 2017-11-10 | 无锡中微亿芯有限公司 | 基于可编程存储单元的移位寄存器结构 |
CN106294259B (zh) * | 2016-08-18 | 2019-04-16 | 长沙丰灼通讯科技有限公司 | 从异步总线到同步总线的写时序适配方法 |
CN110018654B (zh) * | 2019-03-19 | 2021-09-14 | 中科亿海微电子科技(苏州)有限公司 | 细粒度可编程时序控制逻辑模块 |
CN111240244B (zh) * | 2020-01-16 | 2021-03-30 | 中科亿海微电子科技(苏州)有限公司 | 一种适用于fpga的可编程脉冲产生装置、电路及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1350302A (zh) * | 2000-10-20 | 2002-05-22 | 三合微科股份有限公司 | 以多相时序信号控制移位寄存器的方法 |
CN1719353A (zh) * | 2005-06-21 | 2006-01-11 | 中国科学技术大学 | 基于fpga的时间数字转换器及其转换方法 |
-
2008
- 2008-06-05 CN CN2008100385761A patent/CN101286737B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1350302A (zh) * | 2000-10-20 | 2002-05-22 | 三合微科股份有限公司 | 以多相时序信号控制移位寄存器的方法 |
CN1719353A (zh) * | 2005-06-21 | 2006-01-11 | 中国科学技术大学 | 基于fpga的时间数字转换器及其转换方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2001-309167A 2001.11.02 |
Also Published As
Publication number | Publication date |
---|---|
CN101286737A (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6011744A (en) | Programmable logic device with multi-port memory | |
USRE34363E (en) | Configurable electrical circuit having configurable logic elements and configurable interconnects | |
US7196942B2 (en) | Configuration memory structure | |
US6621296B2 (en) | FPGA lookup table with high speed read decorder | |
US7116131B1 (en) | High performance programmable logic devices utilizing dynamic circuitry | |
US5821773A (en) | Look-up table based logic element with complete permutability of the inputs to the secondary signals | |
US20150357028A1 (en) | Systems and Methods Involving Multi-Bank, Dual-Pipe Memory Circuitry | |
CN101286737B (zh) | 可配置的可编程逻辑单元的时序控制电路 | |
JP4794428B2 (ja) | パルス・スタティック・フリップフロップ | |
JP2004522238A (ja) | フィールドプログラマブルゲートアレイで用いるための複数の構成可能な書込モードを有するブロックram | |
JP6517626B2 (ja) | 再構成可能な半導体装置 | |
CN104966532A (zh) | 一次性可编程存储单元及电路 | |
US6373279B1 (en) | FPGA lookup table with dual ended writes for ram and shift register modes | |
JP2001504657A (ja) | シフトレジスタとして倍加するルックアップテーブル | |
JPH11317659A (ja) | プログラム可能論理装置 | |
US7876601B2 (en) | Variable sized soft memory macros in structured cell arrays, and related methods | |
US9166570B2 (en) | Apparatus for using metastability-hardened storage circuits in logic devices and associated methods | |
US7304499B1 (en) | Distributed random access memory in a programmable logic device | |
US8611159B1 (en) | Memory write interface in an integrated circuit and method of providing same | |
CN101557211B (zh) | 时序信号源电路 | |
US6445209B1 (en) | FPGA lookup table with NOR gate write decoder and high speed read decoder | |
CN103198854A (zh) | FPGA中具有多种写入模式的Block RAM | |
US6822908B1 (en) | Synchronous up/down address generator for burst mode read | |
US10924117B2 (en) | Method for designing an FPGA | |
CN103631754B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110209 Termination date: 20210605 |