CN101496283A - 半导体集成电路、程序变换装置以及映射装置 - Google Patents

半导体集成电路、程序变换装置以及映射装置 Download PDF

Info

Publication number
CN101496283A
CN101496283A CNA2007800282720A CN200780028272A CN101496283A CN 101496283 A CN101496283 A CN 101496283A CN A2007800282720 A CNA2007800282720 A CN A2007800282720A CN 200780028272 A CN200780028272 A CN 200780028272A CN 101496283 A CN101496283 A CN 101496283A
Authority
CN
China
Prior art keywords
circuit
reconfigurable
reconfigurable core
semiconductor integrated
core
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.)
Pending
Application number
CNA2007800282720A
Other languages
English (en)
Inventor
丸井信一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101496283A publication Critical patent/CN101496283A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Manufacturing & Machinery (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明所涉及的半导体集成电路(100)具有:多个可重构核(101),与时钟同步工作,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及第一寄存器电路群(102),形成在所述多个可重构核(101)包括的第一可重构核和第二可重构核之间,暂时保持所述第一可重构核的输出,并输出到所述第二可重构核,所述多个可重构核(101)各自具有:多个逻辑单元(201),被布置成阵列状,并各自实现规定的逻辑;以及布线(202以及203),在所述多个逻辑单元(201)之间进行连接,且所述布线是可编程的布线。

Description

半导体集成电路、程序变换装置以及映射装置
技术领域
本发明涉及半导体集成电路、程序变换装置以及映射(mapping)装置,尤其涉及具有多个可重构核的半导体集成电路。
背景技术
以往,存在以FPGA(Field Programmable Gate Array:现场可编程门阵列)为代表的可重构自身的逻辑的半导体集成电路(以下,记述为“可重构逻辑的半导体集成电路”。)。
图1是表示以往的可重构逻辑的半导体集成电路的整体构成的图。图1所示的以往的可重构逻辑的半导体集成电路500具有阵列状布置的多个逻辑单元(LE:logic element)501。FPGA是可重构逻辑的半导体集成电路的一种,在FPGA中逻辑单元501以查找表(LUT:look-up table)来构成。通过改写LUT的内容,使与逻辑单元501的输入相对的输出关系发生变化。并且,各个逻辑单元501以图中未示出的可编程的布线连接。通过可编程的布线,可编程地决定某一个逻辑单元501的输出要被输入到哪一个逻辑单元501。如上所述,通过变更逻辑单元501的输入相对的输出关系和各个逻辑单元501的连接关系,能够在半导体集成电路500实现所期望的电路功能。
并且,对于可编程的布线,虽然将所有的逻辑单元与所有的逻辑单元直接连接,连接的自由度会变得最大,但是布线资源会变得庞大,因此这并不现实。而将一个逻辑单元只与一个逻辑单元相连接,则没有自由度。对于采用何种布线结构会平衡布线资源和自由度并会提高效率提出了各种方案,专利文献1所记载的技术是被周知的一个例子。
其次,利用图2说明将所期望的电路功能映射到图1所示的可重构逻辑的半导体集成电路500的方法。图2是表示对以往的可重构逻辑的半导体集成电路500进行映射的流程的图。图2所示的映射通过对每个可重构逻辑的半导体集成电路500的结构使用专用的合成工具以及P&R(Placeand Route:布置布线)工具来进行。
首先,用户使用HDL(Hardware Description Language:硬件描述语言)等硬件描述语言或C语言等高级语言,来描述应当实现的电路功能(S101)。然后,合成工具对被描述的电路功能进行逻辑合成(S102)。具体而言,合成工具将被描述的电路功能分割为可分配到一个逻辑单元501的功能单位。然后,合成工具决定所分割的功能单位之间的连接关系。
然后,P&R工具将所分割的功能单位布置到实际电路中的逻辑单元501(S103)。据此,各个逻辑单元501的功能(与输入相对的输出关系)被决定。
然后,P&R工具使用可编程的布线在逻辑单元501之间布线,以使其满足通过逻辑合成来决定的连接关系(S104)。
重复上述布置以及布线直到满足对速度(定时)以及电路区域(面积)的规定的限制为止。在满足规定的限制的情况下,映射结束。并且,在不满足规定的限制的情况下,有时重新进行逻辑合成。
另外,在专利文献2公开了通过在掩模布局上连接两个FPGA从而以较少的设计工时构筑大规模的可重构逻辑的半导体集成电路的方法。
专利文献1:美国专利第5594363号说明书
专利文献2:美国专利第6335635号说明书
然而,近些年,以数字电视以及移动电话为代表的数字设备的多功能化日新月异,以这些数字设备来处理的内容也变得复杂。由此,使用可重构逻辑的半导体集成电路应当实现的电路功能也越来越大规模化,将大规模的电路功能映射到大规模的可重构逻辑的半导体集成电路的需求也越来越大。
专利文献2所公开的可重构逻辑的半导体集成电路,因为是基本单位的集合体,所以扩展性大,且较易于扩张规模。可是,在将大规模的电路功能映射到大规模的可重构逻辑的半导体集成电路的情况下,首先,将应当实现的电路功能分割成为功能单位的组合增多。而且,将各个功能单位要分配到哪一个逻辑单元的组合增多。而且,如何使用可编程的布线来连接逻辑单元之间的组合也增多。结果是,伴随电路规模的增大,映射的组合也急剧增多。由此,使用以往的合成工具以及P&R工具,最大限度地使用大规模的可重构的半导体集成电路来实现电路功能的情况下,有可能会无法完成映射。而现状是并不存在能够解决这样的问题的高明的合成工具以及P&R工具。
发明内容
本发明鉴于上述的问题,目的在于提供一种能够容易地映射大规模的电路功能的可重构逻辑的半导体集成电路。
而且,另一目的在于,提供一种半导体集成电路的布局,在将多个可重构核安装在一个芯片上来构成大规模的可重构逻辑的半导体集成电路的情况下,使设计容易且面积较小。
为了达成上述目的,本发明所涉及的半导体集成电路具有:多个可重构核,与时钟同步工作,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及第一寄存器电路群,形成在所述多个可重构核包括的第一可重构核和第二可重构核之间,暂时保持所述第一可重构核的输出,并输出到所述第二可重构核,所述多个可重构核各自具有:多个逻辑单元,被布置成阵列状,并各自实现规定的逻辑;以及布线,在所述多个逻辑单元之间进行连接,且所述布线是可编程的布线。
根据此构成,因为可以将各个可重构核作为独立的电路来映射电路功能,所以即使是在将大规模的电路功能映射到可重构逻辑的半导体集成电路的情况下,也能够在短时间内完成映射。由此,本发明能够提供容易地映射大规模的电路功能的可重构逻辑的半导体集成电路。
并且,也可以是,所述第一寄存器电路群包括:第一寄存器电路,暂时保持所述第一可重构核的输出;以及第二寄存器电路,保持从所述第一寄存器电路输出的数据,并输出到所述第二可重构核。
根据此构成,针对因为布线距离而引起的延迟能够缓和定时限制。
并且,也可以是,被输入到所述第一寄存器电路以及所述第二寄存器电路的时钟,和被输入到成为所述第二寄存器电路所保持的数据的接受方的可重构核的时钟相同。
根据此构成,即使在使各可重构核不同步工作的情况下,也能够以第二寄存器电路确实地保持数据。因此,能够防止亚稳(metastable)(不满足安装限制或保持限制的状态)的发生。
并且,也可以是,被输入到向所述第一寄存器电路群输出数据的可重构核的时钟,和被输入到从所述第一寄存器电路群输入数据的可重构核的时钟不同。
根据此构成,能够防止使各可重构核非同步工作的情况下发生的亚稳。
并且,也可以是,所述多个可重构核包括第三可重构核以及第四可重构核,所述第三可重构核以及所述第四可重构核的形状是以第一边、第二边、第三边和第四边围成的矩形,所述第一边被输入用于重构所述可重构核的逻辑的构建(configuration)数据,所述第二边和所述第一边相对,所述第三边和所述第一边正交,所述第四边和所述第三边相对,所述第三可重构核以及所述第四可重构核被分离布置且各自的所述第一边彼此相对。
根据此构成,能够从第一边向第三可重构核以及第四可重构核提供构建数据。据此,可集中布置保持构建数据的存储电路,芯片设计变得容易。并且,能够使从存储电路到第三可重构核以及第四可重构核的布线距离变短。据此,能够以较短时间动态地重构可重构核的功能。由此,本发明在将多个可重构核安装在一个芯片上来构成大规模的可重构逻辑的半导体集成电路的情况下,能够提供具有使设计容易且面积较小的布局的半导体集成电路。
并且,也可以是,所述半导体集成电路还具有第一存储电路,该存储电路形成在所述第三可重构核和所述第四可重构核之间,并保持用于重构所述第三可重构核以及所述第四可重构核的逻辑的构建数据。
根据此构成,能够从第一边向第三可重构核以及第四可重构核提供第一存储电路所保持的构建数据。据此,可集中布置保持构建数据的存储电路,芯片设计变得容易。并且,能够使从第一存储电路到第三可重构核以及第四可重构核的布线距离变短。据此,能够以较短时间动态地重构可重构核的功能。
并且,也可以是,所述多个可重构核还包括第五可重构核以及第六可重构核,所述第五可重构核以及所述第六可重构核的形状是以第一边、第二边、第三边和第四边围成的矩形,所述第二边和所述第一边相对,所述第三边和所述第一边正交,所述第四边和所述第三边相对,所述第五可重构核和所述第六可重构核被分离布置且各自的所述第一边彼此相对,所述第三可重构核和所述第五可重构核被分离布置且各自的所述第三边彼此相对,所述第四可重构核和所述第六可重构核被分离布置且各自的所述第三边彼此相对。
根据此构成,在将四个可重构核安装在一个芯片上来构成大规模的可重构逻辑的半导体集成电路的情况下,用于各可重构核的相同的用途的信号的输入输出端子被布置成为在各可重构核之间相对。据此,能够使芯片设计易于进行。并且,能够缩短可重构核之间的布线距离。
并且,也可以是,所述半导体集成电路还具有第二存储电路,该存储电路形成在所述第五可重构核和所述第六可重构核之间,并保持用于重构所述第五可重构核以及所述第六可重构核的逻辑的构建数据。
根据此构成,能够从第一边向第五可重构核以及第六可重构核提供第二存储电路所保持的构建数据。据此,可集中布置保持构建数据的存储电路,使芯片设计变得容易。并且,能够使从第二存储电路到第五可重构核以及第六可重构核的布线距离变短。据此,能够以较短的时间动态地重构可重构核的功能。
并且,也可以是,所述半导体集成电路还具有时钟停止电路,该时钟停止电路分别地停止向所述第一寄存器电路群提供时钟。
根据此构成,在可重构核之间双向地传递数据的情况下,能够将各个可重构核作为独立的电路功能来进行映射。由此,即使在将大规模的电路功能映射到可重构逻辑的半导体集成电路的情况下,也能够以短时间完成映射。
并且,也可以是,所述第一寄存器电路群包括:第二寄存器电路群,暂时保持所述第一可重构核的输出,并输出到所述第二可重构核;以及第三寄存器电路群,暂时保持所述第二可重构核的输出,并输出到所述第一可重构核。
根据此构成,能够将所有的可重构核作为各自独立的电路映射电路功能。
并且,也可以是,所述第一寄存器电路群被布置在所述多个可重构核之间的区域中的、所有的相邻的可重构核之间的区域,暂时保持相邻的两个可重构核中的一个可重构核的输出,并输出到其他可重构核。
根据此构成,能够停止向不使用的第一寄存器电路群提供时钟。据此,本发明所涉及的半导体集成电路能够削减额外的电力消耗。
并且,也可以是,所述多个可重构核全部被输入相同的时钟。
根据此构成,能够使半导体集成电路的构成单纯化。
并且,也可以是,所述第一寄存器电路群保持多组由多位构成的数据。
根据此构成,本发明所涉及的半导体集成电路能够在可重构核之间传递多组数据。
并且,也可以是,所述逻辑单元各自具有查找表。
根据此构成,通过改写查找表的内容,能够任意地变更逻辑单元的输入相对的输出关系。
并且,也可以是,所述逻辑单元各自具有至少一个算术逻辑部件(ALU:Arithmetic Logic Unit)。
根据此构成,能够实现通过重复图像的编码化、图像的解码化以及密码处理等单纯的运算来构成的信号处理运算最适合的可重构核。
并且,也可以是,所述半导体集成电路还具有CPU(CentralProcessing Unit),所述多个可重构核、所述第一寄存器电路群、以及所述CPU被安装在一个半导体基板上。
根据此构成,在CPU所包含的SOC(system on a chip:单片式系统),即使不设置专用硬件也能够以一个可重构逻辑的半导体集成电路来进行多种处理。
并且,本发明所涉及的映射装置,将电路描述中所描述的电路功能映射到半导体集成电路,所述半导体集成电路具有:多个可重构核,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及第一寄存器电路群,形成在所述多个可重构核中的至少两个可重构核之间,暂时保持一个可重构核的输出,并输出到其他可重构核,所述映射装置,具有:分割单元,将所述电路功能分割为多个电路功能块;排除单元,从所述多个电路功能块排除位于所述多个电路功能块之间的寄存器;合成单元,逻辑合成所述的被排除后的各个电路功能块;以及布置布线单元,将被逻辑合成的所述各个电路功能块布置到所述可重构核的每一个并进行布线。
根据此构成,本发明所涉及的映射装置能够将电路描述所包含的第一寄存器电路群所对应的寄存器从映射对象中排除。并且,本发明所涉及的映射装置能够独立地映射各个可重构核。由此,本发明所涉及的映射装置即使在将大规模的电路功能映射到可重构逻辑的半导体集成电路的情况下,也能够以较短的时间完成映射。
并且,本发明所涉及的程序变换装置,变换描述了由多个模块构成的电路的电路功能的电路描述,具有:算出单元,根据所述电路描述,算出所述电路的输入信号和输出信号之间的限制;生成单元,生成多个模式,所述多个模式是指在所述多个模块之间插入或不插入寄存器的多个模式;模式抽出单元,从被生成的所述多个模式中抽出满足所述限制的模式;以及选择单元,从被抽出的所述模式中选择任一个模式,并作为变换后的电路描述进行输出。
根据此构成,本发明所涉及的程序变换装置能够在电路描述中加入与第一寄存器电路群对应的寄存器。也就是说,本发明所涉及的程序变换装置能够将设计者所描述的与以往相同的电路描述,变换为在模块之间插入寄存器的电路描述。
并且,也可以是,所述程序变换装置还具有反馈抽出单元,所述反馈抽出单元抽出所述多个模块中的具有反馈系统的多个模块,所述生成单元,将所述反馈抽出单元所抽出的多个模块作为一个模块,生成多个模式,所述多个模式是指在模块之间插入或不插入寄存器的多个模式。
根据此构成,本发明所涉及的程序变换装置在具有反馈系统的模块之间不加入寄存器。据此,能够减低程序变换装置的处理量。
并且,也可以是,本发明所涉及的映射方法,将电路描述中所描述的电路功能映射到半导体集成电路,所述半导体集成电路具有:多个可重构核,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及第一寄存器电路群,形成在所述多个可重构核中的至少两个可重构核之间,暂时保持一个可重构核的输出,并输出到其他可重构核,所述映射方法,包括:分割步骤,将所述电路功能分割为多个电路功能块;排除步骤,从所述多个电路功能块排除位于所述多个电路功能块之间的寄存器;合成步骤,逻辑合成所述的被排除后的各个电路功能块;以及布置布线步骤,将被逻辑合成的所述各个电路功能块布置到所述可重构核的每一个并进行布线。
根据此方法,能够将电路描述所包含的与第一寄存器电路相对应的寄存器从映射对象中排除。并且,能够独立地映射各个可重构核。由此,即使在将大规模的电路功能映射到可重构逻辑的半导体集成电路的情况下,也能够以短时间完成映射。
并且,本发明所涉及的程序变换装置的程序变换方法,变换描述了由多个模块构成的电路的电路功能的电路描述,包括:算出步骤,根据所述电路描述,算出所述电路的输入信号和输出信号之间的限制;生成步骤,生成多个模式,所述多个模式是指在所述多个模块之间插入或不插入寄存器的多个模式;模式抽出步骤,从所述被生成的多个模式中抽出满足所述限制的模式;以及选择步骤,从被抽出的所述模式中选择任一个模式,并作为变换后的电路描述进行输出。
根据此方法,能够在电路描述中加入与第一寄存器电路群相对应的寄存器。也就是说,本发明所涉及的程序变换方法,能够将设计者所描述的与以往相同的电路描述,变换为在模块之间插入寄存器的电路描述。
另外,本发明不仅能够作为这样的半导体集成电路、映射装置、这样的映射方法、程序变换装置、以及其程序变换方法来实现,而且能够作为映射方法以及使计算机执行程序变换方法所包含的特征性的步骤的程序来实现。而且,不言而喻,这样的程序能够通过CD-ROM等记录介质以及互联网等传送介质来流通。
本发明能够提供容易地映射大规模的电路功能的可重构逻辑的半导体集成电路。并且,本发明能够提供一种半导体集成电路的布局,在将多个可重构核安装在一个芯片上来构成大规模的可重构逻辑的半导体集成电路的情况下,使设计容易且面积较小。
附图说明
图1是表示以往的可重构逻辑的半导体集成电路的构成的图。
图2是表示将电路功能映射到以往的可重构逻辑的半导体集成电路的流程的图。
图3是表示本发明的实施例1所涉及的半导体集成电路的构成的图。
图4是表示本发明的实施例1所涉及的可重构逻辑的半导体集成电路的构成的图。
图5是表示本发明的实施例1所涉及的可重构核的构成的图。
图6是表示本发明的实施例1所涉及的逻辑单元周边的构成的图。
图7是表示本发明的实施例1所涉及的逻辑单元的详细的构成的图。
图8是本发明的实施例1所涉及的映射装置的构成的图。
图9是本发明的实施例1所涉及的电路功能的映射的流程的流程图。
图10是用于说明本发明的实施例1所涉及的电路功能的映射中的对各可重构核的分配情况的图。
图11是表示本发明的实施1所涉及的电路功能的映射中的对一个可重构核映射电路功能的流程的流程图。
图12是表示本发明的实施例1所涉及的半导体集成电路的变形例的构成的图。
图13是表示本发明的实施例2所涉及的半导体集成电路的构成的图。
图14是表示本发明的实施例3所涉及的程序变换装置的处理的流程的流程图。
图15是用于说明本发明的实施例3所涉及的程序变换装置的处理的图。
图16是用于说明本发明的实施例3所涉及的程序变换装置的处理的图。
图17是用于说明本发明的实施例3所涉及的程序变换装置的处理的图。
图18是用于说明本发明的实施例3所涉及的程序变换装置的处理的图。
符号说明
1  半导体装置
10 CPU
11 RAM(Random Access Memory:随机存取存储器)
12DMA(Direct Memory Access:直接存储器存取)
13硬件电路
100、150、200、500半导体集成电路(FPGA)
101、101A、101B、101C、101D可重构核
102寄存器电路
103、103A、103B、103C、103D存储器
104第一时钟停止电路
105第二时钟停止电路
201、501逻辑单元
202开关盒
203布线盒群
204E、204N、204S、204W IO部
210查找表
211多路复用器(multiplexer)
212触发器(FlipFlop)
221A、221B、221C、221D、221E、221F、301A、301B、301C、301D、301E模块
222A、222B、222C、222D、222E、302、302AB、302AD、302AF、302BD、302BF寄存器
301F虚拟模块
400映射装置
401键盘
402显示器
403CPU
404ROM(Read-only Memory:只读存储器)
405RAM
406程序
具体实施方式
以下,参照附图详细说明本发明所涉及的半导体集成电路的实施例。
(实施例1)
本发明的实施例1所涉及的半导体集成电路在多个可重构核之间分别具有两级寄存电路。据此,能够将各个可重构核作为独立的电路来映射电路功能。由此,即使在将大规模的电路功能映射到可重构逻辑的半导体集成电路的情况下,也能够容易地进行映射。
首先,说明本发明的实施例1所涉及的半导体集成电路的构成。
图3是表示本发明的实施例1所涉及的具有可重构的半导体集成电路的半导体装置的构成的图。
图3所示的半导体装置1具有:CPU10、RAM11、DMA12、硬件电路13、以及FPGA100。
CPU10控制整个半导体装置1。RAM11是可读写的存储部。DMA12在FPGA100和硬件电路13、与RAM11之间传送数据。硬件电路13是由实现规定的功能的专用硬件构成的电路。FPGA100是可重构的半导体集成电路,是本发明所涉及的半导体集成电路的一个例子。
例如,CPU10、RAM11、DMA12、硬件电路13以及FPGA100被安装在一个半导体基板上。也就是说,本发明的实施例1所涉及的半导体集成电路(FPGA)100,作为在所谓的SOC上的一个电路块来被构成。
图4是表示本发明的实施例1所涉及的可重构逻辑的半导体集成电路100的构成的图。图4所示的半导体集成电路100是可重构逻辑的半导体集成电路。半导体集成电路100具有四个可重构核101A、101B、101C、以及101D,多个寄存器电路102,和两个存储器103A以及103B。
各个可重构核101A、101B、101C、以及101D是可重构自身的逻辑的电路。另外,在不特别区分可重构核101A、101B、101C、以及101D的情况下,记述为可重构核101。可重构核101是按照从核心的外部输入的构建数据变更其内部的连接关系,据此能够重构逻辑的电路。另外,也可以预先在可重构核101的内部保存多套构建数据。
并且,各个可重构核101的形状为矩形,具有东(E)、西(W)、南(S)、北(N)四个边。可重构核101的东西方向和南北方向的内部布线结构不同,这四个边并不对称。并且,设定在本实施例用于重构可重构核101的逻辑的构建数据是从S方向输入。各个可重构核101在芯片的设计上作为硬宏(hard macro)处理,据此能够容易地在一个芯片上安装多个核。
并且,可重构核101与时钟同步工作。在本实施例各个可重构核101被输入各自不同的时钟CLKA、CLKB、CLKC以及CLKD。
图5是表示可重构核101(101A、101B、101C以及101D)的构成的图。可重构核101具有多个逻辑单元(LE)201、多个开关盒(SB)202、多个布线盒群(CB)203、IO部204N、204E、204S、204W和在行方向和列方向上延伸的布线群。
多个逻辑单元201呈阵列状布置,各自实现规定的逻辑。逻辑单元201是按照构建数据可以变更其功能(与输入相对的输出关系)的功能部件。开关盒202按照构建数据决定将某一布线与哪一个布线连接。布线盒群203按照构建数据决定将逻辑单元201的输入以及输出与哪一布线连接。
通过控制开关盒202以及布线盒群203的连接关系,能够可编程地决定将某一逻辑单元201的输出与哪一个逻辑单元201的输入连接。因此,在本实施例将该开关盒202、布线盒群203、以及布线群合起来单称为可编程的布线。并且,可重构核101内设有可编程的布线和其他的时钟布线。
IO部204N、204E、204S以及204W是分别布置于可重构核101的东西南北方向上的输入输出电路。
IO部204N布置在可重构核101的N方向。IO部204N具有应用数据总线用以及控制用的输入输出。
IO部204E布置在可重构核101的E方向。IO部204E具有应用数据总线用的输入输出。
IO部204S布置在可重构核101的S方向。IO部204S具有应用数据总线用以及控制用的输入输出。而且,IO部204S具有构建数据用的输入输出。
IO部204W布置在可重构核101的W方向。IO部204W具有控制用的输入输出。
在此,应用数据总线用的输入输出,用于在其他的可重构核101、CPU10、DMA12以及硬件电路13之间输入输出运算结果。控制用的输入输出,用于在CPU10、DMA12以及硬件电路13等外部硬件之间输入输出控制信号。构建数据用的输入输出,用于输入来自存储器103A以及103B的构建数据。
如此这般,通过采用只从S方向一个方向输入构建数据的结构,能够简化可重构核101的布线结构。并且,通过向可重构核101的各方向布置输入输出的布置不同的IO部,能够实现按照用途最适合的布局布置。
图6是用于更加详细地说明可重构核101的内部的图。图6是表示一个逻辑单元201、其周边布置的开关盒202、以及布线盒群203的构成的图。
在本实施例,逻辑单元201是四输入二输出的功能部件,其输入设置在西方,其输出设置在东方。布线盒群203可编程地决定将在该东西方向延伸的逻辑单元201的输入输出与在南北方向上延伸的哪一个布线连接。
开关盒202可编程地将在东西方向上延伸的布线与在南北方向上延伸的布线连接。并且,也可以是,逻辑单元201的输出一旦换接到南北方向上的布线之后,再通过布线盒群连接到东西方向上的布线。并且,以不同于可编程的布线的布线向逻辑单元201提供时钟。
图7是表示逻辑单元201的详细的构成的图。在本实施例,逻辑单元201具有查找表(LUT)210、多个可编程的多路复用器211、以及触发器212。查找表210能够以一个小规模的存储器构成。查找表210的输入相对的输出的关系,通过改写在存储器保持的内容来进行变更。按照来自构建数据或其他逻辑单元201的输出来决定多个可编程的多路复用器211各自要选择的信号。
如图5~图7所示,因为各个可重构核101由多个阵列状布置的逻辑单元201构成,所以在作为硬宏的可重构核101的内部有用于连接逻辑单元201的较密的可编程的布线。在可重构核101和外部之间的边界区域,有作为较稀的布线的、来自应用数据总线用、控制用、以及构建用的IO的布线。可重构核101之间除来自IO部的布线之外,还有用于连接半导体集成电路100和同一芯片上的其他电路块的布线。也就是说,各个可重构核101在芯片的布局上是分离的,其布线结构在内部和外部明显不同。
重新参照图4进行说明。存储器103A以及103B是用于暂时保存输入到可重构核101的构建数据的存储器。另外,在不特别区分存储器103A以及103B的情况下,记述为存储器103。存储器103A保存用于重构可重构核101A以及101C的逻辑的构建数据。存储器103B保存用于重构可重构核101B以及101D的逻辑的构建数据。并且,存储器103A布置在可重构核101A和可重构核101C之间。存储器103B布置在可重构核101B和可重构核101D之间。
作为本发明的另外一个特征是四个可重构核101中的可重构核101A和可重构核101C被布置为S方向相对。并且,可重构核101B和可重构核101D被布置为S方向相对。因为构建数据只从S方向被输入,所以通过这样的布局可集中布置存储器103,芯片设计变得容易。并且,能够使从存储器103到各个可重构核101的布线距离变短。据此,能够在较短时间内动态地重构可重构核的功能。另外,虽然同中未示出,但是存储器103和可重构核101以多位总线连接。
并且,可重构核101A和可重构核101B,被布置为E方向相对。可重构核101C和可重构核101D,被布置为E方向相对。如上所述,应用数据总线用IO被布置在可重构核101的E方向。在此,通常期望减少应用数据总线的布线延迟。而相对地对于控制用信号布线,布线延迟的影响则不太成问题。由此,通过使多个可重构核101被布置为E方向相对,能够缩短可重构核101之间的应用数据总线的布线距离。据此,能够减低应用数据总线的布线延迟的影响。
并且,作为本实施例的特征之一,对于可重构逻辑的半导体集成电路100,在上下方向或左右方向相邻的可重构核101之间分别设置两级寄存器电路102。
各个寄存器电路102由多个触发器构成,可保持多套由多位(例如16位)构成的数据。所有的相邻的可重构核101之间都分别形成两级的寄存器电路。各个两级的寄存器电路102暂时保持成为数据的输出方的可重构核101的输出,并输出到成为数据的输入目标方的可重构核101。两级的寄存器电路102中的前级的寄存器电路102与时钟同步地保持从成为数据的输出方的可重构核101输出的数据,并输出到后级的寄存器电路102。两级的寄存器电路102中的后级的寄存器电路102与时钟同步地保持从前级的寄存器电路102输出的数据,并输出到成为数据的输入目标方的可重构核101。
并且,相邻的可重构核101之间形成暂时保持相邻的两个可重构核101中的一个可重构核101的输出并输出到另一个可重构核101的两级的寄存器电路102,和暂时保持另一个可重构核101的输出并输出的该一个可重构核101的两级的寄存器电路102。
各个可重构核101通过两级的寄存器电路102处理数据。据此,能够作为独立的电路处理各个可重构核101。即使可重构逻辑的半导体集成电路100整体变成大规模的电路,各个可重构核101本身只会是独立的1/4大小的电路。因此,即使是在映射大规模的电路功能的情况下,也能够使各个可重构核101内的映射的组合有限。因此,能够高速地映射电路功能。另外,有关映射的详细情况将在后叙述。
在此,设置两级的寄存器电路102的理由之一是为了缓和对于因为布线距离导致的延迟的定时限制。例如,在只设置了一级的寄存器电路102的情况下,寄存器电路102有可能要以某一时钟边沿保存并保持从成为数据的输出方的可重构核101的最远位置的逻辑单元201输出的数据,而以下一个时钟边沿输出数据到成为数据的输入目标方的可重构核101的最远位置的逻辑单元201,时钟限制变得困难。而通过设置两级的寄存器电路102可缓和这种限制。例如,两级的寄存器电路102中,初级的寄存器电路102布置在成为数据的输出方的可重构核101侧的近旁,第二级的寄存器电路102布置在成为数据的输入目标方的可重构核101侧的近旁。
并且,输入到寄存器电路102的时钟,和输入到成为数据的接受方的可重构核101的时钟相同。例如,设置在从可重构核101A传送数据到可重构核101C的路径上的寄存器电路102,被提供与可重构核101C相同的时钟CLKC。据此,即使在各可重构核101非同步工作的情况下,至少在后级的寄存器电路102数据会确实地被保持。由此,半导体集成电路100能够防止在使各可重构核101非同步工作的情况下的亚稳(不满足安装限制或保持限制的状态)的发生。
其次,使用映射装置说明将电路功能映射到本发明的实施例1所涉及的可重构逻辑的半导体集成电路100的方法。通过映射作成在存储器103保持的构建数据。
图8是表示本发明的实施例1所涉及的映射装置的硬件构成的图。图8所示的映射装置400将电路描述所描述的电路功能映射到上述的半导体集成电路100。映射装置400例如是个人计算机。映射装置400具有键盘401、显示器402、CPU403、ROM404、和RAM405。
键盘401接受设计者所进行的操作。显示器402向设计者显示处理结果等。CPU403通过执行在ROM404保存的程序406,从而控制整个映射装置400。ROM404是保存由CPU403执行的程序406的、读取专用的存储器。另外,也可以是,程序406被保持在图中未示出的非易失性存储器或HD(Hard Disk:硬盘)等。RAM405是保持CPU403在执行程序406时所使用的工作数据等的可读写的存储器。
根据上述构成,通过映射装置400的CPU403执行程序406,将电路描述所描述的电路功能映射到半导体集成电路100。
另外,也可以是,由映射装置400进行的映射由专用的硬件来实现。
图9是表示将电路功能映射到半导体集成电路100的流程的流程图。
首先,设计者描述映射到可重构逻辑的半导体集成电路100的电路功能(S201)。该电路功能的描述使用HDL等硬件描述语言、或C语言等高级语言。在描述电路功能时,设计者将大规模的电路功能分为多个处理模块来进行描述,并在这些处理模块之间放入两周期的延迟。据此,各处理模块之间被插入两级的寄存器电路。
其次,映射装置400将由设计者描述的电路描述所描述的电路功能分割为多个电路功能块(S202)。具体而言,映射装置400在将电路描述所包含的处理模块进行汇集之后再重新分割为四个块。映射装置将重新分割的块分配到四个可重构核101。然后,映射装置400为了将位于四个块之间的两级的寄存器分配到寄存器电路102,将其从可重构核101的映射对象排除(S203)。
以下,利用图10说明由映射装置400进行步骤S202以及S203的处理的具体例子。
图10是用于说明在步骤S202的对各可重构核101进行分配,以及在步骤203的向寄存器电路102进行分配的处理的图。
利用图10说明在由设计者输入了分割为六个处理模块221A~221F的大规模电路的电路描述的情况下的、映射装置400的处理。该大规模的电路是:从模块221E输入数据,施行规定的运算处理之后,从模块221D输出运算处理的结果。由设计者描述电路描述,使在各个模块之间插入两级的寄存器(描述了两周期的延迟)。但是,在模块221A和模块221B之间,因为运算处理的算法限制所以未插入寄存器。
在步骤S202,映射装置400考虑各个处理模块的电路规模以及速度将电路描述分割为四个块。并且,映射装置400将被分割的块分配到各可重构核。例如,映射装置400将模块221A以及221B分配到可重构核101A,将模块221C以及221D分配到可重构核101B,将模块221E分配到可重构核101C,将模块221F分配到可重构核101D。
在步骤S203,映射装置400将模块221A和模块221E之间存在的寄存器222A分配到设置在可重构核101A和101C之间的寄存器电路102。映射装置400将模块221B和模块221D之间的寄存器222B分配到设置在可重构核101A和101B之间的寄存器电路102。映射装置400将模块221C和模块221F之间设置的寄存器222D分配到设置在可重构核101B和101D之间的寄存器电路102。映射装置400将模块221E和模块221F之间设置的寄存器222E分配到设置在可重构核101C和101D之间的寄存器电路102。映射装置400将分配到寄存器电路102的寄存器222A、222B、222D以及222F从映射对象排除。
而映射装置400将设置在分配到一个可重构核101B的模块221C和模块221D之间的一个寄存器222C留在映射到可重构核101的映射对象中。
然后,映射装置400对被分配到各个可重构核101的电路功能进行映射(S204)。图11是表示在步骤S204的、向一个可重构核101映射电路功能的映射的流程的流程图。
首先,映射装置400获得在步骤S202被重新分割并在步骤203寄存器已被排除的块的电路描述(S301)。
然后,映射装置400获得映射的限制条件(S302)。例如,限制条件是与速度以及面积等有关的条件。并且,例如,限制条件由设计者输入到映射装置400。
然后,映射装置400逻辑合成在步骤S301获得的电路描述(S303)。具体而言,映射装置400将电路描述所描述的电路功能分割为可向一个逻辑单元201分配的功能单位。映射装置400决定被分割的功能单位的连接关系。然后,映射装置400将被分割的功能单位布置到实际电路的逻辑单元201(S304)。据此,决定各个逻辑单元201的功能(与输入相对的输出关系)。
然后,映射装置400使用可编程的布线对各个逻辑单元201布线,以满足通过逻辑合成决定的连接关系(S305)。另外,对逻辑单元201的布置和利用可编程的布线进行的逻辑单元201的连接,可作为一个处理来进行,也可作为被分割的处理来进行。
然后,映射装置400判定布置以及布线的电路是否满足在步骤S302获得的限制条件(S306)。在满足限制条件的情况下(S306的“是”),结束块的合成、布置以及布线。并且,在不满足限制条件的情况下(S306的“否”),接下来,判定映射装置400是否重复了规定次数的步骤S304~S306的处理(S307)。未进行规定次数的重复处理的情况下(S307的“否”),映射装置400重新进行布置以及布线处(S304以及S305)。也就是说,映射装置400重复布置以及布线处(S304以及S305)直到满足限制条件。并且,在重复了规定次数的处理也不满足限制条件的情况下(S307的“是”),映射装置400认定为不能对块进行映射,并结束处理。
另外,在不满足限制条件的情况下(S306的“否”),也可以重新进行合成处理(S303)、布置及布线处(S304以及S305)。
并且,也可以是,映射装置400在重复了规定次数的处理仍不满足限制条件的情况下,显示不满足限制条件这一内容。据此,能够由设计者重新评价限制条件,映射装置400获得重新被输入的限制条件(S302),针对新的限制条件进行步骤S303~S306的处理。
在此,映射装置400因为是映射按每个可重构核101来分割的电路功能,所以比起像以往的将大规模的电路描述映射到一个大规模的可重构核的情况,能够在短时间内完成处理。
然后,映射装置400判定是否所有的四个可重构核101满足限制条件(S205)。在满足的情况下(S205的“是”),结束大规模电路的电路描述的映射。
在多个可重构核101中的任一个以上的可重构核101不满足限制条件的情况下(S205的“否”),映射装置400判定是否重复了规定的次数的步骤S202~S204的映射处理(S206)。在未重复规定的次数的处理的情况下(S206的“否”),映射装置400重新进行步骤S202之后的处理。在重复了规定次数的处理的情况下(S206的“是”),映射装置400判断为在步骤S201描述的电路功能不能映射到可重构逻辑的半导体集成电路100。
在此,执行步骤S202、S203、S205以及S206的处理的方法有映射装置400使用程序406所包含的专用的点工具(point tool)来执行的方法,和作为合成工具的一部分来执行的方法。并且,能够通过映射装置400执行程序406所包含的与以往相同的合成工具以及P&R工具来实现S204的处理。
如上述说明,通过使用本发明的实施例1的可重构逻辑的半导体集成电路100,如果对每个大规模电路功能的处理模块分别插入两级的寄存器,则映射装置400能够将各个可重构核101作为独立的电路来进行映射。因此,以较短的时间结束映射。
而且,因为可重构核101和寄存器电路102被设置在同一芯片内,并且以与被提供到可重构核101的时钟相同的时钟驱动寄存器电路102,所以半导体集成电路100能够以与一个大规模的可重构逻辑的半导体集成电路相同的速度来工作。
到此为止说明了用于实施本发明的最优的实施例,但是,不言而喻,本发明并不限定于上述的实施例。作为一个例子,可以施行如以下的变形。
可设置三级以上的寄存器电路102。此时,若各可重构核101的时钟不同步,则最好是,作为亚稳的对策,至少向后级的两级的寄存器电路102提供与成为数据的输入目标方的可重构核101相同的时钟。
并且,也可以是,一级的寄存器电路102。而如果是上述的一级的寄存器电路102的情况下,则定时限制变得困难。可是,可重构核101间的距离较短的情况下,以及可重构核101的电路规模较小的情况下等,即使是一级的寄存器电路102,也能遵守定时限制。是一级的寄存器电路102的情况下,最好是,寄存器电路102被布置在从与成为数据的输出方的可重构核101和成为数据的输入目标方的可重构核101等距离的位置。
并且,虽然在上述说明,设定为各个可重构核101被输入不同的时钟CLKA、CLKB、CLKC以及CLKD,但是为了使构成单纯化也可以使这些时钟全部相同。并且,也可以是,向多个可重构核101中的任两个以上提供相同的时钟。
并且,虽然在上述说明中,所有的相邻的可重构核101之间形成两级的寄存器电路102,但是,也可以是,在相邻的可重构核101之间形成一个以上的两级的寄存器电路102即可。并且,也可以是,仅设置保持从相邻的两个可重构核101中的一个可重构核101向另一个可重构核101发送的数据的寄存器电路102,而不设置保持从另一个可重构核101向该一个可重构核101发送的数据的寄存器电路102。
并且,也可以是,在不相邻的可重构核101之间形成两级的寄存器电路102。例如,可以是,可重构核101A和可重构核101D之间形成两级的寄存器电路102。也可以是,可重构核101B和可重构核101B之间形成两级的寄存器电路102。
并且,本发明的实施例1所涉及的半导体集成电路100作为所谓的SOC中的一个电路块来构成,但是也可以是,仅以半导体集成电路100作为一个芯片的LSI(Large Scale Integration:大规模集成电路)来构成。
并且,作为逻辑单元201可以不使用LUT而是使用一个或多个ALU。图像的编码化、图像的解码化以及密码处理等信号处理运算,多通过重复单纯的运算来构成。因此,能够通过将一个或多个ALU用作逻辑单元201,来实现最适合信号处理运算的可重构核101。尤其是将本发明所涉及的可重构逻辑的半导体集成电路100作为SOC中的一个电路块来构成的情况下,控制系统的处理能够交给CPU10进行,因此最好是,使用将ALU作为逻辑单元201来使用的可重构核101。以往的SOC,在需要实现各种信号处理的情况下,按每个信号处理分别设计专用硬件。而通过将一个或多个ALU用作逻辑单元201,并且使SOC包括CPU10,从而不必设置专用硬件就能够以一个可重构逻辑的半导体集成电路100来进行所有的处理。
并且,根据应当以可重构逻辑的半导体集成电路100实现的电路功能不同,不必使用所有的可重构核101来实现一个电路功能,也可以以一部分的可重构核101来映射一个电路功能。并且,可以对余下的可重构核映射其他的电路功能。
并且,在上述说明中,虽然设定为可重构核101A、101B、101C、以及101D的构成相同,但是其构成可以不同。例如,可以是,各可重构核101包括的逻辑单元201的数量不同。
并且,本发明的各个可重构核101可以是能够在接通电源的状态下动态地重构逻辑的可动态重构可重构核101,也可以是为了重构逻辑需要断开一次电源的所谓FPGA,可以是两者中的任一个。
并且,可重构核101所具有的四个IO部的构成并不限定于图5所示的构成。只要是从S方向输入构建数据的构成,IO部的构成可以是任意的。
并且,在上述说明中,设定由映射装置400来进行图9所示的步骤S201~S206的处理,但是也可以是,处理的一部分由设计者来进行并输入到映射装置400。
并且,在上述说明中,说明了可重构核101是四个的例子,但是只要半导体集成电路100具有多个可重构核101即可。例如,半导体集成电路100也可以具有两个、三个、或五个以上的可重构核101。
并且,也可以是,按如图4所示,不是对在S方向相对的一组可重构核101设置一个存储器103,而是对每个可重构核101设置一个存储器103。图12是实施例1所涉及的半导体集成电路100的变形例,是表示每个可重构核101具有一个存储器103的半导体集成电路150的构成的图。如图12所示,半导体集成电路150具有四个存储器103A、103B、103C以及103D。存储器103A保存被输入到可重构核101A的构建数据。存储器103B保存被输入到可重构核101B的构建数据。存储器103C保存被输入到可重构核101C的构建数据。存储器103D保存被输入到可重构核101D的构建数据。据此构成,可以并列地构建所有的可重构核101,所以能够以短时间结束构建。
(实施例2)
本发明的实施例2所涉及的半导体集成电路具有停止向寄存器电路102以及可重构核101提供时钟的功能。据此,能够削减额外的电力消耗。
图13是表示本发明的实施例2所涉及的半导体集成电路的构成的图。
图13所示的半导体集成电路200,在图5所示的实施例1所涉及的半导体集成电路100的构成的基础上,还具有多个第一时钟停止电路104、和多个第二时钟停止电路105。另外,对于和图5相同的要素附加同一符号,并省略其说明。
第一时钟停止电路104分别与多个可重构核101的每一个对应而形成。第一时钟停止电路104控制是否向所对应的可重构核101提供时钟。第一时钟停止电路104在所对应的可重构核101未被使用的情况下,停止向该可重构核101提供时钟。并且,第一时钟停止电路104在所对应的可重构核101未被使用的情况下,停止向该可重构核101输入信号所使用的寄存器电路102提供时钟。例如,第一时钟停止电路104在所对应的可重构核101中未构成电路的情况下,停止提供时钟。
第二时钟停止电路105分别与各个两级的寄存器电路102对应而形成。第二时钟停止电路105控制向所对应的寄存器电路102提供时钟。第二时钟停止电路105在不进行使用所对应的寄存器电路102的信号传达的情况下,停止向该寄存器电路102提供时钟。例如,即使在可重构核101A和101B工作的情况下,也有可能两者之间无信号传达。在这样的情况下,不需要向可重构核101A和101B之间的寄存器电路102提供时钟。并且,也有可能出现可重构核101A向可重构核101B的方向有信号被传递,而反方向上无信号被传递的情况。此时,只需停止向插入在从可重构核101B向可重构核101A传达信号的路径上的寄存器102提供时钟即可。
如上所述,本发明的实施例2所涉及的半导体集成电路200停止向不被使用的可重构核101提供时钟。据此,可削减额外的电力消耗。并且,半导体集成电路200停止向不被使用的寄存器电路102提供时钟。据此,可削减额外的电力消耗。
另外,在图13,半导体集成电路200具有分别与所有的各个可重构核101相对应的第一时钟停止电路104,但是也可以是,半导体集成电路200具有与可重构核101中的任一个以上相对应的一个以上的第一时钟停止电路104。此时,在映射电路功能时,优先向对应的未被设置第一时钟停止电路104的可重构核101进行映射即可。
并且,在图13,半导体集成电路200具有与所有的寄存器电路102分别相对应的第二时钟停止电路105,但是也可以是,半导体集成电路200具有与寄存器电路102中的任一个以上相对应的一个以上的第二时钟停止电路105。
(实施例3)
在上述实施例1的映射中,在图10所示的步骤S201的电路描述中插入两级的寄存器电路的处理,设定由设计者来进行。在实施例3说明进行在电路描述中插入两级的寄存器电路的处理的程序变换装置。
本发明的实施例3所涉及的程序变换装置的功能,通过例如由个人计算机等执行程序来实现。例如,实施例3所涉及的程序变换装置的构成与图8所示的构成相同。也就是说,程序变换装置的功能,通过CPU403执行程序406来实现。另外,本发明的实施例3所涉及的程序变换装置的功能,也可以通过专用的硬件来实现。
本发明的实施例3所涉及的程序变换装置,将与以往的相同的电路描述变换为能够以上述实施例1所涉及的映射装置400来进行映射的状态。本发明的实施例3所涉及的程序变换装置,将两级的寄存器电路,选择性地插入到描述了由多个处理模块构成的一个大规模的电路的电路功能被描述的电路功能的、各处理模块间。
以下,利用图14~图18,说明程序变换装置将寄存器电路插入到设计者描述了301A、301B、301C、301D以及301E这五个模块的电路功能的电路描述中的工作。
图14是表示本发明的实施例3所涉及的程序变换装置的处理的流程的流程图。图15~图18是用于说明程序变换装置的处理的图。
首先,程序变换装置获得由设计者描述的、要映射到可重构逻辑的半导体集成电路的电路描述(S401)。程序变换装置所要获得的电路描述是由设计者将电路功能作为多个处理模块来描述的的电路描述。在电路描述中使用了HDL等硬件描述语言,或C语言等高级语言。例如,程序变换装置获得图15所示的电路描述。
然后,程序变换装置基于在步骤S401获得的电路描述,算出以由多个处理模块构成的电路功能作为一个电路时的输入信号和输出信号应满足的关系(限制)(S402)。具体而言,程序变换装置根据处理电路描述所包含的各处理模块所需要的周期数,算出所有的电路的、从输入信号被输入到得到有效的输出信号为止的周期数。例如,程序变换装置,作为限制,算出从图15所示的输入信号IN0被输入到得到输出信号OUT0为止的周期数为5周期以内。并且,程序变换装置,作为限制,算出从输入信号IN0被输入到得到输出信号OUT1为止的周期数为3周期以内。
然后,程序变换装置设定虚拟模块(S403)。具体而言,程序变换装置抽出多个模块中的具有反馈系统的多个模块,并将其设定为一个虚拟模块。例如,如图16所示,因为模块301E的输出反馈到模块301C,所以程序变换装置将模块301C和模块301E设定为一个虚拟模块301F。并且,程序变换装置将不具有反馈系统的模块301A、301B以及301D分别设定为一个模块。也就是说,程序变换装置将模块301A、301B、301D以及虚拟模块301F各自作为一个模块来进行之后的处理。
然后,程序变换装置生成在各个模块301A、301B、301D以及虚拟模块301F之间插入或不插入寄存器的模式(S404)。例如,程序变换装置所生成的多个模式中的寄存器数为最大的模式,如图17所示,是在各个模块301A、301B、301D以及虚拟模块301F之间分别插入寄存器302AB、302AD、302AF、302BD以及302BF的模式。并且,程序变换装置生成插入寄存器302AB、302AD、302AF、302BD以及302BF中的任一个以上的模式,以及一个都不插入的模式。另外,在不特别区分寄存器302AB、302AD、302AF、302BD以及302BF的情况下,记述为寄存器302。
例如,若设定存在信号的传递的模块之间的数量为N,则程序变换装置生成2N个模式。在图17所示的例子中,有信号的传递的模块之间的区域为5处。因此,程序变换装置生成25=32个模式。在此,被插入的各个寄存器302是两级的寄存器。
然后,程序变换装置抽出在步骤S404生成的多个模式中的、满足在步骤S402算出的限制的模式(S405)。程序变换装置针对在步骤S404生成的多个模式分别判定各个模式是否满足在步骤S402算出的限制。例如,在插入寄存器302BD或/以及302BF则不满足限制的情况下,程序变换装置抽出图18所示的插入了寄存器302AB、302AD以及302AF的模式作为满足限制的模式。并且,程序变换装置抽出插入了寄存器302AB、302AD以及302AF中的任一个以上的模式,以及一个都不插入的模式作为满足限制的模式。
然后,程序变换装置选择在步骤S405抽出的模式中的任一个(S406)。例如,程序变换装置选择被抽出的模式中的插入的寄存器数最多的模式。即,在图18所示的例子中,程序变换装置选择插入了寄存器302AB、302AD以及302AF的模式。针对被选择的模式,由上述映射装置400执行图9所示的步骤S202以后的处理。
并且,在之后的处理中不满足限制条件的情况下,或判断为不能进行映射的情况下,程序变换装置选择在步骤S405抽出的模式中的、和在步骤S406选择的模式不同的模式。映射装置400针对新选择的模式执行步骤S202之后的处理。
通过上述工作,本发明的实施例3所涉及的程序变换装置能够在电路描述中加入与寄存器电路102对应的寄存器。也就是说,本发明的实施例3所涉及的程序变换装置能够将设计者所描述的与以往相同的电路描述变换为在模块之间插入了两级的寄存器的电路描述。
并且,本发明的实施例3所涉及的程序变换装置能够从插入了寄存器的多个模式中只抽出满足限制的模式。
并且,本发明的实施例3所涉及的程序变换装置不在具有反馈系统的模块之间加入寄存器。在具有反馈系统的模块之间加入了寄存器的情况下,判断是否满足在步骤S405的限制就变得复杂,使程序变换装置的处理量增加。实施例3所涉及的程序变换装置不在具有反馈系统的模块之间加入寄存器,因此能够减低处理量。
另外,在上述说明中,设定程序变换装置在步骤S401获得了将电路功能作为多个处理模块描述的电路描述,但是也可以是,程序变换装置获得一个大规模的电路描述,并将所获得的电路描述分割为多个处理模块。
并且,在上述说明中,设定在步骤S402程序变换装置根据电路描述算出限制,但是也可以是,程序变换装置使用由设计者输入的限制。
并且,可以是,作为在实施例1已说明的映射装置400的一个功能来实现上述程序变换装置。
因为通过本发明可以将大规模的电路功能映射到可重构逻辑的半导体集成电路,所以本发明可以利用于各种各样的电子设备。

Claims (21)

1、一种半导体集成电路,其特征在于,
所述半导体集成电路具有:
多个可重构核,与时钟同步工作,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及
第一寄存器电路群,形成在所述多个可重构核包括的第一可重构核和第二可重构核之间,暂时保持所述第一可重构核的输出,并输出到所述第二可重构核,
所述多个可重构核各自具有:
多个逻辑单元,被布置成阵列状,并各自实现规定的逻辑;以及
布线,在所述多个逻辑单元之间进行连接,且所述布线是可编程的布线。
2、如权利要求1所述的半导体集成电路,其特征在于,
所述第一寄存器电路群包括:
第一寄存器电路,暂时保持所述第一可重构核的输出;以及
第二寄存器电路,保持从所述第一寄存器电路输出的数据,并输出到所述第二可重构核。
3、如权利要求2所述的半导体集成电路,其特征在于,
被输入到所述第一寄存器电路以及所述第二寄存器电路的时钟,和被输入到成为所述第二寄存器电路所保持的数据的接受方的可重构核的时钟相同。
4、如权利要求3所述的半导体集成电路,其特征在于,
被输入到向所述第一寄存器电路群输出数据的可重构核的时钟,和被输入到从所述第一寄存器电路群输入数据的可重构核的时钟不同。
5、如权利要求1所述的半导体集成电路,其特征在于,
所述多个可重构核包括第三可重构核以及第四可重构核,所述第三可重构核以及所述第四可重构核的形状是以第一边、第二边、第三边和第四边围成的矩形,所述第一边被输入用于重构所述可重构核的逻辑的构建数据,所述第二边和所述第一边相对,所述第三边和所述第一边正交,所述第四边和所述第三边相对,
所述第三可重构核以及所述第四可重构核被分离布置且各自的所述第一边彼此相对。
6、如权利要求5所述的半导体集成电路,其特征在于,
所述半导体集成电路还具有第一存储电路,该存储电路形成在所述第三可重构核和所述第四可重构核之间,并保持用于重构所述第三可重构核以及所述第四可重构核的逻辑的构建数据。
7、如权利要求6所述的半导体集成电路,其特征在于,
所述多个可重构核还包括第五可重构核以及第六可重构核,所述第五可重构核以及所述第六可重构核的形状是以第一边、第二边、第三边和第四边围成的矩形,所述第二边和所述第一边相对,所述第三边和所述第一边正交,所述第四边和所述第三边相对,
所述第五可重构核和所述第六可重构核被分离布置且各自的所述第一边彼此相对,
所述第三可重构核和所述第五可重构核被分离布置且各自的所述第三边彼此相对,
所述第四可重构核和所述第六可重构核被分离布置且各自的所述第三边彼此相对。
8、如权利要求7所述的半导体集成电路,其特征在于,
所述半导体集成电路还具有第二存储电路,该存储电路形成在所述第五可重构核和所述第六可重构核之间,并保持用于重构所述第五可重构核以及所述第六可重构核的逻辑的构建数据。
9、如权利要求1所述的半导体集成电路,其特征在于,
所述半导体集成电路还具有时钟停止电路,该时钟停止电路分别地停止向所述第一寄存器电路群提供时钟。
10、如权利要求1所述的半导体集成电路,其特征在于,
所述第一寄存器电路群包括:
第二寄存器电路群,暂时保持所述第一可重构核的输出,并输出到所述第二可重构核;以及
第三寄存器电路群,暂时保持所述第二可重构核的输出,并输出到所述第一可重构核。
11、如权利要求1所述的半导体集成电路,其特征在于,
所述第一寄存器电路群被布置在所述多个可重构核之间的区域中的、所有的相邻的可重构核之间的区域,暂时保持相邻的两个可重构核中的一个可重构核的输出,并输出到其他可重构核。
12、如权利要求1所述的半导体集成电路,其特征在于,
所述多个可重构核全部被输入相同的时钟。
13、如权利要求1所述的半导体集成电路,其特征在于,
所述第一寄存器电路群保持多组由多位构成的数据。
14、如权利要求1所述的半导体集成电路,其特征在于,
所述逻辑单元各自具有查找表。
15、如权利要求1所述的半导体集成电路,其特征在于,
所述逻辑单元各自具有至少一个算术逻辑部件。
16、如权利要求1所述的半导体集成电路,其特征在于,
所述半导体集成电路还具有CPU,
所述多个可重构核、所述第一寄存器电路群、以及所述CPU被安装在一个半导体基板上。
17、一种映射装置,将电路描述中所描述的电路功能映射到半导体集成电路,
所述半导体集成电路具有:
多个可重构核,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及
第一寄存器电路群,形成在所述多个可重构核中的至少两个可重构核之间,暂时保持一个可重构核的输出,并输出到其他可重构核,
所述映射装置,其特征在于,具有:
分割单元,将所述电路功能分割为多个电路功能块;
排除单元,从所述多个电路功能块排除位于所述多个电路功能块之间的寄存器;
合成单元,逻辑合成所述的被排除后的各个电路功能块;以及
布置布线单元,将被逻辑合成的所述各个电路功能块布置到所述可重构核的每一个并进行布线。
18、一种程序变换装置,变换描述了由多个模块构成的电路的电路功能的电路描述,其特征在于,具有:
算出单元,根据所述电路描述,算出所述电路的输入信号和输出信号之间的限制;
生成单元,生成多个模式,所述多个模式是指在所述多个模块之间插入或不插入寄存器的多个模式;
模式抽出单元,从被生成的所述多个模式中抽出满足所述限制的模式;以及
选择单元,从被抽出的所述模式中选择任一个模式,并作为变换后的电路描述进行输出。
19、如权利要求18所述的程序变换装置,其特征在于,
所述程序变换装置还具有反馈抽出单元,所述反馈抽出单元抽出所述多个模块中的具有反馈系统的多个模块,
所述生成单元,将所述反馈抽出单元所抽出的多个模块作为一个模块,生成多个模式,所述多个模式是指在模块之间插入或不插入寄存器的多个模式。
20、一种映射方法,将电路描述中所描述的电路功能映射到半导体集成电路,
所述半导体集成电路具有:
多个可重构核,可重构自身的逻辑,且所述多个可重构核被各自分离布置;以及
第一寄存器电路群,形成在所述多个可重构核中的至少两个可重构核之间,暂时保持一个可重构核的输出,并输出到其他可重构核,
所述映射方法,其特征在于,包括:
分割步骤,将所述电路功能分割为多个电路功能块;
排除步骤,从所述多个电路功能块排除位于所述多个电路功能块之间的寄存器;
合成步骤,逻辑合成所述的被排除后的各个电路功能块;以及
布置布线步骤,将被逻辑合成的所述各个电路功能块布置到所述可重构核的每一个并进行布线。
21、一种程序变换装置的程序变换方法,变换描述了由多个模块构成的电路的电路功能的电路描述,其特征在于,包括:
算出步骤,根据所述电路描述,算出所述电路的输入信号和输出信号之间的限制;
生成步骤,生成多个模式,所述多个模式是指在所述多个模块之间插入或不插入寄存器的多个模式;
模式抽出步骤,从所述被生成的多个模式中抽出满足所述限制的模式;以及
选择步骤,从被抽出的所述模式中选择任一个模式,并作为变换后的电路描述进行输出。
CNA2007800282720A 2006-07-27 2007-07-19 半导体集成电路、程序变换装置以及映射装置 Pending CN101496283A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006204383 2006-07-27
JP204383/2006 2006-07-27

Publications (1)

Publication Number Publication Date
CN101496283A true CN101496283A (zh) 2009-07-29

Family

ID=38981410

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800282720A Pending CN101496283A (zh) 2006-07-27 2007-07-19 半导体集成电路、程序变换装置以及映射装置

Country Status (6)

Country Link
US (2) US7906987B2 (zh)
EP (1) EP2048784A4 (zh)
JP (1) JP4971998B2 (zh)
KR (1) KR20090035538A (zh)
CN (1) CN101496283A (zh)
WO (1) WO2008013098A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402415A (zh) * 2011-10-21 2012-04-04 清华大学 一种动态可重构阵列内数据缓存的装置及方法
CN106371347A (zh) * 2015-07-22 2017-02-01 新唐科技股份有限公司 功能可编程电路及其操作方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057575A (zh) * 2008-06-05 2011-05-11 松下电器产业株式会社 信号处理装置、信号处理方法、信号处理用集成电路及电视接收机
JP5407631B2 (ja) * 2009-07-21 2014-02-05 富士ゼロックス株式会社 回路情報生成装置、機能実行システム、及びプログラム
JP5589479B2 (ja) * 2010-03-25 2014-09-17 富士ゼロックス株式会社 データ処理装置
US8286113B1 (en) * 2011-01-11 2012-10-09 Xilinx, Inc. Verification of logic core implementation
KR102059218B1 (ko) * 2012-05-25 2019-12-24 가부시키가이샤 한도오따이 에네루기 켄큐쇼 프로그래머블 로직 디바이스 및 반도체 장치
JP2016513363A (ja) * 2013-02-08 2016-05-12 ザ トラスティーズ オブ プリンストン ユニヴァーシティ ファイングレイン構造の動的に再構成可能なfpgaアーキテクチャ
US8860457B2 (en) 2013-03-05 2014-10-14 Qualcomm Incorporated Parallel configuration of a reconfigurable instruction cell array
JP6747765B2 (ja) * 2014-06-23 2020-08-26 東芝情報システム株式会社 半導体装置
US10432196B2 (en) * 2015-07-22 2019-10-01 Nuvoton Technology Corporation Communication device, communication system and operation method thereof
TWI647551B (zh) * 2017-05-26 2019-01-11 新唐科技股份有限公司 通訊裝置、通訊系統及其操作方法
US10747690B2 (en) * 2018-04-03 2020-08-18 Xilinx, Inc. Device with data processing engine array
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device
CN110895649B (zh) * 2018-08-23 2023-05-23 珠海零边界集成电路有限公司 一种集成电路后端布线管理系统、布线管理方法和芯片

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5594363A (en) 1995-04-07 1997-01-14 Zycad Corporation Logic cell and routing architecture in a field programmable gate array
US5671432A (en) * 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5692147A (en) * 1995-06-07 1997-11-25 International Business Machines Corporation Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof
US5732246A (en) 1995-06-07 1998-03-24 International Business Machines Corporation Programmable array interconnect latch
US5867507A (en) * 1995-12-12 1999-02-02 International Business Machines Corporation Testable programmable gate array and associated LSSD/deterministic test methodology
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5897507A (en) * 1996-11-25 1999-04-27 Symbiosis Corporation Biopsy forceps instrument having irrigation and aspiration capabilities
US6148233A (en) * 1997-03-07 2000-11-14 Cardiac Science, Inc. Defibrillation system having segmented electrodes
US6150840A (en) 1997-04-09 2000-11-21 Altera Corporation Programmable reticle stitching
US6096091A (en) 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
US6150838A (en) * 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US6469540B2 (en) * 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
US6970013B1 (en) * 2002-03-01 2005-11-29 Xilinx, Inc Variable data width converter
DE60231191D1 (de) * 2002-04-03 2009-04-02 Sicronic Remote Kg Llc Feldprogrammierbare Vorrichtung
JP2003329743A (ja) 2002-05-14 2003-11-19 Renesas Technology Corp 半導体集積回路のテスト方法およびテスト装置
WO2005062212A1 (en) 2003-12-18 2005-07-07 Koninklijke Philips Electronics N.V. Template-based domain-specific reconfigurable logic
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
JP2006237388A (ja) 2005-02-25 2006-09-07 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の制御方法及び信号伝送回路
US7268581B1 (en) * 2005-04-21 2007-09-11 Xilinx, Inc. FPGA with time-multiplexed interconnect
JP4328334B2 (ja) 2006-03-13 2009-09-09 パナソニック株式会社 半導体集積回路装置
JP2007333538A (ja) 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd テスト回路、セレクタおよび半導体集積回路
JP2008059335A (ja) * 2006-08-31 2008-03-13 Fuji Xerox Co Ltd 情報処理装置、通信システムおよび情報処理装置プログラム
JP2008091406A (ja) 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法
JP2008192841A (ja) 2007-02-05 2008-08-21 Matsushita Electric Ind Co Ltd 半導体集積回路
US7616025B1 (en) * 2007-08-14 2009-11-10 Actel Corporation Programmable logic device adapted to enter a low-power mode

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402415A (zh) * 2011-10-21 2012-04-04 清华大学 一种动态可重构阵列内数据缓存的装置及方法
CN106371347A (zh) * 2015-07-22 2017-02-01 新唐科技股份有限公司 功能可编程电路及其操作方法

Also Published As

Publication number Publication date
WO2008013098A1 (fr) 2008-01-31
US20090237113A1 (en) 2009-09-24
JP4971998B2 (ja) 2012-07-11
JPWO2008013098A1 (ja) 2009-12-17
KR20090035538A (ko) 2009-04-09
EP2048784A4 (en) 2010-10-27
EP2048784A1 (en) 2009-04-15
US7906987B2 (en) 2011-03-15
US20110126164A1 (en) 2011-05-26

Similar Documents

Publication Publication Date Title
CN101496283A (zh) 半导体集成电路、程序变换装置以及映射装置
Healy et al. Design and analysis of 3D-MAPS: A many-core 3D processor with stacked memory
US7779380B2 (en) Data processing apparatus including reconfigurable logic circuit
EP2871589B1 (en) Method and system for generating a circuit description for a multi-die field-programmable gate array
CN101189797B (zh) 可重构的装置
US20060080632A1 (en) Integrated circuit layout having rectilinear structure of objects
CN101517576A (zh) 基于软件程序在处理系统上的运行而设计asic
JP2006156929A (ja) 半導体集積回路及びその設計方法
TWI299941B (zh)
Pentapati et al. A logic-on-memory processor-system design with monolithic 3-D technology
US6941540B2 (en) Design method for gate array integrated circuit
EP2569723A2 (en) Method and apparatus for performing asynchronous and synchronous reset removal during synthesis
Baskaya et al. Placement for large-scale floating-gate field-programable analog arrays
US6317863B1 (en) Method and apparatus for irregular datapath placement in a datapath placement tool
CN102855147A (zh) 用于局部重配置模拟的方法和系统
KR20070097051A (ko) 동적으로 재구성 가능한 프로세서
Dutt et al. Design synthesis and silicon compilation
Knechtel et al. Structural planning of 3D-IC interconnects by block alignment
Boutros et al. A Whole New World: How to Architect Beyond-FPGA Reconfigurable Acceleration Devices?
Khodwe et al. VHDL Implementation Of Reconfigurable Crossbar Switch For Binoc Router
Dutta et al. A design study of a 0.25-/spl mu/m video signal processor
Koch et al. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems
JPH11213024A (ja) 回路合成方法、回路合成装置および記録媒体
US6588003B1 (en) Method of control cell placement for datapath macros in integrated circuit designs
JP4248925B2 (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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20090729

C20 Patent right or utility model deemed to be abandoned or is abandoned