可编程信号处理单元的制作方法

文档序号:6512467阅读:196来源:国知局
可编程信号处理单元的制作方法
【专利摘要】本发明提供了一种基于功能产生单元的可编程信号处理单元。该可编程信号处理单元中采用了一种同时具有逻辑运算和数据存储功能的功能产生单元,搭配灵活的多路选择器连接,使得本发明的可编程信号处理单元结构既能够存储配置数据以实现独立的自适应逻辑操作及存储用户数据以实现细粒度数据存储器的读/写操作,又能够实现二者的混合操作,从而极大提高了可编程芯片的资源利用效率。
【专利说明】可编程信号处理单元
【技术领域】
[0001]本发明涉及数字集成电路中现场可编程门阵列(FPGA)的可编程信号处理单元设计,具体涉及一种具有自适应逻辑操作和数据存储混合模式的可编程信号处理单元。
【背景技术】
[0002]FPGA是一种通用的逻辑电路,具有灵活性高、开发风险低的优点,已广泛应用于工业控制、航空航天、通信、汽车电子等领域,并且占据着越来越多的市场份额。作为一种可编程器件,目前主流的FPGA产品均采用SRAM来对用户设计进行编程。FPGA中的可编程资源包括:可编程逻辑模块(Configurable Logic Block,CLB)、可编程互连资源、可编程输入输出模块、嵌入式IP等。其中CLB是FPGA的核心,而每个CLB又由多个可编程信号处理单元组成。研究高效的可编程信号处理单元结构对提升FPGA的功能和性能具有重要的意义。
[0003]可编程信号处理单元的主要功能是为用户电路提供最基本的组合逻辑、时序逻辑、算术运算等功能。随着FPGA的应用越来越广泛,对FPGA中的可编程信号处理单元结构提出了更高的要求。不仅要实现基本的逻辑功能,还需要具有细粒度存储器功能,以满足小容量数据快速存储的应用需求。
[0004]可编程信号处理单元主要由功能产生单元、寄存器以及其他一些逻辑电路构成。目前主流的商用FPGA器件中存在多种结构的可编程信号处理单元。如Altera公司的Stratix系列芯片(Stratix II到Stratix V)采用自适应逻辑模块,能够实现特定输入数目组合的组合/时序逻辑操作。Xilinx公司的Virtex系列芯片(Virtex-2到Virtex-7),其采用的可编程信号处理单元可以实现细粒度存储器的功能。
[0005]现有的可编程信号处理单元结构,要么仅能实现逻辑操作,要么仅能实现细粒度存储器功能,而无法在一个可编程信号处理单元中同时实现自适应逻辑操作和数据存储功能,灵活性较差。此外,现有的可编程信号处理单元结构缺少必要的时钟补偿机制,当用户电路不满足时序约束时,需要重新修改布局布线,或修改用户设计,代价较大。

【发明内容】

[0006](一 )要解决的技术问题
[0007]鉴于上述技术问题,本发明提供了一种可编程信号处理单元。
[0008]( 二 )技术方案
[0009]根据本发明的一个方面,提供了一种可编程信号处理单元。该可编程信号处理单元包括:第一级模块、第二级模块、第三级模块、第四级模块、第五级模块、一些多路选择器、四组WR输入选择器、四组RD输入选择器以及时钟增强模块。其中,
[0010]第一级模块,包括:第一功能产生单元(110)、第二功能产生单元(120)、第三功能产生单元(130)和第四功能产生单元(140),其中,第四功能产生单元(140)的输出端(R0端)作为该可编程信号处理单元的进位输出端Cwt输出。
[0011]第二级模块包括:第201 二选一多路选择器(201),其输入O端连接至第一功能产生单元(110)的输出端(RO端),其输入I端连接至第三功能产生单元(130)的输出端(R0端);第202 二选一多路选择器(202),其输入O端连接至第二功能产生单元(120)的输出端(R0端),其输入I端连接至第四功能产生单元(140)的输出端(R0端);第203 二选一多路选择器(203),其输入O端连接至第一功能产生单元(110)的输出端(R0端),其输入I端连接至第三功能产生单元(130)的输出端(R0端);第204 二选一多路选择器(204),其输入O端连接至第二功能产生单元(120)的输出端(R0端),其输入I端连接至第四功能产生单元(140)的输出端(R0端)。
[0012]第三级模块,包括--第301 二选一多路选择器(301),其输入O端连接至第201 二选一多路选择器(201)的输出端,其输入I端连接至第202 二选一多路选择器(202)的输出端;第302 二选一多路选择器(302),其输入O端连接至第203 二选一多路选择器(203)的输出端,其输入I端连接至第204 二选一多路选择器(204)的输出端。
[0013]第四级模块,包括--第401寄存器(401),其D管脚连接至第301 二选一多路选择器(301)的输出端;第402寄存器(402),其D管脚连接至第302 二选一多路选择器(302)的输出端。
[0014]第五级模块,包括:第403 二选一多路选择器(403),其输入O端连接至第301 二选一多路选择器(301)的输出端,其输入I端连接至第401寄存器(401)的输出端(Q端),其输出端作为该可编程信号处理单兀的Ql输出端;第404 二选一多路选择器(404),其输入O端连接至第302 二选一多路选择器(302)的输出端,其输入I端连接至第402寄存器(402)的输出端(Q端),其输出端作为该可编程信号处理单兀的Q2输出端。第201 二选一多路选择器(201)、第202 二选一多路选择器(202)、第203 二选一多路选择器(203)、第204 二选一多路选择器(204)、第301 二选一多路选择器(301)、第302 二选一多路选择器(302)、第403 二选一多路选择器(403)、第404 二选一多路选择器(404)的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0015]多路选择器,包括:第101三选一多路选择器(101),其三输入端分别输入D[0]、D[k]和地信号(GND),其输出端连接至第201 二选一多路选择器(201)和第202 二选一多路选择器(202)的控制端;第102三选一`多路选择器(102),其三输入端分别输入D[l]、D[k+1]和高电压信号(VCC),其输出端连接至第203 二选一多路选择器(203)和第204 二选一多路选择器(204)的控制端;第205三选一多路选择器(205),其三输入端分别输入D[2]、D[k+2]和地信号(GND),其输出端连接至第301 二选一多路选择器(301)的控制端;第206三选一多路选择器(206),其三输入端分别输入D [3]、D[k+3]和高电压信号(VCC),其输出端连接至第302 二选一多路选择器(302)的控制端。第101三选一多路选择器
(101)、第102三选一多路选择器(102)、第205三选一多路选择器(205)、第206三选一多路选择器(206)的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0016]四组WR输入选择器,每组WR输入选择器包括:k个二选一多路选择器。对于该k个二选一多路选择器中的第i个二选一多路选择器,其两输入端分别输入D [i] ,D [i+k],其输出端连接至相应功能产生单元的WR[i]管脚,其中i = 0、1、……、k-2、k-1。该k个二选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0017]四组RD输入选择器,每组RD输入选择器包括:k_l个二选一多路选择器和I个三选一多路选择器。对于该k-Ι个二选一多路选择器中的第i个二选一多路选择器:其两输入端分别输入D [i]、D [i+k],其输出端连接至相应功能产生单元的RD [i]管脚,其中i =1、……、k-2、k-l ;I个三选一多路选择器,其三输入端中的两输入端分别输入D[O]、D[k],其输出端连接至相应功能产生单元的RD[0]管脚;其中,对应第一功能产生单元(110)和第二功能产生单元(120)的该三选一多路选择器中,其三输入端中的另一输入端为该可编程信号处理单元的进位输入cin信号,对应第三功能产生单元(130)和第四功能产生单元(140)的该三选一多路选择器中,其三输入端中的另一输入端连接至第二功能产生单元的输出端(RO端)。该k-Ι个二选一多路选择器、I个三选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0018]时钟增强模块,包括:第3031 二选一多路选择器(3031),其两输入端分别连接两路时钟信号CLKO、CLKl ;第一延时单元(3032)、第二延时单元(3033)、第三延时单元(3034),其输入均连接第3031 二选一多路选择器(3031)的输出;第3035三选一多路选择器(3035),其三输入端分别连接至:第一延时单元(3032)、第二延时单元(3033)、第三延时单元(3034)的输出端;第3036三选一多路选择器(3036),其三输入端分别连接至--第3035三选一多路选择器(3035)的输出端、CLKl和CLKO ;第3037三选一多路选择器(3037),其三输入端分别连接至:第3035三选一多路选择器(3035)的输出端、CLKl和CLK0。第3031二选一多路选择器(3031)、第3035三选一多路选择器、第3036三选一多路选择器、第3037三选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0019](三)有益效果
[0020]从上述技术方案可以看出,本发明可编程信号处理单元具有以下有益效果:
[0021](I)既能存储配置 数据实现逻辑操作,又能存储用户数据实现存储器的读/写操作;
[0022](2)搭配灵活的多路选择器连接,本发明的可编程信号处理单元结构既能够实现独立的自适应逻辑操作及细粒度数据存储功能,又能够实现二者的混合操作,提高了可编程芯片的资源利用效率;
[0023](3)采用本发明中的时钟增强模块,可以对每一个可编程信号处理单元中的时钟信号分别进行时间补偿。当用户电路中的关键路径不满足设计要求的时序性能时,通过重新编程选择合适的延时单元插入到时钟路径上,即可满足用户电路的时序要求,不需要修改用户设计,也不需要重新布局布线,从而缩短了用户电路的开发调试周期,节约了设计成本。
【专利附图】

【附图说明】
[0024]图1为本发明中采用的存储单元(MC)结构的示意图;
[0025]图2为本发明实施例可编程信号处理单元中采用的功能产生单元的结构示意图;
[0026]图3为本发明实施例可编程信号处理单元的结构示意图;
[0027]图4为图3所示可编程信号处理单元中时钟增强模块的结构示意图;
[0028]图5为图4所示时钟增强模块中时钟增强信号路径的示意图;
[0029]图6为图3所示可编程信号处理单元使用时钟增强功能后各信号的时序关系图;
[0030]图7为图3所示可编程信号处理单元在算术运算模式下FPGA中进位链的分布图。【具体实施方式】
[0031]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属【技术领域】中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。
[0032]本发明提出了一种具有自适应逻辑操作和数据存储混合模式的可编程信号处理单元。该可编程信号处理单元中采用了一种具有逻辑运算和数据存储功能的可编程功能产生单元,结合多个多路选择器的连接,本发明的可编程信号处理单元结构既能够实现独立的自适应逻辑操作及细粒度数据存储功能,又能够实现二者的混合操作。
[0033]图1示出了本发明的可编程功能产生单元中所采用的存储单元(MC)的结构框图。每个MC包括:4个NMOS管、两个反相器。其中,4个NMOS管为M1、M2、M3和M4,两个反相器为INVl和INV2。配置地址输入端口 CADDR接NMOS管Ml和M3的栅极,用户地址输入端口ADDR接NMOS管M2和M4的栅极,配置数据输入端口CDATA和CDATA分别接NMOS管Ml和M3的源极,用户数据输入端口 DATA和DATA分别接NMOS管M2和M4的源极,反相器INVl的输出端口 Q接反相器INV2的输入端口,反相器INV2的输出端口0接反相器INVl的输入端口,NMOS管Ml和M2的漏极均连接在0端,NMOS管M3和M4的漏极均连接在Q端。此MC结构能够实现不同来源数据的存储,具体说明如下:
[0034]I)当功能产生单元实现用户逻辑运算功能或细粒度ROM功能时,MC存储来自FPGA配置控制器的配置数据,此时用户地址输入端口 ADDR置为0,配置地址输入CADDR置为1,来自FPGA配置控制器的配置数据CDATA存储于MC的输出端口 Q中;
[0035]2)当功能产生单元实现细粒度RAM功能时,MC接收来自用户电路的用户存储数据,此时配置地址输入端口 C·ADDR置为0,用户地址输入端口 ADDR置为I,将来自用户电路的用户存储数据DATA存储于MC的输出端口 Q中。
[0036]图2示出了 k位输入的功能产生单元的结构框图。如图2所示,在该功能产生单元中,模式控制信号MODE、配置数据CDATA[2k-1~O]信号和CDATApk-1 ~0】信号均来自于FPGA的配置控制器,且MODE要先于CDATA [2k-1~O]和CDATApk-1 ~0丨信号完成配置;WL信号来自于FPGA配置控制器的字线选择控制信号。数据DATA信号、存储器写使能WE信号、写时钟CLK信号、k位写地址信号WR[k-Ι~O]及k位读地址信号RD[k-Ι~O]来自于用户电路。
[0037]图2中,写操作控制模块接收存储器写使能信号WE、写时钟CLK、k位写地址信号WRtk-1~O]以及模式控制信号MODE作为输入;其输出的2k位地址信号ADDR[2k_l~O]分别连接到MC阵列中2k个MC模块的用户地址输入端口 ADDR。MC阵列中2k个MC模块的配置数据输入端口 CDATA分别连接2k位配置数据CDATA [2k-l~O];而FPGA配置控制器中与此2k位配置数据CDATA[2k-1~O]对应的2k位取反配置数据CDATA[2k-l 则分别连接MC阵列中2k个MC模块的CMfS输入端;模式控制信号MODE经反相器INVl取反后,与字线选择控制信号WL —起,分别连接与门ANDl的两个输入端,ANDl的输出CADDR连接MC阵列中2k个MC模块的配置地址输入端CADDR ;来自用户的存储数据DATA连接MC阵列中2k个MC模块的用户数据输入端DATA ;而DATA信号经反相器INV2取反后的输出DATA则连接到MC阵列中2k个MC模块的DATA输入端。读操作控制模块接收来自MC阵列中2k个MC模块的2k位输出信号Q[2k-1?O]以及来自用户电路的k位信号RD[k-l?O]作为输入,其输出信号RO即为整个功能产生单元的输出。
[0038]图2中,写操作控制模块在存储器写操作时实现地址译码、写使能及时钟同步等功能。当模式控制信号MODE为O时,写操作控制模块的输出均为O ;当MODE为I时,写操作控制模块对输入的k位写地址信号WR[k-l?O]进行译码,输出经地址译码、写使能及时钟同步后的2k位地址信号ADDR[2k-l?O]。译码后的2k位地址信号ADDR[2k_l?O]中仅有一位为I,其余均为O。
[0039]图2中,MC阵列对配置数据或用户电路中的存储数据进行存储。MC阵列包含了 2k个MC模块。读操作控制模块实现对MC阵列中所存储数据的异步读操作。其中,输入信号RDtk-1?O]作为读操作的地址信号。当功能产生单元实现逻辑功能时,RD[k-Ι?O]来自于用户逻辑信号;当功能产生单元实现细粒度RAM或ROM的读操作时,RD[k-Ι?O]来自于用户存储的读地址信号。读操作控制模块根据RD[k-l?O]输入的读地址,选择Q[2k-1?O]中的对应位,将其值通过RO端输出。
[0040]图2中所示的功能产生单元可以通过配置来实现独立的用户逻辑功能、独立的细粒度RAM读/写功能、独立的细粒度ROM读/写功能等,具体说明如下:
[0041]I)当实现用户逻辑功能时,模式控制信号MODE为0,此时写操作控制模块不工作,RDtk-1?O]信号接用户逻辑信号。在FPGA配置阶段,当字线选择控制信号WL为I时,来自FPGA配置控制器的2k位配置数据CDATA[2k-l?O]分别存储到MC阵列的2k个MC中。当配置阶段结束进入到用户电路工作阶段时,MC阵列和读操作控制模块一起,实现查找表的功能;
[0042]2)当实现细粒度ROM功能时,模式控制信号MODE为0,此时写操作控制模块不工作,RD[k-l?O]信号接ROM的读地址信号。与用户逻辑功能类似,在FPGA配置阶段,ROM中存储的2k位数据通过FPGA的配置控制器写入到MC阵列的2k个MC中。当配置阶段结束进入到用户电路工作阶段时,根据读地址信号RD[k-l?O]的内容,相应MC中存储的数据通过RO读出;
[0043]3)当实现细粒度RAM功能时,模式控制信号MODE为1,此时写操作控制模块工作,DATA、WE、CLK、WR[k-Ι?0]信号分别接RAM的数据输入、写使能、写时钟、写地址信号,RD [k-Ι?0]信号接RAM的读地址信号。在FPGA配置阶段,功能产生单元不工作。当配置阶段结束进入到用户电路工作阶段时,RAM的写操作通过写操作控制模块和MC阵列一起来实现,而RAM的读操作则通过MC阵列和读操作控制模块一起来实现。
[0044]图3所示为本发明所采用的可编程信号处理单元结构。该可编程信号处理单元主要由五级模块、一些多路选择器、四组WR输入选择器、四组RD输入选择器以及时钟增强模块构成。其中,第一级模块包括:第一功能产生单元(110)、第二功能产生单元(120)、第三功能产生单元(130)和第四功能产生单元(140)。其中,第一功能产生模块(110)和第三功能产生模块(130)的MODE管脚均连接至第一模式输入信号(M0DE1);第二功能产生模块(120)和第四功能产生模块(140)的MODE管脚均连接至第二模式输入信号(M0DE2);第一功能产生模块(110)和第二功能产生模块(120)的DATA管脚、WE管脚、CLK管脚均分别连接至第一 DATA信号(DATAl)、第一 WE信号(WEl)、第一 CLK信号(CLKl);第三功能产生模块(130)和第四功能产生模块(140)的DATA管脚、WE管脚、CLK管脚均分别连接至第二 DATA信号(DATA2)、第二 WE信号(WE2)、第二 CLK信号(CLK2);第四功能产生单元(140)的输出端(RO端)作为该可编程信号处理单元的进位输出端Cwt输出。
[0045]第二级模块包括:第201 二选一多路选择器(201)、第202 二选一多路选择器(202)、第203 二选一多路选择器(203)和第204 二选一多路选择器(204)。其中,多路选择器201、203的输入O端连接至第一功能产生单元(110)的输出端(R0端),其输入I端连接至第三功能产生单元(130)的输出端(R0端);多路选择器202、204的输入O端连接至第二功能产生单元(120)的输出端(R0端),其输入I端连接至第四功能产生单元(140)的输出端(R0端)。
[0046]第三级模块包括--第301 二选一多路选择器(301)和第302 二选一多路选择器(302)。其中,第301 二选一多路选择器(301)的输入O端、I端分别连接至第201 二选一多路选择器(201)、第202 二选一多路选择器(202)的输出端;第302 二选一多路选择器(302)的输入O端、I端分别连接至第203 二选一多路选择器(203)、第204 二选一多路选择器(204)的输出端。
[0047]第四级模块包括:第401寄存器(401)和第402寄存器(402)。其D管脚分别连接第301 二选一多路选择器(301)和第302 二选一多路选择器(302)的输出端。
[0048]第五级模块包括--第403 二选一多路选择器(403)和第404 二选一多路选择器(404)。二者的输出端分别作为该可编程信号处理单元的Ql和Q2输出端。其中,第403 二选一多路选择器(403)的输入O端和I端分别连接至第301 二选一多路选择器(301)的输出端和第401寄存器(401)的输出端(Q端);第404 二选一多路选择器(404)的输入O端和I端分别连接至第302 二选一多路选择器(302)的输出端和第402寄存器(402)的输出端(Q端)。
[0049]在图3所示的的可编程信号处理单元中,还包括一些多路选择器。其中,第101三选一多路选择器(101)的三输入端分别连接D[O]、D[k]和地信号(GND),其输出端连接至第201 二选一多路选择器(201)和第202 二选一多路选择器(202)的控制端;第102三选一多路选择器(102)的三输入端分别连接D[l]、D[k+1]和高电压信号(VCC),其输出端连接至第203 二选一多路选择器(203)和第204 二选一多路选择器(204)的控制端;第205三选一多路选择器(205)的三输入端分别连接D[2]、D[k+2]和地信号(GND),其输出端连接至第301 二选一多路选择器(301)的控制端;第206三选一多路选择器(206)的三输入端分别连接D [3]、D[k+3]和高电压信号(VCC),其输出端连接至第302 二选一多路选择器(302)的控制端。
[0050]在图3所示的可编程信号处理单元中,还包括四组WR输入选择器,每组WR输入选择器包括k个二选一多路选择器。用户信号D[0~2k-l]中的D[i]、D[i+k]通过第i个二选一多路选择器进入功能产生单元110、120、130、140中的WR[i]端,其中i = 0、1、……、k_2、k—I ο
[0051]在图3所示的可编程信号处理单元中,还包括四组RD输入选择器,每组RD输入选择器包括k-ι个二选一多路选择器和I个三选一多路选择器。用户信号D[0~2k-l]中的D[i]、D[i+k]通过第i个二选一多路选择器进入功能产生单元110、120、130、140中的RD[i]端,其中i = 1、……、k-2、k-l ;第一功能产生单元(110)和第二功能产生单元(120)的RD[O]管脚分别连接两个三选一多路选择器的输出,此两个三选一多路选择器的三输入端分别连接D [O]、D [k]及该可编程信号处理单元的进位输入cin信号;第三功能产生单元(130)和第四功能产生单元(140)的RD[0]管脚分别连接两个三选一多路选择器的输出,此两个三选一多路选择器的三输入端分别连接D [O]、D[k]及第二功能产生单元的输出端(RO端)152。
[0052]在图3所示的的可编程信号处理单元中,还包括时钟增强模块。其输入为两路时钟信号CLKO和CLKl,其输出的两路时钟信号ECLKO和ECLKl分别连接至第401寄存器(401)和第402寄存器(402)的elk管脚。在实现用户电路时,当关键路径的时序性能不满足设计要求时,通过在时钟路径上插入合适的延时单元来进行时间补偿,以提高用户电路的实现性能。
[0053]时钟增强模块303的结构示意图如图4所示。该时钟增强模块包括--第3031 二选一多路选择器(3031)、第3035三选一多路选择器(3035)、第3036三选一多路选择器(3036)、第3037三选一多路选择器(3037)、第一延时单元(3032)、第二延时单元(3033)、第三延时单元(3034)。其中,第3031 二选一多路选择器(3031)的两输入端分别连接两路时钟信号输入CLKO、CLK1,其输出连接至第一、二、三延时单元(3032、3033、3034)的输入;第3035三选一多路选择器(3035)的三输入端分别连接至第一、二、三延时单元(3032、3033、3034)的输出端;第3036、3037三选一多路选择器(3036、3037)的三输入端分别连接至第3035三选一多路选择器(3035)的输出端、CLKl和CLK0,其输出即为时钟增强模块的输出ECLKO、ECLKl。
[0054]下面结合图5和图6对时钟增强功能的实施方式进行说明。
[0055]如图5所示的用户信号传播路径,假设时钟信号周期为T,在两个寄存器3038和3040之间存在组合逻辑3039,其延时为Tdata,且Tdata > T。在时钟CLK的上升沿时刻,输入数据D经寄存器3038寄存后输出D1,经过组合逻辑后输出D2。此时寄存器3040不能在一个时钟周期内将D2寄存。如果令连接寄存器3040的时钟信号延时Λ时间,且Tdata > T >Tdata-A,则延时后的时钟信号CLK_DE`LAY能够在一个时钟周期内将D2寄存。其时序关系如图6所示。满足了用户电路的时序要求,提高了系统性能。
[0056]在图3所示的的可编程信号处理单元中,第201 二选一多路选择器(201)、第202 二选一多路选择器(202)、第203 二选一多路选择器(203)、第204 二选一多路选择器(204)、第301 二选一多路选择器(301)、第302 二选一多路选择器(302)、第403 二选一多路选择器、第404 二选一多路选择器、第101三选一多路选择器(101)、第102三选一多路选择器(102)、第205三选一多路选择器(205)、第206三选一多路选择器(206)、四组WR输入选择器、四组RD输入选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0057]在图4所示的时钟增强模块中,第3031 二选一多路选择器(3031)、第3035三选一多路选择器、第3036三选一多路选择器、第3037三选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
[0058]本发明提出的可编程信号处理单元,能够在自适应逻辑模式下实现多种输入数目组合的逻辑操作,在细粒度RAM模式下实现不同容量的单端口 /双端口读写模式,在细粒度ROM模式下实现不同容量、不同数量的ROM读操作,在混合模式下实现逻辑和存储的同时操作,在算术运算模式下实现2个操作数的2位算术运算。
[0059]下面分别阐述本发明的可编程信号处理单元各工作模式的实施方式:
[0060]1)自适应逻辑模式
[0061]本发明的可编程信号处理单元能够工作于自适应逻辑操作模式。此时模式控制信号MODEl、M0DE2为0,用户逻辑信号D [O~2k_l]中的D [i]、D [i+k]通过第i个多路选择器进入功能产生单元110、120、130、140中的RD[i]端,其中i = 0、1、……、k_2、k_l。该模式能够实现多种可变输入数目组合的自适应逻辑功能,包括:1个2k输入的部分组合逻辑操作、1个(2k-l)输入的部分组合逻辑操作、……、1个(k+3)输入的部分组合逻辑操作、1个(k+2)输入的任意组合逻辑操作、2个(k+2)输入的部分组合逻辑操作、2个(k+Ι)输入的任意组合逻辑操作、2个k输入的任意组合逻辑操作等。其中,每个功能产生单元110、120、130、140均可实现k输入的任意逻辑功能。
[0062]表1中列出了几种典型的组合逻辑操作的具体实现方式。其分为两部分,表1-1描述了各种逻辑操作下功能产生单元110、120、130、140的RD[i]端通过第i个多路选择器接入的用户逻辑信号,其中i = 0、1、……、k-2、k-l。表1-2描述了各种逻辑操作下第101三选一多路选择器(101)、第205三选一多路选择器(205)、第102三选一多路选择器(102)、第206三选一多路选择器(206)所选择的输入信号,其中,“——”表示可随意选择输入连接。
[0063]表1-1各种逻辑操作的具体实现方式
[0064]
【权利要求】
1.一种可编程信号处理单元,其特征在于,包括: 第一级模块,包括:第一功能产生单元(110)、第二功能产生单元(120)、第三功能产生单元(130)和第四功能产生单元(140),其中,第四功能产生单元(140)的输出端(RO端)作为该可编程信号处理单元的进位输出端Crat输出; 第二级模块,包括: 第201 二选一多路选择器(201),其输入O端连接至第一功能产生单元(110)的输出端(R0端),其输入I端连接至第三功能产生单元(130)的输出端(R0端); 第202 二选一多路选择器(202),其输入O端连接至第二功能产生单元(120)的输出端(R0端),其输入I端连接至第四功能产生单元(140)的输出端(R0端); 第203 二选一多路选择器(203),其输入O端连接至第一功能产生单元(110)的输出端(R0端),其输入I端连接至第三功能产生单元(130)的输出端(R0端); 第204 二选一多路选择器(204),其输入O端连接至第二功能产生单元(120)的输出端(R0端),其输入I端连接至第四功能产生单元(140)的输出端(R0端); 第三级模块,包括: 第301 二选一多路选择器(301),其输入O端连接至第201 二选一多路选择器(201)的输出端,其输入I端连接至第202 二选一多路选择器(202)的输出端; 第302 二选一多路选择器(302),其输入O端连接至第203 二选一多路选择器(203)的输出端,其输入I端连接至第204 二选一多路选择器(204)的输出端;` 第四级模块,包括: 第401寄存器(401),其D管脚连接至第301 二选一多路选择器(301)的输出端; 第402寄存器(402),其D管脚连接至第302 二选一多路选择器(302)的输出端; 第五级模块,包括: 第403 二选一多路选择器(403),其输入O端连接至第301 二选一多路选择器(301)的输出端,其输入I端连接至第401寄存器(401)的输出端(Q端),其输出端作为该可编程信号处理单兀的Ql输出端; 第404 二选一多路选择器(404),其输入O端连接至第302 二选一多路选择器(302)的输出端,其输入I端连接至第402寄存器(402)的输出端(Q端),其输出端作为该可编程信号处理单兀的Q2输出端; 第201 二选一多路选择器(201)、第202 二选一多路选择器(202)、第203 二选一多路选择器(203)、第204 二选一多路选择器(204)、第301 二选一多路选择器(301)、第302 二选一多路选择器(302)、第403 二选一多路选择器、第404 二选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
2.根据权利要求1所述的可编程信号处理单元,其特征在于,还包括: 第101三选一多路选择器(101),其三输入端分别输入D [O]、D[k]和地信号(GND),其输出端连接至第201 二选一多路选择器(201)和第202 二选一多路选择器(202)的控制端; 第102三选一多路选择器(102),其三输入端分别输入D[l]、D[k+1]和高电压信号(VCC),其输出端连接至第203 二选一多路选择器(203)和第204 二选一多路选择器(204)的控制端;第101三选一多路选择器(101)、第102三选一多路选择器(102)的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
3.根据权利要求2所述的可编程信号处理单元,其特征在于,还包括: 第205三选一多路选择器(205),其三输入端分别输入D [2]、D[k+2]和地信号(GND),其输出端连接至第301 二选一多路选择器(301)的控制端; 第206三选一多路选择器(206),其三输入端分别输入D[3]、D[k+3]和高电压信号(VCC),其输出端连接至第302 二选一多路选择器(302)的控制端; 第205三选一多路选择器(205)、第206三选一多路选择器(206)的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
4.根据权利要求3所述的可编程信号处理单元,其特征在于,所述第一级模块中: 第一功能产生单元(110)和第三功能产生单元(130)的MODE管脚均连接至第一模式输入信号(MODEl); 第二功能产生单元(120)和第四功能产生单元(140)的MODE管脚均连接至第二模式输入信号(M0DE2); 第一功能产生单元(110)和第二功能产生单元(120)的DATA管脚均连接至第一 DATA信号(DATAl); 第三功能产生单元(130)和第四功能产生单元(140)的DATA管脚均连接至第二 DATA信号(DATA2); 第一功能产生单元(110)和第二功能产生单元(120)的WE管脚均连接至第一 WE信号(WEl); 第三功能产生单元(130)和第四功能产生单元(140)的WE管脚均连接至第二 WE信号(WE2); 第一功能产生单元(110)和第二功能产生单元(120)的CLK管脚均连接至第一 CLK信号(CLKl); 第三功能产生单元(130)和第四功能产生单元(140)的CLK管脚均连接至第二 CLK信号(CLK2)。
5.根据权利要求4所述的可编程信号处理单元,其特征在于,还包括:四组WR输入选择器,分别用于相应功能产生单元WR信号的输入,每组WR输入选择器包括:k个二选一多路选择器; 对于该k个二选一多路选择器中的第i个二选一多路选择器:其两输入端分别输入D[i]、D[i+k],其输出端连接至相应功能产生单元的WR[i]管脚,其中i = 0、1、……、k-2、k_l ; 该k个二选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
6.根据权利要求5所述的可编程信号处理单元,其特征在于,还包括:四组RD输入选择器,分别用于相应功能产生单元RD信号的输入,每组RD输入选择器包括:k-l个二选一多路选择器和I个三选一多路选择器; 对于该k-Ι个二选一多路选择器中的第i个二选一多路选择器:其两输入端分别输入D[i]、D[i+k],其输出端连接至相应功能产生单元的RD[i]管脚,其中i = 1、……、k-2、k_l ; 对于该I个三选一多路选择器,其三输入端中的两输入端分别输入D [0]、D[k],其输出端连接至相应功能产生单元的RD[0]管脚;其中,对应第一功能产生单元(110)和第二功能产生单元(120)的该三选一多路选择器中,其三输入端中的另一输入端为该可编程信号处理单元的进位输入cin信号,对应第三功能产生单元(130)和第四功能产生单元(140)的该三选一多路选择器中,其三输入端中的另一输入端连接至第二功能产生单元的输出端(RO 端); 该k-ι个二选一多路选择器、I个三选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
7.根据权利要求6所述的可编程信号处理单元,其特征在于,还包括: 时钟增强模块,其输入为两路时钟信号CLKO和CLK1,其输出的两路时钟信号ECLKO和ECLKl分别连接至第401寄存器(401)和第402寄存器(402)的elk管脚。
8.根据权利要求7所述的可编程信号处理单元,其特征在于,所述时钟增强模块包括: 第3031 二选一多路选择器(3031),其两输入端分别连接两路时钟信号CLK0、CLK1 ; 第一延时单元(3032)、第二延时单元(3033)、第三延时单元(3034),其输入均连接第3031 二选一多路选择器(3031)的输出; 第3035三选一多路选择器(3035),其三输入端分别连接至:第一延时单元(3032)、第二延时单元(3033)、第三延时单元(3034)的输出端; 第3036三选一多路选择器(3036),其三输入端分别连接至--第3035三选一多路选择器(3035)的输出端、CLKl和CLKO ; 第3037三选一多路选择器(3037),`其三输入端分别连接至--第3035三选一多路选择器(3035)的输出端、CLKl和CLKO ; 第3031 二选一多路选择器(3031)、第3035三选一多路选择器、第3036三选一多路选择器、第3037三选一多路选择器的选择控制端由FPGA芯片的配置SRAM中相应位的控制字决定。
9.根据权利要求8所述的可编程信号处理单元,其特征在于,工作于自适应逻辑操作模式时:模式控制信号M0DE1、M0DE2为0,用户逻辑信号D[0~2k_l]中的D[i]、D[i+k]通过第i个多路选择器进入功能产生单元110、120、130、140中的RD[i]端,其中i = O、1、......、k_2、k—I ο
10.根据权利要求8所述的可编程信号处理单元,其特征在于,工作于细粒度RAM模式时:模式控制信号MODEl、M0DE2为I ; 用户存储的读、写地址信号D[0~2k-l]中的D[i]、D[i+k]通过第i个多路选择器进入功能产生单元 110、120、130、140 中的 RD[i]端和 WR[i]端,其中 i = 0、1、......、k_2、k_l ; WCLKU WCLK2接用户存储的写时钟信号;DATA1、DATA2接用户存储的数据;WE1、WE2接用户存储的写使能信号; 令第101三选一多路选择器(101)、第205三选一多路选择器(205)的“GND”端作为输出端,第102三选一多路选择器(102)、第206三选一多路选择器(206)的“VCC”端作为输出端,4个功能产生单元中仅110和140工作,则在该模式下,功能产生单元110的输出151通过第201 二选一多路选择器(201)、第301 二选一多路选择器(301)输出到节点311,功能产生单元140的输出154通过第204 二选一多路选择器(204)、第302 二选一多路选择器(302)输出到节点312。
11.根据权利要求8所述的可编程信号处理单元,其特征在于,工作于细粒度ROM模式时:模式控制信号M0DE1、M0DE2为0,用户读地址信号D[0~2k-l]中的D[i]、D[i+k]通过第i个多路选择器进入功能产生单元110、120、130、140中的RD[i]端,其中i = O、1、……、k_2、k—I ο
12.根据权利要求8所述的可编程信号处理单元,其特征在于,工作于混合模式时:模式控制信号MODEl为0,用户逻辑信号D [O~2k-l]中的D [i]、D [i+k]通过第i个多路选择器进入功能产生单元110、130中的RD[i]端,其中i = 0、1、……、k-2、k-l ;当功能产生单元120、140做ROM操作时,M0DE2为0,用户存储的读地址信号D[0~2k-l]中的D[i]、D[i+k]通过第i个多路选择器进入功能产生单元120、140中的RD[i]端; 当功能产生单元140做细粒度RAM操作时,M0DE2为1,用户存储的读、写地址信号D [O~2k-l]中的D [i]、D [i+k]通过第i个多路选择器进入功能产生单元140中的RD [i]端和WR[i]端,其中i = 0、1、……、k-2、k-l ;WCLK2接用户存储的写时钟信号,DATA2接用户存储的数据;WE2接用户存储的写使能信号。
13.根据权利要求1至12中任一项所述的可编程信号处理单元,其特征在于,所述第一功能产生单元(110)、第二功能产生单元(120)、第三功能产生单元(130)和第四功能产生单元(140)均为相同的可编程功能产生单元,该可编程功能产生单元包括: 写操作控制模块:其在用户电路实现细粒度RAM写操作时,控制MC阵列存储所述RAM中的用户数据;` MC阵列:其在用户电路实现用户逻辑运算以及细粒度ROM功能时,用于存储配置数据;在用户电路实现细粒度RAM写操作时,用于存储所述RAM中的用户数据; 读操作控制模块:其用于读出MC阵列中存储的数据。
14.根据权利要求13所述的可编程信号处理单元,其特征在于,所述MC阵列包括多个MC,每个MC包括:两个反相器和4个NMOS管,其中一个反相器的两端分别经一个NMOS管接配置数据输入端,而另一个反相器的两端分别经一个NMOS管接用户数据输入端;且两个反相器首尾相接。
15.根据权利要求13所述的可编程信号处理单元,其特征在于,所述写操作控制模块用于接收模式控制信号、存储器写使能信号、写地址信号和写时钟信号,其在模式控制信号、存储器写使能信号和写时钟信号的控制下,将所接收到的写地址信号译码成用户存储数据的地址后输出至MC阵列的用户数据的地址输入端。
16.根据权利要求13所述的可编程信号处理单元,其特征在于,所述模式控制信号用于控制所述写操作控制模块是否工作。
17.如权利要求14所述的可编程信号处理单元,其特征在于,在用户电路被配置成实现细粒度RAM功能时,所述MC阵列中的每个MC接收写操作控制模块译码输出的用户数据的存储地址和来自用户电路的用户存储数据,并根据所述用户存储数据的地址存储来自用户电路的所述用户存储数据。
18.如权利要求14所述的可编程信号处理单元,其特征在于,在用户电路被配置成实现用户逻辑运算功能或细粒度ROM功能时,所述MC阵列中的每个MC接收来自FPGA的配置地址和配置数据,并根据所述配置地址信号,存储所述配置数据。
19.如权利要求13所述的可编程信号处理单元,其特征在于,所述读操作控制模块用于实现对MC阵列存储数据的异步读出操作;其接收来自MC阵列中存储的数据和来自用户电路的读操作地址信号,并根据所述读操作地址信号读出所述MC阵列中存储的数据;其中,在用户电路被配置成实现用户逻辑运算功能时,所述读操作地址信号来自于用户电路的用户逻辑信号;在用户电路被配置成实现细粒度ROM功能或细粒度RAM功能时,所述读操作地址信号来自于存储器读地址信号。
20.如权利要求13所述的可编程信号处理单元,其特征在于,在用户电路被配置成实现用户逻辑运算功能时,在配置阶段,MC阵列接收并存储来自FPGA的配置数据和配置地址,而在用户电路工作阶段,MC阵列和读操作控制模块实现查找表LUT的功能。
21.如权利要求13所述的可编程信号处理单元,其特征在于,在用户电路实现细粒度RAM功能时,写操作控制模块接收RAM的写地址信号,并将其进行译码后输出至MC阵列,MC阵列接收来自用户电路中用户存储数据和写操作控制模块的译码地址后,根据所述译码地址存储所述用户存储数据;读操作控制模块接收RAM读地址信号,并根据所述读地址信号从所述MC阵列中读出所存储的用户存储数据。
22.如权利要求13所述的可编程信号处理单元,其特征在于,在实现细粒度ROM功能时,在配置阶段,MC阵列接收来自FPGA的配置地址和配置数据,并根据所述配置地址存储所述配置数据;而在用户电路工作阶段,所述读操作控制模块接收来自用户电路中ROM的读地址信号,并根据所 述读地址信号从所述MC阵列中读出所存储的配置数据。
【文档编号】G06F15/76GK103631754SQ201310432190
【公开日】2014年3月12日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】杨海钢, 李威, 高丽江 申请人:中国科学院电子学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1