CN1157662A - 专用处理器及其设计方法 - Google Patents
专用处理器及其设计方法 Download PDFInfo
- Publication number
- CN1157662A CN1157662A CN95194008A CN95194008A CN1157662A CN 1157662 A CN1157662 A CN 1157662A CN 95194008 A CN95194008 A CN 95194008A CN 95194008 A CN95194008 A CN 95194008A CN 1157662 A CN1157662 A CN 1157662A
- Authority
- CN
- China
- Prior art keywords
- applying unit
- bus
- data
- functional block
- selecteed
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Communication Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一个专用处理器的结构和设计方法,此专用处理器具有一个与特定应用的需要相匹配的指令集。此专用处理器的设计方法是基于使用一组预先设计好的功能块(111-113)。这些功能块封装了特定应用最常用的复杂处理函数。每个预先设计好的特定应用功能块被设计成使得被封装的处理算法的某些参数的值通过寄存器来实现,而这些寄存器可通过编程设定为任意给定的值。每一个预先设计好的特定应用功能块被设计成使得它可以同多用途总线(110)进行接口,而通过此多用途总线(110)功能块可以接收调用,重设和数据输入输出路由选择指令。
Description
发明背景
本发明主要涉及到一复杂的专用集成电路,更具体地说,是一分布式并行处理器结构及使这种复杂集成电路能被容易设计的设计方法。
集成电路技术在门电路的集成方面不断向前发展,从很小数量(小于100个晶体管)到大量(成百万个晶体管)。因此,这就使得实现功能愈来愈复杂的集成电路(ICs)成为可能,从而代替大量的分立器件,但在尺寸,成本,可靠性方面与分立器件相当。但是,电路的复杂性和大量的可用晶体管使得设计IC更加困难。因此,开出了很多工具来帮助IC设计者更有效地设计IC。这些工具的目的是为了使设计者更容易地合成目标逻辑,而不必处理晶体管和门电路。
在通用的处理器结构中,基本的底层指令(如加,乘,比较等)是由硬件来实现的,这些底层指令被顺序组成一组经编程的指令集合以实现复杂的功能。这样的结构受中央处理单元(CPU)可实现的吞吐量的限制,因为CPU必须满足对于一系列操作的峰值吞吐量的要求。这样的限制经常对硬件提出很高的要求并导致被设计出的硬件利用效率不高。此外,这种集中控制结构的功率管理一般也很困难。
为了满足设计吞吐量的目标并且采用有效的硬件实现,设计者经常倾向于使用专用集成电路设计技术,其代价是牺牲由后合成可编程性提供的系统设计灵活性。
大体上,开发了两种方法来帮助IC设计者-“标准单元”和“门阵列”技术。这些技术在美国专利No.5,119,314(Hotta等),5,173,864(Watanabe等),5,197,016(Sugimoto等)和5,283,753(Schucker等)中有一般的阐述。在标准单元方法中,常用的逻辑块被仔细地设计和存储在单元库中。设计者可以寻找和内连合适的逻辑块以提供所需的功能。通常,这些块是基本逻辑结构,比如NAND或NOR门或其它简单的逻辑块,如加法器或乘法器。逻辑块可通过块的合适的输入/输出端子之间路由选择导线相连。
门阵列技术涉及到包含单一集成电路元件(门电路)直到但不包括可寻相连第一层的大量基片的制造。IC设计者只需指定用于内连预制好的门电路的导电模式来“定制”门阵列。
这两种方法共有的问题之一是:很难使用它们来设计执行复杂功能的IC、这是因为:标准单元和门阵列对所有应用的类型来说是基本的简单的逻辑块。因此,这将花费很多时间,技术和努力把这些基本的结构单元集成为有用的专用集成电路。此外,布局和时间安排的限制及用于内连这些逻辑块的设计努力通常会限制了设计者的自由和增加了设计时间。
作为例子,用于通讯的电路一般执行复杂的信号处理操作。这样电路的例子是有限脉冲响应滤波器,无限脉冲响应滤波器,解调器和相关器。这些电路包括复杂的数学算法,而这些算法只有相当熟练的工程师才能理解和设计。因此,使用可由标准单元和门阵列技术得到的基本结构单元实现这些电路是非常冗长乏味的。
一些与使用标准单元和门阵列设计方法的复杂集成电路的设计相关的布局限制由Schucker等人做了解决。其中描述的块结构的集成电路的设计方法允许先前开发的逻辑块的重用,但它没有讨论内连各种逻辑块的复杂性。此外,被描述的集成电路的设计方法不提供功率管理,而功率管理是包含大量门电路的复杂IC设计的重要因素。
有些电子系统制造者采用了完全不同的策略来解决以上的问题。他们使用通用IC,如微控制器和数字信号处理器而不依赖于定制IC。这些IC每秒能执行大量的指令。一般使用软件来定制这些IC的功能。
使用通用IC的其中一个问题是这些IC不可能达到与专用IC相比拟的吞吐量。在处理速度是关键因素的很多应用中,比如高速通讯系统,通用IC的性能是无法接受的。而且,软件的使用不会改变对相当熟练的工程师的需要,以实现复杂处理算法。
Sugimoto等公开了一计算机辅助系统及包含一通用处理器和连接在数据、地址和控制总线上的多个逻辑块的专用集成电路的设计方法。这个设计方法有几个缺点。首先,这种方法缺少执行由集成硅软件编译器合成为硬件块的逻辑块的后合成编程能力;即,基本的支持功能,如比较器,加法器,乘法器和计数器,加入这些基本功能块可增强系统的吞吐量。此外复杂算法的处理需要仍是在软件中实现,因而仍需要熟练的设计者来设计复杂系统。此外,由Sugimoto等描述的集成电路的设计方法不包括功率管理。
因此,存在这样的需求,即需要一个块结构的专用集成电路和允许把复杂的专用处理封装成功能块并能在不同的设计中重用的设计方法,并且这些功能块能被后合成编程以满足高效的专用集成电路设计发展和升级的需要。发明概要
本发明包括一专用处理器(ASP)结构(能在单个基片上实现)和使用专用指令集合的设计方法。每个指令指定一高阶的适用于某类特定应用的操作和处理函数。某类特殊应用的处理需要(如通讯产品)被首先分析和组合成操作,此应用最常用的处理算法被组合成功能块以便捕获非常复杂的,频繁使用的数据类型转换,使之组合成单一的功能块。每一个功能块对应于该指令集的一个专用的指令。这些专用指令实现为被设计成由多用途总线内连的硬件功能块。使用中,内连硬件功能块按照由设计者指定的指令程序的顺序排列以实现特定应用。在很多功能块中,由功能块实现的处理算法的某些参数的值可使用寄存器来指定,而这些寄存器可通过编程设定为多个可能值中的一个。因此,每一个功能块可被设计者视为参数可编程的专用的高阶操作或指令。
每一个这样的功能块包括多个低阶的原语,这些原语被安排和组合到一起以形成专用的高阶操作。因为每个功能块对于特定应用来说是一高阶操作,这些功能块可以看成是形成一种专用语言的‘文法’(syntax),即这些功能块包含用于对ASP的操作进行编程的专用语言的代码段。因此,被本发明的系统和方法所使用的功能块可互换地称为“应用文法”或“应用元件”。库中的每个应用文法还包括将功能块接口至多用途总线的接口模块。
应用文法可以看成是集成电路的构造块,它们关于某一目标技术(如,特殊的微电子集成技术,如CMOS)被预先设计,实现和优化。
预设计的专用功能块(应用文法)被组合在一设计库中以便于以下所述本发明ASP的设计过程。设计者首先分析特定应用的设计要求,然后用库中所选的专用功能块的子集来描述这些要求,好象他是在使用专用指令写程序。选定的功能块然后通过封装在每个功能块中的标准多用途总线接口进行连接。集成的设计就可以被合成为可编程ASP集成电路。已合成ASP集成电路的后合成裁剪通过使用指令程序来完成,此指令程序顺序调用每个专用功能块并为每个功能块提供重设和数据输入输出的路由选择指令。功率管理设计方案包含在每个专用功能块的设计中,它允许大多数的功能块逻辑只有当执行接受到一调用指令的时间内才能打开。
根据本发明ASP的设计通过使用高级的编程语言得以简化,这样设计者可以把系统级的要求直接转换成ASP的实现,而不必深入了解与每个应用文法相关的复杂算法。使用这种语言,根据本发明的ASP可用一简单程序来设计,此简单程序指定了不同的应用文法间的关系,每个应用文法的各参数,包括输入输出位置、设置和相对于多用途总线时钟每个应用文法的调用时间。未被指定的参数被设为预定义的默认值。
本发明的ASP结构和设计方法可用于设计许多种的产品。例如,若库中包括与通讯系统相关的应用文法,则它就可用来设计蜂窝电话,无线局域网,个人通讯网和数字电缆网这样的产品。结果,设计应用文法的费用就可以由库的很多使用者分摊。
本发明的方法还提供了简化的,ASP的高级设计技术。每一个应用文法可被认为是带有预定义输入输出特性的“黑匣子”。因此,库的设计者就没必要深入地理解怎样实现这些复杂的专用的功能块。设计者只与系统层的构造块或应用文法打交道。使用这些应用文法设计系统比起通过选择,排列和连接标准单元或内连成千上万的门电路来实现同样的功能容易且快得多。结果,设计一产品的成本和投入市场的时间大大减少了。
此外,产品的改进和发展的费用也因采用了本发明的ASP和设计方法而减少了。使用已经公开的ASP结构、应用文法库和设计方法,很容易通过移去和插入应用文法然后重新合成为新版的专用的集成电缆来改变或增加新的特点到此产品中。没有必要重新设计整个系统。此外,由于每个应用文法的设计中固有的后合成可编程性,产品的改进可通过对已实现的ASP重新编程来实现,而不必重新合成。这样,产品改进和发展的费用就大大降低了。
本发明的应用文法之间的内连允许使用单一的多用途总线实现的弱耦合以便一组应用语法可异步操作。多用途总线上的每个应用文法可同时被调用(并行处理)或时间交错被调用(流水线处理)。此外,应用文法只有在其处理所需功能的时候才有效。因为应用文法的功率使用依赖于它是否有效,因此这种特点允许内在的有效的功率管理。
多用途总线用于传送命令和数据。数据和命令成对出现以便它们能通过一次访问被传送到多用途总线上。分配给命令和数据的总线上字的数量在每次存取中可以变化。这种“动态边界”特点可以最大效率地利用多用途总线。
本发明的结构也允许分布式控制,在这种控制中,每个应用文法可以产生和发送命令和数据给其它应用文法。这样,就不需要中央控制器。这种分布式控制方法可以有效地实现高时序的,多模式的专用处理。但是,本发明的结构也可以使用应用文法去控制ASP中几个其它的应用文法的操作。当一应用文法成为一组其它应用文法的中央控制器后,受控的应用文法被指定为应用文法“簇”。在这种方式中,要求宽的接口带宽的应用文法可以以组的方式用单一的物理接口内连,而此物理接口与以上描述的多用途总线是分离的。这种应用文法的簇化使得内连接口的带宽被裁剪以与集成电路内部数据流的带宽匹配。这个特点避免了数据流阻塞。
应用文法的应用之一是在数字通讯领域。应用文法包含复杂的算法,如数字滤波器、相关器、解调器和误差修正等。在本发明的结构中,通讯系统的设计者不必理解这些算法的细节。设计者仅仅把合适的应用文法组合在一起,就能容易地设计出各种产品,如扩展谱、频率反射、时分多址调制解调器的复杂通讯专用集成电路。
附图简述
图1所示为本发明专用结构图。
图2所示是本发明应用文法中的接口访问逻辑块。
图3所示是本发明应用文法中的时钟使能逻辑块。
图4所示是本发明应用文法中的应用文法逻辑块。
图5是ASP设计方法的流程图。
图6所示是使用本发明的通讯专用结构实现的调制解调器的框图。
图7所示是图6中调制解调器的流程图。
图8所示是表明图6中调制解调器的流水线处理特点的时序图。
本发明的其它方面和优点在通过例子公开了本发明的原理的本发明的以下描述,和所附的图表相结合之后将变得很清楚。
发明详述
本发明是一个处理器结构及其设计方法,此法中,多个各自执行特定功能的功能单元连接在一起协调地执行一任务。这些功能单元被集成在一起的结构和为了执行依赖应用的处理的功能单元的集合,这里称为专用处理器(ASP)。
图1是本发明ASP结构100的简图。它示出了命令/数据/时序总线110和多个应用文法,如应用文法111,112,113。这些应用文法可以不同,或其中一些可以相同。应用文法间的通讯通过命令/数据/时序总线110进行。
每个应用文法大体上包括用于与命令/数据/时序总线110接口的相同的电路。因此,仅详细描述应用文法如应用符号111中之一的接口电路就足够了。应用文法111包含一时钟使能逻辑块121,一接口访问逻辑块123和应用文法逻辑块125。应用文法逻辑块125执行预定义功能。例如,图1所示为应用文法逻辑块125对用户数据进行操作,这些用户数据通过指定给外部接口131线的双向路径提供给应用文法111。时钟使能逻辑块121和接口访问逻辑块123使应用文法逻辑块125与命令/数据/时序总线110进行接口。时钟使能逻辑块121为应用文法逻辑块125提供时序信号,同时仅需要其功能时,使应用文法逻辑块125有效。接口访问逻辑块123允许应用文法逻辑块125通过命令/数据/时序总线110从其它应用文法接收命令和数据,和向其它应用文法发送命令和数据。
在ASP结构100中,每个应用语法中的时钟使能块121和接口访问逻辑块123的结构基本上是相同的,尽管某些独特的元件,如应用文法的地址是不同的。在应用文法块125中的某些元件也同所有的应用文法是相同的(如,与时钟使能块121和接口访问逻辑块123接口的元件)。但是,在应用文法中执行特定数据和信号处理功能的电路可以不同(如,一应用文法可作为解调器,也可作为相关器等)。简要地说,应用文法可以执行不同的功能,但这些应用文法与命令/数据/时序总线110相接口的部分基本上是相同的。因此,应用文法也可使用命令/数据/时序总线110互相接口。
图2所示是图1中接口访问逻辑块123的详细框图。图1和图2中相同的数字标号表示相同的元件。接口访问逻辑块123包含与块142中的命令/数据输入块142和时钟使能逻辑块121相连的地址解码器140。地址解码器140接收来自命令/数据总线150的地址信号,并使得命令/数据输入块142和时钟使能逻辑块121接收用于应用文法111的命令和数据。命令/数据总线150是图1所示命令/数据/时序总线110的一部分。由命令/数据输入块142所处理的命令和数据被送至应用文法块125。接口访问逻辑块123也包含命令/数据输出块144和地址输出块148。这两个块把由应用文法逻辑块125产生的命令、数据和地址信息传送到命令/数据总线150。接口访问逻辑块123还包括一总线访问电路146,此电路与命令/数据输出块142和地址输出块148相连。
两个命令/数据块142和144对含有一对命令和数据的输入输出格式进行操作,命令和数据每一个的大小均是可变的。命令和数据的总的大小是基于特定应用文法逻辑的操作需要。所述命令和数据对具有可移动边界,这样可以最大限度地提高物理接口(命令/数据/时序总线110)的效率。
因为接口访问逻辑块123的结构对于所有的应用文法基本上是相同的,所以一个应用文法可以通过命令/数据/时序总线110把命令和数据送到另外一个应用文法。这种“数据驱动”分布式控制方法产生了高度时序的,多模式专用处理的高效实现。因此,在此结构中,没有必要把控制方法限制在完全的中央控制方法上;而分布式控制,集中控制或混合控制可用来最好地匹配所需应用的需求。一个应用文法产生命令并把它送至其它应用文法的能力使得一个应用文法可成为一组其它应用文法的中央控制器,这些其它的应用文法被指定为应用文法簇。
这个结构的另一个优点是命令/数据/时序总线110对应用文法逻辑是隐蔽的(即,应用文法逻辑不必知道总线操作的细节)。因此,应用文法特定功能的设计者不必知道总线操作,使得设计更经济。
图3所示是图1所示时钟使能逻辑块121的详细框图。图1,2,3中相同的数字标号代表相同的元件。时钟使能逻辑块121包含一命令状态寄存器211,此命令状态寄存器从时序总线153,命令/数据总线150和接口访问逻辑块123的地址解码器140中接收输入信号。时序总线153是命令/数据/时序总线110的一部分,一般地包含加载在不同线上的多个时钟信号。
命令状态寄存器211接收传送给应用文法111的时间相关的命令和数据。命令状态寄存器211使用这些命令和数据决定多路调制器选择值和周期(epoch)模值。多路调制器选择值通过一组多路调制器选择线214送至多路调制器213中,这样,多路调制器213就可从时序总线153中选择所要的时钟(或周期)。周期模值被送至命令逻辑块217中并在那里定义模(即打开选通时钟之前所计的周期数),下面将要阐述。
多路调制器213的输出与活动定时器215相连。活动定时器215还通过线路227从命令逻辑块217中接收一‘计数’信号。这个计数信号相应于上面所述在命令逻辑块217中的周期模值。活动定时器215使用此计数信号对周期(由命令状态寄存器选择)进行计数,然后把“完成”的信号通过线225送至命令逻辑块217中。命令逻辑块然后启动选通的时钟并产生起动信号(与选通时钟同步)。起动信号和选通时钟通过线219和221分别耦合至应用文法逻辑块125。命令逻辑块217通过线220从应用文法块中接收一“完成”信号。命令逻辑块217还包括通过来自命令状态寄存器211的命令使选通时钟有效或无效的电路。
时钟使能逻辑块121使应用文法逻辑块125在指定的时序周期的特定时刻被激活。例如,时钟使能逻辑块121可以被设置以便在预定义周期上激活应用符号逻辑块125并使选通时钟在空闲时间内无效,因而限制了应用文法的功率耗散。进一步,时钟使能逻辑块121允许基于分布在整个系统的时序周期上的应用文法的自动操作。这样,通过使每个应用文法只有它的功能需要调用时才有效的方式,数据处理的时间顺序和高效的功率管理就成了本结构的内在特征。
图4所示为图1所示应用文法逻辑块125的详细框图。图1,2,3,4中相同的数字标号代表相同的元件。应用文法逻辑块125包含一应用功能逻辑块256,此应用功能逻辑块执行某一应用文法特有的预定义功能,如通过外部接口131线提供的用户数据的转换。即,应用功能块256包含除那些对所有应用文法都相同的接口结构部分外的电路。应用文法逻辑块125还包括命令/数据多路调制/多路解调块252,它们从接口访问逻辑块123中接收命令和数据并从时钟使能逻辑块121中接收选通时钟信号。命令/数据和多路调制/多路解调逻辑块252提取从接口访问逻辑块123中接收的命令(用于传递到命令/解码逻辑块254中)和数据(用于同应用功能逻辑块256进行双向通讯)。
命令/解码逻辑块254可以认为是应用逻辑块125的控制器。它通过线262控制应用文法功能逻辑块256的操作。即,命令/解码逻辑块254通过命令/数据和多路调制/多路解调块252从接口访问逻辑块123接收命令,解释这些命令并控制应用功能逻辑块256的操作。这些操作的一个例子是:(i)设置应用功能逻辑块256,(ii)请求一特殊的预定义的由外部接口131线提供的用户数据的转换。一旦某个命令完成,应用功能逻辑块256就通过线264发送一“完成”信号至命令/解码逻辑块254。
如以上所述,由命令/解码逻辑块254在219上接收到的起动信号用于同应用功能逻辑块256的调用保持同步。命令/解码逻辑块256还产生一“已做”信号并将它(通过线220)传送至时钟使能逻辑块121,时钟使能逻辑块121继而使通向命令/解码逻辑块254,应用功能逻辑块256和命令/数据多路调制/多路解调块252的选通时钟无效。使通向这些块的选通时钟无效也就是基本上关闭了它们。相反,使选通时钟有效就等于把它们接通。
正如上面指出的,应用文法中的应用功能逻辑块256被特别设计以执行预定义功能。每个应用文法定义对于目标技术(如特定微电子集成技术)预先设计、实现和优化的专用功能。一组执行不同的数据和信号转换功能的应用文法可放入一个库中。当需要为某一应用设计一系统时(如无线通讯用的调制解调器),从库中选择合适的应用文法并把它们放至命令/数据/时序总线上以便它们能执行所需的功能。
在图1-4提出的实施方案中,命令变量在命令/数据总线150上被传送并由接口访问逻辑块123和时钟使能逻辑块121处理。时间变量在时序总线153上传送并主要由时钟使能逻辑块121处理。
ASP结构允许一组应用文法同时被调用(并行处理),时间上交错(流水线处理)或按时间顺序(非交叠处理)。这种能力允许系统设计选择有很大的灵活性。时间上同时调用(并行处理)允许实现高的处理吞吐量。时间交错的调用(流水线处理)或按时间顺序的调用(非交叠处理)允许一个应用文法作为另一个应用文法的预处理器。每个应用文法的时间变量(T)决定调用周期的调准以实现相对另一个应用文法最有效的处理。
合适的应用文法从包含整个可用的应用文法集合的库中选出。结构设计允许任何组应用文法以完全连接拓扑内连,它允许任何两个应用文法间的数据流动。这种内连是基于若耦合,由此一组应用文法可异步操作。
参考图5所示的流图,详细讨论了本发明ASP集成电路的设计方法。首先,分析目标产品的处理要求并把它们分解成基本的专用处理例如就通讯产品而言,滤波、解调、去交叠等(过程10)。下一步,搜索专用功能块库以便找到满足指定处理需要的应用文法的子集(过程14)。假如新的或独有的专用处理功能不包含在库中,这些新的或独有的应用处理需要就使用硬件描述语言(HDL)实现为一个应用文法,此应用文法包括前面提到的至ASP多用途总线的接口(过程16)。新设计的应用文法HDL和库中已存在的预设计的应用文法的HDL合在一起形成了目标ASP集成电路的HDL(过程18)。
功能层次的仿真在过程20中执行以便确认内和外接口是否和设计规格相符。与过程20中的功能层次的仿真同时,设计了一专用指令程序,这样它可用于对所选应用文法的操作进行排序,以便实现目标专用ASIC的处理要求(过程24)。下一步,用把用来实现ASP的技术当作目标的合适的计算机辅助设计(CAD)合成工具来合成集成的HIL(过程22)。在过程26中,生成的逻辑然后与在过程24中设计的专用指令程序结合在一起,并在门电路层次仿真,以便验证与目标专用需求是否一致。一旦充分的门电路层次的逻辑仿真完成,设计就可用于ASIC的布局和制造。(过程28)
应用文法库可以认为是编程语言中的一个指令集。用户可以从库中选择合适的指令子集以实现与所要应用相匹配的可编程ASP。指令集可以被裁剪以匹配目标应用的特定处理需要(如,数字通讯)。ASP结构是一种指令集中的指令可以结合起来以协作的方式工作以执行某一应用的结构。此专用指令集中的单个成员是这样来设计的,即它捕获那些高度复杂,频繁使用的数据转换类型,使它们成为单一的“文法”,这些文法可以在应用层次按基本指令寻址。这种“文法”被称之为以上所述的“应用文法”或“应用单元”。这些文法的实际实施方案的例子即是上面结合图1-4讨论的应用文法111,112和113。
在ASP结构中,应用文法由两组基本的变量,即命令(C)和时间(T)被调用。以与软件编程相似的术语,文法结构表为“Syntax(C,T)”每个文法,当被调用时,通过使用专用转换或映射把指定的输入阵列、数据结构和/或命令转换成输出。文法的命令(C)变量允许应用文法内部的特定控制参数设定为所需要的值,因此允许由应用文法执行的转换对不同的调用可以不同,而不必改变所执行功能转换的类型。例如在通讯专用处理器(CASP)中,应用文法可以被定义成一滤波器函数,它带有的命令变量允许滤波器带宽可变。文法的时间变量(T)允许应用文法可在特定的时间周期内被调用,这里变量(T)的值指定了应用符号将被调用的时刻或连续调用之间的时间间隔。当用硬件实现时,每个文法,当被调用时,通过使用专用转换或映射把指定的输入阵列、数据结构、和/或命令转换为输出。文法的命令(C)变量允许应用文法内部的特定控制参数设定为所需要的值,因此允许由应用文法执行的转换对不同的调用而言不同,而不必改变所执行的功能转换的类型。例如在通讯专用处理器(CASP)中,应用文法可以被定义成一滤波器函数,允许滤波器带宽可变。文法的时间变量(T)允许应用文法可在特定的时间周期内被调用,这里变量T的值指定了应用文法将被调用的时刻或连续调用之间的时间间隔。
在本发明的原则下,ASP可以在其设计的预合成和后合成阶段进行编程。整个的设计过程,包括需求分析、功能分解、应用文法库搜索、应用文法集成等,在图5的上下文中有详细描述。预合成可编程性特指可编程规则,这些规则允许集成电路设计者通过调整功能块的用HDL模型进一步定制每个功能块的设计。预合成或后合成可编程的典型特征的概要从PSK解调器的角度列示在表1中。本领域的技术人员很容易知道一些特征是可以被实现为预合成或后合成可编程的,而其它的一些特征最好是在一个阶段实现,但并非是所有的其它特征都是如此(如,在调制解调器中,相对于四值的二值移相键控的使用一般为预合成调用,而调制解调器的波特率是后合成可编程的)。预合成可编程性的实现可简单地为把HDL模型以高度模块化且带注释的形式安排,不需要的功能可用注释屏蔽而常用功能可加入;或,在更精巧的形式中,预编译器符号或宏可通过特定参数的设置控制特定功能的调用。
表1:应用文法可编程性
层 | 功能 | 预合成可编程性 | 后合成可编程性 |
应用层 | ·带标准接口的应用功能逻辑(VHDL) | 采样总线输入定义 | ·解调类型·符号率 |
控制层 | ·命令/解码逻辑·命令/数据多路调制器/多路解调器·时钟使能逻辑 | ·周期定义 | ·调用命令·输入数据地址·输出数据地址 |
接口层 | ·命令/数据/时序总线·判断逻辑·功能块ID·输入地址 | ·判断逻辑·功能块ID·输入地址 |
在专用处理结构的目前的实施方案中,多用途总线的属性,如总线宽度或时钟速度可以预合成编程以适合特定应用的要求。这允许集成电路设计者优化多用途总线,因此允许有效的门电路计数实现电路。
每个功能块的设计所固有的,处理算法某些参数的值通过使用能被编程为任意所需值的寄存器来实现。这些寄存器的大小和相应的每个寄存器可编程的值的范围可以被预合成编程以满足特定应用的要求。效果上,这种预合成可编程的特征允许集成电路设计者优化设计的后合成可编程性以满足特定应用的需要,如下所述,允许用少量的门电路实现额外的高效。
另外,包含在多用途总线中的时序信号的速度可以被预合成编程以满足特定应用的需要。这也允许设计者根据特定应用的需求优化门电路的数量。
对于后合成可编程性,本发明的专用处理器的结构也允许任何两个功能块之间的数据传送的可编程性。这样可以对每个功能块编程,用输入输出数据的内存地址作为控制每个功能块的组成部分。
如上所讨论的,处理算法某些参数的值可通过使用可被用任意所需值编程的寄存器来实现。因此,每个功能块可以看成为参数可编程专用高阶操作或指令。这使得专用处理器可被后合成编程来调节每个功能块的处理能力,适应特定应用的瞬时的需要。
进一步,每个功能块都可以被后合成编程以便控制与多用途总线上提供给功能块的时序信号有关的调用时间。
而且,每个特殊应用功能块的设计中还固有这样的特点,即它能够关断连续调用之间的时钟信号。因此,专用处理器结构实际上允许以通/断周期及调用周期的形式对每个功能块的时钟信号进行编程。
作为采用多用途总线可动边界属性的结果,这种总线可看成是后合成可编程的以调节在内连功能块之间传输数据和命令所需要的吞吐量。因为在专用处理器中每个功能块可以有不同的数据和命令结构大小,与一系列经编程的指令相应的功能块的调用实际上是实时地对多用途总线编程以满足集成功能块的数据和命令的要求。
这样,作为本实施方案中可合成可编性的例子,一“FILTER”指令可以被设置以处理数据:FILTER(IN=@received_signal_sample_bus,OUT=@ filtered_signal_bus,TYPE=FIR,NCOEF=Num_Coef,COEF=MF_Coef,TIME=Burst_CLK)
FILTER指令的第一和第二个变量设置滤波器的可连接性。第一个变量把滤波器的输入连接到接收信号总线上,第二个变量把滤波器输出连接到滤波后的信号总线上。滤波器函数将从接收信号总线上接收其输入数据并把产生的输出数据写至图6所示的滤波信号总线上。接下来的三个变量告知FILTER功能块执行滤波器系数为Num Coef的有限脉冲响应(FIR)型滤波器。Num_Coef是一工程特定常量或等量,此数建立在工程数据库中。工程数据库可能把这样的常量指定存贮在常量ROM(只读存贮器)或用户可设置的RAM(动态存取存贮器)的指定地址中。FILTER指令的最后一个变量控制滤波器功能块在由命令/数据/时序总线提供的突发时钟的周期时调用。
指令申明中未显式定义的参数被设为缺省值。每个应用文法的缺省参数可以包括内部总线宽度、操作速率、结构设置和各种设置/控制选项。例如,FILTER指令可以完全由未显式定义参数的缺省值来设置。这个选择中,FILTER指令将是FILTER( )。
在某一实施方案中,指令将被编译并存贮到共享存贮器文法中,如下所述,这种存贮器文法可能包括RAM存贮器,当上电时程序被装入ASP。在另一个可替换实施方案中,共享存贮器文法将包括ROM或甚至补充RAM,ROM用于存贮程序而RAM作为用户可访问和修改的寄存器。在另一个实施方案中,只依赖于一个功能块的指令和设置参数可以存贮在各自的块中。
本发明的ASP结构目标是实现包括微电子集成电路及板级的技术。因为构成的处理和调用机制同特定应用是相匹配的,因此ASP提供了由目标技术所实现的并具有足够编程灵活性的最大吞吐量,为了实现低成本,而这种低成本是通过使几个具有相同处理要求的产品市场的生产容量结合在一起产生的。比如,可以建立这么一个库,在这个库中,容纳几个产品混合的市场包括蜂窝电话、无线局域网、个人通讯数字电缆网等,所需要的数字通讯信号处理的要求。这个结构也影响到应用专家的专家技术以实现低的产品设计成本和较短的市场周期的优点,并且允许系统层次的面向对象的可编程性,它避免了必须对专用处理的复杂方面进行深入理解的需要。此结构的主要的优势是:具有内在功率管理能力的有效专用电路的快速开发周期及能大大降低开发费用的用于产品更新和发展的编程灵活性。
本发明ASP结构的一个应用是通讯ASP(CASP)。表2示出了库中一些应用文法的名字和描述,它们可用于设计各类CASP。
表2通讯应用文法库名字 描述
交叠器 | 以可选择的行和列的大小进行卷积和块交叠 |
去交叠器 | 以可选择的行和列的大小进行卷积和块去交叠 |
编码器 | 以可选择的速率,限长和抽头(tap)卷积编码 |
解码器 | 以可选择的速率,限长和抽头进行卷积解码 |
CRC校验器 | 以可选择的长度和抽头进行循环冗余码校验 |
Reed-Solomon解码器 | 以可选择的长度进行Reed-Solomon解码 |
BCH解码器 | 以可选择的长度和校正子计算进行BCH解码 |
FIR滤波器 | 带可选择数目的系数和系数值的FIR滤波器 |
IRR滤波器 | 带有可选择系数值的IRR滤波器 |
PSK解调器 | 带可选择类型和速率的PSK解调器 |
FSK解调器代 | 带可选数目音调,音调频率和速率的FSK解调器 |
相关器 | 带可选长度和抽头的相关器 |
状态机(state machine) | 带可选数目的状态,边界条件和输出的类状态机。当与专用微代码结合使用时,它提供很多种应用文法的实现。 |
使用本发明的ASP结构设计的例示性通讯系统是调制器/解调器,它实现扩展谱,跳频(SS/FH),时分多路址(TDMA)信令方案。SS/FH是由每个脉冲的载波频率的随机化提供的,TDMA是通过把频道上的时间分成TDMA脉冲来实现的,把多址占空比定义为一帧。一帧中指定脉冲的时间位置被随机化。多址方案一经要求即动态地把数据流赋给支持用户数据的每个脉冲,每个脉冲定义成表3所示的一组参数:
表3调制解调器400的
SS/FH脉冲参数
载波频率 使用特定的伪随机码(PN-Code)发生器得到的载波频率 |
调制类型 二相移键控(BPSK)或四相移键控(QPSK) |
匹配滤波器参数 匹配滤波器系数 |
数据速率 每脉冲可变符号数 |
交叠器参数 可变长度和宽度数 |
编码类型 无或卷积编码/Viterbi解码 |
编码参数 速率=1/2,3/4,7/8,限长=7,9 |
图6描述了使用CASP实现的SS/FH TDMA调制解调器400的顶层框图。特别地,例子中所用的应用文法示于表4。这些应用文法通过命令/数据/时序总线499通讯,每个应用文法在不同的速率下可被调用(或激活)。总线499是图1命令/数据/时序总线的实现。
每个在调制解调器400中定义的应用文法接收一个支配数据转换的输入设置命令和一个支配调用时间的输入时序命令。这种命令结构在图1的ASP结构中定义为Syntax(C,T)。一个应用文法一被调用就把其参数设置为合适的值,处理输入数据并把输入时钟关闭,直至下一调用命令发生。这样,通过关闭时钟就内在地提供了功率的节省。调制解调器400中定义的应用文法具有不同的应用文法逻辑(即图1的块125)以执行不同的信号处理功能。但是,所有这些应用文法使用相同的接口结构与命令/数据/时序总线499相连。
表4用于实现CASP调制解调器400的应用文法名称 描述
下行链路去随机函数发生器 | 自动应用文法,它执行解调簇的逐个脉冲控制并产生下行链路的脉冲/帧时钟和下行链路合成器频率跳频命令。使用表2的状态机文法实现 |
上行链路随机函数发生器 | 一自动应用文法,它产生上行链路脉冲/帧时钟和包含上行链路调制和跳频命令的上行链路合成器命令。使用表2中的状态机文法实现。 |
匹配滤波器 | 设置在脉冲速率下执行接收信号匹配滤波的解调簇的一部分 |
PSK解调器 | 设置在脉冲速率下执行滤波后信号的BPSK或QPSK的解调的解调簇的一部分 |
Sync相关器 | 设置在脉冲速率下计算时间和频率跟踪的同步矩阵的解调簇的一部分 |
去交叠器 | 自动应用文法,被动态设置以在帧速率下对数据去交叠。 |
解码器 | 自动应用文法,被动态设置以在帧速率下对数据解码 |
CRC校验器 | 自动应用文法,被动态设置以对解码后的数据流检错 |
编码器 | 自动应用文法,被动态地进行设置以在帧速率下对数据编码。 |
交叠器 | 自动应用文法,被动态设置以对在帧速率下对数据交叠。 |
共享存贮器 | 自动应用文法,由一块能与内部命令/数据/时序总线接口的存贮器构成。 |
数据控制接口 | 自动应用文法,被设计以连接内部命令/数据/时序总线至外部总线。 |
在图6的调制解调器400中,ASP结构的集中和分布式控制方面都用于支持逐个脉冲基础上的动态调制解调重设和逐个帧基础上的数据处理。集中控制由下行链路去随机函数发生器404和上行链路随机函数发生器406提供,它在逐个脉冲基础上分别协调上行链路和下行链路数字信号处理。分布式控制由在逐个帧基础上用于数据处理的自动应用文法提供。特别地,这些自动应用文法是编码器408,交叠器425,CRC校验器424,解码器423和去交叠器409。
调制解调器400包括共享存贮器文法416,它提供所有应用文法间的弱耦合。这消除了多个单独数据和地址线及单独存贮器的硬件费用。每个应用文法对它的输入数据执行特殊的任务并通过共享存贮器文法416把其输出传送到下一个应用文法。
如图7所示,数据和控制通过共享存贮器文法416中的预先指定的段在应用文法间相互传送。图6和图7中相同的单元具有相同的数字标号。与每个预先指定的存贮器段相关联的(即段460,462,464,和472)是“写”指针(如指针482),“读”指针(如指针483),“段长度”值(如值484)和将被处理的数据(如被去交叠的数据485)。“写”指针由写数据的应用文法保持而“读”指针由读数据的应用文法保持。每个应用文法检查“读”和“写”指针以确定是否有足够的数据要处理,并当不存在数据时,关闭它们直到下一个帧时钟周期的到来。除了提供内在的功率节省,这个特点也允许只有当存在数据时才以所需吞吐量处理。
由调制解调器400执行的下行链路处理操作现在加以描述。处于下行链路的信令结构包含了以变化的脉冲数据速率多路复用通讯数据、访问控制数据和同步信息的时分多路复用、跳频波形。同步信息由同步相关器解调以获得和跟踪接收到的信号。通讯数据和访问控制数据由PSK解调器429解调。应用文法428和429都把数据输出到共享存贮器文法416,用于被其它的自动应用文法作进一步数据处理。
在调制解调器中,匹配滤波器427,同步相关器428和PSK解调器429组成解调簇430。它以脉冲速率实时地解调接收到的信号并把解调后的数据放入共享存贮器文法416中。匹配滤波器427匹配输入数字信号的通讯特征,然后把滤波后的样本提供给同步相关器428和PSK解调器429。为了满足滤波后信号的高带宽,解调簇430的元件通过被称为滤波信号总线431的高带宽总线相连。
在调制解调器400中,解调簇430的集中控制是由下行链路去随机函数发生器404执行的。特别地,下行链路去随机函数发生器404执行下列功能:
(1)产生并同步PN-Code字。
(2)计算载波跳频
(3)产生用于调制解调器400外部的下行链路合成器的相应频率命
令和连通脉冲。
(4)产生所有必要的时钟,包括脉冲时钟和帧时钟,和
(5)在逐个脉冲的基础上设置解调簇430。
解调簇430的设置包括为脉冲数据建立匹配的滤波器427,选择同步相关器428或PSK解调器429。基于已生成的PN-Code,下行链路去随机函数发生器辨识输入脉冲索引。使用被辨识后的脉冲索引,下行链路去随机函数发生器404访问共享存贮器文法416以确定包含在下行链路“命令模板”中的脉冲设置参数。命令模板是机器语言代码,它来自于对特别为此调制解调器应用写的CASP指令程序的编译。命令模板(程序)中的信息定义了调制解调器的操作而且可以根据变化的下行链路参数加以修改。命令模板(程序)中的信息定义了信号处理命令及数据处理命令。信号处理命令用于设置解调簇430,而数据处理命令用于设置自动数据处理文法。
下行链路去随机函数发生器404把时序命令(T)写到解调簇430的每个元件中,它使解调簇430在脉冲时钟周期被激活。在脉冲时钟周期前,下行链路去随机函数发生器404把设置命令(C)写到解调簇430的每个元件中。解调簇430在脉冲时钟周期时激活并处理定义在由下行链路去随机函数发生器404提供的设置命令中的数据。这是在脉冲时钟周期的动态重设的例子。
解调后的数据自动应用文法进一步处理。这些应用文法在下行链路帧时钟周期被激活处理数据,然后被关闭,直到下一个下行链路帧时钟周期。这导致了操作期间的显著的功率节约。在调制解调器400中,每个自动应用文法在共享存贮文法416中保持它的输入和输出。图7示出了集中控制解调簇430中的数据流和分布式控制数据处理文法中的数据流。在线432上由调制解调器400接收到的信号由解调簇430解调。解调后的数据通过命令/数据总线498被放入共享存贮器文法416的解调数据段460中,而命令/数据总线498包括命令/数据/时序总线499的一部分。此被解调后的数据随后被去交叠器409处理。结果存于共享存贮器文法416的去交叠器数据段462中。被去交叠处理的数据随后由解码器423处理。被解码后的数据存于共享存贮器文法416的解码数据段464中。被解码后的数据然后由CRC校验器424校验并被放于接收到的用户数据段472中。收到的用户数据通过外部总线490上的数据/控制接口文法426可被外部实体获得。
自动应用文法的设置命令是以共享存贮器文法416中的下行链路命令模板(程序)的一部分提供的。如先前所述,每个应用文法的指令包括两个变量;即,命令变量(这里指设置命令),和时间变量(这里指调用时间)。一旦调用,应用文法将对命令变量(C)解码并相应设置它的参数。每个应用文法对时间变量(T)解码以确定调用周期。时间变量可以以命令的方式实现来选择作为命令/数据/时序总线499一部分的时序总线497的脉冲时钟495或帧时钟496,并使用它来建立中期性调用周期。
ASP结构的流水线能力用于调制解调器400中,在400中,CASP命令模板(程序)的时间变量并选择以执行上面所述流水线处理中的操作。图8所示是调制解调器400中实现的程序化的下行链路处理流水线。线432上的输入信号以脉冲速率被实时解调,而去交叠、解码、和CRC校验在随后的帧中以帧速率被处理。
调制解调器400中实现的下行链路处理流水线这里将详细讨论。通过对形成调制解调器400应用文法的编程,接收到的信号432根据被分成TDMA脉冲的通道上的时间和定义为帧的多址占空比被处理。图8中,时间的前进示意为一系列具有顺序递增帧号的帧。特别地,图8中所示序列为:帧(N)500,接着帧(N+1)501,接着帧(N+2)502,接着帧(N+3)503,其中N是表示对帧数计数的任意整数。在任意给定的帧中,时间的前进示意为一系列具有顺序递增的脉冲数的脉冲560。特别地,图8所示序列是:脉冲(M)570,接着脉冲(M+1)571,脉冲(M+2)572,这里M是一帧中对脉冲数计数的任意整数。
调制解调器400中实现的下行链路处理流水线从对帧(N)500的接收数据432进行操作的匹配滤波器/解调(N)510开始。特别地,执行下列程序化的操作序列。
(a)在帧(N)500的脉冲(M)570上执行匹配滤波器(M)580操作。
(b)在匹配滤波器(M)580的输出数据上执行解调(M)590操作。
(c)在帧(N)500的脉冲(M+1)571上执行匹配滤波器(M+1)581的操
作。
(d)在匹配滤波器(M+1)581输出数据上执行解调(M+1)591操作。
(e)在帧(N)500的脉冲(M+2)572上执行匹配滤波器(M+2)582操
作。
(f)在匹配滤波器(M+2)582的输出数据上执行解调(M+2)592操
作。
(g)等等,直到帧(N)500中所有指定的脉冲都已被匹配滤波和解
调。
(h)在下一帧中,对解调(M)590,解调(M+1)592和解调(M+2)592
等等输出数据执行去交叠(N)520。
(i)在下一帧中,在去交叠(N)520输出数据上执行解码(N)530。
(j)在下一帧中,在解码(N)530输出数据上执行CRC校验(N)540。
(k)在下一帧中,接收数据550从CRC校验(N)540输出数据中提
取并把它传到外部实体。
同样地,帧(N+1)按下列步骤处理。
(a)在帧(N+1)501的脉冲(M)570上执行匹配滤波器(M)580的操
作。
(b)在匹配滤波器(M)580输出数据上执行解调(M)590操作。
(c)在帧(N+1)501的脉冲(M+1)571上执行匹配滤波器(M+1)581的
操作。
(d)在匹配滤波器(M+1)581输出数据上执行解调(M+1)591操作。
(e)在帧(N+1)501的脉冲(M+2)572上执行匹配滤波器(M+2)582的
操作。
(f)在匹配滤波器(M+2)582输出数据上执行解调(M+2)592操作。
(g)等等,直到所有帧(N+1)501中的指定脉冲都已被匹配滤波和解
调。
(h)在下一帧中,在解调(M)590,解调(M+1)591和解调(M+2)592
等等的输出数据上执行去交叠(N+1)521。
(i)在下一帧中,在去交叠(N+1)521输出数据上执行解码(N+1)
531。
(j)在下一帧中,在解码(N+1)531输出数据上执行CRC校验(N+1)
541。
(k)在下一帧中,接收数据550从CRC校验(N+1)541输出数据中
获得并传至外部实体。下行链路处理流水线以相同的重复模式无限地继续,直到调制解调器400被重设为不同的方式或被关闭。
CASP调制解调器400的编程能力允许任意一个应用文法可被时间变量来控制,以便选择命令/数据/时序总线499上提供的一个时钟并使用选定的时钟通过对被选周期的模(N)计数产生调用周期或在被选时钟到达指定值时调用。例如,CASP命令模板(程序)定义指定的编码器调用周期以组成多帧。在此例子中,编码器输入数据将在其指定的共享存贮器段中累积,直到发生调用时被编码器处理。
指示图6中的CASP调制解调器处理输入数据的指令程序如下所示:
** Demodulator Cluater FILTER(IN=@received_aignal_aample_bus,OUT=@firtered_aignal_bus,TYPE=FIR,NCOEF=Num_Coef, COEF=MF_Coef,TIME=Burst_CLK) IF Dats_BURST THEN PSK_DEMOD(IN=Samp_Bus,OUT=@Demod_Data,TYPE=@Demod_Type,SYMB=Symb_rate, TIME=Burat_CLK) ELSEIF SYNC_BURST SYNC(IN=Samp_Bus,OUT=@Sync_Buf,TYPE=@SYNC_Type,SYNC_COEF=@S_Coef, SYMB=Symb_rate,TIME=Burat.CLK) ENDIF **Frame Proceaaes CONV_DEINT(IN=@Demod_Data,OUT=@Deint_Data,NUM=Num_Data,ROW=NRowa,COL=NCol,STEP=NStep, TIME=Frame_CLK) CONV_DECODE(IN=@Deint_Data,OUT=@Dec_Data,NUM=Num_Data,K=Rate,LEN=Conv_Len, TAPS=Conv_Tape,TIME=Frame_CLK) CRC(IN=@DEINT_Data,OUT=@CRC_Data,NUM=Num_Data,TAPS=CRC_Tapa,LEN=CRC_Len, TIME=Frame_CLK) DATA_IF(IN=@CRC_Data,OUT=D_Bus,TIME=Frame_CLK)
FILTER指令上面已讨论过。在滤波器指令之后的IF语句允许对两种不同类型的接收TDMA脉冲执行合适的处理,ELSEIF语句允许对同步信息合适的处理,而ENDIF正如所期望的,表示了这两个分支的结束。编译器将把这个IF指令映射成程序员指定的命令模板。程序员然后使用包含数据和同步脉冲的TDMA帧的特定结构填充此命令模板。这个模板被作为已被编译程序的一部分存放,用于辨识接收脉冲的类型。
以上的PSK_DEMOD指令由以下描述。基于与程序一起编译的帧结构命令模板的内容,每个接收脉冲被辨识为同步(SYNC)脉冲或数据脉冲当接收脉冲被辨识为数据脉冲时,PSK_DEMOD指令控制PSK解调功能决处理滤波后接收到的信号样本。PSK_DEMOD中指令控制PSK解调器从滤波信号总线(图6)中取出其输入并把产生的输出发送到共享存贮器块的指定存贮地址。共享存贮器功能块通过工程数据库被包括在被编译程序中。指令的下两个变量以将被解调的PSK符号的类型(如BPSK或QPSK)和接收到的符号速率的形式指定PSK解调器的特定结构。TIME变量控制PSK解调器以脉冲时钟速率被调用。
SYNC指令与PSK解调器指令相同,其例外是其用于同步的重要参数包括同步系数,系数的数量和精确的同步类型。
卷积去交叠器(CONV_DEINT),卷积解码器(CONV_DECODE),CRC校验器(CRC)和数据接口(DATA_IF)都是帧过程。每个过程以帧时钟被调用,以共享存贮器中取得数据,执行必要的数据转换,把数据输回共享存贮器然后休眠而停止操作。诸如CDT总线结构、共享存贮缓冲结构和内部位宽等参数定义在工程数据库中。为简洁起见,这里只讨论卷积去交叠器。其它的帧过程都具有相同的变量,且一旦理解了卷积去交叠器,其它的过程都很容易获得。
CONV_DEINT指令的头二个变量定义模块的可连接性。即,这二个变量告诉CONV_DEINT其输入处于共享存贮器的什么地方,在共享存贮器中什么地方放置其输出。这种情况下CONV_DEINT将从共享存贮器的Demod-Data缓存区中获得其输入并把数据输出到共享存贮器的Deint-Data中。缓冲器参数,如结构,长度和位置设置在工程级数据库中。下一个变量告诉CONV_DEINT每次调用应去交叠多少个软确定比特。接下来的3个变量告诉CONV_DEINT被调用的精准配置。这种情况下,卷积去交叠器将是n行×n列的。最后,最后一个变量控制卷积去交叠功能在该帧速率下被调用。
因为,显然对本领域的技术人员来说,一旦理解了下行链路部分,就很容易建立调制解调器400的上行连路部分,因此这里只讨论下行链路部分。因此上行链路部分的操作和结构这里不再描述。
这里描述的是本发明的ASP结构。很显然对于本领域的技术人员,很容易把本发明应用到各类应用上。虽然目前这里只描述了几个优选的实施方案,也可以在不偏离本发明宗旨和范围的情况下进行许多改变和修正。因此,希望本发明的范围仅由所附权利要求来限制。
Claims (50)
1、通过集成选出的包含在库中的预先设计好的元件设计的单片半导体器件,所说器件包括:
用于传递信号的总线;和
多个应用单元,通过所说总线通讯并协调地执行用户设计的功能,所说多个应用单元从所说库中选出;
每个被选的应用单元包括:
一可编程功能块,根据具有时间和参数变量的命令指令执行预定义功能;其中所说时间变量定义了所说功能块的调用时间,所说参数变量定义了所说功能块的处理功能,和
一接口块,把所选应用单元与所说总线接口以接收所说的命令指令。
2、权利要求1中的器件,其中所说接口块对于在所说器件的所有应用单元是基本上相同的。
3、权利要求1中的器件,其中所说功能块具有激活状态和断电状态,且其中所说接口块进一步包括:
一访问块,用于在所说总线和所说功能块之间传递命令和数据;和
一时钟使能块,对从所说总线接收到的所说命令、所说数据和所说时间变量进行响应,用于切换所说功能块至所说激活状态和断电状态。
4、权利要求3中的器件,其中,所说命令和数据被成对送至所说总线上,所说成对的所说数据和命令的大小满足所说被选应用单元的要求。
5、权利要求3中的器件,其中所说时钟使能块通过发送一起动信号和一选通时钟信号把至所说功能块把它切换到所说激活状态,且其中所说时钟使能块通过关闭时钟选通信号把所说功能块切换到所说断电状态。
6、权利要求5中的器件,其中所说功能块发送一已完成信号给所说时钟使能块,所说时钟使能块响应所说已完成信号而关闭所说选通时钟信号。
7、权利要求5的器件,其中所说总线包括一时钟信号,且其中所说时钟使能块响应由所说访问块接收的时钟信号和命令产生所说起动和选通时钟信号。
8、权利要求3的器件,其中由所说功能块执行的所说预定义功能由所说访问块接收的所说命令控制。
9、权利要求1的器件,其中在所说库中至少有所说应用单元的至少一个执行与无线通讯相关的功能。
10、权利要求1的器件,其中所说被选择的应用单元的至少一个自动操作,由此所说自动应用单元在由程序定义的时间周期处被调用,所说自动应用单元的所说功能块根据所说调用执行所说预定义的功能。
11、权利要求1的器件,其中所说被选择的应用单元的至少一个包括实现所说用户定义功能的程序,且其中所说程序应用单元通过发送设置指令、调用时间指令或两者给其它应用单元,至少调用一个所说其它的应用单元。
12、权利要求1的器件,其中被选择的应用单元的至少一个从另一个被选择的应用单元接收设置指令,调用时间指令或两者。
13、权利要求1的器件,其中至少两个所说的应用单元形成一簇,簇中的所说应用单元使用一个单独总线相互连接。
14、权利要求1的器件,其中某些所说被选择的应用单元被编程以操作在并行处理方式下。
15、权利要求1的器件,其中某些所说被选择的应用单元被编程以操作在流水线处理方式下。
16、权利要求1的器件,其中至少一个所说的被选择的应用单元是共享存贮器单元。
17、权利要求16的器件,其中所说被选择的应用单元的至少一个从所说共享存贮器单元中接收它的输入数据并把其输出数据存贮到所说共享存储器单元中。
18、权利要求1的器件,其中一个所说选定的应用单元通过所说总线传送命令,控制至少一个其它的被选择的应用单元的操作。
19、权利要求18的器件,其中所说控制应用单元进一步把时钟信号通过所说总线传送至所说被控制的应用单元,所说被控制的应用单元的操作受所说时钟信号的影向。
20、权利要求18的器件,其中所说命令包括用于设置所说受控应用的命令。
21、权利要求1的器件,其中至少一个所说被选择的应用单元包括会有微代码的类状态机,结合所说微代码操作的所说状态机实现定义的应用功能。
22、权利要求1的器件,其中一些的所说被选择应用单元的所说接口块包含与所说总线的可编程接口。
23、一单片通讯器件,用于通讯系统,通过集成库中选定的预先设计的单元设计所说器件,所说通讯系统允许使用通讯信号实现信息的远程传送,所说器件包括:
多个从所说库中选出的应用单元;
用于在所说被选择的应用单元之间传递内部信号的总线;
将与所说通讯信号有关的外部信号与至少一个所说被选择的应用单元耦合的装置;
每个被选择的应用单元包括:
一可编程功能块,根据具有时间和参数变量的命令指令执行预定的功能,其中所说时间变量定义所说功能块的调用时间,所说参数变量定义所说功能块的处理功能;和
一接口块,连接所说被选择应用单元与所说总线,用于接收所说命令指令。
24、权利要求23中的器件,其中所说内部信号包含至少一时钟信号,且其中某些所说被选择的应用单元根据所说时钟信号操作。
25、权利要求24的器件,其中所说接口块适于接收和传送命令,且其中某些所说被选择的应用单元由所说命令编程以根据所说时钟信号操作。
26、权利要求23的器件,其中至少两个所说应用单元使用单独总线形成相连的簇,所说外部信号在所说簇中由应用单元处理。
27、权利要求23的器件,其中某些所说被选择的应用单元被编程,以操作在并行处理方式下。
28、权利要求23的器件,其中某些被选择的应用单元被编程,以操作在流水线处理方式下。
29、权利要求23的器件,其中至少一个所说被选择的应用单元是共享存贮器单元。
30、权利要求23的器件,其中至少一个所说被选择的应用单元从所说共享存贮器单元中接收它的输入数据并把其输出数据存贮到所说共享存贮器单元中。
31、通过集成被选择的包含在库中的预先设计好的单元制造单片半导体器件的方法,包括下列步骤:
从所说库中选择多个应用单元;和
在芯片中制造所说被选择的应用单元和一总线,每个被选择的应用单元包括一可编程功能块,此功能块根据具有时间和参数变量的命令指令执行预定的功能,其中所说时间变量定义了所说功能块的调用时间,所说参数变量定义了所说功能块和连接所说功能块与所说总线的接口块的处理功能;所说选择的应用单元通过所说总线传送所说命令指令并协调地执行用户设计的功能。
32、一种方法,用于设置包含多个预先设计好的可编程应用单元的单片集成电路专用处理器,每个所说应用单元包括一执行预定义功能的可编程功能块和连接应用单元与总线的接口块,所说总线传送数据、命令和时钟信息至每个所说应用单元;此方法包括下列步骤:
为每个所说应用单元定义时间和参数变量,所说时间变量指定所说功能块的调用时间,所说参数变量指定所说功能块的操作特性;和
描述为每个被选择的应用单元的所说定义的变量和在指令程序中它们之间的协作。
33、权利要求32中的方法,还包括编译所说的指令程序和产生控制所说处理器操作的机器语言指令。
34、权利要求32的方法,其中至少一个应用单元的调用时间相对于其在所说总线上的时钟信息被定义。
35、权利要求32的方法,其中至少一个应用单元使用寄存器,所说定义步骤包括将所说寄存器编程为所需的值。
36、权利要求35的方法,其中所说寄存器位于所说多个应用单元之一中,该单元包含被其它的所说多个应用单元共享的存贮器。
37、权利要求32的方法,其中所说多个单元之一是由所说多个单元的其余单元共享的存贮器,所说定义步骤包括对至少一个所说其余的单元的输入输出数据在所说存贮器中的地址进行编程。
38、一个过程,用于设计包含多个与总线相连的预定义单元中被选择的单元的单片集成电路,每个所说的单元包含一功能块和连接所说功能块与所说总线的接口块,所说总线传送命令、数据与时钟信号给每个所说被选择的单元;此过程包含下列步骤:
以预定义的一组指令中被选择的指令的方式描述所说集成电路的结构,所说指令组的每个指令相应于一个或一类所说预先设计的元素并包括定义所说相应单元的可选择特性的用户可设置属性;和
把所说描述转换成硬件描述语言,使之适用于所说集成电路物理结构的自动设计。
39、权利要求38的过程,其中所说集成电路包括一个时钟,所说可选特性是所说总线的时钟速度。
40、权利要求38的过程,进一步包括合成所说硬件描述语言,并使用计算机辅助设计和制造设备制造所说集成电路。
41、权利要求38的过程,其中所说硬件单元的所说功能块是合成后用户可编程的,此方法进一步包括:
为所说的被选硬件单元的每个功能块定义时间和参数变量,所说时间变量指定所说功能块的调用时间,所说参数变量指定所说功能块的处理功能;和
描述每个所说被选的硬件单元的所说被定义变量和它们在指令程序中的协作。
42、权利要求41的过程,进一步包括使用所说硬件描述语言制造所说处理器并把所说机器语言指令装入一个或多个已制好的单元中。
43、一种方法,使用预先设计好的用户可设置的硬件单元和用于把命令、数据和时钟信号传送到所说单元中的用户可设置总线设计单片集成电路专用处理器,每个所说硬件单元包括执行预定功能的功能块和用于连接所说硬件单元与所说总线的接口块,此方法包括下列步骤:
根据所说处理器的所需功能从所说库中选择多个所说硬件单元;
使用一个或多个所说被选硬件单元通过定义所说属性,永久设置所说处理器的属性;和
使用硬件描述语言定义所说处理器。
44、权利要求43的方法,其中所说属性是被所说被选单元之一使用的寄存器的大小。
45、权利要求43的方法,进一步包括永久设置所说总线的宽度。
46、权利要求43的方法,进一步包括永久设置所说总线的时钟速度。
47、权利要求43的方法,进一步包括使用计算机辅助设计工具定义所说处理器的硬件描述语言。
48、权利要求43的方法,其中所说硬件元素的所说功能块是合成后用户可编程的,此方法进一步包括:
为所说被选的硬件单元的每个功能块定义时间和参数变量,所说时间变量指定所说功能块的调用时间,所说参数指定所说功能块的处理功能;和
为每个所说被选硬件单元描述所说被定义的变量和它们在指令程序中的协作。
49、权利要求48的方法,进一步包括编译所说指令程序和为控制所说处理器操作产生机器语言指令。
50、权利要求49的方法,进一步包括使用所说硬件描述语言制造所说处理器并把所说机器语言指令装入一个或多个被制好的单元中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/243,963 US5623684A (en) | 1994-05-17 | 1994-05-17 | Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing |
US08/243,963 | 1994-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1157662A true CN1157662A (zh) | 1997-08-20 |
CN1099636C CN1099636C (zh) | 2003-01-22 |
Family
ID=22920817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95194008A Expired - Fee Related CN1099636C (zh) | 1994-05-17 | 1995-05-17 | 专用处理器及其设计方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US5623684A (zh) |
EP (1) | EP0760128A4 (zh) |
JP (1) | JP3202750B2 (zh) |
KR (1) | KR100358631B1 (zh) |
CN (1) | CN1099636C (zh) |
AU (1) | AU2636895A (zh) |
RU (1) | RU2147378C1 (zh) |
WO (1) | WO1995031778A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1315037C (zh) * | 2002-12-27 | 2007-05-09 | 联想(北京)有限公司 | 虚拟信息流总线接口单元及其数据处理方法 |
CN1331079C (zh) * | 1998-09-30 | 2007-08-08 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN106463039A (zh) * | 2014-05-16 | 2017-02-22 | 凌力尔特有限公司 | 配置信号处理系统 |
CN111988417A (zh) * | 2020-08-28 | 2020-11-24 | 电子科技大学 | 物理网终端的通信控制方法 |
CN112463723A (zh) * | 2020-12-17 | 2021-03-09 | 王志平 | 一种微内核阵列的实现方法 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799091A (en) * | 1996-05-24 | 1998-08-25 | Lsi Logic Corporation | Single chip solution for multimedia GSM mobile station systems |
US6195593B1 (en) * | 1997-09-03 | 2001-02-27 | Seiko Epson Corporation | Reusable modules for complex integrated circuit devices |
US6138229A (en) * | 1998-05-29 | 2000-10-24 | Motorola, Inc. | Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units |
US6968514B2 (en) | 1998-09-30 | 2005-11-22 | Cadence Design Systems, Inc. | Block based design methodology with programmable components |
JP2000315222A (ja) | 1999-04-30 | 2000-11-14 | Matsushita Electric Ind Co Ltd | 集積回路装置の設計用データベース及び集積回路装置の設計方法 |
JP4077578B2 (ja) | 1999-04-30 | 2008-04-16 | 松下電器産業株式会社 | 集積回路装置の設計方法 |
US7062769B1 (en) | 1999-07-07 | 2006-06-13 | National Semiconductor Corporation | Object-oriented processor design and design methodologies |
JP3974300B2 (ja) | 1999-11-18 | 2007-09-12 | 松下電器産業株式会社 | Ipベースlsi設計システムおよび設計方法 |
US7080183B1 (en) | 2000-08-16 | 2006-07-18 | Koninklijke Philips Electronics N.V. | Reprogrammable apparatus supporting the processing of a digital signal stream and method |
US6630964B2 (en) * | 2000-12-28 | 2003-10-07 | Koninklijke Philips Electronics N.V. | Multi-standard channel decoder for real-time digital broadcast reception |
US20020112219A1 (en) * | 2001-01-19 | 2002-08-15 | El-Ghoroury Hussein S. | Matched instruction set processor systems and efficient design and implementation methods thereof |
US7055019B2 (en) * | 2001-02-13 | 2006-05-30 | Ellipsis Digital Systems, Inc. | Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set processor systems by mapping system designs to re-configurable hardware platforms |
US20020116166A1 (en) * | 2001-02-13 | 2002-08-22 | El-Ghoroury Hussein S. | Matched instruction set processor systems and method, system, and apparatus to efficiently design and implement matched instruction set process systems using interconnected design components |
US6938237B1 (en) | 2001-06-29 | 2005-08-30 | Ellipsis Digital Systems, Inc. | Method, apparatus, and system for hardware design and synthesis |
EP1286279A1 (de) * | 2001-08-21 | 2003-02-26 | Alcatel | Konfigurations tool |
US7266487B1 (en) | 2001-08-29 | 2007-09-04 | Ellipsis Digital Systems, Inc. | Matched instruction set processor systems and method, system, and apparatus to efficiently compile hardware and software designs |
JP2003316838A (ja) * | 2002-04-19 | 2003-11-07 | Nec Electronics Corp | システムlsiの設計方法及びこれを記憶した記録媒体 |
JP4202673B2 (ja) * | 2002-04-26 | 2008-12-24 | 株式会社東芝 | システムlsi開発環境生成方法及びそのプログラム |
US7131097B1 (en) * | 2002-09-24 | 2006-10-31 | Altera Corporation | Logic generation for multiple memory functions |
AU2002363920A1 (en) * | 2002-10-29 | 2004-05-25 | Freescale Semiconductor, Inc. | Method and apparatus for selectively optimizing interpreted language code |
US7380151B1 (en) | 2002-12-11 | 2008-05-27 | National Semiconductor Corporation | Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors |
US7016695B1 (en) | 2002-12-11 | 2006-03-21 | National Semiconductor Corporation | Apparatus and method for processing a deterministic data flow associated with a wireless communication signal |
US7017127B1 (en) | 2003-06-02 | 2006-03-21 | National Semiconductor Corporation | Method and system for enabling energy efficient wireless connectivity |
US7193553B1 (en) | 2004-12-07 | 2007-03-20 | National Semiconductor Corporation | Analog to digital converter with power-saving adjustable resolution |
US6980148B1 (en) | 2004-12-07 | 2005-12-27 | National Semiconductor Corporation | Pipelined analog to digital converter that is configurable based on wireless communication protocol |
US7205923B1 (en) | 2004-12-07 | 2007-04-17 | National Semiconductor Corporation | Pipelined analog to digital converter that is configurable based on mode and strength of received signal |
US9075623B2 (en) | 2012-01-18 | 2015-07-07 | International Business Machines Corporation | External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit |
US9536535B2 (en) * | 2012-03-30 | 2017-01-03 | Intel IP Corporation | Decoding wireless in-band on-channel signals |
US9747197B2 (en) | 2014-05-20 | 2017-08-29 | Honeywell International Inc. | Methods and apparatus to use an access triggered computer architecture |
US10353681B2 (en) | 2014-05-20 | 2019-07-16 | Honeywell International Inc. | Systems and methods for using error correction and pipelining techniques for an access triggered computer architecture |
CN105435455A (zh) * | 2016-01-26 | 2016-03-30 | 青岛大学 | 一种可调式计数跷跷板 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62189739A (ja) * | 1986-02-17 | 1987-08-19 | Hitachi Ltd | 半導体集積回路装置 |
JPS63308343A (ja) * | 1987-06-10 | 1988-12-15 | Matsushita Electric Ind Co Ltd | 半導体集積回路 |
US5197016A (en) * | 1988-01-13 | 1993-03-23 | International Chip Corporation | Integrated silicon-software compiler |
US4951221A (en) * | 1988-04-18 | 1990-08-21 | General Electric Company | Cell stack for variable digit width serial architecture |
CN1016815B (zh) * | 1988-05-20 | 1992-05-27 | 武汉市半导体器件厂 | 通用测试,控制模块 |
US5173864A (en) * | 1988-08-20 | 1992-12-22 | Kabushiki Kaisha Toshiba | Standard cell and standard-cell-type integrated circuit |
US5283753A (en) * | 1991-07-25 | 1994-02-01 | Motorola, Inc. | Firm function block for a programmable block architected heterogeneous integrated circuit |
JP2791243B2 (ja) * | 1992-03-13 | 1998-08-27 | 株式会社東芝 | 階層間同期化システムおよびこれを用いた大規模集積回路 |
-
1994
- 1994-05-17 US US08/243,963 patent/US5623684A/en not_active Expired - Fee Related
-
1995
- 1995-05-17 CN CN95194008A patent/CN1099636C/zh not_active Expired - Fee Related
- 1995-05-17 EP EP95921243A patent/EP0760128A4/en not_active Withdrawn
- 1995-05-17 KR KR1019960706511A patent/KR100358631B1/ko not_active IP Right Cessation
- 1995-05-17 AU AU26368/95A patent/AU2636895A/en not_active Abandoned
- 1995-05-17 RU RU96123900A patent/RU2147378C1/ru active
- 1995-05-17 JP JP52979295A patent/JP3202750B2/ja not_active Expired - Fee Related
- 1995-05-17 WO PCT/US1995/005964 patent/WO1995031778A1/en active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1331079C (zh) * | 1998-09-30 | 2007-08-08 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN1315037C (zh) * | 2002-12-27 | 2007-05-09 | 联想(北京)有限公司 | 虚拟信息流总线接口单元及其数据处理方法 |
CN106463039A (zh) * | 2014-05-16 | 2017-02-22 | 凌力尔特有限公司 | 配置信号处理系统 |
CN111988417A (zh) * | 2020-08-28 | 2020-11-24 | 电子科技大学 | 物理网终端的通信控制方法 |
CN111988417B (zh) * | 2020-08-28 | 2022-07-19 | 电子科技大学 | 物联网终端的通信控制方法 |
CN112463723A (zh) * | 2020-12-17 | 2021-03-09 | 王志平 | 一种微内核阵列的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
EP0760128A1 (en) | 1997-03-05 |
EP0760128A4 (en) | 2005-02-09 |
RU2147378C1 (ru) | 2000-04-10 |
US5623684A (en) | 1997-04-22 |
KR100358631B1 (ko) | 2003-01-24 |
JPH10507013A (ja) | 1998-07-07 |
AU2636895A (en) | 1995-12-05 |
JP3202750B2 (ja) | 2001-08-27 |
WO1995031778A1 (en) | 1995-11-23 |
KR970703560A (ko) | 1997-07-03 |
CN1099636C (zh) | 2003-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1157662A (zh) | 专用处理器及其设计方法 | |
US5867400A (en) | Application specific processor and design method for same | |
US6701431B2 (en) | Method of generating a configuration for a configurable spread spectrum communication device | |
US9037834B2 (en) | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture | |
CN1212400A (zh) | 数据处理装置 | |
CN1599899A (zh) | 用于具有固定、专用计算元件的自适应集成电路的配置的装置、系统及方法 | |
US7487485B2 (en) | Methods and apparatus for design entry and synthesis of digital circuits | |
CN100352165C (zh) | 半导体集成电路 | |
CN1653446A (zh) | 具有可配置执行单元的高性能混合处理器 | |
CN1143860A (zh) | 逻辑合成方法、半导体集成电路和运算电路 | |
CN101053158A (zh) | 可重构半导体集成电路及其处理分配方法 | |
CN1794459A (zh) | 单元、标准单元、标准单元库、使用标准单元的布局方法和半导体集成电路 | |
CN110704364A (zh) | 基于现场可编程门阵列的自动化动态重构方法及系统 | |
CN1199243A (zh) | 模块合成装置及模块合成方法 | |
CN1179409C (zh) | 半导体器件设计方法和装置 | |
CN1045508C (zh) | 远程计算机数据包交换系统 | |
JP2003534596A (ja) | プログラマブルシングルチップデバイス及び関連する開発環境 | |
Becker et al. | Fast Communication Mechanisms in Coarse-grained Dynamically Reconfigurable Array Architectures. | |
Wong et al. | PARAS: System-level concurrent partitioning and scheduling | |
Gebotys | An optimal methodology for synthesis of DSP multichip architectures | |
Chaouat et al. | Case-Based Synthesis of Telecommunication Architectures | |
Glossner et al. | The sandbridge SDR communications platform | |
CN1375102A (zh) | 表面尺寸减小的调出存储器 | |
Chou et al. | Adaptive Computing as the | |
CN1498470A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030122 Termination date: 20100517 |