CN101517576A - 基于软件程序在处理系统上的运行而设计asic - Google Patents
基于软件程序在处理系统上的运行而设计asic Download PDFInfo
- Publication number
- CN101517576A CN101517576A CNA2007800279380A CN200780027938A CN101517576A CN 101517576 A CN101517576 A CN 101517576A CN A2007800279380 A CNA2007800279380 A CN A2007800279380A CN 200780027938 A CN200780027938 A CN 200780027938A CN 101517576 A CN101517576 A CN 101517576A
- Authority
- CN
- China
- Prior art keywords
- hardware description
- asic
- software program
- hardware
- disposal system
- 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 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000006870 function Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 23
- 238000005457 optimization Methods 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 claims description 15
- 230000033228 biological regulation Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000011017 operating method Methods 0.000 claims 3
- 238000013461 design Methods 0.000 description 22
- 208000034189 Sclerosis Diseases 0.000 description 20
- 239000002609 medium Substances 0.000 description 18
- 230000008859 change Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 8
- 239000002184 metal Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013036 cure process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 239000002253 acid Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000012120 mounting media Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
- Processing Of Solid Wastes (AREA)
Abstract
用于开发ASIC的系统和方法。可储存一软件程序,所述软件程序包括实现一种功能的程序指令。软件程序可以按期望的系统速度在处理系统上运行,且可基于所述运行而被验证。处理系统的至少一部分的第一硬件描述可被储存且可规定处理系统的至少一部分的实现。可产生对应于第一硬件描述的第一部分的第二硬件描述。第二硬件描述可规定在处理系统上运行的软件程序的第一部分的专用的硬件实现。第二硬件描述的产生可执行一次或多次以完全地规定ASIC。可产生实现软件程序的功能的ASIC。
Description
技术领域
本发明涉及专用集成电路(ASIC)开发领域,且更具体地,涉及基于软件程序设计ASIC的系统和方法。
背景技术
近来为提高功能验证效率的目的,使用高级编程语言,例如使用“C”来描述电子系统的趋势在高级模型和低级硬件实现之间产生了更宽的实现差距。一般地,为了对电子装置进行原型设计,高级语言程序被手动地或自动地转变成硬件描述语言(HDL)描述,例如Verilog或VHDL代码,综合成门级逻辑,以及最初在可编程硬件装置上测试,例如在现场可编程门阵列(FPGA)上测试。在许多情况下,这被证明是复杂的任务,因为大多数高级程序不包含计时信息,而计时信息是配置可编程硬件装置或ASIC的门级逻辑实现所需要的。
借助处理器和硬连线的逻辑的混合而实现的系统同样要求有难度的步骤来将设计分成软件(由处理器运行的高级语言程序)和硬件(门级逻辑的HDL描述)。结果,手动转换费时且易出错。自动转换(行为综合)常常产生效率低的逻辑。以不用定制的(off-the-shelf)、商业上可提供的可编程装置,例如FPGA和处理器为基础的硬件原型常常在期望的系统速度以下运行,这可导致对开发和验证的额外的挑战。在一些情况下,由于可编程硬件装置的性能和资源的约束,为配置可编程硬件元件而产生的代码可能显著偏离最后的ASIC要求的代码。相应地,要求许多开发周期来将设计从基于高级编程语言的模型转换成最后的ASIC。另外,没有很简单的分析技术(fool-proofanalytical technique)来验证各种设计转换的正确性(功能上的等效性)。因此,期望在ASIC设计的高级行为模型到物理实现的途径上有所改进。
发明内容
下面提出了用于将软件程序转变成ASIC的系统和方法的各种实施方式。
首先,可储存一软件程序。该软件程序可包括实现期望的ASIC的功能的程序指令。在一个实施方式中,软件程序可用高级计算语言,例如用C语言来写。可选择地,软件程序可用图像化编程语言,例如用来自National Instruments的或来自Mathworks,Inc的来写。
软件程序可在具有并行处理能力的处理系统上运行。在不同的实施方式中,处理系统可按需要以单芯片或多个耦合芯片实现。例如,处理系统可包括多个处理器和(例如,散置于处理器间的)存储介质。可选择地,或附加地,处理系统可包括能够并行运行的多个可重构逻辑元件。
注意在运行软件程序之前,可分析软件程序并将其分成可以在处理系统的不同的部分上运行的部分。例如,软件程序的第一任务或部分可在处理系统的第一部分上运行。可按需要而自动地或手动地进行分析和划分。因此,软件程序可被划分在处理系统的各部分之中。
另外注意,软件程序可以按期望的系统速度在处理系统上运行。例如,软件程序可以按被生成的ASIC的期望的速度运行。换言之,处理系统可包括充足的硬件资源来以等价于目标系统速度的吞吐量水平运行软件程序。相应地,可以按全系统速度进行系统开发和调试,而不用折衷。因此,处理系统可实时地,以期望的系统速度运行,由此允许设计者充分地测试软件程序,而不用做有关ASIC的未来性能的假设。
另外,在需要更多的处理能力的地方(例如,为达到期望的系统吞吐量水平),可用最小的努力将更多的处理器、存储器及/或通信通路添加到处理系统。快速调节处理系统的规模以满足系统要求的能力可向系统设计提供快速转变的原型设计能力。在优选的实施方式中,软件程序重新分配在处理系统上可自动地并对用户来说透明地执行。
相应地,可根据软件程序在处理系统上的运行来对软件程序进行验证。在计算机系统上运行的软件开发环境可提供调试工具、性能分析工具、任务分配工具以及通信综合工具以开发并验证系统软件程序。随后可最优化所验证的软件以消耗最小量的处理、存储及通信资源,这些资源构成ASIC实现的硬件基础。
可储存处理系统的第一硬件描述。第一硬件描述可规定处理系统在硬件装置上的实现。例如,在一个实施方式中,第一硬件描述可对应于上述处理系统的默认硬件描述。可选择地,或附加地,硬件描述可基于处理系统的构件而被拼接在一起。第一硬件描述可使用硬件描述语言(HDL),例如VHDL(VHSIC硬件描述语言)、Verilog等。
可产生对应于由第一硬件描述的第一部分规定的处理系统的部分的第二硬件描述。根据上面的实例,第二硬件描述可对应于第一硬件描述的第一部分。第二硬件描述可规定在处理系统的部分上运行的软件程序的第一部分的专用的硬件实现(例如,特定的逻辑电路)。在一些实施方式中,第二硬件描述可基于第一硬件描述而生成,并且可以合并软件的硬件描述(例如,通过将软件的程序指令转变成硬件描述,例如HDL代码)。可选择地,使用处理系统的现有体系结构和在处理系统上运行的软件,可简单地生成第二硬件描述。因此,第二硬件描述可描述或实现由第一硬件描述表示的硬件中一些或全部。然而,第二硬件描述也可描述或实现软件(或其部分)以及运行软件的硬件,其中第二硬件描述以完成在硬件上运行的软件的功能的专用的门电路的形式规定软件/硬件。因此,如上所指出的,第二硬件描述可规定在处理系统上运行的软件程序的部分的专用的硬件实现。
在不同的实施方式中,可一次或更多次产生第二硬件描述。举例来说,可为处理系统的各构件或部分的至少一个子集产生第二硬件描述。每一第二硬件描述可随后一起编译为用于ASIC的最后的硬件描述。可选择地,按需要可产生第二硬件描述用于ASIC的全部。
产生规定在处理系统(或其部分)上运行的软件程序的部分的专用的硬件实现的第二硬件描述可称为“硬化”软件程序的该部分及/或处理系统的该部分。注意,硬化也可包括在ASIC上实现软件程序的特定部分。因此,硬化可以指可编程性可针对ASIC的该特定部分而被去除或限制。另外,如上所指出的,通过更改第一硬件描述以包括在处理系统的部分上运行的软件,可产生第二硬件描述。
硬化ASIC的特定的部分可允许有更好的性能、更小的面积以及更低的功耗。注意,处理系统的一个或更多的部分可以不被硬化,由此在最后的产品上(在此情况下ASIC)允许有可编程性。这样,按需要,可产生第二硬件描述,用于全部地或部分地硬化的最后的ASIC。因此,通过控制硬化的量,得到的ASIC的特性可在可编程ASIC到定制的硬连线的ASIC之间变化,获得程度变化的改进的面积、性能和功耗。注意,要硬化的部分可由用户选择,例如使用在计算机系统上运行的图形用户界面(GUI)。
可使用各种方法执行产生第二硬件描述(或硬化)。在一个实施方式中,产生第二硬件描述可包括分析在处理系统上运行的软件,以确定使用的硬件资源的实际量。在执行分析后,一个或更多的未用的通信链路(例如逻辑和布线)或芯片IO可被去除,例如,从第一硬件描述去除以产生第二硬件描述。因此,在一个实施方式中,第二硬件描述基于上述分析可不包括处理系统的不同部分的硬件描述。
在一些实施方式中,具有严格的时序要求的可编程通信链路可用专用的线路来取代。此外,指令组及/或数据的宽度可根据软件程序而改变。
另外,可最优化数据存储器的大小和组织以适应软件所限定的功能的确切的要求。例如,用于未用的存储器的不必要的存储器描述可在硬化过程中从第一硬件描述去除(以产生第二硬件描述)。可选择地,或附加地,存储器大小可被增大,存储器组织可被改变,或RAM描述可由只读存储器(ROM)描述取代,例如,以允许最后的ASIC的更好的性能和更小的面积。
在一些实施方式中,第一硬件描述可描述特定的处理器;硬化处理器可包括,用来自预验证的处理器核的库的处理器的特定的描述取代(例如,在第一硬件描述中的)处理器的描述。例如,如果(例如,ASIC的)系统需求要求浮点性能,则可使用具有内置浮点加速硬件的处理器;不然,可从处理器描述的库选择并使用较小的定点处理器。
类似地,基于软件程序的软件需求,可定制并重构处理器描述。例如,可通过以下方式来更改处理器描述:增加或去除指令,最优化寄存器文件和缓存大小,添加专用硬件加速器以及寻址模式,及/或生成定制的指令,以及其他类似的方式。在一个实施方式中,处理器的运行控制和指令存储器可由运行特定的软件程序的功能的状态机来取代。另外,通过替换充分匹配软件程序的计算要求的定制的数据通路可最优化处理器描述。定制的数据通路可允许之前串行执行的,例如,之前由第一硬件描述所描述的处理系统串行执行的操作被并行地运行。注意,在一些实施方式中,可使用传统的行为综合技术。例如,系统程序的部分可被划分并综合成硬连线的逻辑块。
在一些实施方式中,IP块可并入第二硬件描述及/或最后的硬件描述中。IP块可以或可以不存在于原处理系统体系结构中。IP块还可以是软件程序的功能的高度优化的逻辑实现。IP块(知识产权块)可指由公司或企业产生的、需要得到使用许可的块。因此,IP块可并入ASIC中(例如,通过将其描述包括在第二硬件描述中)。
在ASIC的一个或更多的部分被硬化之后,ASIC的电性能可被最优化用于新的芯片拓扑(与原处理系统的拓扑相对)。电路最优化可包括大小控制、缓冲、时钟网调整(clock net tuning)、电源/接地网调整(power/ground net tuning)及/或其他的优化。
因此,产生第二硬件描述可包括更改第一硬件描述以最优化ASIC。可生成并配置ASIC,且其可实现软件程序的功能。配置或生成ASIC可包括在ASIC上实现第二硬件描述(或最后的硬件配置/多个第二硬件配置)。例如,在用于配置ASIC的硬件描述包括状态机时,配置ASIC可包括实现状态机。而且,配置ASIC可包括在ASIC上实现第一硬件描述的一个或更多的部分。
附图说明
在结合下面的附图考虑下面的优选实施方式的详细描述时,可获得对本发明的较好的理解,附图中:
图1示出了示例性的计算机系统,该系统控制待设计的目标系统以实现本发明的各种实施方式;
图2A和2B是流程图,示出了用于基于根据一个实施方式的软件程序设计ASIC的方法的示例性的实施方式;
图3示出了根据本发明的一个实施方式的示例性的处理系统;以及
图4示出了根据本发明的一个实施方式的示例性的ASIC。
尽管本发明容许各种更改和替换形式,但以举例的方式在附图中显示了发明的特定的实施方式,且对这些实施方式进行了详细的说明。然而,应该理解,这些附图和对这些附图的详细的说明并不旨在将发明本限制为所公开的特定的形式,而正相反,目的是包含落在由随附的权利要求所限定的本发明的主旨和范围内的所有的更改形式、等效形式以及可选择的形式。
具体实施方式
术语
下面是在本申请中使用的术语汇编:
存储介质——各种类型的存储装置或储存装置中的一种。术语“存储介质”旨在包括安装介质,例如CD-ROM、软盘104或磁带装置;计算机系统内存或随机存取存储器,例如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;或非易失性存储器,例如磁性介质(magnetic media),例如,硬盘驱动器或光存储器。存储介质也可包括其他类型的存储器或这些存储器的组合。另外,存储介质可位于程序被运行的第一计算机中,及/或可以位于通过网络,例如通过互联网连接到第一计算机的第二、不同的计算机中。在后面的举例中,第二计算机可向第一计算机提供程序指令用于运行。术语“存储介质”可包括两个或更多的存储介质,这些存储介质可存在于不同的位置,例如存在于通过网络连接的不同的计算机中。
载体介质(Carrier Medium)——如上所述的存储介质,以及物理传输介质,例如总线、网络及/或其他传送信号,例如传送电信号或光信号的物理传输介质。
可编程硬件元件——包括各种硬件装置,所述硬件装置包括通过可编程的或硬连线的互连装置(interconnect)连接的多个可编程功能块。实例包括FPGA(现场可编程门阵列)、PLD(可编程逻辑电路),FPOA(现场可编程对象阵列)以及CPLD(复杂PLD)。可编程功能块可在细粒度(组合逻辑或查找表)到粗粒度(算术逻辑单元或处理器核)的范围内变化。可编程硬件元件也可称为“可重构逻辑”。
专用集成电路(ASIC)——该术语旨在具有其普通含义的全部范围。术语ASIC旨在包括为特殊应用定制的集成电路,而不是通用的可编程装置,尽管ASIC可包含可编程处理器核作为构块(buildingblock)。手机单元(Cell phone cell)、MP3播放器芯片,以及许多其他单功能的IC都是ASIC的实例。ASIC通常用硬件描述语言,例如Verilog或VHDL来描述。
程序——术语“程序”旨在具有其普通含义的全部范围。术语“程序”包括1)软件程序,其可储存在存储器中并可由处理器运行;或2)硬件配置程序,可用于配置可编程硬件元件或ASIC。
软件程序——术语“软件程序”旨在具有其普通含义的全部范围,且包括可储存在存储介质中并由处理器运行的任何类型的程序指令、代码、脚本及/或数据,或以上这些的组合。示例性的软件程序包括用基于文本的编程语言,例如C、C++、PASCAL、FORTRAN、COBOL、JAVA、汇编语言等所写的程序;图形化程序(用图形化编程语言所写的程序);汇编语言程序;编译成机器语言的程序;脚本;以及其他类型的可运行的软件。软件程序可包括两个或更多的以某种形式互操作的软件程序。
硬件配置程序——可用来编程或配置可编程硬件元件或ASIC的程序,例如,网表或位文件(bit file)。
图形用户界面——该术语旨在具有其普通含义的全部范围。术语“图形用户界面”通常缩写为“GUI”。GUI可包括只一个或更多的输入GUI元件,只一个或更多的输出GUI元件,或者输入GUI元件和输出GUI元件两者。
下面提供了GUI的不同方面的实例。下列实例以及讨论并不旨在限制GUI的普通含义,而是提供了术语“图形用户界面”包括的内容的实例:
GUI可包括具有一个或更多的GUI元件的单窗口,或可包括多个单独的GUI元件(或单独的窗口,各窗口具有一个或更多的GUI元件),其中单独的GUI元件或窗口可以可选地平铺在一起。
图形用户界面元件——图形用户界面的元件,例如用于提供输入或显示输出。示例性的图形用户界面元件包括输入控制和输出指示器。
计算机系统——各种类型的计算系统或处理系统中的任一种,包括个人计算机系统(PC)、大型计算机系统、工作站、网络装置(networkappliance)、Internet装置、个人数字助理(PDA)、网格计算系统或其他装置或装置的组合。总之,术语“计算机系统”可被广泛地定义为包括具有运行来自存储介质的指令的至少一个处理器的任何装置(或装置的组合)。
图1——计算机系统和ASIC
图1示出了连接到目标系统100的计算机系统82,所述目标系统100可操作以实现本发明的各种实施方式。
计算机系统82可包括至少一个存储介质,在所述存储介质上可储存根据本发明的一个实施方式的一个或更多的计算机程序或软件构件。例如,存储介质可储存可运行以进行在此描述的方法的一个或更多的程序(例如,软件工具)。存储介质也可储存操作系统软件,以及用于计算机系统的操作的其他软件。不同的实施方式还包括通过载体介质接收或储存依据前述说明实现的指令及/或数据。
在一个实施方式中,计算机系统可储存并运行软件开发环境以控制并观测目标系统的运行。目标系统可包括能够以期望的性能水平运行系统软件的处理系统。目标系统软件程序可储存在计算机系统中并下载到目标处理系统上,以实现电子系统的功能。目标系统可包括与运行系统软件程序的处理系统执行相同功能的目标系统的专用的ASIC实现。计算机系统主要在开发和验证阶段期间使用。目标系统可有能力来独立地运行以实现电子系统的功能,而不用计算机系统。
如在图1中显示的,计算机系统82可包括显示装置并可连接到目标系统100。显示装置可以是可操作的以显示用于软件开发环境的图形用户界面(GUI)。图形用户界面可包括任何类型的图形用户界面,例如,依赖于计算平台的图形用户界面。
图2A和2B——用于将软件程序转变成ASIC的方法
在图2A中显示的示例性的实施方式中,图2A示出了用于基于软件程序设计ASIC的方法。图2B示出了用于将软件程序从电子系统设计的原型阶段转变成产品ASIC(production ASIC)的方法的一个具体的实施方式。图2A和2B中显示的方法可结合在以上附图中显示的任何的计算机系统或装置,以及其他装置来使用。在不同的实施方式中,显示的方法单元中的一些可同时地、以不同于所显示的顺序进行,或者可以省略。另外的方法单元也可按需要来进行。如所显示的,此方法可操作如下。
首先,在202中,可储存一软件程序。软件程序可包括实现期望的ASIC的功能的程序指令。在一个实施方式中,软件程序可用高级计算机语言来写,例如用C语言来写。可选择地,软件程序可用图像化编程语言来写,例如用National Instruments的或Mathworks,Inc的来写。
在204中,软件程序可在具有并行处理能力的处理系统上运行。在不同的实施方式中,处理系统可按需要在单芯片或多个耦合的芯片中实现。例如,处理系统可包括多个处理器和(例如,散置于处理器间的)存储介质。可选择地,或附加地,处理系统可包括能够并行运行的多个可重构逻辑元件。在一个实施方式中,处理系统可以是在图3中显示的HyperX多处理器系统。因此,多处理器系统可通过使用多个处理器来并行地运行软件程序。美国专利申请序列号10/602,292和11/691,889描述了这样的系统以及在该系统上的软件程序的运行和部署。因此,有关202、204和206的进一步的细节可在一个或更多的上述参考中找到。注意,在这些参考中以及在此描述的细节不是限制性的,且可以预见到其他实施方式。例如,按需要,可在任何数量的处理系统上,用任何数量的语言来写软件程序,而不同于引用的文献中所描述的或以上描述的方式。
注意,在运行软件程序之前,可对软件程序进行分析并将其分成可以在处理系统的不同的部分上运行的部分。例如,软件程序的第一任务或部分可在处理系统的第一部分上运行。可按需要而自动地或手动地进行分析和划分。因此,软件程序可被划分在处理系统的各部分之中。
另外注意,软件程序可以按期望的系统速度在处理系统上运行。例如,软件程序可以按被生成的ASIC(例如,在下面描述的212中)的期望的速度运行。换言之,处理系统可包括充足的硬件资源来以等价于目标系统速度的吞吐量水平运行软件程序。相应地,可以按全系统速度进行系统开发和调试而不用折衷。因此,处理系统可实时地以期望的系统速度运行,由此允许设计者充分地测试软件程序,而不用做有关ASIC的未来性能的假设。
另外,在需要更多的处理能力的地方(例如,为达到期望的系统吞吐量水平),可用最小的努力将更多的处理器、存储器及/或通信通路添加到处理系统。在214中,快速调节处理系统的规模以满足系统要求的能力可向系统设计提供快速转变的原型设计能力。在优选的实施方式中,软件程序重新分配在处理系统上可自动地并对用户来说透明地执行。
相应地,在206中,可根据软件程序在处理系统上的运行来对软件程序进行验证。在计算机系统82上运行的软件开发环境可提供调试工具、性能分析工具、任务分配工具以及通信综合工具以开发并验证系统软件程序。随后,在215中,可对经验证的软件进行优化以消耗最小量的处理、存储及通信资源,这些资源构成216中的ASIC实现的硬件基础。
在208中,可储存处理系统的第一硬件描述。第一硬件描述可规定处理系统在一硬件装置(例如,214中的HyperX芯片)上的实现。例如,在一个实施方式中,第一硬件描述可对应于上述处理系统的默认硬件描述。可选择地,或附加地,硬件描述可基于处理系统的构件而被拼接在一起。在一个实施方式中,可以有不同的硬件描述用于处理系统的不同的通信链路、处理器类型、存储器等,且这些硬件描述可根据处理系统的具体的构件及/或体系结构而被拼接在一起。第一硬件描述可具有对应于处理系统的不同构件的一个或更多的部分。例如,在一个实施方式中,第一硬件描述可包括描述处理器和存储器的第一部分。因此,第一硬件描述可根据处理系统的设计而被储存。因而第一硬件描述是这样:如果第一硬件描述在ASIC上实现,那么这将在ASIC上产生处理系统,即,多个处理器和存储器将在ASIC上实现。
在210中,可产生第二硬件描述,其对应于由第一硬件描述的第一部分规定的处理系统的部分。根据上面的实例,第二硬件描述可对应于第一硬件描述的第一部分。第二硬件描述可规定在处理系统的所述部分上运行的软件程序的第一部分的专用的硬件实现。在一些实施方式中,第二硬件描述可基于第一硬件描述而生成,并且可以合并软件的硬件描述(例如,通过将软件的程序指令转变成硬件描述,例如HDL代码)。可选择地,使用处理系统的现有体系结构和在该处理系统上运行的软件,可简单地生成第二硬件描述。因此,第二硬件描述可描述或实现由第一硬件描述表示的一些或所有硬件。然而,第二硬件描述也可描述或实现软件(或其部分)以及运行该软件的硬件。因此,如上所指出的,第二硬件描述可规定在处理系统上运行的软件程序的部分的专用的硬件实现。
可在生成第二硬件描述的部分时进行的硬化的程度可在更优化的处理器实现到专用的硬件电路的范围内变化。因此,在一个实施方式中,第二硬件描述的部分相对于在第一硬件描述中规定的通用处理器,是具有更有限的可编程性的更优化的处理器。在另一个实施方式中,第二硬件描述的部分包括专用的逻辑,这使得如果第二硬件描述的此部分在ASIC上实现,那么这将在ASIC上产生专用的门电路及/或逻辑电路,这些专用的门电路及/或逻辑电路实现在处理系统的相应部分上运行的软件程序的第一部分的功能。这样,按不同的标准,例如按大小、性能、成本等的要求,第二硬件描述的不同的部分可“被硬化”成不同的程度。
按照一个特定的实例,处理系统中的处理器可被编程以计算两个和的乘积:Z=(A+B)×(C+D),其中所有变量都储存在数据存储器中。为在处理系统中运行该程序,可在处理器的指令存储器中装入一程序。上述程序可包含一系列的指令以从数据存储器取出数据(A、B、C和D),启动处理器的运行单元中的加法器和乘法器,以计算结果(Z),并将结果存回到数据存储器。在此和的乘积的实例中,第一硬件描述可包括描述处理器(主要由运行单元和指令存储器组成)和数据存储器的第一部分。该第一硬件描述可限定足够灵活以执行由程序的指令规定的任何功能的处理器。第二硬件描述可包括描述专用的电路的对应的部分,例如描述相同的处理器和存储器的“硬化的”形式的对应的部分,以只执行和的乘积的运算。因此,在此特定的实例中,第二硬件描述可描述在处理系统的部分(在此情况下,处理器和存储器)上运行的软件的部分的专用的硬件实现。
在不同的实施方式中,可一次或更多次产生第二硬件描述。举例来说,可为处理系统的各构件或部分产生第二硬件描述。每一第二硬件描述可随后一起编译为用于ASIC的最后的硬件描述。可选择地,按需要可产生第二硬件描述用于整个ASIC。
产生规定在处理系统(或其部分)上运行的软件程序的部分的专用的硬件实现的第二硬件描述可称为对软件程序的该部分及/或处理系统的该部分进行“硬化”。注意,硬化也可包括在ASIC上实现软件程序的特定部分(例如,如在212中所描述的,通过根据第二硬件描述而配置ASIC)。因此,硬化可以指可编程性可针对ASIC的该特定部分,或软件程序的该特定部分而被去除或限制。另外,如上所指出的,通过更改第一硬件描述以包括在处理系统的部分上运行的软件,可产生第二硬件描述。
硬化ASIC的特定的部分可允许有更好的性能、更小的面积以及更低的功耗。注意,处理系统的一个或更多的部分可以不被硬化,由此在最终的产品上(在此情况下ASIC)允许有可编程性。这样,按需要,可产生第二硬件描述,用于全部地或部分地硬化的最后的ASIC。因此,通过控制硬化的量,得到的ASIC的特性可在可编程ASIC到定制的硬连线的ASIC之间变化,获得程度变化的改进的面积、性能和功耗。注意,要硬化的部分可由用户选择,例如使用在计算机系统82上运行的图形用户界面(GUI)。
可使用各种方法执行产生第二硬件描述(或硬化)。在一个实施方式中,产生第二硬件描述可包括分析在处理系统上运行的软件,以确定使用的硬件资源的实际量。在执行分析后,一个或更多的未用的通信链路(例如逻辑和布线)或芯片IO可被去除,例如,从第一硬件描述去除以产生第二硬件描述。因此,在一个实施方式中,第二硬件描述基于分析可不包括处理系统的不同部分的硬件描述。
在一些实施方式中,具有严格的时序要求的可编程通信链路可用专用的线路来取代。此外,指令组及/或数据的宽度可根据在202中储存的软件程序而改变。
另外,可最优化数据存储器的大小和组织以适应软件所限定的功能的确切的要求。例如,用于未用的存储器的不必要的存储器描述可在硬化过程中从第一硬件描述去除(以产生第二硬件描述)。可选择地,或附加地,存储器大小可被增大,存储器组织可被改变,或RAM描述可由只读存储器(ROM)描述取代,例如,以允许最后的ASIC的更好的性能和更小的面积。
在一些实施方式中,第一硬件描述可描述特定的处理器;硬化处理器可包括,用来自预验证的处理器核的库的处理器的特定的描述取代(例如,在第一硬件描述中的)处理器的描述。例如,如果(例如,ASIC的)系统需求要求浮点性能,则可使用具有内置浮点加速硬件的处理器;不然,可从处理器描述的库选择并使用较小的定点处理器。
类似地,基于在202中储存的软件的软件需求,可定制并重构处理器描述。例如,可通过以下方式来更改处理器描述:增加或去除指令,最优化寄存器文件和缓存大小,添加专用硬件加速器以及寻址模式,及/或生成定制的指令,以及其他类似的方式。在一个实施方式中,处理器的运行控制和指令存储器可由运行特定的软件程序的功能的状态机来取代。另外,通过替换充分匹配软件程序的计算要求的定制的数据通路,可最优化处理器描述。定制的数据通路可允许操作被并行地运行,而这些操作之前是串行执行的,例如,由第一硬件描述所描述的处理系统串行执行。注意,在一些实施方式中,可使用传统的行为综合技术。例如,系统程序的部分可被划分并合成为硬连线的逻辑块。
在一些实施方式中,IP块可并入第二硬件描述及/或最后的硬件描述中。IP块可以或可以不存在于原处理系统体系结构中。IP块还可以是软件程序的功能的高度优化的逻辑实现。IP块(知识产权块)可指由公司或企业产生的、需要得到使用许可的块。因此,IP块可并入ASIC中(例如,通过将其描述包括在第二硬件描述中)。
在ASIC的一个或更多的部分被硬化之后(及/或在ASIC在212中被生成或配置后),ASIC的电性能可被最优化用于新的芯片拓扑(与原处理系统的拓扑相对)。电路最优化可包括大小控制、缓冲、时钟网调整、电源/接地网调整及/或其他的优化。
因此,产生第二硬件描述可包括更改第一硬件描述以最优化ASIC。因为更改并没有改变系统的功能,所以包括形式验证技术的验证技术和测试可用来验证第一硬件描述,可用来验证第二硬件描述。
在212中,可生成或配置ASIC,且其可实现软件程序的功能。配置或生成ASIC可包括在ASIC上实现第二硬件描述(或最后的硬件配置/多个第二硬件配置)。例如,在用于配置ASIC的硬件描述包括状态机时,配置ASIC可包括实现状态机。而且,配置ASIC可包括在ASIC上实现第一硬件描述的一个或更多的部分。
图4——示例性的专用集成电路(ASIC)
图4示出了使用本发明开发的示例性的ASIC的方块图。如所显示的,ASIC可包括一个或更多的可编程部分,在图4中以HyperX结构402、404和406示出。ASIC的可编程部分保持与原处理器结构基本相似。如上所指出的,在一些实施方式中,在完全硬连线的ASIC的情况下,最后确定的ASIC可根本不包含可编程部分。对于硬化的部分,可应用从全定制布线(full custom layout)到标准单元布局布线(standard cell place & route)范围内的各种物理实现技术。ASIC也可包括I/O框架400以及一个或更多的硬化的IP块408和410。图4的ASIC可根据上述的系统和方法生成。
结构化ASIC设计
在一个实施方式中,可使用结构化ASIC方法生成或配置ASIC。结构化ASIC是具有预定的基础电路(base circuit)和布线结构的特殊形式的ASIC。结构化ASIC旨在通过对芯片制造工艺的金属层、通孔层或其他的顶部材料层的定制进行限制来减少设计时间和成本。结构化ASIC的实例包括LSI的RapidChip、NEC的ISSP以及Fujitsu的AccelArray。结构化ASIC虽然由于基于预制的结构(pre-fabricated based fabric)的使用而掩模成本较低且制造时间较短,但其还是与传统ASIC一样,本身存在设计门级逻辑时相同的风险和复杂性及其相关的时序收敛问题。
目前的结构化ASIC基础结构大多由无特定用途的门电路(uncommitted gate)来填充以支持金属层定制。需要以HDL编写的系统的描述。为生成/实现ASIC,可使用逻辑综合工具以将HDL转变成门级网表。相应地,门电路可随后通过生成定制的金属掩模而被布局及连接。
硬化定制ASIC时使用的许多技术(例如上面所描述的,以及类似的内容)在掩模可编程结构化ASIC实现中应用得同样好。在结构化ASIC实现的一个实施方式中,基础阵列包括处理器,例如上述处理器系统的处理器、存储器巨集(memory macro)、IO以及其他预定义的IP块,因而生成直接由高级编程语言驱动而不是由HDL驱动的结构化的ASIC。
在另一个实施方式中,无特定用途的门电路被添加到处理器系统的基础结构以便于定制逻辑的生成。附加地,或可选择地,金属掩模定制可用来形成通信链路。在一个实施方式中,金属层定制也可用来形成不同类型、大小和组织的存储器块。此外,金属层定制被用来生成定制的逻辑块。
在另一个实施方式中,处理器系统中的各处理器(或至少处理器的子集)的特性可借助金属层定制而被定制。例如,可通过增加/去除指令,包括/排除浮点硬件,调整寄存器文件大小及/或缓存大小,及/或包括专用硬件加速器更改一个或更多的处理器。
在一些实施方式中,一个或更多的ASIC部分可以是基于原处理结构而预定义并预制在ASIC芯片上的,且可通过金属层上不同的互连装置容易地定制。再举一个例子,结构化ASIC可已经包括内置的IP块。
在另一个实施方式中,当使用结构化ASIC时,用来验证软件程序的处理系统可以是结构化ASIC的软件或硬件仿真器。通过在实质上类似于最后的结构化ASIC的平台上开发软件程序,从软件程序到结构化ASIC的映射被简化。由于在结构化ASIC上可提供的减少的硬化可能性,第一硬件描述可不包含处理系统的完全实现,因为相同的处理硬件已预制在结构化ASIC上。这种情况下,尽管使用结构化ASIC方法,硬化的程度变化仍有可能,但第二硬件描述也可只包含需要用来定制通信的信息。
硬化过程的自动化
如上所指出的,不同软件工具可储存在计算机系统82上,用于辅助上面图2A和2B中描述的硬化过程并使之自动化。下面的内容描述了可以使用的示例性的工具的特定的实施方式。
软件开发——输入、可视化、模拟以及调试用户程序。这些工具可包括连接到硬件参考设计的设备,用于软件/硬件协同设计和调试。
软件分析——分析计算资源的利用、储存资源的利用、通信资源的利用、IO资源的利用、数据流以及数据业务。
任务分配——建立数据处理、存储器访问以及通信开销的成本函数的模型。这些工具可以分配任务并将工作荷载分发到不同的处理器以获得处理和通信之间的最佳平衡,并获得最佳的面积、性能、等待时间和功耗。
虚拟原型(Virtual Prototyping)——基于软件的实际资源需求最优化设计以及在假设(what-if)分析中,向用户提供快速的面积/性能/功率反馈。硅虚拟原型技术的实例可在6,145,117号美国专利中找到,该专利特此以引用方式并入,就如同在此充分并完全阐明的一样。
存储器产生——产生不同大小和组织的存储器以实现最优化过程的决策。
通信综合——在芯片上的块之间产生最优化通信路径以实现最优化过程的决策。
I/O综合——产生最优化IO框架以适合系统的确切的要求。
定制数据通路综合——产生定制的通信通路以取代HyperX处理器的普通的数据处理单元。
自动布图规划生成(Automatic Floorplan Creation)——基于时序、电源、布线拥塞度(routing congestion),以及信号完整性分析产生最优化的布图规划。布图规划者可将硬块(hard block)、软块(soft block)、时钟网、电源/接地网络、IO以及设计约束并入适合于商用的物理实现工具,例如来自Cadence和Synopsys的工具的种子布图规划(seed floorplan)中。
时序最优化——最优化电路的电性能以满足作为硬化处理器的结果的新的时序约束。
设计验证——验证硬化的设计的功能的正确性。这些工具可辅助验证在整个物理转变过程中没有无意地改变设计意图。
行为综合——将处理器的高级程序代码综合成HDL描述,用于硬连线的逻辑实现。商用行为综合工具的实例包括来自MentorGraphics、Forte Design Systems以及Synforna的软件。
状态机产生——产生状态机以取代处理器的指令存储器、指令运行以及排序逻辑。
可重构处理器产生——基于软件需求,例如基于上述软件程序的软件需求来重构处理器。例如,增加/去除指令、最优化寄存器文件和缓存大小、添加专用硬件加速器以及生成定制指令在处理器定制中是众所周知的技术。Tensilica的可配置的处理器体系结构是用来构建可重构处理器的商用工具的实例。
因此,使用在此描述的系统和方法,上述软件工具中的一个或更多个可用来自动化或辅助生成ASIC。注意,这些工具只是示例性的,且其他工具也是可以预见的。
尽管已经相当详细地描述了上面的实施方式,但对本领域技术人员来说,一旦上述公开被充分地理解,则许多的变化形式和更改将变得很明显。期望下列权利要求解释为包括所有这样的变化的形式和更改。
Claims (24)
1.一种方法,其用于开发执行一种功能的专用集成电路(ASIC),所述方法包括:
储存软件程序,所述软件程序包括实现所述功能的程序指令;
在具有并行处理能力的处理系统上运行所述软件程序,其中运行所述软件程序的所述步骤以期望的系统速度执行;
基于所述运行步骤验证所述软件程序;
储存所述处理系统的至少一部分的第一硬件描述,其中所述第一硬件描述规定所述处理系统的至少一部分的实现;
产生对应于所述第一硬件描述的第一部分的第二硬件描述,其中所述第二硬件描述规定在所述处理系统上运行的所述软件程序的第一部分的专用的硬件实现,其中所述产生步骤被执行一次或更多次;
生成实现所述软件程序的所述功能的ASIC,其中所述生成步骤包括在所述ASIC上实现所述第二硬件描述。
2.如权利要求1所述的方法,其中所述产生步骤被执行多次以产生多个第二硬件描述;
其中所述生成步骤包括在所述ASIC上实现多个第二硬件描述。
3.如权利要求1所述的方法,其中所述生成步骤包括在所述ASIC上实现所述第一硬件描述的至少一部分。
4.如权利要求1所述的方法,其中所述第二硬件描述规定状态机;
其中所述产生步骤包括用规定所述状态机的所述第二硬件描述取代所述第一硬件描述的所述第一部分;
其中所述生成步骤包括在所述ASIC上实现所述状态机。
5.如权利要求1所述的方法,其中所述产生步骤包括:在所述第二硬件描述中包括定制的数据通路,所述定制的数据通路匹配或超过所述软件程序的所述第一部分的计算要求。
6.如权利要求1所述的方法,其中所述软件的所述第一部分能够运行而以串行方式执行多个操作;
其中所述第二硬件描述规定所述多个操作的以并行方式的运行。
7.如权利要求1所述的方法,其中所述产生步骤包括:
分析所述软件程序以确定使用的硬件资源的实际量;
其中所述第一硬件描述的第二部分基于所述分析步骤而没有用在所述生成步骤中。
8.如权利要求1所述的方法,其中所述产生步骤包括:
确定在所述第一硬件描述的所述第一部分中没有使用的通信链路;
其中所述第一硬件描述中的所述没有使用的通信链路不在所述生成步骤中使用。
9.如权利要求1所述的方法,其中所述转变步骤包括:
确定所述第一硬件描述的所述第一部分中具有严格时序要求的可编程通信链路;
其中所述生成步骤包括用专用的链路取代所确定的可编程通信链路。
10.如权利要求1所述的方法,其进一步包括:
分析在所述处理系统中第一处理器类型上运行的、所述软件程序的第二部分;以及
确定规定第二处理器类型的处理器的第三硬件描述,其中所述第二处理器类型基于所述分析步骤而确定。
11.如权利要求10所述的方法,其中,所述第二处理器类型的处理器选自预验证的处理器类型的库。
12.如权利要求10所述的方法,其中基于所述分析优化所述第二处理器类型的处理器。
13.如权利要求1所述的方法,其中所述第二硬件描述根据所述软件程序的位宽度实现位宽度。
14.如权利要求1所述的方法,其进一步包括:
从所述软件程序综合一个或多个HDL描述;以及
将所述一个或多个HDL描述中的至少一个合并到所述第二硬件描述中。
15.如权利要求1所述的方法,其中利用一个或多个根据结构化ASIC设计预定义的ASIC部分执行所述生成ASIC的步骤。
16.如权利要求1所述的方法,其进一步包括:
从所述一个或多个第二硬件描述产生ASIC硬件描述;
分析由所述ASIC硬件描述所描述的芯片拓扑;以及
基于所述分析优化所述ASIC硬件描述。
17.如权利要求16所述的方法,其中所述优化包括以下中的一个或多个:
大小控制;缓冲;时钟网调整;电源网调整;或接地网调整。
18.如权利要求1所述的方法,其中所述ASIC包括一个或多个IP块。
19.如权利要求1所述的方法,其中所述产生包括:利用规定优化用于所述软件程序的存储器的第三硬件描述来修改规定存储器的所述第一硬件描述的第二部分。
20.如权利要求19所述的方法,其中所述第三硬件描述规定以下中的一个或多个:
只读存储器;上调大小的存储器;下调大小的存储器;或重组织的存储器。
20.如权利要求1所述的方法,其中所述处理系统包括多个处理器和存储介质,其中所述存储介质散置于所述多个处理器之间。
21.一种方法,其用于开发执行一种功能的专用集成电路(ASIC),所述方法包括:
储存软件程序,所述软件程序包括实现所述功能的程序指令;
在具有并行处理能力的处理系统上运行所述软件程序,其中运行所述软件程序的所述步骤以期望的系统速度执行;
基于所述运行步骤验证所述软件程序;
储存所述处理系统的至少一部分的第一硬件描述,其中所述第一硬件描述规定所述处理系统的至少一部分的实现;
反复地产生对应于所述第一硬件描述的各第一部分的多个第二硬件描述,其中相应的所述多个第二硬件描述中的每一第二硬件描述规定在所述处理系统上运行的所述软件程序的相应的第一部分的专用的硬件实现;
生成实现所述软件程序的所述功能的ASIC,其中所述生成步骤包括在所述ASIC上实现所述多个第二硬件描述。
22.一种系统,其包括:
计算机系统;以及
处理系统,其连接到所述计算机系统;
其中所述计算机系统可操作以:
储存软件程序,其中所述软件程序能够通过所述处理系统来运行,以用于验证;
储存所述处理系统的至少一部分的第一硬件描述,其中所述第一硬件描述规定所述处理系统的所述至少一部分在ASIC上的实现;以及
反复地产生对应于所述第一硬件描述的各第一部分的多个第二硬件描述,其中相应的所述多个第二硬件描述中的每一第二硬件描述规定在所述处理系统上运行的所述软件程序的相应的第一部分的专用的硬件实现;
其中所述多个第二硬件描述能够用以配置所述ASIC来执行功能。
23.一种方法,其用于开发执行一种功能的专用集成电路(ASIC),所述方法包括:
储存软件程序,所述软件程序包括实现所述功能的程序指令;
在具有并行处理能力的处理系统上运行所述软件程序,其中运行所述软件程序的所述步骤以期望的系统速度执行;
基于所述运行步骤验证所述软件程序;
储存所述处理系统的至少一部分的第一硬件描述,其中所述第一硬件描述规定所述处理系统的至少一部分的实现;
产生对应于所述第一硬件描述的第一部分的第二硬件描述,其中所述第二硬件描述规定在所述处理系统上运行的所述软件程序的第一部分的硬件实现,其中所述产生步骤被执行一次或更多次,其中基于作为期望目标设备的结构化的ASIC执行所述产生步骤;
在所述结构化的ASIC上实现所述第二硬件描述以配置所述ASIC来执行所述软件程序的功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US80262906P | 2006-05-22 | 2006-05-22 | |
US60/802,629 | 2006-05-22 | ||
PCT/US2007/069481 WO2007137266A2 (en) | 2006-05-22 | 2007-05-22 | Designing an asic based on execution of a software program on a processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101517576A true CN101517576A (zh) | 2009-08-26 |
CN101517576B CN101517576B (zh) | 2011-10-05 |
Family
ID=38724092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800279380A Active CN101517576B (zh) | 2006-05-22 | 2007-05-22 | 基于软件程序在处理系统上的运行而设计asic |
Country Status (5)
Country | Link |
---|---|
US (5) | US7761817B2 (zh) |
EP (1) | EP2030135A2 (zh) |
JP (1) | JP5009979B2 (zh) |
CN (1) | CN101517576B (zh) |
WO (1) | WO2007137266A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467582A (zh) * | 2010-10-29 | 2012-05-23 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
CN111506398A (zh) * | 2020-03-03 | 2020-08-07 | 平安科技(深圳)有限公司 | 任务调度方法和装置、存储介质、电子装置 |
CN113657059A (zh) * | 2021-08-17 | 2021-11-16 | 成都视海芯图微电子有限公司 | 一种适用于点云数据处理器的自动化设计方法及装置 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040136241A1 (en) | 2002-10-31 | 2004-07-15 | Lockheed Martin Corporation | Pipeline accelerator for improved computing architecture and related system and method |
US20060085781A1 (en) | 2004-10-01 | 2006-04-20 | Lockheed Martin Corporation | Library for computer-based tool and related system and method |
US7761817B2 (en) | 2006-05-22 | 2010-07-20 | Coherent Logix, Incorporated | Designing an ASIC based on execution of a software program on a processing system |
US7555741B1 (en) * | 2006-09-13 | 2009-06-30 | Altera Corporation | Computer-aided-design tools for reducing power consumption in programmable logic devices |
US8972958B1 (en) * | 2012-10-23 | 2015-03-03 | Convey Computer | Multistage development workflow for generating a custom instruction set reconfigurable processor |
US8739088B1 (en) * | 2009-10-16 | 2014-05-27 | Xilinx, Inc. | Using constraints wtihin a high-level modeling system for circuit design |
US8201126B1 (en) * | 2009-11-12 | 2012-06-12 | Altera Corporation | Method and apparatus for performing hardware assisted placement |
KR101651871B1 (ko) * | 2009-12-28 | 2016-09-09 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
US8225247B2 (en) * | 2010-07-13 | 2012-07-17 | Satish Padmanabhan | Automatic optimal integrated circuit generator from algorithms and specification |
US8880866B2 (en) | 2010-10-15 | 2014-11-04 | Coherent Logix, Incorporated | Method and system for disabling communication paths in a multiprocessor fabric by setting register values to disable the communication paths specified by a configuration |
TW201301135A (zh) * | 2011-06-16 | 2013-01-01 | Hon Hai Prec Ind Co Ltd | 零件資料轉檔系統及方法 |
WO2014074251A1 (en) | 2012-11-06 | 2014-05-15 | Coherent Logix, Incorporated | Multiprocessor programming toolkit for design reuse |
US9619597B1 (en) * | 2014-02-28 | 2017-04-11 | Cadence Design Systems, Inc. | System, method, and computer program product for electronic design configuration space determination and verification |
US9202004B1 (en) * | 2014-08-01 | 2015-12-01 | Cadence Design Systems, Inc. | System, method, and computer program product for ensuring that each simulation in a regression is running a unique configuration |
JP6992357B2 (ja) * | 2017-09-22 | 2022-01-13 | 日本電気株式会社 | 設計支援装置、設計支援方法およびコンピュータプログラム |
US10740257B2 (en) * | 2018-07-02 | 2020-08-11 | International Business Machines Corporation | Managing accelerators in application-specific integrated circuits |
JP6531927B1 (ja) * | 2018-08-17 | 2019-06-19 | 株式会社エルアミーナ | 高位合成マルチプロセッサシステム等 |
KR20220041040A (ko) | 2019-04-18 | 2022-03-31 | 런세이프 시큐리티, 인크. | 소스 수정 엔진의 자동화된 통합 |
CN111552190B (zh) * | 2020-04-24 | 2024-01-30 | 杭州涂鸦信息技术有限公司 | 一种控制硬件设备功能的方法及其系统和装置 |
US11411593B2 (en) * | 2020-04-29 | 2022-08-09 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing butterfly computations and related methods |
US11502715B2 (en) | 2020-04-29 | 2022-11-15 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0410502B1 (en) * | 1989-07-27 | 1997-05-28 | Lsi Logic Corporation | Method and apparatus for emulating interaction between application specific integrated circuit (asic) under development and target system |
JP2986761B2 (ja) * | 1997-05-23 | 1999-12-06 | 三菱電機株式会社 | ハードウェア規模可変マイクロプロセッサ・ソフトコア設計方法 |
US5966534A (en) * | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6226776B1 (en) * | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
US6466898B1 (en) * | 1999-01-12 | 2002-10-15 | Terence Chan | Multithreaded, mixed hardware description languages logic simulation on engineering workstations |
US6272451B1 (en) * | 1999-07-16 | 2001-08-07 | Atmel Corporation | Software tool to allow field programmable system level devices |
JP2001216337A (ja) * | 2000-02-01 | 2001-08-10 | Rooran:Kk | Cpuコアの開発支援システムとその開発支援方法及び開発支援用プログラムを記録した記録媒体 |
US6578133B1 (en) * | 2000-02-24 | 2003-06-10 | Stanley M. Hyduke | MIMD array of single bit processors for processing logic equations in strict sequential order |
US6490707B1 (en) * | 2000-07-13 | 2002-12-03 | Xilinx, Inc. | Method for converting programmable logic devices into standard cell devices |
US7415594B2 (en) * | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
US7000092B2 (en) * | 2002-12-12 | 2006-02-14 | Lsi Logic Corporation | Heterogeneous multi-processor reference design |
JP3923920B2 (ja) * | 2003-03-31 | 2007-06-06 | 株式会社東芝 | 集積回路の設計システム及び集積回路の設計方法 |
US6981232B1 (en) * | 2003-05-23 | 2005-12-27 | Xilinx, Inc. | Method and system for integrating a program and a processor into an application specific processor |
US7353362B2 (en) * | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
JP2006155448A (ja) * | 2004-12-01 | 2006-06-15 | Matsushita Electric Ind Co Ltd | データ処理装置およびデータ処理装置の設計方法 |
US7437500B2 (en) * | 2005-08-05 | 2008-10-14 | Lsi Corporation | Configurable high-speed memory interface subsystem |
CN101479704B (zh) * | 2006-03-27 | 2013-09-04 | 相干逻辑公司 | 为多处理器系统设计程序 |
US7761817B2 (en) * | 2006-05-22 | 2010-07-20 | Coherent Logix, Incorporated | Designing an ASIC based on execution of a software program on a processing system |
JP4955484B2 (ja) * | 2007-08-24 | 2012-06-20 | ルネサスエレクトロニクス株式会社 | 回路設計装置、回路設計方法、及び、回路設計プログラム |
US20100175038A1 (en) * | 2009-01-06 | 2010-07-08 | Internationl Buisness Machines Corporation | Techniques for Implementing an Engineering Change Order in an Integrated Circuit Design |
-
2007
- 2007-05-22 US US11/751,994 patent/US7761817B2/en active Active
- 2007-05-22 EP EP07784045A patent/EP2030135A2/en not_active Ceased
- 2007-05-22 CN CN2007800279380A patent/CN101517576B/zh active Active
- 2007-05-22 WO PCT/US2007/069481 patent/WO2007137266A2/en active Application Filing
- 2007-05-22 JP JP2009512266A patent/JP5009979B2/ja active Active
-
2010
- 2010-07-16 US US12/837,767 patent/US7949969B2/en active Active
-
2011
- 2011-05-18 US US13/110,248 patent/US8171436B2/en active Active
-
2012
- 2012-03-27 US US13/431,029 patent/US8438510B2/en active Active
-
2013
- 2013-04-15 US US13/862,842 patent/US8788989B2/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467582A (zh) * | 2010-10-29 | 2012-05-23 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
CN102467582B (zh) * | 2010-10-29 | 2014-08-13 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
CN111506398A (zh) * | 2020-03-03 | 2020-08-07 | 平安科技(深圳)有限公司 | 任务调度方法和装置、存储介质、电子装置 |
CN111506398B (zh) * | 2020-03-03 | 2024-05-10 | 平安科技(深圳)有限公司 | 任务调度方法和装置、存储介质、电子装置 |
CN113657059A (zh) * | 2021-08-17 | 2021-11-16 | 成都视海芯图微电子有限公司 | 一种适用于点云数据处理器的自动化设计方法及装置 |
CN113657059B (zh) * | 2021-08-17 | 2023-05-09 | 成都视海芯图微电子有限公司 | 一种适用于点云数据处理器的自动化设计方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US7761817B2 (en) | 2010-07-20 |
US8171436B2 (en) | 2012-05-01 |
EP2030135A2 (en) | 2009-03-04 |
US20110219343A1 (en) | 2011-09-08 |
US20070271545A1 (en) | 2007-11-22 |
US20130283220A1 (en) | 2013-10-24 |
JP2009538481A (ja) | 2009-11-05 |
US8438510B2 (en) | 2013-05-07 |
US20100281451A1 (en) | 2010-11-04 |
CN101517576B (zh) | 2011-10-05 |
WO2007137266A3 (en) | 2008-06-26 |
US8788989B2 (en) | 2014-07-22 |
US7949969B2 (en) | 2011-05-24 |
WO2007137266A2 (en) | 2007-11-29 |
US20120192131A1 (en) | 2012-07-26 |
JP5009979B2 (ja) | 2012-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101517576B (zh) | 基于软件程序在处理系统上的运行而设计asic | |
Hubner et al. | A heterogeneous multicore system on chip with run-time reconfigurable virtual FPGA architecture | |
US8893070B2 (en) | Method for repeated block modification for chip routing | |
US20050268268A1 (en) | Methods and systems for structured ASIC electronic design automation | |
US7409658B2 (en) | Methods and systems for mixed-mode physical synthesis in electronic design automation | |
TW202205128A (zh) | 針對具有嵌入式邏輯的多位元記憶體的系統與方法 | |
Koul et al. | Aha: An agile approach to the design of coarse-grained reconfigurable accelerators and compilers | |
CN104239595A (zh) | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 | |
US7509246B1 (en) | System level simulation models for hardware modules | |
Madariaga et al. | Review of electronic design automation tools for high-level synthesis | |
Carvalho et al. | Reconfiguration control for dynamically reconfigurable systems | |
Dutt et al. | Design synthesis and silicon compilation | |
Chen et al. | Simultaneous placement with clustering and duplication | |
Fawcett | Tools to speed FPGA development | |
Singh et al. | Register-Transfer-Level Design for Application-Specific Integrated Circuits | |
Baguma | High level synthesis of fpga-based digital filters | |
Malik et al. | Effort, resources, and abstraction vs performance in high-level synthesis: finding new answers to an old question | |
JM Veendrick et al. | Very Large Scale Integration (VLSI) and ASICs | |
Woods et al. | FPGA Synthesis on the XC6200 using IRIS and Trianus/Hades (or from Heaven to Hell and back again) | |
Gore | OpenFPGA-Physical: A Scalable Framework for Physical Design of Tileable Field Programmable Gate Array Architectures | |
Selvaraj et al. | Partitioning of large HDL ASIC designs into multiple FPGA devices for prototyping and verification | |
Sierra et al. | Automated timing characterization of high-performance macroblocks for latency insensitive FPGA designs | |
Hajji et al. | Introduction to Field Programmable Gate Arrays (FPGA) | |
Sklyarov et al. | Integrated development environment for logic synthesis based on dynamically reconfigurable FPGAs | |
Iqbal et al. | Reconfigurable Computing Systems Related Hardware and Software Perspectives. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CI01 | Publication of corrected invention patent application |
Correction item: Applicant Correct: Coherent Logix Inc. False: Coherent Logix Inc. Number: 34 Volume: 25 |
|
CI02 | Correction of invention patent application |
Correction item: Applicant Correct: Coherent Logix Inc. False: Coherent Logix Inc. Number: 34 Page: The title page Volume: 25 |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |