CN102160032A - 地址产生 - Google Patents
地址产生 Download PDFInfo
- Publication number
- CN102160032A CN102160032A CN2009801367797A CN200980136779A CN102160032A CN 102160032 A CN102160032 A CN 102160032A CN 2009801367797 A CN2009801367797 A CN 2009801367797A CN 200980136779 A CN200980136779 A CN 200980136779A CN 102160032 A CN102160032 A CN 102160032A
- Authority
- CN
- China
- Prior art keywords
- summation
- address
- register
- output
- sequence
- 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
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 238000000151 deposition Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 7
- 238000007792 addition Methods 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2739—Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Executing Machine-Instructions (AREA)
- Logic Circuits (AREA)
Abstract
本发明描述由集成电路(100)进行的地址产生。一方面大体上涉及地址产生器(220),其具有第一和第二处理单元(310、320)。所述第二处理单元(320)经耦合以从所述第一处理单元(310)接收级输出,且经配置以提供地址输出。所述级输出处于第一范围内,且所述地址输出处于第二范围内。对于为K的块大小,所述第一范围为从-K到-1,且所述第二范围为从0到K-1。
Description
技术领域
本发明涉及集成电路装置(“IC”)。更明确地说,本发明涉及由IC进行的地址产生。
背景技术
可编程逻辑装置(“PLD”)是一种众所周知类型的集成电路,其可经编程以执行指定的逻辑功能。一种类型的PLD(即,现场可编程门阵列(“FPGA”))通常包括可编程瓦片的阵列。举例来说,这些可编程瓦片可包括输入/输出块(“IOB”)、可配置逻辑块(CLB)、专用随机存取存储器块(“BRAM”)、乘法器、数字信号处理块(“DSP”)、处理器、时钟管理器、延迟锁定环路(DLL)等等。如本文中所使用,“包括”意指无限制地包括。
每一可编程瓦片通常包括可编程互连和可编程逻辑两者。所述可编程互连通常包括大量具有变动长度的互连线,其通过可编程互连点(“PIP”)互连。所述可编程逻辑使用可编程元件来实施用户设计的逻辑,所述可编程元件可包括(例如)函数产生器、寄存器、算术逻辑等等。
可编程互连和可编程逻辑通常通过将配置数据流加载到内部配置存储器单元中来编程,所述配置数据定义如何配置所述可编程元件。配置数据可从存储器(例如,从外部PROM)读取或由外部装置写入到FPGA中。个别存储器单元的集体状态接着确定FPGA的功能。
另一类型的PLD为复合可编程逻辑装置或CPLD。CPLD包括两个或两个以上“功能块”,其连接在一起且通过互连开关矩阵连接到输入/输出(“I/O”)资源。CPLD的每一功能块包括两级AND/OR结构,其类似于可编程逻辑阵列(“PLA”)和可编程阵列逻辑(“PAL”)装置中所使用的结构。在CPLD中,配置数据通常存储在非易失性存储器的芯片上。在一些CPLD中,配置数据存储在非易失性存储器的芯片上,接着作为初始配置(编程)序列的一部分而下载到易失性存储器。
对于所有这些可编程逻辑装置(“PLD”),装置的功能性由出于所述目的而提供给装置的数据位控制。所述数据位可存储在易失性存储器(例如,静态存储器单元,如在FPGA和一些CPLD中)中,存储在非易失性存储器(例如,快闪存储器,如在一些CPLD中)中,或存储在任何其它类型的存储器单元中。
其它PLD通过施加处理层(例如金属层)来编程,所述处理层以可编程方式互连装置上的各种元件。这些PLD称为掩模可编程装置。PLD还可以其它方式(例如,使用熔丝或反熔丝技术)来实施。术语“PLD”和“可编程逻辑装置”包括但不限于这些示范性装置,而且涵盖仅可部分编程的装置。举例来说,一种类型的PLD包括硬译码的晶体管逻辑与可编程开关结构的组合,所述可编程开关结构以可编程方式互连所述硬译码的晶体管逻辑。
常规上,使用涡轮-通道码来对数据进行译码。涡轮码以接收到数据的次序和以交错次序使用数据。因此,原始数据被使用两次。涡轮-通道码意指卷积码。所述数据使用交错器来混合,且所述交错器可为编码器、解码器或编码器/解码器(“编解码器”)的一部分。
数据可在编码之前交错且接着经解交错以进行解码。在一些译码(包括编码和解码中的任一者或两者)系统中,通过并行处理来实现高处理量。数据通常由编码器交错,且由解码器解交错。因为解码比编码更具计算密集性,且为了实现整体系统高处理量,解交错应当能够在解码器中并行实施。
在第三代合作伙伴计划(“3GPP”)中,在所提议的长期演进(“LTE”)3GPP规范中提出二次置换多项式(“QPP”)交错器以促进无争用的寻址。关于3GPP LTE的额外细节可参见http://www.3gpp.org。明确地说,公布日期为2008年5月的3GPP TS 36.212版本8.3.0技术规范在其第五章节中揭示了通道译码、多路复用和交错,尤其是子章节5.1.3、5.1.4.1.1和5.2.2.8描述了通道交错器。
使用QPP交错器允许将个别数据块分裂成多个线程且并行地对其进行处理。如果多个独立数据块各自由其线程来处理,那么并行处理所有此类数据块的此类线程涉及复制所述QPP交错器。因此,应了解,用以实施QPP交错器的交错器电路的大小和性能影响对涡轮-通道码进行编码和解码两者的效率。
发明内容
地址产生器的实施例包含:第一处理单元;以及第二处理单元,其经耦合以从所述第一处理单元接收级输出且经配置以提供地址输出。对于为K的块大小,所述级输出处于从-K到-1的第一范围内,且所述地址输出处于从0到K-1的第二范围内。
在此实施例中,所述地址产生器可为从由编码器、解码器和编解码器组成的群组中选择的译码装置的一部分,其中所述地址产生器提供所述地址输出以用于二次置换多项式交错。所述地址输出可包括多个地址序列。所述第一处理单元和所述第二处理单元分别可用第一初始化值或第二初始化值来初始化。所述第一初始化值可用于所述多个地址序列中的第一序列,且所述第二初始化值可用于所述多个地址序列中的第二序列。所述地址输出可用于从0到K-1的地址序列的至少一部分;所述第一处理单元可用第一初始化值和第二初始化值来初始化;且所述第二处理单元可用第三初始化值和第四初始化值来初始化。
在此实施例中,所述第一处理单元可包含:第一加法器;第一寄存器,其耦合到所述第一加法器;第一多路复用器,其耦合到所述第一寄存器;第一减法器,其耦合到所述第一多路复用器和所述第一寄存器;以及第二寄存器,其耦合到所述减法器,用以输出所述级输出,其中所述级输出被反馈到所述第一加法器。所述第一寄存器可处理第一序列,且所述第二寄存器可同时处理第二序列。所述第二处理单元可包含:第二加法器,其用以接收所述级输出;第三寄存器,其耦合到所述第二加法器;第二多路复用器,其耦合到所述第三寄存器;第三加法器,其耦合到所述第二多路复用器和所述第三寄存器;以及第四寄存器,其耦合到所述第三加法器,用以输出所述地址输出,其中所述地址输出可被反馈到所述第二加法器的输入。
用以产生地址的方法的实施例包含:获得步长大小和块大小;获得第一初始化值和第二初始化值;将所述步长大小相加到差值以提供第一总和;响应于所述第一总和的符号位而从所述第一总和减去空值或所述块大小以提供另一差值,其中对于为K的块大小,所述另一差值处于-K到-1的范围内;寄存所述第一总和或所述另一差值;以及反馈所述另一差值以便将所述另一差值相加到所述步长大小。
在此实施例中,所述方法可进一步包含:通过将所述另一差值相加到第三总和来产生第二总和;响应于所述第二总和的符号位来将所述空值或所述块大小相加到所述第二总和以提供另一第三总和,其中所述另一第三总和处于0到K-1的范围内;寄存所述第二总和或所述另一第三总和;以及反馈所述另一第三总和以用于所述用于相加以提供所述第二总和的步骤的另一迭代。所述寄存所述第一总和或所述另一差值可包括在相应反馈环路内寄存所述另一差值以用于管线式操作,且其中寄存所述第二总和或所述另一第三总和可包括在相应反馈环路内寄存所述另一第三总和以用于管线式操作。所述寄存所述第一总和或所述另一差值可包括在相应反馈环路内寄存所述第一总和以用于管线式操作,且其中所述寄存所述第二总和或所述另一第三总和可包括在相应反馈环路内寄存所述第二总和以用于管线式操作。所述将所述步长大小相加到所述差值以提供所述第一总和的步骤可与所述通过将所述另一差值相加到所述第三总和来进行相加以提供所述第二总和的步骤同时执行。所述方法可进一步包含提供所述另一第三总和以用于二次置换多项式交错。
附图说明
附图展示根据本发明的一个或一个以上方面的示范性实施例;然而,附图不应用以将本发明限于所展示的实施例,而是仅用于解释和理解。
图1为描绘柱形现场可编程门阵列(“FPGA”)架构的示范性实施例的简化框图,其中可实施本发明的一个或一个以上方面;
图2为描绘交错器的示范性实施例的框图;
图3为描绘图2的交错器的地址产生器的示范性实施例的电路图;
图4为描绘图3的地址产生器的地址产生流程的示范性实施例的流程图;
图5为描绘地址产生流程的示范性实施例的伪码列表。
具体实施方式
在以下描述中,陈述众多具体细节以提供对本发明的具体实施例的较透彻描述。然而,所属领域的技术人员应明了,可在没有下文给出的所有具体细节的情况下实践本发明。在其它例子中,尚未详细描述众所周知的特征以免混淆本发明。为易于说明起见,不同图式中使用相同数字标签来指代相同项目;然而,在替代实施例中,所述项目可为不同的。
如上文所提及,高级FPGA可在阵列中包括若干不同类型的可编程逻辑块。举例来说,图1说明FPGA架构100,其包括大量不同可编程瓦片,其中包括多千兆位收发器(“MGT”)101、可配置逻辑块(“CLB”)102、随机存取存储器块(“BRAM”)103、输入/输出块(“IOB”)104、配置与计时逻辑(“CONFIG/CLOCKS”)105、数字信号处理块(“DSP”)106、专门输入/输出块(“I/O”)107(例如,配置端口和时钟端口)以及其它可编程逻辑108,例如数字时钟管理器、模/数转换器、系统监视逻辑等等。一些FPGA还包括专用处理器块(“PROC”)110。
在一些FPGA中,每一可编程瓦片包括可编程互连元件(“INT”)111,其具有去往和来自每一邻近瓦片中的对应互连元件的标准化连接。因此,所采用的可编程互连元件一起实施用于所说明FPGA的可编程互连结构。可编程互连元件111还包括去往和来自同一瓦片内的可编程逻辑元件的连接,如图1顶部处所包括的实例所示。
举例来说,CLB 102可包括可经编程以实施用户逻辑的可配置逻辑元件(“CLE”)112,以及单个可编程互连元件(“INT”)111。除了一个或一个以上可编程互连元件以外,BRAM 103还可包括BRAM逻辑元件(“BRL”)113。通常,瓦片中所包括的互连元件的数目取决于瓦片的高度。在所图示的实施例中,BRAM瓦片具有与五个CLB相同的高度,但也可使用其它数目(例如,四个)。除了恰当数目的可编程互连元件以外,DSP瓦片106还可包括DSP逻辑元件(“DSPL”)114。举例来说,除了可编程互连元件111的一个例子以外,IOB 104还可包括输入/输出逻辑元件(“IOL”)115的两个例子。如所属领域的技术人员将清楚,例如连接到I/O逻辑元件115的实际I/O垫通常不局限于输入/输出逻辑元件115的区域。
在所图示的实施例中,在裸片中心附近的柱形区域(图1所示)用于配置、时钟和其它控制逻辑。从此柱体延伸的水平区域109用以在FPGA的整个宽度上分配时钟和配置信号。
一些利用图1所说明的架构的FPGA包括额外逻辑块,其中断组成FPGA的大部分的规则柱形结构。额外逻辑块可为可编程块和/或专用逻辑。举例来说,处理器块110横跨若干列CLB和BRAM。
请注意,图1既定仅说明示范性FPGA架构。举例来说,一列中的逻辑块的数目、列的相对宽度、列的数目和次序、列中所包括的逻辑块的类型、逻辑块的相对大小以及图1顶部处所包括的互连/逻辑实施方案纯粹为示范性的。举例来说,在实际FPGA中,在CLB出现的任何地方通常包括一个以上邻近CLB列,以促进用户逻辑的有效实施,但邻近CLB列的数目随FPGA的整体大小而变化。
如先前所描述,在LTE 3GPP规范中详细说明QPP交错器,且此类QPP交错器可用公式表示为以块大小K为模的二次方程式。所详细说明的QPP交错过程的直接实施方案将涉及复合乘法和复合模运算,所述运算对于硬件实施方案来说效率非常低。较有效的硬件实施方案在2008年3月31日申请的所指派申请案案号为12/059,731的本·J·琼斯(Ben J.Jones)等人的题目为“用于二次置换多项式交错的地址产生(Address Generation for Quadratic Permutation Polynomial Interleaving)”的共同待决的美国专利申请案(代理人案号为X-2726US)[下文称为“琼斯”]中描述。琼斯展示并描述了可如何精简二次公式以产生可使用加法器、减法器和选择电路(例如,多路复用器)实施的电路。如下文另外详细描述,可通过移除与琼斯相关联的选择运算且减少琼斯的加法器和减法器的数目来获得更进一步简化的用于地址产生以进行交错的电路。此外,与琼斯相比,此类电路精简又减少了寄存器数,但应从以下描述了解到,此类简化地址产生器具有与琼斯的性能相同或相当的性能。与琼斯相比的另一精简是取消了位于第一级与第二级之间的寄存器,从而允许进一步简化控制逻辑,因为可同时应用初始化值,如下文另外详细描述。
虽然以下描述是依据LTE 3GPP QPP交错器及其地址序列,但应了解,可使用其它地址序列。LTE 3GPP QPP交错器具有由下式定义的地址序列:
∏(x)=(f1x+f2x2)mod K,其中0≤x,f1,,f2<K, (1)
其中f1和f2为多项式的系数,x为从0到K-1的线性序列中的增量,且K为块大小。第x个交错地址可通过使用方程式(1)来获得,其中f1和f2对于任何整数块大小K均为固定系数。因此,用于增量x的地址序列是以x的置换次序从0到K-1。应理解,虽然将序列描述为从0到达K-1,但应了解,序列不需要在0处开始且不需要一直到达K-1,也就是说,不需要步进通过所有K个增量的序列的每一线性增量。此外,可存在跳越值以用于跳过线性增量以产生序列。再次,应了解,数据块可分解成多个线程或流以用于并行处理,如下文另外详细描述。
如琼斯中所指示,方程式(1)的一阶求导为:
∏′(x)=[f2(2nx+n2)+f1n]mod K, (2)
且方程式(1)的二阶求导为:
∏″(x)=[2n2f2]mod K。 (3)
在方程式(2)和(3)中,n为跳越值,其可为大于0的任何整数值。因此,举例来说,如果n等于1,那么没有跳越,且处理序列(0,1,2,...直到某一数字,其可大到K-1)的每一线性增量以便针对所述序列提供最多K个交错地址。因此,跳越值n可用以确定所产生的交错地址序列中的步幅或跳跃。
再次,当将n设定为1时,可产生K个地址的完整序列;然而,如果将n设定为大于1的整数值,那么可产生序列的地址的子集。举例来说,如果将n设定为等于2,那么可从0开始产生序列中每隔一个的地址,即0,2,4,...,K-2。因为方程式(2)和(3)中的连续项之间的差值分别为线性函数和常数,所以可仅使用加法、减法和选择运算以产生序列的地址来实施所述电路,如下文另外详细描述。另外,出于管线化多个序列(即,多个线程或流)的目的(其中相互处理多个流),可添加临时存储操作,例如寄存操作。因此,如应从以下描述中了解到,可在地址产生器的电路实施方案中管线化多个相位或序列以提高用于产生交错地址的处理量。或者,取决于涡轮码处理块的并行性质,管线化可用于以交替方式针对单个或多个数据块的不同线程产生交错地址序列。因此,应了解,可针对多种数据块支持许多不同序列起点(即,针对x的许多不同起点)和/或跳越值n。可预先确定初始化值并将其存储在存储器中以用于初始化地址产生以获得序列。
图2为描绘交错器200的示范性实施例的框图。交错器200可为解码器、编码器或编解码器的一部分。更明确地说,交错器200可与卷积码相关联,例如用于QPP交错的涡轮-通道码。块大小201可输入到存储装置210,其可为交错器200的一部分或与交错器200分离。存储装置210可为查找表、随机存取存储器或其它形式的存储装置。另外,块大小201可输入到地址产生器220。对存储装置210的另一输入可为跳越值202。使用块大小201和跳越值202,可从存储装置210获得初始化值203和步长大小204以用于提供给地址产生器220。地址产生器220产生地址221以提供一个或一个以上地址序列。
图3为描绘图2的地址产生器220的实施例的电路图。地址产生器220包括第一级地址引擎310和第二级地址引擎320。第一级地址引擎310为用于地址产生的初始级,且产生级输出302。级输出302被提供到第二级地址引擎320以用于产生至少一个地址序列221。
第一级地址引擎310包括加法器311、减法器312和选择电路,例如多路复用器313。对于此示范性实施例,第一级地址引擎310包括寄存器314和315。对于单个流/序列,可在第一级地址引擎310的反馈环路内仅实施一个寄存器,即寄存器314或315。第一级引擎310中的寄存器的设置镜射第二级引擎320的寄存器设置,以确保用于特定流/序列的值在相同的迭代时间点处在从级输出302到加法器321的输入处为一致的。然而,管线化可用以提高处理量。另外,通过具有寄存器314和315中的每一者的至少一者,可一起产生两个地址序列(即,两个线程或流)。另外,虽然仅说明性展示寄存器314和315中的每一者的一者,但应了解,可实施寄存器314和315中的每一者的一者以上。举例来说,假如存在寄存器314和315中的每一者的两者,那么可通过管线化并发性产生多达四个序列线程或流。应理解,在交替时钟周期上产生流。另外,边沿触发式触发器可用以在交替边沿上产生流。出于清楚起见,借助于实例而非限制,应假设仅存在寄存器314和315中的每一者的一者。
如先前描述,可从存储装置210获得初始化值203。这些初始化值被指示为初始化值I(x)203-1和初始化值A(x)203-2。
第二级地址引擎320包括加法器321、加法器322和选择电路,例如多路复用器323。另外,如果使用管线化,那么第二级地址引擎320可包括至少一个寄存器324和至少一个寄存器325。同样,可存在寄存器324和325中的至少一者或寄存器324和325中的每一者的多者,如先前参看寄存器314和315所描述。然而,同样,出于清楚起见,借助于实例而非限制,应假设存在寄存器324和325中的每一者的一者。此时,应理解,地址引擎310和320可用三个加法器、一个减法器和两个选择电路来实施。
初始化值I(x)203-1作为可加载输入提供给可加载加法器311。在提供给寄存器314、315、324和325中的每一者的时钟部分的时钟信号301的初始时钟周期上,加法器311的输出使用初始化值I(x)203-1作为其用于序列的初始有效输出。同样,对于序列的初始周期,作为可加载输入提供给可加载加法器321的初始化值A(x)203-2用于来自其的初始有效输出。
步长大小204作为数据输入提供给加法器311。对加法器311的另一数据输入为级输出302,其作为反馈输入来提供。因而,步长大小204可与初始级输出302相加以在从所述加法器输出初始化值I(x)203-1之后输出。更明确地说,对于图3的示范性实施例,因为存在寄存器314和315,所以在加法器311处所应用的第一初始化值直到两个时钟周期后当应将步长值204相加到其时(即,在第三周期中)才作为反馈302而反馈给加法器311。在第二周期上,可针对第二序列/流应用额外初始化值,如当在反馈环路内存在两个寄存器/管级时所支持的。
加法器311的输出提供给寄存器314的数据输入端口。寄存器314的输出被提供给减法器312的加端口。另外,从寄存器314的输出获得符号位(例如,最高有效位(“MSB”)316)作为多路复用器313的控制选择信号。应了解,来自寄存器314的MSB输出也提供给减法器312的加端口。
多路复用器313的逻辑0端口经耦合以接收块大小201,且多路复用器313的逻辑1端口经耦合以接收逻辑0 330。如果MSB位316为逻辑1,其指示负值,那么多路复用器313输出逻辑0 330,即空值。然而,如果MSB位316为逻辑0,其指示寄存器314的输出为正值,那么多路复用器313输出块大小201。
多路复用器313的输出提供给减法器312的减端口以用于从对其加端口的数据输入中减去。或者,多路复用器313和减法器312组合地可视为可加载加法器,其中待加载的值为待从中减去(即,连接到加输入端口)的候选者,且加载控制位为此值的MSB。因而,应了解,如果来自寄存器314的输出为正,那么减去块大小201(即,-K)迫使减法器312的输出为负,即在-K到-1的范围内。如果寄存器314的输出已经为负,那么将逻辑0 330相加到此输出没有影响,且因此减法器312的输出为寄存器314的负输出。因此,减法器312的输出在-K到-1的范围内以用于输入到寄存器315的数据端口。寄存器315的输出为级输出302。因而,级输出302将在-K到-1的范围内,其中K为块大小201。因此,第一级地址引擎310将范围切换到负值,即移动-K。
来自第一级地址引擎310的级输出302提供给加法器321的数据端口以用于与地址221相加。地址221为来自寄存器325的地址输出且作为反馈地址来提供。应了解,在操作期间从多个时钟周期产生地址221的序列。在从地址产生器220输出有效数据的时钟周期上,地址221组成形成地址序列的一部分的地址输出。
在输出初始初始化值A(x)203-2之后,可加载加法器321可输出反馈地址221与级输出302的总和。在下一周期上,另一初始化值用于另一序列,如先前参看可加载加法器311描述且此处出于清楚起见而不再重复。来自可加载加法器321的输出提供给寄存器324的数据端口。寄存器324的输出提供给加法器322的数据端口,且从寄存器324输出的符号位(例如MSB位326)作为控制选择信号提供给多路复用器323以及提供给加法器322的数据端口。
多路复用器323的逻辑0端口经耦合以接收逻辑0 330,且多路复用器323的逻辑1端口经耦合以接收块大小201。对于MSB位326为逻辑0,即指示寄存器324的输出为正,多路复用器323选择逻辑0 330用于输出。然而,如果MSB位326为逻辑1,其指示寄存器324的输出为负值,那么多路复用器323选择块大小201用于输出。
多路复用器323的输出提供给加法器322的数据输入端口。加法器322将来自寄存器324的输出与来自多路复用器323的输出相加。因此,应了解,加法器322的输出处于正值范围内,即从0到K-1。换句话说,通过在地址引擎320中回加K,在地址引擎310中将值移位或移动-K有效地被中和,即对计算没有净影响。
加法器322的输出(其在0到K-1的范围内)提供给寄存器325的数据输入端口。寄存器325的输出为地址221,其被反馈给加法器321且用作地址序列的一部分。
第一级地址引擎310和第二级地址引擎320可用图1的FPGA 100的相应DSP 106和CLB 102来实施。或者,可仅使用CLB 102来实施引擎310和320。通过用CLB和DSP中的每一者的一者来实施地址引擎级,促进实施多个地址引擎并行地操作,因为每一地址引擎级消耗很少资源。换句话说,因为可使用很少电路组件来提供地址产生器220,所以用于在FPGA内实施多个地址产生器的机会较多。
在图3的示范性实施例中,地址引擎310和320串联耦合且因此具有顺序操作。然而,应理解,地址引擎310和320并发地操作以处理序列。因此,对于具有寄存器314、315、324和325的示范性实施例,仅存在两个周期的等待时间,而非在输出有效地址221作为地址序列321的一部分之前具有四个周期的等待时间。这参看图4另外详细描述,其中展示描绘图3的地址产生器220的地址产生流程400的示范性实施例的流程图。进一步同时参看图3和图4来描述流程400。
在401处,获得块大小和跳越大小,例如块大小201和跳越大小202。在402处,响应于在401处获得的值从存储装置获得初始化大小(例如,初始化值I(x)203-1和A(x)203-2)和步长大小(例如,步长大小204)。
在403处,产生总和,例如由加法器311产生,如先前描述。在404处,由加法器321产生总和,如先前描述。应了解,在403和404处产生的总和是并发地产生,即并行地产生。
在405处,使用在403处产生的总和来产生差值,例如由减法器312产生。同样,此差值处于-K到-1的范围内。提供在405处产生的差值以用于在下一周期上在404处产生另一总和。
在406处,使用在404处产生的总和来产生总和,例如由加法器322产生。同样,在405处产生差值和在406处产生总和先前已参看图3来描述,且此处出于清楚起见而不再重复。同样,在406处产生的总和的范围为从0到K-1。此外,可在406处输出地址,例如地址221。
倘若序列未完成,那么在406处输出的地址被反馈以在404处产生另一总和。此外,倘若序列未完成,那么在405处产生的差值被反馈以在403处产生另一总和。
根据406处的输出,可在407处确定是否应递增所述序列。对于硬件实施方案,可响应于步长大小204和/或块大小201来针对线性序列预设经耦合以接收时钟信号301的计数器(未图示)。然而,对于软件实施方案(包括固件),可做出决策。如果应递增所述序列,那么在408处使序列递增,即递增x或i(如下文描述),以用于在下一时钟周期上在403和404处产生其它总和。因此,操作序列可呈硬件、软件或其组合形式。
如果在407处,确定序列不应递增,那么在409处,可确定是否存在另一序列要处理。如果在409处确定另一序列待处理,那么流程400返回到401以用于针对所述另一序列获得块大小和跳越大小。如果没有额外序列要处理,那么流程400在499处结束。
图5为描绘地址产生流程500的示范性实施例的伪码列表。如在501处针对循环502大体上指示而对值进行设定和初始化。
对于图5,假设块大小K对于涡轮码等于256且跳越值n等于2,即同时处理两个相位或两个序列,以用于在503处设定块大小和跳越大小。对于此示范性实施例,序列为奇数序列和偶数序列。对于偶数序列,x在0处开始,且对于奇数序列,x在1处开始。因而,对于偶数序列,初始化值(“A_cand[x]”)203-2(偶数)为方程式(1),其中x等于0。此外,对于偶数序列,初始化值(“I_cand[x]”)203-1(偶数)为方程式(2),其中x设定为等于0。应了解,用于偶数序列的两个初始化值203-1和203-2精简到相应常数,因为系数f1和f2为常数。
对于奇数序列,x在1处开始,且因此在方程式(1)中代入x等于1产生初始化值203-2(奇数),且在方程式(2)中代入x等于1产生初始化值203-1(奇数)。同样,应了解,用于奇数序列的初始化值203-1和203-2各自精简到常数。
步长大小204不取决于x,如方程式(3)中指示,且因此步长大小(“s”)204为常数值。通过相对于用于奇数和偶数序列的初始化值203-1和203-2的常数值以及步长大小204,应理解,这些为用于数据块的一个或一个以上序列的常数。在此实例中,存在两个线程或流,但可实施两个以上线程。随着x作为线性序列的一部分而递增,初始化地址候选者(“A_cand[x]”)和增量候选者(“I_cand[x]”)针对x的每一增加而前进。因此,对于此示范性实施例来说,对于第一相位,即此实例中的偶数序列,x为序列0,2,4,.....,K-2,且对于第二相位,x具有级数1,3,5,...,K-1。
因为地址候选者在序列的第一迭代上为正,所以其可直接输出。此外,增量候选者在序列的第一迭代上为正,所以从其减去块大小。因此,对于x等于0,针对偶数序列输出的第一地址值为初始化值203-2(偶数),即0,且针对所述第一迭代的初始级输出为初始化值203-1(偶数)减去K。通过第一迭代,应理解,可存在某些周期的等待时间,如先前描述,且因此,第一迭代意指第一有效输出。对于第二迭代,即第二有效输出(但对于奇数序列为第一有效输出),地址候选者为正,且因此其可直接输出,即不需要加上K,且增量候选者在第二迭代上为正,所以从其减去块大小。因此,在第二迭代上,初始化值203-2(奇数)输出作为图3的地址221,且初始化值203-1(奇数)减去K输出作为级输出302。同样,步长大小204为可初始化的常数,因为其对于奇数和偶数相位两者来说仅取决于跳越值n。换句话说,奇数和偶数相位两者具有相同的步长大小。
不必将跳越值设定为n等于2。换句话说,可使用较大跳越值,或可将跳越值n设定为等于1。此外,虽然出于清楚起见借助于实例而非限制描述了等于256的块大小K,但应理解,可使用大于或小于256的块大小。此外,虽然出于清楚起见针对此实例使用固定的块大小,但应了解,可使用可变的块大小。因此,不必使用奇数和偶数序列或甚至不必使用跳越值在多个序列当中交替。举例来说,可将跳越值设定为块大小的某一分数。不必使线性序列一直从0前进到K-1,而是可处理序列的某一片段。然而,出于清楚起见,借助于实例而非限制,应假设,在循环502中处理从0到K-1的整个序列。
不必使x具有对应于跳越值的初始化值。举例来说,x可重新初始化为块大小的分数。继续以上针对K等于256的实例,如果x应再次初始化为K的一半,那么将把x等于128代入方程式(1)和(2)中以分别产生初始化值203-2和203-1以用于所述处理。然而,第一值(即,此序列中的x等于0)将如先前所描述。
在511处,将增量i设定为针对循环502从0到达K-1。如果地址候选者为负,那么将块大小K相加到地址候选者,如512处指示。如果增量候选者为正,那么减去块大小K,如513处指示。
在514处,计算用于接下来的当前相位的下一地址候选者。在515处,计算用于接下来的当前相位的下一增量候选者。在516处,输出用于当前相位的地址。在此实例中,循环502为针对i以一为增量从0到K-1,且当在516之后i等于K-1时,那么循环502在517处结束。
虽然已针对多个线程或序列描述了地址产生流程500,但应理解,可针对单个序列来精简所述流程,在此情况下,将仅获得一组地址和增量候选者。此外,应理解,可针对两个以上线程或相位而递增两组以上地址和增量候选者。
虽然前文描述了根据本发明的一个或一个以上方面的示范性实施例,但可在不脱离本发明的范围的情况下构想出根据本发明的所述一个或一个以上方面的其它进一步实施例,本发明的范围由所附权利要求及其等效物确定。举例来说,初始化可在每一引擎中的任何寄存器之前发生,而以上描述假设使用位于每一引擎的初始寄存器的前方或紧接之前的逻辑的初始化。换句话说,示范性实施例恰巧展示分别在图3的寄存器314和324之前的可加载加法器311和321中的初始化。假设初始化在加法器311和321中是由于这些加法器较不复杂,因为其不涉及相应的多路复用器。然而,初始化可在可加载减法器312和可加载加法器322处发生。或者,两个流可同时而非依序初始化。所以,来自减法器312的差值与来自加法器322的总和可在来自加法器311的总和与来自加法器321的总和针对第二序列初始化的同时针对第一序列初始化。而且,当插入额外寄存器以允许一个或一个以上额外流时,在所述寄存器的前方可不存在任何逻辑,且因此,所述寄存器可用于初始化。
此外,如果第一流/序列使用第一和第三初始化值且第二流/序列使用第二和第四初始化值,那么应理解,所述第一和第二流/序列可完全彼此独立且各自可在块中的任何点处开始,但两者可不具有相同起点。然而,第一流/序列不必必须在第二流/序列之前或之后初始化。此外,在第三初始化值对应于与第一初始化值相同的流/序列的情况下,且在第三初始化值初始化第二处理引擎的情况下,第一初始化值可用以针对具有介于0与K-1之间(包括0与K-1)的特定开始位置的同一流/序列初始化第一处理引擎。类似地,第二初始化值和第四初始化值可对应于同一流/序列。
虽然已参看本发明的特定实施例来描述了本发明,但所属领域的技术人员将了解,可在不脱离本发明的精神的情况下做出对所描述实施例的修改。因此,本发明的范围将由所附权利要求书界定而不是由以上详细描述界定。请注意,列举步骤的权利要求并不暗示所述步骤的任何次序,且商标是其相应拥有者的财产。
Claims (15)
1.一种地址产生器,其特征在于,包含:
第一处理单元;以及
第二处理单元,其经耦合以从所述第一处理单元接收级输出且经配置以提供地址输出,
其中对于为K的块大小,所述级输出处于从-K到-1的第一范围内,且所述地址输出处于从0到K-1的第二范围内。
2.根据权利要求1所述的地址产生器,其特征在于,所述地址产生器为从由编码器、解码器和编解码器组成的群组中选择的译码装置的一部分,其中所述地址产生器提供所述地址输出以用于二次置换多项式交错。
3.根据权利要求2所述的地址产生器,其特征在于,所述地址输出包括多个地址序列。
4.根据权利要求3所述的地址产生器,其特征在于,所述第一处理单元和所述第二处理单元分别用第一初始化值或第二初始化值来初始化。
5.根据权利要求4所述的地址产生器,其特征在于,所述第一初始化值用于所述多个地址序列中的第一序列;且其中所述第二初始化值用于所述多个地址序列中的第二序列。
6.根据权利要求2所述的地址产生器,其特征在于,:
所述地址输出用于从0到K-1的地址序列的至少一部分;
所述第一处理单元是用第一初始化值和第二初始化值来初始化;以及
所述第二处理单元是用第三初始化值和第四初始化值来初始化。
7.根据权利要求1所述的地址产生器,其特征在于,所述第一处理单元包含:
第一加法器;
第一寄存器,其耦合到所述第一加法器;
第一多路复用器,其耦合到所述第一寄存器;
第一减法器,其耦合到所述第一多路复用器和所述第一寄存器;以及
第二寄存器,其耦合到所述减法器,用以输出所述级输出;
其中所述级输出被反馈到所述第一加法器。
8.根据权利要求7所述的地址产生器,其特征在于,所述第一寄存器处理第一序列,且所述第二寄存器同时处理第二序列。
9.根据权利要求8所述的地址产生器,其特征在于,所述第二处理单元包含:
第二加法器,其用以接收所述级输出;
第三寄存器,其耦合到所述第二加法器;
第二多路复用器,其耦合到所述第三寄存器;
第三加法器,其耦合到所述第二多路复用器和所述第三寄存器;以及
第四寄存器,其耦合到所述第三加法器,用以输出所述地址输出;
其中所述地址输出被反馈到所述第二加法器的输入。
10.一种用于产生地址的方法,其特征在于,包含:
获得步长大小和块大小;
获得第一初始化值和第二初始化值;
将所述步长大小相加到差值以提供第一总和;
响应于所述第一总和的符号位而从所述第一总和减去空值或所述块大小以提供另一差值,其中对于为K的块大小,所述另一差值处于-K到-1的范围内;
寄存所述第一总和或所述另一差值;以及
反馈所述另一差值以便将所述另一差值相加到所述步长大小。
11.根据权利要求10所述的方法,其特征在于,进一步包含:
通过将所述另一差值相加到第三总和来产生第二总和;
响应于所述第二总和的符号位来将所述空值或所述块大小相加到所述第二总和以提供另一第三总和,其中所述另一第三总和处于0到K-1的范围内;
寄存所述第二总和或所述另一第三总和;以及
反馈所述另一第三总和以用于所述用于相加以提供所述第二总和的步骤的另一迭代。
12.根据权利要求11所述的方法,其特征在于,所述寄存所述第一总和或所述另一差值包括在相应反馈环路内寄存所述另一差值以用于管线式操作,且其中所述寄存所述第二总和或所述另一第三总和包括在相应反馈环路内寄存所述另一第三总和以用于管线式操作。
13.根据权利要求11所述的方法,其特征在于,所述寄存所述第一总和或所述另一差值包括在相应反馈环路内寄存所述第一总和以用于管线式操作,且其中所述寄存所述第二总和或所述另一第三总和包括在相应反馈环路内寄存所述第二总和以用于管线式操作。
14.根据权利要求11所述的方法,其特征在于,所述将所述步长大小相加到所述差值以提供所述第一总和的步骤是与所述通过将所述另一差值相加到所述第三总和来进行相加以提供所述第二总和的步骤同时执行。
15.根据权利要求11所述的方法,其特征在于,进一步包含提供所述另一第三总和以用于二次置换多项式交错。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/233,320 | 2008-09-18 | ||
US12/233,320 US8219782B2 (en) | 2008-09-18 | 2008-09-18 | Address generation |
PCT/US2009/051224 WO2010033298A1 (en) | 2008-09-18 | 2009-07-21 | Address generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102160032A true CN102160032A (zh) | 2011-08-17 |
CN102160032B CN102160032B (zh) | 2016-08-31 |
Family
ID=41278507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980136779.7A Active CN102160032B (zh) | 2008-09-18 | 2009-07-21 | 地址产生 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8219782B2 (zh) |
EP (1) | EP2329362B1 (zh) |
JP (1) | JP5242796B2 (zh) |
KR (1) | KR101263152B1 (zh) |
CN (1) | CN102160032B (zh) |
WO (1) | WO2010033298A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959403B2 (en) * | 2006-11-10 | 2015-02-17 | Optis Wireless Technology, Llc | QPP interleaver/de-interleaver for turbo codes |
US9014296B2 (en) * | 2009-10-09 | 2015-04-21 | Lg Electronics Inc. | Method and apparatus for transmitting encoded signals with frequency hopping environment |
TW201209711A (en) * | 2010-08-19 | 2012-03-01 | Ind Tech Res Inst | Address generation apparatus and method for quadratic permutation polynomial interleaver |
US8848842B2 (en) | 2012-08-16 | 2014-09-30 | Xilinx, Inc. | Recursion unit scheduling |
US9965278B1 (en) * | 2016-12-20 | 2018-05-08 | Texas Instruments Incorporated | Streaming engine with compressed encoding for loop circular buffer sizes |
US10621132B1 (en) | 2017-05-05 | 2020-04-14 | Xilinx, Inc. | Auto address generation for switch network |
TWI709046B (zh) * | 2019-09-09 | 2020-11-01 | 英業達股份有限公司 | 多地址響應的複雜可程式邏輯裝置及運作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0047842A2 (en) * | 1980-09-15 | 1982-03-24 | International Business Machines Corporation | Skewed matrix address generator |
US5905665A (en) * | 1997-01-10 | 1999-05-18 | Samsung Electronics, Co., Ltd. | Modulo address generating circuit and method with reduced area and delay using low speed adders |
CN1345486A (zh) * | 1999-03-31 | 2002-04-17 | 高通股份有限公司 | 位倒置随机交织的综合地址发生 |
CN101232289A (zh) * | 2007-01-17 | 2008-07-30 | 美国博通公司 | 涡轮解码器及解码涡轮编码信号的方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3883852A (en) * | 1973-04-20 | 1975-05-13 | Corning Glass Works | Image scanning converter for automated slide analyzer |
DE3371947D1 (en) * | 1982-12-20 | 1987-07-09 | Radiotechnique Sa | Generator of random number sequences |
SE465393B (sv) * | 1990-01-16 | 1991-09-02 | Ericsson Telefon Ab L M | Adressprocessor foer en signalprocessor |
US5687342A (en) * | 1991-09-18 | 1997-11-11 | Ncr Corporation | Memory range detector and translator |
JPH07253922A (ja) * | 1994-03-14 | 1995-10-03 | Texas Instr Japan Ltd | アドレス生成回路 |
KR970011794B1 (ko) * | 1994-11-23 | 1997-07-16 | 한국전자통신연구원 | 메모리 소자를 이용한 하다마드 변환기 |
KR100189539B1 (ko) | 1996-09-06 | 1999-06-01 | 윤종용 | 인터리빙 및 디인터리빙 어드레스 생성기 |
KR100193846B1 (ko) * | 1996-10-02 | 1999-06-15 | 윤종용 | 인터리브 리드 어드레스 생성기 |
WO2000010257A1 (en) * | 1998-08-17 | 2000-02-24 | Hughes Electronics Corporation | Turbo code interleaver with near optimal performance |
US6871303B2 (en) * | 1998-12-04 | 2005-03-22 | Qualcomm Incorporated | Random-access multi-directional CDMA2000 turbo code interleaver |
KR100306282B1 (ko) * | 1998-12-10 | 2001-11-02 | 윤종용 | 통신시스템의인터리빙/디인터리빙장치및방법 |
KR100480286B1 (ko) * | 1999-04-02 | 2005-04-06 | 삼성전자주식회사 | 터보 인터리빙 어드레스 발생 장치 및 방법 |
US6782447B2 (en) * | 1999-12-17 | 2004-08-24 | Koninklijke Philips Electronics N.V. | Circular address register |
KR100393608B1 (ko) * | 2000-09-29 | 2003-08-09 | 삼성전자주식회사 | 유.엠.티.에스시스템내 터보부호화기의 내부 인터리버 및인터리빙 수행 방법 |
AUPR679401A0 (en) * | 2001-08-03 | 2001-08-30 | Lucent Technologies Inc. | High speed add-compare-select processing |
JP2003091923A (ja) * | 2001-09-18 | 2003-03-28 | Sony Corp | 再標本化アドレスジェネレータ回路 |
US7058874B2 (en) * | 2002-05-24 | 2006-06-06 | Lucent Technologies Inc. | Interleaver address generator and method of generating an interleaver address |
US6865660B2 (en) * | 2002-06-28 | 2005-03-08 | Micron Technology, Inc. | Method and apparatus for generating deterministic, non-repeating, pseudo-random addresses |
US6851039B2 (en) * | 2002-09-30 | 2005-02-01 | Lucent Technologies Inc. | Method and apparatus for generating an interleaved address |
US7262716B2 (en) * | 2002-12-20 | 2007-08-28 | Texas Instruments Incoporated | Asynchronous sample rate converter and method |
US20050044119A1 (en) * | 2003-08-21 | 2005-02-24 | Langin-Hooper Jerry Joe | Pseudo-random number generator |
US7552156B2 (en) * | 2004-08-30 | 2009-06-23 | Nunes Ryan J | Random number generator |
EP1746496B1 (en) * | 2005-07-19 | 2010-05-05 | Emma Mixed Signal C.V. | Modulo arithmetic |
US7502909B2 (en) * | 2005-10-11 | 2009-03-10 | Motorola, Inc. | Memory address generation with non-harmonic indexing |
EP1840734A1 (en) * | 2006-03-24 | 2007-10-03 | Telefonaktiebolaget LM Ericsson (publ) | Processor with address generator |
US7873893B2 (en) * | 2007-02-28 | 2011-01-18 | Motorola Mobility, Inc. | Method and apparatus for encoding and decoding data |
WO2009014298A1 (en) * | 2007-07-20 | 2009-01-29 | Electronics And Telecommunications Research Institute | Address generation apparatus and method of data interleaver/deinterleaver |
US8140932B2 (en) * | 2007-11-26 | 2012-03-20 | Motorola Mobility, Inc. | Data interleaving circuit and method for vectorized turbo decoder |
-
2008
- 2008-09-18 US US12/233,320 patent/US8219782B2/en active Active
-
2009
- 2009-07-21 KR KR1020117008803A patent/KR101263152B1/ko active IP Right Grant
- 2009-07-21 EP EP09790666.3A patent/EP2329362B1/en active Active
- 2009-07-21 JP JP2011527850A patent/JP5242796B2/ja active Active
- 2009-07-21 WO PCT/US2009/051224 patent/WO2010033298A1/en active Application Filing
- 2009-07-21 CN CN200980136779.7A patent/CN102160032B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0047842A2 (en) * | 1980-09-15 | 1982-03-24 | International Business Machines Corporation | Skewed matrix address generator |
US5905665A (en) * | 1997-01-10 | 1999-05-18 | Samsung Electronics, Co., Ltd. | Modulo address generating circuit and method with reduced area and delay using low speed adders |
CN1345486A (zh) * | 1999-03-31 | 2002-04-17 | 高通股份有限公司 | 位倒置随机交织的综合地址发生 |
CN101232289A (zh) * | 2007-01-17 | 2008-07-30 | 美国博通公司 | 涡轮解码器及解码涡轮编码信号的方法 |
Non-Patent Citations (1)
Title |
---|
YANG SUN等: "Configurable and Scalable High Throughput Turbo Decoder Architecture for Multiple 4G Wireless Standards", 《IEEE INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS,ARCHITECTURES AND PROCESSORS》 * |
Also Published As
Publication number | Publication date |
---|---|
KR20110069108A (ko) | 2011-06-22 |
KR101263152B1 (ko) | 2013-05-15 |
EP2329362B1 (en) | 2019-10-02 |
JP2012503248A (ja) | 2012-02-02 |
CN102160032B (zh) | 2016-08-31 |
US20100070737A1 (en) | 2010-03-18 |
JP5242796B2 (ja) | 2013-07-24 |
WO2010033298A1 (en) | 2010-03-25 |
EP2329362A1 (en) | 2011-06-08 |
US8219782B2 (en) | 2012-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102160032A (zh) | 地址产生 | |
US8856492B2 (en) | Method for vector processing | |
US7421563B2 (en) | Hashing and serial decoding techniques | |
US12112396B2 (en) | Task execution in a SIMD processing unit with parallel groups of processing lanes | |
US8675810B2 (en) | Programmable low power multi-modulus divider with 50/50 duty cycle | |
US9996317B2 (en) | High speed and low power circuit structure for barrel shifter | |
US9823689B2 (en) | Variable clocked serial array processor | |
JP2013539143A (ja) | 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム | |
US7783690B2 (en) | Electronic circuit for implementing a permutation operation | |
Johnson et al. | The circular pipeline achieving higher throughput in the search for bent functions | |
US7007059B1 (en) | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization | |
GB2521029A (en) | Data processing device and method for interleaved storage of data elements | |
Mihajloska Trpcheska et al. | Programmable processing element for crypto-systems on FPGAs | |
Huang et al. | Modular design of fully pipelined accumulators | |
US20140067891A1 (en) | Pseudo random number generator and method for providing a pseudo random sequence | |
US7742598B2 (en) | Shrinking key generator for parallel process | |
Yang et al. | An area-efficient BCH codec with echelon scheduling for NAND flash applications | |
Mikusek et al. | On lookup table cascade-based realizations of arbiters | |
US20220236994A1 (en) | Filtering Method and System of Parallel Computing Results | |
Waeijen et al. | Reduction operator for wide-SIMDs reconsidered | |
JP2013539144A (ja) | 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム | |
Ortega-Cisneros et al. | Design and Implementation of the AMCC Self-Timed Microprocessor in FPGAs. | |
JP2008244599A (ja) | 復号装置 |
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 |