CN1647082B - 集成电路开发方法 - Google Patents

集成电路开发方法 Download PDF

Info

Publication number
CN1647082B
CN1647082B CN038085666A CN03808566A CN1647082B CN 1647082 B CN1647082 B CN 1647082B CN 038085666 A CN038085666 A CN 038085666A CN 03808566 A CN03808566 A CN 03808566A CN 1647082 B CN1647082 B CN 1647082B
Authority
CN
China
Prior art keywords
logic
asic
port
logicor
data
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.)
Expired - Fee Related
Application number
CN038085666A
Other languages
English (en)
Other versions
CN1647082A (zh
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1647082A publication Critical patent/CN1647082A/zh
Application granted granted Critical
Publication of CN1647082B publication Critical patent/CN1647082B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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

Abstract

一种集成电路的开发方法,其仅利用作为电路结构研究结果,作为逻辑设计文件的一部分的块端口规格的连接信息,生成一种所谓逻辑磁芯的网表,构成该逻辑磁芯的网用于连结不依存于器件技术的块的端口和端口之间,从逻辑磁芯中选择对象块,进行组合,使用组合后的逻辑磁芯的数据。ASIC和FPGA的同时开发系统,其构成部分如下:对于从互联网来的访问进行监视的防火墙、与由用户使用的网客户机进行通信的网服务器、进行用户认证的认证服务器,管理用户的用户管理服务器、执行ASIC和FPGA的开发用程序的逻辑合成服务器、把邮件分配给项目的有关人员的邮件服务器、存放设计信息的文件服务器、执行ASIC的工具设计用程序的应用服务器、以及对ASIC和FPGA的开发状况进行监视的监视服务器。

Description

集成电路开发方法
技术领域
本发明涉及集成电路的开发方法和存储了集成电路的开发方法的程序存储媒体、以及ASIC可编程逻辑器件同时开发系统、开发程序和开发方法。
本发明涉及集成电路的开发方法、存储了集成电路的开发方法的程序存储媒体和逻辑合成工具的控制装置、以及用户从连网计算机方面利用的ASIC和可编程逻辑器件的同时开发系统、开发程序和开发方法。
更详细地说,涉及集成电路开发的可编程逻辑器件构成方法,涉及这样的集成电路的开发方法、以及能够无缝隙地同时开发ASIC和可编程逻辑器件,能够使确保设计质量和缩短开发时间两者兼顾,同时能够减少开发中消耗的资源和成本的ASIC和可编程逻辑器件的同时开发系统,开发程序和开发方法,也就是说,仅利用作为电路结构研究结果作为逻辑设计文件的一部分的块的端口规格的连接信息,生成一种不依赖器件技术的、块的端口和端口之间进行连结的网络所构成的被称为逻辑磁芯的网表,从逻辑磁芯中选择对象块,进行组合,使用组合的逻辑磁芯数据来进行集成电路的开发。
背景技术
按照集成电路的程序,首先在决定规格时,要慎重地无遗漏地仔细研究,然后根据该规格来进行设计。图11是表示集成电路设计程序的流程图。首先,根据产品规格,取得ASIC(特定用途的所谓专用IC)的设计书(g1)。然后研究电路结构(g2)。再者,根据电路结构研究结果来进行电路设计(g3)。该电路设计是边进行逻辑验证(g4)边进行设计。
然后,在电路设计结束后进行电路的逻辑合成(g5)。逻辑合成结束后,根据逻辑合成结果来进行规划布局(g6)。在该阶段完成电路设计。电路设计完成后,制造该电路(g7),利用制成电路来进行实机评价(g8)。在以上的过程内,涉及本发明的部分是涉及g5步的逻辑合成的部分。
在集成电路开发中,把规格作为输入而加以实现的功能的研究、为实现功能而进行的电路结构的研究,按以下流程来实施。通常,集成电路的开发是,根据产品规格,对实现产品的功能进行仔细地筛选,对实现已选出功能的电路结构进行研究,对IP(知识产权)等进行宏观研究。在此,所谓宏观是指对也包括IP在内的RAM、ROM等不更改也能使用的。
对研究结构的电路和IP的实现规模进行初步估计,这时,若预先已知,则按门数计算,在不知道门数的情况下,根据必要的信号数和处理所需的时间来计算触发电路数,对实现规模进行估计。这里,根据估计的规模和各功能的输出入信号(以下称为端口)个数,把多个功能分成为一组,作为一个块。该分组对全部功能来进行。
在逻辑设计中,根据上述功能和估计规模,利用HDL(硬件描述语言)等手段以可编程逻辑器件为对象进行电路设计,进行在板上的功能评价。评价结束后,进行ASIC化时,进行再设计和再验证。
功能评价结束后,利用ASIC化来降低成本的情况下,不是从以可编程逻辑器件(例如FPGA)为对象进行设计时起,就进行考虑到ASIC的设计,而是由于输入输出缓冲区、器件用试验电路、存储器等宏观等可编程逻辑器件和ASIC之间的不同,所以,以ASIC为对象根据可编程逻辑器件的设计数据产生再设计,由于再设计而出现的设计数据的双重管理、再设计和功能再验证而使开发期限延长和开发费用增加,使问题表面化。
在此,ASIC具有的特征是开发周期长,但成本低,另一方面,可编程逻辑器件(FPGA)具有的特征是开发周期短,但成本高。
本发明是针对这些问题而提出的方案,其目的在于:在大规模ASIC的开发中的逻辑设计、逻辑合成、规划布局的同时(并行)开发中所适用的电路结构研究中,提供:
集成电路的开发方法,其应用的方法(如特开2000-90142号所述)是,根据对芯片进行功能分割的块的端口信息和芯片的端口信息,生成块间网表作为端口间的连接信息;以及
开发装置,用于控制逻辑合成工具,以便根据块间网表而按照任意的规模的个数来生成用上述集成电路的开发方法而开发的集成电路的结构块与块之间的网。
提供一种能实现体系结构共用化,能够尽量避免再设计和再验证的集成电路的开发方法、以及存储了集成电路的开发方法的程序存储媒体。
并且,近几年,由于半导体微细化,使10M门以上的ASIC也能够开发。但是随着电子设备的高功能化和复杂化,进行规格设计、逻辑设计和拼块、逻辑合成、规划布局设计、定时验证的工具设计,花费很长时间,同时很难保证设计质量。尤其ASIC开发的返工,不仅使电子设备开发时间延长,而且造成成本上升,失去投放市场的机会。
因此,大量需要开发周期(TAT)短、设计更改更容易的可编程逻辑器件,但是可编程逻辑器件成本高,难于小难化,所以,大都是首先用可编程逻辑器件实现功能,对样机调试后,使ASIC进入大量生产阶段。
但是,存在的问题是:即使以ASIC化为前提,用可编程逻辑器件制作样机进行验证,也很难使从可编程逻辑器件向ASIC的串行开发缩短总开发过程。尤其ASIC开发时的工具设计若出现不能按时完成的问题,则可能造成返工,从可编程逻辑器件的再设计开始。在委托小的半导体企业等外部协作的情况下,难于确保受托方的人力资源并且其费用很高。
再者,由于可编程逻辑器件和ASIC器件之间的结构不同,需要专门为ASIC重新设计时,不仅用可编程逻辑器件的调试失去意义,而且,开发周期增长,成本也上升,也会失去投放市场的良机。
而且,针对ASIC大规模化造成开发周期长而采取的对策,如特开2000-90142号公报所述,同时进行电路结构研究、逻辑设计.验证、工具设计。但是,由于电子设备的功能复杂化和市场发展很快,所以,规格设计、逻辑设计、验证周期长,很难缩短开发过程。在同时进行开发的情况下,需要具有ASIC开发知识的人力资源和开发工具,随着半导体技术的进步,也需要加强复杂化开发工具的培训工作。
发明内容
所以,本发明的目的在于提供一种能够无缝隙地同时开发ASIC和可编程逻辑器件,能够使确保设计质量和缩短开发时间两者兼顾,同时能够减少开发中消耗的人力资源和成本的ASIC和可编程逻辑器件的同时开发系统,开发程序和开发方法。
图1是表示本发明方法的原理的流程图。
一种集成电路的开发方法,其特征在于,包括以下步骤:
在同时开发ASIC和可编程逻辑器件时,通过从由块的端口和端口的连接信息构成的、被称之为ASIC核心,即逻辑磁芯的网表中选择具有连接关系的任意块进行分组来生成由任意规模、个数的块的端口和端口的连接信息构成的逻辑磁芯;
根据芯片的端子信息利用逻辑合成工具来编制临时的芯片设计图案;
在该设计图案中利用存在于上述芯片的端子信息中的名称来产生端子;
在其内部产生与上述相同的设计图案作为单元;
连接上述设计图案和单元间的同一名称的端口;
根据芯片的端子信息,向该连接网中插入由器件封装端子规格定义的输入输出缓冲区;将所生成的逻辑磁芯替换成上述单元;以及
展开作为所生成的逻辑磁芯的顶层的、所编制的设计图案的阶层,生成可编程逻辑器件的芯片的网表。
在技术方案1所述发明中,根据端口名、范围、输出入定义,制作出作为块的端口规格的实体而输出到文件内(写入文件内)。利用对由输出入进行输出定义的端口编制输出信号文件的这种方法,检查某块的输入端口内指定的输出处实例子的输出端口名是否是错误,在输出处实例名中具有旨在连接器件的包封端子的I/O等关键字的情况下,把输出处实例的输出端口名上具有的名称作为器件的封装端子名,利用根据范围的定义来判断该端子是一个还是多个(向量)的装置,根据输出入的定义来判断该端子是输入还是输出的装置、以及根据种类的定义来判断该端子是否是双方向的装置,编制作为逻辑磁芯端口规格的实体,输出到文件内。在此,所谓实例是指电路单元。
在块的端口由输出入定义进行输入定义的情况下,检查该端口的输出处实例名和输出处实例的输出端口名的组是否存在于上述输出信号文件内的装置,上述检查结果,实例间的端口的连接被判断为可能的情况下,生成对实例间进行连接的信号,输出到文件内。包括全实例的检查,处理结束时,读取上述逻辑磁芯的实体和实例间网,生成逻辑磁芯,输入到文件内。
检查结果若无问题,则是记录了这样一种程序的、计算机能够读取的记录媒体,也就是说由块的输出入规格和实例间的连接网、以及实例和器件封装端子、即外部端子间的连接网构成,使计算机执行的方法是输出完全没有逻辑设计部分的HDL(硬件描述语言)的文件(以下称为“逻辑磁芯”)。
所以,若采用一种程序存储媒体,其中存储的程序能够使计算机来执行生成技术方案1所述的逻辑磁芯的方法,则在集成电路开发中,其效果是事前能够确保作为RTL设计输入的块的端口的质量,另外,在功能块很多,设计资源也很多的大规模集成电路的开发中,也能事前确认块间的连接,所以能够确保芯片一定拼装成功。
在技术方案2所述的发明中,在ASIC和可编程逻辑器件同时进行开发的情况下,其特征在于具有以下步骤:
利用一种组合手段,即从块的端口和端口的连接信息所构成的ASIC的所谓逻辑磁芯中,选择出具有连接关系的任意块进行组合,这样来生成任意规模、个数的块的端口和端口的连接信息和所构成的逻辑磁芯(1步),
根据芯片的端子信息利用逻辑合成工具来编制临时的芯片的设计图案(2步)。
在该设计图案中利用在上述芯片的端子信息中具有的名称来发生端子(3步)。
在其内部发生与上述相同的设计图案作为单元(4步)。
连接按2步制作的图案和单元间的同一名称的端口(5步)。
对该连接网根据芯片的端子信息而插入依存于器件技术的输入输出缓冲区(S6步)。
把在1步生成的逻辑磁芯替换成上述单元(7步)。
对作为该逻辑磁芯的顶层的上述编制设计图案的阶层进行展开,生成可编程逻辑器件的芯片的网表(8步)。
技术方案2所述发明是一种集成电路的开发方法,其特征在于:在ASIC和可编程逻辑器件的同时开发中,根据技术方案1的ASIC逻辑磁芯,利用已安装了程序存储媒体的控制装置来控制逻辑合成工具的功能,其中存储的程序能够使计算机来执行下述技术方案3和4所述的网表生成方法,对具有连接关系的任意块进行组合,作为可编程逻辑器件的逻辑磁芯取出,插入依存于可编程逻辑器件的输入输出缓冲区,生成可编程逻辑器件的芯片的网表。
所以,若采用技术方案2所述的集成电路的开发方法,则从ASIC逻辑磁芯中,在保持块间连接的原有状态下切出可编程逻辑器件的逻辑磁芯,所以,若用本逻辑磁芯来对可编程逻辑器件进行验证,则在ASIC中至少能避免用同一结构的重复验证。因此,能够高效率地进行ASIC和可编程逻辑器件的同时开发。
并且,在插入输入输出缓冲区时,根据芯片的端子信息来生成临时的逻辑磁芯,利用替换成由块生成的逻辑磁芯的手段,能够交叉检查由块定义的芯片的端口信息和芯片的端子信息,能够确保块的端口规格和芯片端子规格两者的质量。
技术方案3所述的发明,其特征在于:利用一种组合手段,即从块的端口和端口的连接信息所构成的ASIC的所谓逻辑磁芯中,选择出具有连接关系的任意块进行组合,这样来生成任意规模、个数的块的端口和端口的连接信息所构成的网表(1步)。
若采用这种结构,则能够生成由任意规模、个数的块的端口和端口的连接信息而构成的网表。
技术方案4所述的发明,其特征在于:利用一种组合手段,即从块的端口和端口的连接信息所构成的ASIC的所谓逻辑磁芯中,选择出具有连接关系的任意块进行组合,这样来生成任意规模、个数的块的端口和端口的连接信息所构成的逻辑磁芯(1步),
根据芯片的端子信息利用逻辑合成工具来生成的临时的芯片设计图案,在该设计图案上利用上述芯片的端子信息中具有的名称来发生端子(2步),
在其内部发生与上述相同的设计图案作为单元(3步),
连接上述设计图案和单元间的同一名称的端口(4步),
对该连接网根据芯片的端子信息来插入依存于器件技术的输入输出缓冲区(5步),
把在1步生成的逻辑磁芯替换成上述单元(6步),
对作为该逻辑磁芯的顶层的在2步编制的设计图案的阶层进行展开,生成芯片网表(7步)。
若采用这样的结构,则能够根据由任意规模、个数的块的端口和端口的连接信息所构成的网表来生成芯片网表。
技术方案5所述的集成电路的开发方法,其特征在于:在根据由任意规模、个数的块的端口和端口的连接信息所构成的网表来生成芯片网表的情况下,为了使顶层的端口名与从网名连接处块的端口名相一致,对端口名进行修改,生成由块的端口和端口的连接信息构成的网表。
技术方案5所述的发明,在ASIC和可编程逻辑器件同时开发中,根据由块的端口和端口的连接信息构成的ASIC逻辑磁芯,对具有连接关系的任意块进行组合,使用逻辑合成工具的功能,切出可编程逻辑器件的逻辑磁芯的情况下,通常切出的逻辑磁芯的顶的端口名称成为与该端口相连接的网名。
一种逻辑合成工具的控制方法,其特征在于:对逻辑合成工具的功能进行控制,使网从端口向逻辑磁芯内部进行跟踪,更改成最初发现的块的端口名称。
所以,若采用技术方案5的使逻辑合成工具来执行程序,生成可编程逻辑器件的逻辑磁芯的程序存储媒体,则能够防止难于判断端口功能的网名为端口名称的情况下的逻辑验证等调试效率降低。
如上所述,根据设计文件的数据,生成逻辑磁芯,根据该逻辑磁芯在保持阶层结构和连接信息的状态下,为可编程逻辑器件使用而重新生成逻辑磁芯,这样能够共用电路结构,与填入电路数据,经过功能验证的实例内的不依存于器件技术的电路数据和实例间的网,在ASIC化的情况下,能够避免再验证,也能够避免因ASIC和可编程逻辑器件之间的差异而重新设计。
并且,在本发明中,利用一种组合手段,即从块的端口和端口之间的连接信息所构成的ASIC的逻辑磁芯中,选择出构成ASIC的任意块进行组合,这样来生成由已选择的块构成的块的端口和端口之间的连接信息所构成的可编程逻辑器件的逻辑磁芯,在对这种生成进行控制的逻辑合成工具的控制装置中具有:
控制装置,对于由逻辑合成工具生成的由设计者选择的块所构成的可编程逻辑器件的逻辑磁芯的端口,由逻辑合成工具付给端口名的网名,探索与该端口相连接的网,更改成为构成已连接的可编程逻辑器件的块的端口名称;
生成装置,用于根据芯片的端子信息利用逻辑合成工具来生成具有由芯片的端子信息指定的端口的临时的芯片设计图案;
发生装置,用于在该设计图案内部发生上述临时的芯片设计图案作为单元;
替换装置,用于在上述临时芯片的图案和单元之间的同一名称的端口之间进行连接,对该已连接的网,根据芯片的端子信息而插入依存于器件技术的输入输出缓冲区,更改上述名称的逻辑合成工具生成的由设计者选择的块所构成的可编程逻辑器件的逻辑磁芯和单元进行替换;以及
网表生成装置,它通过对该逻辑磁芯的顶层进行展开而生成可编程逻辑器件的芯片网表。
若采用这种结构,则能够生成可编程逻辑器件的芯片网表,
并且,本发明是ASIC和可编程逻辑器件的同时开发方法,其中包括以下工序:
网表生成工序,它根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
逻辑合成工序,根据构成上述ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
ROM数据生成工序,关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到由上述网表生成工序所生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;
布图(Iayout)生成工序,利用由上述逻辑合成工序所编制的ASIC用逻辑合成数据,使ASIC的布图生成和定时验证和上述ROM数据生成工序的实机评价用ROM数据的生成同时进行;以及
差分反映工序,利用由上述ROM数据生成工序生成的ROM数据根据实机评价结果进行的电路数据更改,反映在上述ASIC规划布局图的制作和定时验证中。
并且,本发明是ASIC和可编程逻辑器件的同时开发程序,其中包括以下工序:
网表生成工序,它根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
逻辑合成工序,根据构成上述ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
ROM数据生成工序,关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到由上述网表生成工序生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;
布图生成工序,利用由上述逻辑合成工序所编制的ASIC用逻辑合成数据,使ASIC的布图生成和定时验证与上述ROM数据生成工序的实机评价用ROM数据的生成同时进行;以及
差分反映工序,利用由上述ROM数据生成工序生成的ROM数据根据实机评价结果进行的电路数据更改,反映在上述ASIC规划布局图的制作和定时验证中。
所以,能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期。
若采用本发明,则根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
根据构成ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;
利用已编制的ASIC用逻辑合成数据,使ASIC的规划图绘制和定时验证与实机评价用ROM数据的生成同时进行;
利用已生成工序生成的ROM数据根据实机评价结果进行的电路数据更改,反映在上述ASIC规划图的制作和定时验证中。
并且,本发明是ASIC和可编程逻辑器件的同时开发程序,其中包括以下工序:
网表生成工序,它根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
逻辑合成工序,根据构成上述ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
ROM数据生成工序,关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到由上述网表生成工序生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;以及
布图生成工序,利用由上述逻辑合成工序所编制的ASIC用逻辑合成数据,使ASIC的布图生成和定时验证与上述ROM数据生成工序的实机评价用ROM数据的生成同时进行;
所以,能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期。
若采用本发明,则根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
根据构成ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;以及
利用已编制的ASIC用逻辑合成数据,使ASIC的规划图绘制和定时验证与实机评价用ROM数据的生成同时进行;
所以能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期。
并且,本发明是从联网的计算机由用户利用的ASIC和可编程逻辑器件的同时开发系统,其特征在于具有:
ASIC逻辑合成装置,用于根据上述用户要求,执行ASIC的逻辑合成;
ASIC逻辑合成结果判断装置,用于判断由上述ASIC逻辑合成装置编制的ASIC逻辑合成结果是否满足了上述用户要求的速度性能;
可编程逻辑器件逻辑合成装置,用于根据上述ASIC逻辑合成结果判断装置作出的判断结果,对可编程逻辑器件进行逻辑合成;
逻辑合成结果显示装置,用于在计算机上显示出上述ASIC逻辑合成装置对ASIC逻辑合成的执行结果、以及上述可编程逻辑器件逻辑合成装置对可编程逻辑器件逻辑合成的执行结果;以及
逻辑合成通知装置,用于通过电子邮件向上述用户发出以下内容的通知:由上述ASIC逻辑合成装置对ASIC逻辑合成的执行开始和执行结果、以及由上述可编程逻辑器件逻辑合成装置对可编程逻辑器件逻辑合成的执行开始和执行结果。
并且,本发明是从联网的计算机由用户利用的ASIC和可编程逻辑器件的同时开发方法,其特征在于具有:
ASIC逻辑合成工序,用于根据上述用户要求,执行ASIC的逻辑合成;
ASIC逻辑合成结果判断装置,用于判断由上述ASIC逻辑合成工序编制的ASIC逻辑合成结果是否满足了上述用户要求的速度性能;
可编程逻辑器件逻辑合成工序,用于根据上述ASIC逻辑合成结果判断工序作出的判断结果,对可编程逻辑器件进行逻辑合成;
逻辑合成结果显示工序,用于在计算机上显示出上述ASIC逻辑合成工序对ASIC逻辑合成的执行结果、以及上述可编程逻辑器件逻辑合成工序对可编程逻辑器件逻辑合成的执行结果;以及
逻辑合成通知工序,用于通过电子邮件向上述用户发出以下内容的通知:由上述ASIC逻辑合成工序对ASIC逻辑合成的执行开始和执行结果、以及由上述可编程逻辑器件逻辑合成工序对可编程逻辑器件逻辑合成的执行开始和执行结果。
若采用本发明,则根据上述用户要求,执行ASIC的逻辑合成;
判断出已编制的ASIC逻辑合成结果是否满足了上述用户要求的速度性能;
根据判断结果,对可编程逻辑器件进行逻辑合成;
逻辑合成结果显示装置,用于在计算机上显示出ASIC逻辑合成的执行结果、以及可编程逻辑器件逻辑合成的执行结果;
通过电子邮件向上述用户发出以下内容的通知:ASIC逻辑合成的执行开始和执行结果、以及可编程逻辑器件逻辑合成的执行开始和执行结果。
所以,用户不必设置逻辑合成的专职人员,即可在任何时候都能进行逻辑合成,能够像专职人员进行的那样,能够保持逻辑合成质量均匀一致,同时能够通过电子邮件来接收逻辑合成的开始和结果的通知,不必用计算机来定期检查逻辑合成的进行情况。
并且,本发明,其特征在于还具有:
网表生成装置,它根据按上述用户要求来构成上述ASIC的功能块,生成由上述用户指定的多个功能块的端口间连接信息的所构成的网表;
ROM数据生成装置,用于把逻辑合成完毕的对象功能块的数据填入到由上述网表生成装置所生成的网表内,生成已记录了可编程逻辑器件电路的ROM数据;
ROM数据生成结果显示装置,用于在上述计算机上显示出由上述ROM数据生成装置生成的ROM数据生成结果;以及
ROM数据生成结果通知装置,它利用电子邮件向用户通知由上述ROM数据生成装置生成的ROM数据生成结果。
若采用本发明,则根据按上述用户要求来构成上述ASIC的功能块,生成由上述用户指定的多个功能块的端口间连接信息所构成的网表;
把逻辑合成完毕的对象功能块的数据填入到已生成的网表内,生成已记录了可编程逻辑器件电路的ROM数据;
在上述计算机上显示出已生成的ROM数据生成结果;
同时利用电子邮件向用户通知。
所以用户不需要可编程逻辑器件专用的开发环境,能够减少对记录可编程逻辑器件电路的ROM数据进行编写所需的负荷、时间和费用。
并且,本发明,其特征在于还具有一种临时网表生成装置,该装置用于在构成用户指定的ASIC的功能块设计尚未完成而没有电路数据的情况下,生成一种把使用临时触发电路等的电路插入到该功能块的输入端子和输出端子中的网表。
若采用该发明,则构成用户指定的ASIC的功能块设计尚未完成而没有电路数据的情况下,生成一种把使用临时触发电路等的电路插入到该功能块的输入端子和输出端子中的网表。所以,在可编程逻辑器件的通过样机的验证中,即使不是验证对象的功能块的设计尚未完成,也能够用样机进行验证,能够提高验证效率。
并且,本发明,其特征在于具有:
监视装置,用于对上述用户具有的最新电路数据和工具设计者进行工具设计的电路数据之间的更改规模进行监视;
更改定时通知装置,用于在根据上述监视装置的监视结果和规划设计所需的时间而计划的日期时间已到达时,把上述更改反映在上述ASIC的工具设计内的定时,用电子邮件方式通知上述用户和ASIC的工具设计者;以及
反映停止要求装置,用于要求停止,以便用户响应上述更改定时通知装置,更改上述反映的日期。
若采用本发明,则因为对上述用户具有的最新电路数据和工具设计者进行工具设计的电路数据之间的更改规模进行监视;
在根据上述监视装置的监视结果和规划设计所需的时间而计划内的日期时间已到达时,把上述更改反映在上述ASIC的工具设计内的定时,用电子邮件方式通知上述用户和ASIC的工具设计者;以及
要求停止,以便用户响应上述通知,更改上述反映的日期。
所以,能够把发生的更改高效率地反映到ASIC规划设计内,同时通过设定反映更改的定时,能够判断出用户何时能够更改,能够在较早的阶段修定日程计划。
并且,本发明,其特征在于:一方面,根据包括多个功能块的全部或一部分的功能块在内的FPGA的端子信息进行描述的第1设计图案、以及作为该第1设计图案的下级层所描述的与该FPGA相同的端子信息进行描述的第2设计图案,生成该第1设计图案、第2设计图案中的同一端子间进行连接,而且在该端子间插入了FPGA对应的缓冲器的FPGA用设计图案信息,另一方面,根据包括多个功能块在内的ASIC的端子信息进行描述的第3设计图案、以及作为该第3设计图案的下级层所描述的与该ASIC相同的端子信息进行描述的第4设计图案,生成该第3设计图案、第4设计图案之间的同一端子间进行连接,而且在该端子间插入了ASIC对应的缓冲器的ASIC用设计图案信息。
上述第2设计图案、第4设计图案分别置换成根据各设计图案所包括的功能块的连接信息而生成的电路信息,
这样一来,生成FPGA和ASIC的网表。
若采用本发明,则因为一方面,根据包括多个功能块的全部或一部分的功能块在内的FPGA的端子信息进行描述的第1设计图案、以及作为该第1设计图案的下级层所描述的与该FPGA相同的端子信息进行描述的第2设计图案,生成该第1设计图案、第2设计图案中的同一端子间进行连接,而且在该端子间插入了FPGA对应的缓冲器的FPGA用设计图案信息,另一方面,根据包括多个功能块在内的ASIC的端子信息进行描述的第3设计图案、以及作为该第3设计图案的下级层所描述的与该ASIC相同的端子信息进行描述的第4设计图案,生成该第3设计图案、第4设计图案之间的同一端子间进行连接,而且在该端子间插入了ASIC对应的缓冲器的ASIC用设计图案信息。
上述第2设计图案、第4设计图案分别置换成根据各设计图案所包括的功能块的连接信息而生成的电路信息,
这样一来,生成FPGA和ASIC的网表。
所以,能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期。
附图说明
图1是表示本发明方法的原理的流程图。
图2是本发明第1实施方式的动作说明图。
图3是表示本发明的逻辑合成工具的控制装置的实施方式一例的方框图。
图4是表示控制装置一实施方式例的方框图。
图5是表示逻辑磁芯生成程序的流程图(1)
图6是表示逻辑磁芯生成程序的流程图(2)
图7是表示本发明第1实施方式的详细程序的流程图。
图8是表示逻辑磁芯设计图案检查控制的流程图。
图9是表示组合控制的流程图。
图10是表示输入输出缓冲区插入控制的流程图和处理形象图。
图11是表示集成电路设计程序的流程图。
图12说明涉及本第2实施方式的ASIC和FPGA同时开发概念用的说明图。
图13说明涉及本第2实施方式的ASIC和FPGA同时开发系统构成的功能块图。
图14是表示在文件服务器内存放数据用的目录构成一例的图。
图15是表示逻辑CORE生成用表的一例的图。
图16是表示第2实施方式的ASIC和FPGA同时开发系统的处理程序的流程图。
图17是表示录入画面一例的图。
图18是表示程序画面一例的图。
图19是表示逻辑CORE生成接口程序的处理程序的流程图。
图20是表示逻辑CORE生成接口画面一例的图。
图21是表示ASIC逻辑CORE生成程序的处理程序的流程图(1)
图22是表示ASIC逻辑CORE生成程序的处理程序的流程图(2)
图23是表示逻辑CORE检查程序的处理程序的流程图。
图24是表示状况显示选择画面的一例的图。
图25是表示逻辑CORE生成状况画面的一例的图。
图26是表示ASIC逻辑CORE生成状况显示画面中的处理程序的流程图。
图27是表示FPGA逻辑CORE生成接口画面一例的图。
图28是表示FPGA逻辑CORE生成程序的处理程序的流程图(1)
图29是表示FPGA逻辑CORE生成程序的处理程序的流程图(2)
图30是表示互换封装表的一例的图。
图31是表示逻辑合成接口程序的处理程序的流程图。
图32是表示逻辑合成接口画面的一例的图。
图33是表示FPGA逻辑合成接口处理程序的流程图。
图34是表示逻辑合成状况显示画面的一例的图。
图35是表示拟合数据的输入和执行画面的一例的图。
图36是表示ROM数据生成状况画面的一例的图。
图37是表示预定和实际画面的一例的图。
图38是表示手工作业时间的一例的图。
具体实施方式
以下参照附图,详细说明本发明的实施方式例。
<第1实施方式>
图2是本发明第1实施方式的动作说明图。该图以电路结构研究结果为输入,使设计数据通用化,共用电路结构,开发集成电路。
在以HDL为手段来设计实现的功能的情况下,产品本身芯片由具有某种功能的实例而构成。该实例参照由HDL设计的多个功能所构成的块,特定的块如果对实现芯片功能是需要的话,那么可多次参照该块。
以下根据图2,说明本发明的流程,X、Y、Z是根据已定义格式来对根据电路结构研究结果而编制的块的端口规格进行定义的表。这些表X、Y、Z,在设计块时是一定要编制的,它有以下部分:块名、实例名、端口名、范围、输出入、种类、输出处实例,输出处实例的输出端口名等。这些数据是由用户手工输入的。这样,预先编制各表是本发明的要点。
S1步利用以上述全部实例的表数据为输入,对实例间和实例与定义为器件封装端子的外部端子间是否连接正确无误进行检查的装置、以及对实例间的网进行定义的装置,生成仅由块的端口和块间连接信息而构成的逻辑磁芯。在S1步出现错误的情况下,把错误返回到用户处,由用户重新输入数据(图中所示的园形的箭头标记1表示反复)。
S2步参照FPGA表2,把S1步输出的逻辑磁芯读入到逻辑合成工具内,通过控制逻辑合成工具的功能来选择作为可编程逻辑器件的实例的组,在保持阶层信息的状态下生成新的逻辑磁芯,输出一种和S1步输出相同的逻辑磁芯的网表,其中不包含依存于器件技术的输入输出缓冲区等,在该图中,X、Y是由用户指定的。
S3步根据作为已定义格式的器件封装的端子规格表数据的端子名,生成临时的逻辑磁芯,把由表数据指定的依存于器件技术的输入输出缓冲区,插入到临时逻辑磁芯的端口内后,替换成S2步输出的网表,这是本发明的关键。通过该处理,形成了作为对象的器件芯片的网表,然后,控制逻辑合成工具的功能,从FPGA合成结果库3中读取用对象器件技术完成了逻辑合成的电路数据,填入到对应的块中,完成所需的器件的网表。作为FPGA而生成的网表,用FPGA的规划布局工具来进行拟合,实现ROM数据化。
并且,从S2步起,参照ASIC合成结果库4进行ASIC化。
若采用该第1实施方式,则在集成电路开发中,其效果是,事先能够确保作为RTL设计输入的块的端口规格质量,并且,在具有许多功能块,设计资源也很多的大规模集成电路的开发中,也能够事先确认块间的连接,因此能够确保一定能组装好芯片。
图3是表示本发明的逻辑合成工具控制装置的一实施方式的方框图。
图中,22是对整体动作进行控制的控制装置,24是显示各种信息的CRT,21是向控制装置22内输入各种指令等用的输入装置,23是与控制装置22相连接,用于存储各种信息的存储装置。
输入装置21用于输入逻辑磁芯生成程序的起动命令、逻辑合成工具的控制命令,在存储装置23中存储了逻辑合成工具、逻辑磁芯生成程序、逻辑合成控制程序。
若从输入装置21中指定块的表文件,输入逻辑磁芯生成程序起动命令,则逻辑磁芯生成程序读取表文件,生成逻辑磁芯,向存储装置23内输出文件,若在该处理中有错误,则把该错误信息显示到显示装置的CRT24上。
设计者在有错误的情况下,对表文件修正后,再次执行命令。在逻辑合成工具的控制中,首先准备控制用的必要数据作为文件,和逻辑磁芯生成程序中生成的逻辑磁芯文件一起存储到存储装置23内的规定位置上。并且,若从输入装置21来输入逻辑合成工具的控制命令,则逻辑合成工具起动,处理结果显示在CRT24上。在中途处理失败的情况下,失败时的状态显示到CRT24上。
图4是表示图3的控制装置22的一实施方式例的方框图。与图3相同的部分标注相同的符号,图中,31是对整体动作进行控制的CPU,32是存储各种信息的存储器,21是输入各种命令等的键盘,24是作为显装置的CRT。23是存储装置,它由逻辑磁芯生成程序36、逻辑合成工具的控制程序35,逻辑合成工具34和操作系统(OS)33而构成。37是连接各构成要素之间的总线。存储装置23,例如采用硬盘机。
在这种构成的系统中,CPU31,当输入从键盘21来的命令时,检索存储装置23,调用该程序,执行该程序。
图5、图6是表示逻辑磁芯生成程序的流程图。其中,利用图2的X、Y、Z的表数据来进行说明。读取表数据X、Y、Z(实例也是X、Y、Z)的文件,对文件一个一个地进行处理。在F1读取X的数据,在F2抽出端口A的表的全部数据,存储到存储器内,边参照该存储器的数据,边进行以下处理。在F2′检查端口是否是输出。
因为端口A是输入,所以用于把实例名和端口名输出到文件A内的F3步跳越过去,进入F3′内。在F3′检查是否有与封装端子的连接关键字。然后,因为没有封装端子的连接关键字,所以,跳过用于把封装端子信息存储到存储器内的F4,把下面的端口B的全部数据存储到存储器内。
因为端口B是输出,所以利用F3步把“XB”输出到存储装置23的文件A内。在此,X是文件名,B是端口名。下面,因为没有封装端子的连接关键字,所以,跳过F4,把下面的端口Z的全部数据存储到存储器内。因为端口Z是输出,所以利用F3步把“XZ[2:0]”输出到上述文件A内。在此,[2:0]表示2、1、0。
以下,因为没有封装端子的连接关键字,所以,跳过F4,把下面的端口1的全部数据存储到存储器内。因为端口1是输入,所以,跳过F3,以下因为有封装端子的连接关键字“IO”,所以把“IN puT,in,2:0”作为逻辑磁芯的端口名存储到存储器内。下面检查是否全部端口结束(F4′)。在全部端口尚未结束的情况下,返回到F2步。
这样,若X的全部端口的处理结束,是VHDL,则把具有以下信息的实体文件输出到存储装置23内。
A:in std_logic;
B:out std_logic;
Z:out std_logic  vector(2 downto 0);
I:in std_logic;
以上处理对Y、Z的数据也都进行,当全部文件结束时(F5′),利用F6步,若是VHDL,则把具有以下信息的逻辑磁芯的实体文件输出到存储装置23内。
INPUT:in std_logic;
OUT:out std_logic;
并且,在文件A中记录以下数据。
XB、XZ[2:0]、YC[1:0],YO、ZF
以下用F7步来读取上述文件A的数据,用F8步来向存储器内存储,对文件一个一个地进行处理。用F8′步来检查端口是否是输入。在此,以X的表数据为例进行说明。因为端口A是输入,所以,用F9步来抽出输出处的Y和端口名的C,利用F10步按照由F8存储了YC[1:0]的数据进行检索。并且,用F10′步检查是否一致。
检索的结果,因为存在,所以利用F12步把以下连接信息输出到文件B内。在结果不一致的情况下,把端口的名称或范围不同等错误信息输出到存储装置23的记录文件内,同时也显示在CRT24上。
A=>YC
以下同样地因为端口B是输出,所以,利用F11步把以下的连接信息输出到文件B内。
B=>XB
以下,同样地因为端口Z是输出,所以利用F11步,把以下连接信息输出到文件B内。
Z=>XZ
下面,端口1是输入,但利用F10步的检索看不见“IOINPUT”,利用F13步,作为错误而输出到记录文件内,同时显示在CRT24上。但是,在与封装端子相连接的端口的情况下,不是问题,相反根据输出到记录上的错误信息,可以确认出是哪个实例的哪个端口与封装的哪个端子相连接。以下利用F12步骤把以下的连接信息输出到文件B内。
1=>IOINPUT
在F12′步检查全部表的全部端口是否已结束,在未结束的情况下,返回到F8′步。
以上的处理,对Y、Z的表数据也进行,当结束时利用F14步把未能编制连接信息的端口输出到记录文件内,利用F15步来使由F6步输出的逻辑磁芯的实体和由F11和F12步输出的连接信息进行结合,生成逻辑磁芯网表,输出到存储装置23内,结束程序。
以下利用附图,详细说明本发明第1实施方式的详细程序。图7是表示本发明第1实施方式的详细程序的流程图。该流程图详细表示在图2说明的第1实施方式中以S1输出的逻辑磁芯为输入的S2以后的处理。图中,实线表示处理的流程,虚线表示数据的流程。处理进行前,操作输入装置,若需要由S2步输出的逻辑磁芯,则利用复制等方式把在以后的说明中出现的控制文件放入到控制程序参照的存储装置内的位置上。
首先,检查逻辑磁芯设计图案(a1)。然后检查该逻辑磁芯设计图案是否良好(a1′)。在不是良好的情况下,检查图2说明的表数据后再次执行(a10)。在是良好的情况下,参照文件12、13,进行组合(a2),作为逻辑磁芯10进行存储。然后,参照由端子名和缓冲器名构成的表14,生成临时逻辑磁芯(a3)。其结果,生成临时逻辑磁芯11。
以下根据该临时逻辑磁芯11和表14,插入输入输出缓冲区(a4)。然后,对逻辑磁芯10和临时逻辑磁芯11进行比较检查(a5)。并且,检查是否良好(a5′)的比较结果,在是良好的情况下,进行终端处理(a6)。在不是良好的情况下,检查器件封装端子规格(a9),检查图2说明的表数据之后,再次执行(a10)。
当a6步的终端处理结束时,参照合成结果文件15,填入电路数据(a7),参照文件16,插入DFT电路(a8)。
以下进一步详细说明在图7中说明的各步骤。图8是表示逻辑磁芯设计图案检查控制的流程图。
首先检查是否有逻辑磁芯的文件(a11)。在有的情况下,用逻辑合成工具来读出(a12)。在没有的情况下,不作任何动作。在a1(参见图7)步把在S2步输出的逻辑磁芯作为输入,对逻辑磁芯的HDL描述方法、空输入端口等进行检查的步骤,若存在逻辑磁芯文件,则在a12步把逻辑磁芯读入到逻辑合成工具内。逻辑合成工具具有在读入时检查文法等的功能。结果若有错误,则用CRT确认内容,如a10步所示对描述块的端口规格的表数据进行审查,再次检查设计图案。
图9是表示组合控制的流程图,它表示图7的a步的详细内容。首先检查有无逻辑磁芯文件(a13),在有的情况下,检查是否有组合的实例文件(a14)。在有的情况下,即使a1步的结果中没有问题的情况下,若有对可编程逻辑器件化的对象的块名在一行内一块一块记载的文件13,则对其进行读取(a21),在对象块的阶层信息进行保持的状态下作为新的逻辑磁芯对逻辑合成工具的组合功能进行控制,进行组合(a22)。
在使用组合功能的情况下,因为逻辑磁芯名成为对实例之间进行连接的网名,所以,对逻辑磁芯的全部端口使网向逻辑磁芯内部跟踪,利用最初发现的实例端口名在逻辑磁芯内发生新的端口,变成网名称的逻辑磁芯的端口上所连接的网连接到发生的新的端口上,把成为网名的端口删除(a23)。这是为了制作新端口,消去老端口。
以下检查是否有监视端口信息(a23′)。在有的情况下,在逻辑磁芯内利用指定的实例的端口名来发生端口,与块端子相连接(a24)。在没有的情况下,把依存于器件技术的输入输出缓冲区不包括在内的网表输出到存储装置10(参见图7)内(a25),在此情况下,在显示装置中,能够利用逻辑合成工具的显示功能来进行确认。
在该a2步另外若有必要,则也可以发生组合的块端口作为逻辑磁芯端口(a24)。该功能使用于可编程逻辑器件的功能评价时具有欲监视的端口的情况下。指定方法是,如文件12所示,对于在每一行内记载一个端口的端口名的文件在组合和端口名称更改后进行读取。
到此为止,因为设计者本身利用规定块的端口规格的数据来生成逻辑磁芯,所以,逻辑磁芯内的块之间的端口连接上应当是没有差错。然而,在直接使用S1步(参见图2)生成的逻辑磁芯的ASIC的情况下,在逻辑磁芯内块的表数据中定义的器件封装端子名称,一般参照器件封装端子规格,所以可能是单纯的差错或者印制电路板设计的更改等原因而出现了差错。与此相反,由a2(参见图7)生成的逻辑磁芯的端口成为器封装端子的情况下,因为该端口成为规格,所以和上述情况一样可能有差异。该问题由a3步到a5步来解决。
图10是表示输入输出缓冲区插入控制的流程图和处理的形象的图。该流程图表示图7的a4步的处理。在以下说明中,从a3到a5作为单独的,但处理是用一个命令连续处理。
首先,检查是否有外部端子信息和逻辑磁芯的文件(a15)。在有时进行以下处理。在a3中如果存在与a2不同的、如图7中14所示的用以在第1列中定义端子名称而在第2列中定义依存于所用器件技术的输入输出缓冲区名的器件封装端子规格的表数据,那么,将其读取,编制出临时的芯片设计图案(对第1列的名称的端子信息进行描述的第1设计图案)(a31),在其内部发生上述临时芯片设计图案作为单元(作为第1设计图案的下级层,和进行描述的第1设计图案相同的端子信息进行描述的第2设计图案),对上述设计图案和上述单元间的同一名称的端口进行连接,向存储装置11内输出临时逻辑磁芯。
在a4步,读取存储器11的临时逻辑磁芯,对于器件封装端子规格表数据14的第2列内有的输入输出缓冲区,根据芯片端子信息向临时逻辑磁芯网插入依存于器件技术的输入输出缓冲区(a32)。
在a5步,在上述临时逻辑磁芯的端口中由于是不涉及与功能无关的逻辑的器件特有,而消除测试用等的端口,作为内部单元与存储装置10的逻辑磁芯进行替换(a33),检查出是否具有端子名不一致(a33′)。如果2个逻辑磁芯之间的端口名称全部一致,那么填充成功。这样一来,能够交叉检查器件封装端子规格表数据的端子名称和逻辑磁芯的端口名称,能够消除上述问题。在一致的情况下结束处理,在不一致的情况下输出网表。
在失败的情况下,如a9步所示,检查器件封装端子规格,从a3步开始再次执行,或者如a10步所示,检查对块端子规格进行定义的表数据,从S1步(参见图2)起再次执行。在成功的情况下,把逻辑磁芯阶层展开,形成芯片。
在a6步,在上述芯片的全部块的输出入端口上,把触发电路连接到块内部,作为终端。该终端处理是为了,即使存在电路设计未完成的块,也能生成网表,没有问题,能够进行规划布局作业。
在a7步,逻辑合成完毕的电路数据从合成结果库中读出,填充到对应的块内。这时,如果不存在对芯片内部的块的合成结果,而且块的设计图案名称或单元名称符合命名规则,那么,预先按规则在该块内部对该块的输入端口和输出端口进行连接处理。
该处理,在可编程逻辑器件的情况下不存在;在使可编程逻辑器件的DLL等特有的块成为ASIC的情况下才进行。通过不消除该块而在块内部连接的处理,能够保持整体结构。并且,在块内部存在存储器等宏功能的情况下,替换成器件特有的存储器电路数据。
A8在ASIC的情况下的处理中,测试器件的SCAN测试电路自动插入,或者输入一种对块的顺序进行定义的文件16,以便连接SCAN测试电路,按定义顺序进行连接。
如上所述,若采用本第1实施方式,则根据设计文件中的数据来生成逻辑磁芯,在从该逻辑磁芯保持阶层结构和连接信息的状态下,为可编程逻辑器件用重新生成逻辑磁芯,这样的效果是能够共用电路结构,对该逻辑磁芯填充电路数据功能进行验证的实例内的不依存于器件技术的电路数据和实例间的网,能够在ASIC化的情况下避免重新验证。因此其效果是,也能够对ASIC和可编程逻辑器件高效率地同时开发。
<第2实施方式>
以下详细说明涉及本发明的ASIC和FPGA的同时开发系统。而且,逻辑的设计语言有C语言、UML等,在第2实施方式中用HDL作为设计语言进行说明。
首先,说明涉及第2实施方式的ASIC和FPGA的同时开发的概念。图12是说明涉及第2实施方式的ASIC和FPGA的同时开发概念用的说明图。如同图所示,该ASIC和FPGA的同时开发的特征是:为了使利用FPGA的样机验证和ASIC工具设计同时进行,根据ASIC工具设计来提供一种ROM数据,其中记录了样机验证所必须的FPGA电路,能够周密无缝地开发FPGA和ASIC。
在该ASIC和FPGA的同时开发中,在电路结构研究中考虑到用FPGA来验证样机,利用适当的预计规模的实现电路来划分实现功能,涉及ASIC和FPGA之间的结构不同时功能划分阶层等,对ASIC和FPGA设计间的通用功能块构成的功能块的端口制定规格。该功能块构成和功能块的端口规格数据,成为ASIC的工具设计的布局、逻辑合成、规划设计的通用数据。
在RTL设计验证中,根据电路结构研究结果的结构,进行ASIC和FPGA通用的RTL设计,对每种功能以角盒为重点用逻辑检测工具进行软件验证。与该RTL设计验证同时进行ASIC逻辑合成,若能确保ASIC的特性,则下面进行FPGA逻辑合成,在样机用基板上的FPGA上逐个形成电路,能够用FPGA的样机来进行验证。
另一方面,在ASIC的规划布局中,根据ASIC和FPGA设计间的通用功能块结构,随时同时反映软件验证和样机的验证结果,这样来缩短从FPGA的样机的验证完毕起到ASIC开发完毕为止的周期。
以下说明涉及第2实施方式的ASIC和FPGA的同时开发系统的系统结构。图13是功能块图,它表示涉及第2实施方式的ASIC和FPGA的同时开发系统的结构。如同图所示,该ASIC和FPGA的同时开发系统200具有:防火墙210、网服务器220、用户认证服务器230、用户管理服务器240、逻辑合成服务器250、邮件服务器260、文件服务器270、应用服务器280和监视服务器290。
并且,该ASIC和FPGA的同时开发系统200,能够通过互联网由网客户机100来利用。
防火墙210是一种对从互联网来的访问要求,只接受符合设定通信程序的访问要求的计算机,它能防止从外部向ASIC和FPGA的同时开发系统200的不正当访问。
网服务器220是对通过互联网而形成的网客户机100发出的要求进行信息发送的计算机,它具有以下各部分:仅由构成ASIC和FPGA的功能块的端口和功能块的端口之间的连接信息来生成逻辑磁芯的逻辑磁芯生成接口程序221、逻辑合成接口程序222、拟合接口程序223、状况显示接口程序224、逻辑磁芯生成所必需的格式文件和逻辑合成所必须的格式文件,该计算机根据网客户机100的要求,执行这些程序,把结果发送到网客户机100内。
用户认证服务器230是进行用户认证的计算机,它登记根据合同使用的用户名和通行字。用户管理服务器240是进行用户登记、撤消的计算机,它登记根据合同而使用的用户名和下述项目名及邮件地址。
逻辑合成服务器250是具有ASIC逻辑磁芯生成程序251、FPGA逻辑磁芯生成程序252、ASIC逻辑合成程序253、FPGA逻辑合成程序254、作为FPGA的规划布局的拟合程序255的计算机,该逻辑合成服务器250中的逻辑合成和拟合的程序,由逻辑合成接口程序222进行起动,读取文件服务器270内存储的RTL源,执行ASIC和FPGA的逻辑合成和FPGA的拟合。
邮件服务器260是具有邮件收发软件的计算机,它把网服务器220执行的处理信息、从网客户机100来的信息以邮件方式分配给用户和系统。
文件服务器270是存储逻辑合成对象RTL源、逻辑合成结果、FPGA的ROM数据等的存储媒体。图14是表示在文件服务器内存储数据用的目录结构一例的图。同图所示的项目(project)41是开发ASIC和FPGA的项目名或ASIC的外号的目录,该名称根据合同来设定。
1042是存储为生成逻辑磁芯用的数据的目录,在构成ASIC的功能块单位内,具有:
目录ASIC48,其存放逻辑磁芯生成用表的文件,其中叙述了图15所示的功能块的端口规格;以及
目录FPGA49,其中由逻辑磁芯生成接口程序221根据用户指定来复印并存储目录ASIC48内的逻辑磁芯生成用表的文件。
并且,在目录FPGA49的下面,具有由用户指定的FPGA编号的数的目录,而且,逻辑磁芯生成用表和逻辑磁芯生成接口程序221的详细内容待以后叙述。
逻辑磁芯43是存放由逻辑磁芯生成程序生成的逻辑磁芯的目录,其具有:根据构成ASIC的功能块端口规格对生成的ASIC逻辑磁芯进行存放的目录ASIC50、以及根据构成FPGA的功能块的端口规格而存放FPGA逻辑磁芯的目录FPGA51。
RTL44是存放电路设计数据(以下称为RTL)的目录,其表现采用HDL(硬件描述语言),由用户从下述的逻辑合成接口进行上装,它具有构成ASIC逻辑磁芯的功能块单位内存放的目录ASIC52、以及根据用户指定而复印并存放ASIC目录内的RTL的目录FPGA53。
综合45是用于存放由逻辑合成服务器250对RTL进行逻辑合成的结果的目录,其具有:
目录ASIC54,其具有把ASIC的逻辑合成结果存放到构成ASIC逻辑磁芯的功能块单位内的目录、以及
目录FPGA55,其具有用于存放各个FPGA的逻辑合成结果的目录。
ROM46是存放ROM数据的目录,其中存储的FPGA电路数据,根据FPGA逻辑合成结果在作为FPGA的规划布局的拟合之后而生成的,具有按每个FPGA进行存放的目录。
规划布局47是由ASIC的规划布局设计负责人进行ASIC规划布局设计的作业目录。
应用服务器280是具有ASIC布局,规划布局设计、定时验证用的程序的计算机。利用该计算机由工具设计者来进行ASIC的平面布置、规划设计、定时验证。
监视服务器290取得在用户管理服务器240内登记的用户名和项目名,位于各项目名的目录内的数据中,由工具设计人负责管理的目录规划布局47内的数据和其他目录内的数据的比较、逻辑合成、规划布局处理中需要工具的时间的收集,1天收集1次,分2次进行,第1次把更改内容通知到工具设计人员,第2次收集的时间作为基础,对反映更改的日程进行更新。
以下说明第2实施方式的ASIC和FPGA的同时开发系统200的处理程序。图16是表示第2实施方式的ASIC和FPGA的同时开发系统200的处理程序的流程图。
如同图所示,若用网客户机100来访问该ASIC和FPGA的同时开发系统200,则网服务器220把图17所示的录入画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的数据来显示画面。用户在该录入画面上输入根据合同进行登记的用户名和通行字,按压Login钮,则网客户机100把用户名和通行字发送到网服务器220内。
网服务器220向用户认证服务器230询问已收到的用户名和通行字。用户认证服务器230对是否登记了用户名和通行字进行确认(S501步),将其结果返回到网服务器220内。网服务器220在被用户认证服务器230拒绝的情况下,把录入拒绝画面的显示控制数据发送到网客户机100内,网客户机100根据收到的数据,在画面上显示出录入拒绝,结束(S502步)。
网服务器220在从用户认证服务器230接受录入的情况下,把图18所示的程序画面的显示控制数据发送到网客户机100内,网客户机100根据收到的数据,显示出程序画面(S503步)。
用户根据图18所示的程序画面,选择菜单,进行ASIC和FPGA的同时开发。用户若选择“格式1”和“格式2”,(S504步的肯定),则位于网服务器220内的对象的设计所需要的格式文件下载到网客户机100内(S505步)。
“格式1”是图15所示的逻辑磁芯生成用表的格式数据。“格式2”是在下述的ASIC的逻辑合成中使用的ASIC的封装的端子名称和端子编号分配、以及ASIC和外部器件之间进行电气连接用的输入输出缓冲区进行定义的表格式数据。
用户若选择逻辑磁芯生成(S506步的肯定),则网客户机100把选择了逻辑磁芯生成一事发送到网服务器220内,网服务器220对逻辑磁芯生成接口程序221进行起动(S507步)。
若用户选择逻辑合成(S508步的肯定),则网客户机把选择了逻辑合成一事发送到网服务器220内,网服务器220对逻辑合成接口程序222进行起动(S509步)。
用户若选择了拟合(S510步的肯定),则网客户机100把已选择了拟合一事发送到网服务器220内,网服务器220对拟合接口程序223进行起动(S511步)。
用户若选择状况显示(S512步的肯定),则网客户机100把选择了状况显示一事发送到网服务器220内。网服务器220对状况显示接口程序224进行起动(S513步)。
以下说明逻辑磁芯生成接口程序221的处理程序。图19是表示逻辑磁芯生成接口程序221的处理程序的流程图。如同图所示,该逻辑磁芯生成接口程序221,把图20所示的逻辑磁芯生成接口画面的显示控制数据发送到网服务器220内,网服务器220把收到的逻辑磁芯生成接口画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的逻辑磁芯生成接口画面的显示控制数据,显示出逻辑磁芯生成接口画面(S801步)。
用户输入项目名,选择执行钮,根据由网客户机100显示的文件选择画面来指定图15所示的逻辑磁芯生成用表的文件,以便对用于生成ASIC逻辑磁芯的构成ASIC的功能块的IO规格进行定义。
网客户机100向网服务器220内发送项目指定数据和IO逻辑磁芯生成用表的文件,网服务器220在文件服务器270内编制图14所示的IO42、逻辑磁芯43、RTL44、综合45、ROM46、规划布局47等(S802步),在IO42下面的目录ASIC48内存放逻辑磁芯生成用表的文件,指定项目名,执行ASIC逻辑磁芯生成程序251,把执行过程ID存放到存储器内(S803步)。
在此,说明ASIC逻辑磁芯生成程序251的处理程序。图21、图22是表示ASIC逻辑磁芯生成程序251的处理程序的流程图。如图21所示,该ASIC逻辑磁芯生成程序251从图14的目录ASIC48中读取图15所示的逻辑磁芯生成用表X、Y、Z,一个一个地进行文件处理。
逻辑磁芯生成用表X、Y、Z是对根据电路结构研究结果而编制的功能块的端口规格,按照已定义的“格式1”进行了定义的表。该表是在设计功能块时一定要编制的,它由以下部分构成:功能块名、实例名、端口名、范围、输出入、种类、输出处实例名、输出处实例的输出端口名等。所谓实例是指参照构成ASIC的功能块,在使用多个同一功能的功能块的情况下,改变实例名称进行组装。
首先,读取X的数据(S1001步),抽出端口A的表的全部数据,存放到存储器内(S1002步),检查端口A是否为输出(S1003步)。其结果,端口A为输入,所以,以下检查封装端子的连接关键字“IO”的有无(S1005步)。其结果没有连接关键字“IO”,所以,把下面的端口B的全部数据存储到存储器内。
因为端口B是输出,所以,把“XB”以A的名称在图14的目录ASIC50上进行文件输出(S1004步)。以下因为没有封装端子的连接关键字“IO”,所以,把以下的端口Z的全部数据存储到存储器内。因为端口Z是输出,所以把“XZ[2:0]”输出到文件A上。以下因为没有封装端子的连接关键字“IO”,所以把以下的端口I的全部数据存储到存储器内。
端口I是输入,以下因为有封装端子的连接关键字“IO”,所以,把“INPUT,in,2:0”作为逻辑磁芯的端口名存储到存储器内(S1006步)。这样结束X的全部端口的处理(S1007步的肯定),根据HDL的文法对端口名、输出入和范围信息进行了定义的实体文件,用X的名称在图14的目录ASIC50上进行文件输出(S1008步)。输出的内容,若是VHDL,则为以下内容:
A:in std_logic;
B:out std_logic;
Z:out std_logic_vector(2 downto 0);
I:in std_logic;
并且,对Y、Z数据也进行以上处理。并且,在该阶段,在文件A内记录以下数据。
XB、XZ[2:0]、YC[1:0],YO、ZF
以上若结束X、Y、Z的全部文件的处理(S1009步的肯定),则读取上述文件A(S1010步)数据,存储到存储器内(S1011步),一个个地处理文件,在此,以X表的数据为例进行说明。首先检查端口A是否是输入(S1012步),其结果,因为端口A是输入,所以,抽出输出处的Y和端口名的C(S1013步)。并且,用YC[1;0]来检索存储器(S1014步),检查有无一致的数据(S1016步)。其结果,因为在存储器内有一致的数据,所以,把以下连接信息用B的名称在图14的目录ASIC50上进行文件输出(S1018步)。在结果不一致的情况下,端口名称或范围不同等错误信息输出到目录ASIC50的记录文件内(S1017步)。
A=>YC
同样,因为端口B是输出,所以把以下的连接信息输出到目录ASIC50的文件B内(S1015步)。
B=>XB
同样,因为端口Z是输出,所以把以下的连接信息输出到目录ASIC50的文件B内。
Z=>XZ
同样,端口I是输入,通过检索不能发现“IOINPUT”,所以,作为错误而输出到目录ASIC50的记录文件内。但是,在与封装端子相连接的端口的情况下,不是问题,相反而是能够根据向记录输出的错误信息,来确认是哪个实例的哪个端口与封装的哪个端子相连接。以下把下面的连接信息输出到目录ASIC50的文件B内。
I=>IOINPUT
若以上的处理也对Y、Z的表数据进行并结束(S1019步的肯定),则不能编制连接信息的端口被输出到记录文件内(S1020步),若是VHDL,则把具有以下信息的ASIC逻辑磁芯的实体文件输出到目录ASIC50内(S1021步)。
INPUT:in std_logic
OUT:in std_logic
并且,把逻辑磁芯的实体文件和连接信息结合起来,利用图17指示的项目名把ASIC逻辑磁芯在目录ASIC50上进行文件输出,结束处理,返回到图19所示的逻辑磁芯生成接口程序221内(S1022步)。
逻辑磁芯生成接口程序221检索目录ASIC50内的记录文件中有无错误。若记录了错误(S804步的肯定),则读取错误(S805步),把项目名、以项目名来询问用户管理服务器240而获得的用户邮件地址、错误信息和工艺过程ID发送到邮件服务器260内,从邮件服务器260向用户发送邮件(S806步)。用户通过该邮件来确认错误内容,反复进行逻辑磁芯生成处理直到错误消失为止。
另一方面,若在记录文件内没有记录错误,(S804步的否定),则把项目名、以项目名来询问用户管理服务器240而获得的用户邮件地址、错误信息和工艺过程ID以及逻辑磁芯生成结束信息发送到邮件服务器260内(S807步),从邮件服务器260向用户发送邮件。
并且,在目录ASIC50内用“CORE+工艺过程ID+日时”的名称来编制目录,把在目录ASIC50内用项目名生成的逻辑磁芯和记录文件移动到该目录内,在该目录内用IO名称编制目录,把在逻辑磁芯生成中使用的目录ASIC48内所具有的表数据移动到该IO目录中,在逻辑合成服务器250内的逻辑磁芯检查程序中指定出利用项目名“CORE+工艺过程ID+时日”的名称编制的逻辑磁芯的目录名称,对逻辑磁芯检查程序进行起动(S808步)。
该逻辑磁芯检查程序对逻辑合成工具命令的描述如下:进行ASIC逻辑磁芯的文法检查,构成逻辑磁芯的各实例的输出入端口的未连接检查,输出报告。
在此,说明逻辑磁芯检查程序的处理程序。图23是表示逻辑磁芯检查程序的处理程序的流程图。该逻辑磁芯检查程序检查位于收到的项目名的目录下,在图14的目录ASIC50内是否具有作为对象的ASIC逻辑磁芯目录进行检查(S1201步),如果有,那么就把WORK目录编制到具有该逻辑磁芯目录的ASIC目录内(S1202步),使逻辑合成工具进行检查(S1203步)。
当执行结束时,从WORD目录内的报告文件内抽出错误信息,利用项目名来询问用户管理服务器240而获得的用户邮件地址、以及从逻辑磁芯目录名中抽出的工艺过程ID一起被送入到邮件服务器260内,从邮件服务器260发送给用户(S1204步)。由用户根据发来的邮件内容,确认错误信息是否是预期的。
利用这一连串流程而生成的逻辑磁芯,能够保证在用户的逻辑设计中只要构成ASIC的实例之间的接线没有差错,就一定能组装成ASIC。该效果通过逻辑验证即可看出。在构成ASIC的多个实例的功能验证中出现与预期不同的动作的情况下,能保持实例间的连接,所以,可以针对构成实例的各个功能进行调试,排除故障。
以下说明用户在图18的程序画面中,选择状况显示时的处理。若用户在图18的程序画面上选择状况显示,则起动状况显示接口程序224。该状况显示接口程序224把图24所示的状况显示选择画面的显示控制数据发送到网服务器220内,网服务器220把收到的状况显示选择画面的显示控制数据发送到网客户机100内,网客户机100根据收到的状况显示选择画面的显示控制数据来显示画面。
若在该画面上由用户来选择逻辑磁芯制作,则这次状况显示接口程序224生成一种没有图25所示的逻辑磁芯生成状况画面的逻辑磁芯的名称显示的显示控制数据,发送到网服务器220内,网服务器220把收到的逻辑磁芯生成状况画面的显示控制数据发送到网客户机100内,网客户机100根据收到的逻辑磁芯生成状况画面的显示控制数据来显示画面。
若在该画上由用户输入项目名,选择显示钮,则由网客户机100把项目名发送到网服务器220内,从网服务器220收到了项目名的状况显示接口程序224从指定的项目名的目录中抽出图14的目录ASIC50内的逻辑磁芯的目录名称,更新逻辑磁芯生成状况画面的显示控制数据,发送到网服务器220内,网服务器220把收到的逻辑磁芯生成状况画面的显示控制数据发送到网客户机100内,网客户机100根据收到的逻辑磁芯生成状况画面的显示控制数据而显示画面。在该画面上,显示出先生成的ASIC逻辑磁芯目录名称。
在此,说明ASIC逻辑磁芯生成状况显示画面的处理程序。图26是表示ASIC逻辑磁芯生成状况显示画面的处理程序的流程图。如该图所示,若用户选择已显示的逻辑磁芯中的某一个,选择下载(S1501步),则能够把对象逻辑磁芯下载到网客户机100内(S1502步)。该已下载的逻辑磁芯可以作为ASIC的芯片级的网表使用于逻辑验证,能够如上所述针对构成实例的功能进行调试。
另一方面,若用户指定逻辑磁芯名称,选择FPGA化钮(S1503步),则网客户机100把已选择了项目名、逻辑磁芯名称和FPGA化一事发送到网服务器220内,网服务器220把已收到的数据发送到状况显示接口程序224内。状况显示接口程序224抽出位于图14的目录ASIC50内的、位于作为对象的逻辑磁芯名称的目录下的IO目录内的表数据的文件名称,其结果,编制出图27所示的FPGA逻辑磁芯生成接口画面的显示控制数据,发送到网服务器220内。
网服务器220把已收到的FPGA逻辑磁芯生成接口画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的FPGA逻辑磁芯生成接口画面的显示控制数据来显示画面(S1504步)。在该画面上,已指定的项目名、逻辑磁芯名、构成逻辑磁芯的实例名的表列出在左侧的列表框内。并且,在该画面上也能够改变对象的逻辑磁芯,若用户指定项目名和逻辑磁芯名,则通过图25所指定的同样的处理来更新画面。
再者,该画面是根据构成对象ASIC的逻辑磁芯的实例的表数据而生成FPGA的逻辑磁芯的接口,用户从左侧的列表框中指定实例,选择追加钮,在右侧的列表框内追加实例。在该右侧的列表框内列表的实例成为一个FPGA。如果用户选择实例,设定出作为FPGA名和管理用的追加编号的一以上的一意的整数的FPGA编号,选择执行钮,那么,网客户机100向网服务器220内发送对象的项目名、ASIC的逻辑磁芯名、FPGA名、作为FPGA的实例名的表(清单)和FPGA的编号,由网服务器220向状况显示接口程序224内发送已收到的数据。
并且,状况显示接口程序224根据已收到的实例名的表,按照图14的目录FPGA49内指定的FPGA编号,编成目录,从位于图14的目录ASIC50的、CORE名称的目录下的IO目录中,把名称一致的表数据复制到上述编号的目录中,把表数据名的表作为自变量,执行FPGA逻辑磁芯生成程序252。
在此,说明FPGA逻辑磁芯生成程序252的处理程序程的流程图。图28和图29是表示FPGA逻辑磁芯生成程序252的处理程序的流程图。
图28与图21所示的处理相同,并且,除S1717步和S1720步外,图29与图22所示的处理相同,所以,仅说明这2个步骤。
在图22的S1017步,被定义为对象的实例的输入的端口内定义的连接目的方的实例名及其输出端口名不在存储器内所存储的信息中的情况下,作为错误而输出到记录文件内。在图29的S1717步原来作为ASIC逻辑磁芯能够保证实例的端口间连接,所以,在该S1717步不是错误而是作为封装的输入端子信息而追加存储在存储器内。
并且,在图22的S1020步,把最终剩余的未连接的端口信息输出到记录文件内。另一方面,在S1720步,利用图14的目录ASIC50下的“CORE+过程ID+日期”而编制的对象ASIC逻辑磁芯目录中的记录文件和在S1702步输出的文件进行比较,在S1020步输出的记录文件中没有的输出端口作为封装的输出端子信息而追加存储到存储器内。然后和S1020步一样,利用图14的目录FPGA51下的指定的编号的目录内所指定的FPGA名称对逻辑磁芯进行文件输出。
并且,状况显示接口程序224读取FPGA逻辑磁芯文件,对作为封装的输出入的端子数进行计数,对图30所示的互换封装的表的第2列内的IO数内所占的比例全部计算出来,抽出比例最大的封装及其互换封装数据,更新图27所示的FPGA逻辑磁芯生成接口画面的封装名、IO使用率的画面显示控制数据,发送到网服务器220内。网服务器220把已收到的FPGA逻辑磁芯生成接口画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的FPGA逻辑磁芯生成接口画面的显示控制数据,对输入画面进行更新。
用户若不能满足该结果,则再次重新生成FPGA逻辑磁芯。若用户选择决定,则网客户机100把选择决定,把FPGA编号、封装名和IO使用率的数据发送到网服务器220内,从网服务器220收到这些数据的状况显示接口程序224编制出由图14的目录FPGA55所指定的编号的目录,例如用plist名称对收到的数据进行文件输出。
以下说明逻辑合成接口程序222的处理程序。图31是表示逻辑合成接口程序222的处理程序的流程图。如该图所示,该逻辑合成接口程序222把图32所示的逻辑合成接口画面的显示控制数据发送还到网服务器220内,网服务器220把已收到的逻辑合成接口画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的逻辑合成接口画面的显示控制数据来显示画面(S2001步)。
用户指定项目名、图25所表示的对象的逻辑磁芯名、逻辑合成的对象功能块名和组装的FPGA编号,而且指定出是面积优先还是速度优先,是调试(不进行FPGA逻辑合成)还是Fix(进行FPGA逻辑合成)(S2002步),若选择执行钮(S2003步),网客户机100显示出数据选择画面。
若用户根据该画面而选择出逻辑合成RTL源,则这些数据由网客户机100将其发送到网服务器220内,从网服务器220收到数据的逻辑合成接口程序222对RTL源利用图14的目录ASIC52内指定的功能块名来编制目录,放入RTL(S2004步)。并且,逐个文件地读取RTL源,把记载RTL源内的更改履历、版数等的标题部分内由用户定义的工作频率数据抽出来,对已抽出的值增加20%后的频率值和用户指定的速度优先或面积优先的逻辑合成条件作为逻辑合成的制约,指定逻辑合成对象的功能块名,执行ASIC逻辑合成工具的ASIC逻辑合成程序253(S2005步)。
若结束ASIC逻辑合成,则逻辑合成接口程序222把位于图14目录ASIC54下的指定功能块的目录内输出了ASIC逻辑合成程序253的结果的端口文件、以及利用项目名来询问用户管理服务器240而获得的用户的邮件地址和块名发送到邮件服务器260内,从邮件服务器260向用户发送邮件(S2006步)。
并且,逻辑合成接口程序222对图14的目录ASIC52下指定的功能块名所编制的目录内存在的全部RTL源进行该处理过程。若全部RTL的逻辑合成结束(S2007步的肯定),则逻辑合成接口程序222在指定为速度优先的情况下(S2008步的肯定),检索全部RTL的逻辑合成结果报告,判断出是否满足由RTL源定义的工作频率(S2009步~S2010步)。在重视面积的情况下什么也不进行。
然后,调查Fix指定(S2011步),若指定Fix,则逻辑合成接口程序222利用指定的FPGA编号在图14的目录FPGA55下编制目录,其中,对位于图14的目录ASIC52下的指定的功能块目录内的RTL进行复制存储,把指定的项目名和FPGA编号作为自变量,执行FPGA逻辑合成接口程序(S2012步)。
并且,逻辑合成接口程序222起动逻辑合成工具,从位于图14的目录ASIC50内的指定的CORE目录中,读取ASIC逻辑磁芯,为此向逻辑合成工具内输入命令,由用户上装,存在于图14的目录ASIC54内的ASIC封装端子分配、与ASIC相连接的外部器件和电气接口的缓冲区被定义的文件被读取,根据定义把命令输入到逻辑合成工具内,这样一来,把ASIC的缓冲区和扫描等测试电路插入到ASIC的逻辑磁芯的端子和与封装端子相连接的芯片的衬垫之间进行连接,然后,向逻辑合成工具内输入命令,把已完成了逻辑合成的图14的目录ASIC52下的全部目录中的功能块数据进行读取,填入到逻辑磁芯内,为规划布局设计用而生成ASIC网表,用项目名向图14目录ASIC54内输出文件(S2013步)。
以下说明FPGA逻辑合成接口程序222的处理程序。图33是表示FPGA逻辑合成接口程序的处理程序的流程图。如该图所示,该FPGA逻辑合成接口程序利用由ASIC逻辑合成接口程序指定的FPGA编号在图14的目录FPGA55内制作目录,对图14的目录FPGA53下的指定的编号的目录内的RTL源,一个个地读取文件,把RT源内的变更履历、版数等进行记载的标题的一部分内由用户定义的工作频率数据抽取出来,对抽取的值增加20%后的频率值作为逻辑合成的制约,指定出逻辑合成对象的功能块名,执行FPGA的逻辑合成工具的FPGA逻辑合成知254(S2201步)。
若FPGA逻辑合成结束,则FPGA逻辑合成程序254用功能块名称把逻辑合成结果输出到位于图14的目录FPGA55内的作为对象的编号的目录内。这样一来,用户能够利用下述的图34的逻辑合成状况显示一边确认门使用率,一边进行设计作业。并且,FPGA逻辑合成接口程序把逻辑合成结束信息、FPGA编号、块名称、以及用项目名来询问用户管理服务器240而获得的用户邮件地址发送到邮件服务器260内,从邮件服务器260把邮件发送到用户(S2202步)。
以下,FPGA逻辑合成接口程序确认构成指定的编号的FPGA的功能块的逻辑合成是否已全部结束(S2203步)。该确认的方法是,把图14的目录FPGA51的作为对象的编号的目录内的功能块名称抽出来,与上述逻辑合成已结束的功能块名进行比较。若没有差分,则以下FPGA逻辑合成接口程序把图14的目录FPGA51内的对象编号目录内的FPGA名的逻辑磁芯的文件名抽出来,利用该名称来在图14的目录FPGA55内对作为FPGA规划布局的、与拟合使用的FPGA逻辑磁芯的端口名相同的封装端子名和端子编号的对应、工作频率等进行定义后的拟合控制文件,是否由用户上装而存在,进行检查(S2206步)。
如果存在,则FPGA逻辑合成接口程序把构成FPGA的全功能块和图14的目录FPGA51下的、位于对象编号目录内的FPGA逻辑磁芯指定出来,执行FPGA逻辑合成程序254。并且,若FPGA逻辑合成结果,则FPGA逻辑合成接口程序,起动拟合程序255,进行规划布局,生成一种作为FPGA的规划布局结果记录了电路信息的ROM数据,用FPGA名输出到图14的目录ROM46下的作为对象的编号的目录内(S2207步)。并且,ROM数据生成的结束信息、FPGA编号、项目名以及询问用户管理服务器240而获得的用户邮件地址,发送到邮件服务器260内,发送邮件(S2208步)。
若有差分,则在下述拟合数据的输入和执行画面上,判断是否未选择执行钮(S2204步),若未选择,则结束;若已选择,则对于未逻辑合成的全部功能块,在图14的目录FPGA51下的位于对象编号目录内的、FPGA逻辑磁芯内的各功能块内部,把触发电路连接到全部输出入端口上,把输入侧的全部触发电路输出端口连接到适当的门,例如2输入NAND的输入端口上;把全部NAND门的输出连接到新的2输入的NAND门的输入端口上,如上所述,反复进行2输入NAND的多级连接,把最后级的2输入NAND的输出连接到输出侧的全部触发电路的输入端口上,把这样的HDL描述插入,形成能够逻辑合成的状态(S2205步)。
然后形成和没有差分时相同的处理。虽然也取决于开发动手时的验证战略,但通过电路结构研究能够从功能上大致划分成向上和向下的功能块结构的情况下,通过插入采用了上述触发电路等的临时电路,若向上功能设计完成,则即使向下功能设计未完成,也能验证,非常有助于验证的高效率。
以下说明图34的逻辑合成状况显示画面。该画面,若用户在网客户机100上选择了位于图24的状况显示画面上的逻辑合成,则网客户机100把选择了逻辑合成一事发送到网服务器220内,从网服务器220收到数据的状况显示接口程序224,对于用录入的用户名称来询问用户管理服务器240而获得的全部项目名,从图14的目录FPGA55下的位于全编号的目录内的逻辑合成结果中抽出门规模。
并且,从以上说明的FPGA逻辑磁芯生成中制作的同一目录中的Plist中抽出封装信息,根据该封装信息,选择出在图30的表内门规模比例为75%以下的封装,生成图34的逻辑合成状况显示画面的显示控制数据,发送到网服务器220内。网服务器220把逻辑合成状况显示画面的显示控制数据发送到网客户机100内,网客户机100根据收到的逻辑合成状况显示画面的显示控制数据而显示出画面。
在此,简单说明门规模75%。通常,FPGA逻辑合成工具,根据逻辑合成结果的门规模,从具有逻辑合成工具的数据库中表示出适当的封装和门使用率。然而,在FPGA拟合中,在单元布置过程中,为了提高布线效率,把用FPGA实现逻辑的单位块使用于布线。所以,根据逻辑合成结果考虑到门规模增大,把拟合后门使用率设定为75%,不能超过100%。在FPGA中也有不同的,因此,对每个功能块也能有效地进行以上说明的FPGA的逻辑合成。
以下说明拟合数据的输入和执行画面。图35表示拟合数据的输入和执行画面的一例。若由用户利用网客户机100来选择图18所示的程序画面内的拟合,则网客户机100把选择了拟合一事发送到网服务器220内,从网服务器220收到了数据的拟合接口程序223,对于利用已注册的用户名称来询问用户管理服务器240而获得的全部项目名,抽出图14的目录FPGA55下的全部目录编号名、作为各目录内的逻辑合成结果的网表的文件名即FPGA名,生成图35所示的拟合数据输入和执行画面的显示控制数据,发送到网服务器220内。
网服务器220把拟合数据的输入和执行画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的拟合数据的输入和执行画面的显示控制数据,显示出画面。若选择该画面的条件数据输入,则由网客户机100来显示数据选择画面。
根据该画面、若由用户选择上述拟合控制文件,则网客户机100把已选择的FPGA编号和拟合控制文件发送到网服务器220内,从网服务器220收到数据的拟合接口程序223把拟合控制文件存储到图14的目录FPGA55下的、对象编号的目录内。
并且,若由用户选择执行钮,则网客户机100把已选择的FPGA编号、项目名以及选择了执行一事发送到网服务器220内,从网服务器220收到了数据的拟合接口程序223把项目名,FPGA编号作为自变量,执行FPGA逻辑合成接口程序。FPGA逻辑合成接口程序的处理如以上说明的那样。
以下说明ROM数据生成状况画面。图36表示ROM数据生成状况画面的一例。用户若用网客户机100来选择图24所示的状况显示选择画面中的ROM数据,则网客户机100把选择了ROM数据一事发送到网服务器220内。
从网服务器220内收到了数据的状况显示接口程序224对于利用已注册的用户名称来询问用户管理服务器240而获得的全部项目名,抽出图14目录ROM46下的全部目录编号名、以及位于各目录内的作为拟合结果的ROM数据名即FPGA名,生成图36所示的ROM数据生成状况画面的显示控制数据,发送到网服务器220内。
网服务器220把ROM数据生成状况画面的显示控制数据发送到网客户机100内,网客户机100根据已收到的ROM数据生成状况画面的显示控制数据来显示画面。用户若在该画面上选择作为对象的FPGA的日期部分,则能够下载ROM数据。
以下说明监视服务器290的处理。首先监视服务器290监视的内容是:RTL有无变化、逻辑合成、拟合、规划设计工具处理所需的时间、以及根据设计者定义的功能块的更改规模,使用于工具设计的工具处理时间以外所需的、为更改反映所必须的手工作业的时间。
在工具设计者管理的图14的目录规划47中,每个项目具有项目名的目录,其中,促进作业。各项目名的目录中具有存储规划设计数据的LAY目录、以及存储RTL源的RTL目录,RTL目录以下是与图14的目录ASIC52以下相同的目录结构。
监服务器290监视LAY和RTL目录内。用于反映累计时间的结果的日程,用Schedule名称存储到项目名的目录中,在初始状态下,根据合同来设定1stRTL预定日和Sign Off的预定日。所谓1stRTL是指能够着手规划设计、当时没有估计到大的更改,功能验证已完成约80%的RTL。所谓Sign Off是指ASIC规划设计完成后把ASIC制造数据移交给器件制造商的日。
图37是表示预定和实绩画面日一例的图。该图把日程文件变换成画显示控制数据,由网客户机100进行显示。也就是说,若用户在图24的状况显示画面上选择实绩和预定,则网客户机100经过网服务器220把选择了实绩和预定一事发送到状况显示接口程序224内。收到了已选择实绩和预定一事的状况显示接口程序224,把日程文件变换成画面显示控制数据,经过网服务器220而发送到网客户机100内。收到了画显示控制数据的网客户机100根据画面显示控制数据来显示画面。
并且,图38是表示由规划设计者设定的作业时间的设定文件的一例的图。该文件利用手动名称存储在和日程文件相同的目录内。
监视服务器290若达到监视时间,则从用户管理服务器240获得用户名、用户所属的项目名和文件地址。然后,读取日程文件,抽出1stRTL的预定日。该预定日若是将来,是晚于监视的执行年月日,则不作任何动作而结束,该预定日若是以前,早于监视的执行年月日,则进行以下处理。
首先,若在工具设计者管理的规划目录下的、位于项目名的目录内的RTL目录内没有RTL源,则中断处理。若有RTL源,则在图14的目录ASIC52下的、位于各块的目录内的RTL源之间进行比较。
若有差分,则把有差分的块名称和项目名以及工具设计者的邮件地址发送到邮件服务器260内,由邮件服务器260发送到工具设计者处。工具设计者根据该邮件来进行更改反映所需时间的估算作业。估算的结果,工具设计者在必要时更新或追加、删除日程文件的时间数据。
其次,监视服务器290从图14的目录ASIC50下的、编制时间最新的ASIC逻辑磁芯中抽出构成ASIC的块名,存储到存储器内。然后,从图14的目录ASIC54下的、位于各块目录内的逻辑合成结果的报告文件中抽出逻辑合成处理时间。在对先存储到存储器内的块名不存在报告文件,即尚未逻辑合成的情况下,适用从存在的报告文件中抽出的时间的平均时间,把合计时间计算出来,存储到存储器内。
并且,这次,工具设计者管理的图14的目录规划47下的、位于项目名的目录内的规划设计结果中,若存在规划设计工程的最终工程的定时验证结果的文件,则从规划设计的全行程中使用的工具所输出的处理结果文件中抽出处理时间,根据先存储到存储器内的时间来计算出合计时间。在不存在定时验证结果的文件的情况下,适用在签合同时由规划设计者临时估计预先设定的在监视服务器内的时间。
以下由监视服务器290取得该合计时间和以上说明的设定在说明书中的时间的合计,按照一日12小时来计算日数,日程文件必要时进行更新。也就是说,在最初的状态下,在日程文件内只设定1stRTL的预定日,对该预定日加上合计时间,如图37所示作为反映开始日追加上对工具设计的进行更改的预定日。
在以下的监视中,若反映开始日是晚于监视的执行年月日的将来,则对从反映开始日的前一个的1stRTL预定日起到设定为反映开始日的预定日止的日数进行比较对照,若长于计算出的工具设计所需的日数,则不更新反映开始日。在反映开始日为监视的执行年月日以前时,监视服务器290把用户和工具设计者的邮件地址和作为反映开始机会的信息发送到邮件服务器260内,从邮件服务器260向用户和工具设计者发送邮件。这时监视服务器290,在最新的反映开始日为监视执行的年月日以前时,若在反应开始日的实绩日内没有年月日,则不更新日程文件。
在对作为反映开始机会的信息的邮件,用户和工具设计者双方把同意或拒绝的邮件送到监视服务器290时,若是双方均同意,则立即把收到邮件的年月日设定为日程文件的反映开始日实绩日,在下次的监视中,若最新的反映预定日是监视实施的年月日以前,在反映预定日的实绩日内有年月日,则根据实绩日来计算工具设计的日数,新增加反映开始日。若继续进行该处理,则反映开始日接近Sign Off日。
计算反映开始日的预定日,在超过了Sign Off日的情况下,监视服务器290把已经到了不能设定反映开始的预定日的年月日的信息以及用户和工具设计者的邮件地址发送到邮件服务器260内,从邮件服务器260向双方发送邮件。
在作为反映开始机会的信息邮件被用户拒绝的情况下,对用户从网客户机100向邮件服务器260内发送旨在设定预定日的信息以及用户和工具设计者的邮件地址,从邮件服务器260向双方发送邮件。
以下说明预定和实绩画面。图37是表示预定和实绩画面的一例的图。该图的逻辑Fix钮和更改钮布置在监视服务器290的监视执行年月日以前,最新的反映开始日的旁边。若用户在位于该钮下的年月日设定栏内指定年月日,选择更改钮,则网客户机100把选择了设定的年月日和更改一事发送到网服务器220内,从网服务器220中收到了数据的状况显示接口程序224,把日程文件内的最新反映开始日更改为指定的年月日,把已更改的意思的信息以及用户和工具设计者的邮件地址发送到邮件服务器260内,从邮件服务器260向双方发送邮件。
在图37内的逻辑Fix钮和年月日的指定一起被选择的情况下,状况显示接口程序224在进行了和更改钮被选择时相同的处理之后,进行使监视服务器290的监视停止的处理。这样一来,能够使用户和工具设计者双方的短期间的目标明确,工具设计试行次数越多,更改开始日的预定日的概率越高,对此,用户和工具设计者双方均能有机会考虑进行方法,结果,大大有助于提高效率。
如上所述,在第2实施方式中,根据从网客户机100来的用户要求,由ASIC逻辑合成程序253进行ASIC逻辑合成;由FPGA逻辑合成程序254进行FPGA逻辑合成,由逻辑合成接口程序222在网客户机100上显示ASIC和FPGA的逻辑合成结果,邮件服务器260用电子邮件向用户通知ASIC和FPGA的逻辑合成开始和结果,所以用户不必设置逻辑合成的专职人员,任何时候都能进行逻辑合成,能够像专职人员完成的那样使逻辑合成质量均匀,同时能够通过电子邮件接收逻辑合成的开始和结果的通知,不必定期地用计算机来确认逻辑合成情况。
并且,在第2实施方式中,根据从网客户机100来的用户要求,由ASIC逻辑磁芯生成程序251从构成ASIC的功能块来生成用户指定的仅由多个功能块的端口之间的连接信息而构成的网表,FPGA逻辑磁芯生成程序252把已逻辑合成的对象块能块数据填写到已生成的网表中,生成一种记录可编程逻辑器件电路的ROM数据,逻辑磁芯生成接口程序221把生成的ROM数据的生成结果显示在计算机上,同时由邮件服务器260用电子邮件来通知用户,所以,用户不需要可编程逻辑器件专用的开发环境,能够减少记录可编程逻辑器件电路的ROM数据进行编制所需的负荷、时间和成本。
并且,在第2实施方式中在用户指定的ASIC结构功能块设计未完成,电路数据不存在的情况下,由FPGA逻辑磁芯生成程序252来生成网表,该网表是把采用临时触发电路等的电路插入到该功能块的输入端子和输出端子上,所以,在采用可编程逻辑器件的样机的认证中,即使不是检验对象的功能块的设计尚未完成,也能够用样机来进行验证,能够提高验证效率。
并且,在第2实施方式中,监视服务器290对用户具有的最新电路数据和工具设计者进行工具设计的电路数据之间的更改规模进行监视,根据监视结果和规划设计所需的时间而划画的日期时间一到时,由邮件服务器260以电子邮件方式向用户和ASIC的工具设计者发送通知,说明把更改反映到ASIC工具设计中的时间已到,要求停止,以便根据该通知,由用户更改反映的日期。所以,能够高效率地把发生的更改反映到ASIC规划设计中,同时,设定反映更改的时间,因此能够判断出用户什么时候能够更改,能够早期更改日程。
如以上说明那样,若采用本发明,则能够获得以下效果。
若采用技术方案1所述的发明,则效率是利用一种程序来使计算机执行技术方案1的发明的生成逻辑磁芯的方法,若采用存储了该程序的存储媒体,即可在集成电路开发中事前确保作为RTL设计输入的块端口规格的质量,即使在功能块多设计源也多的大规模集成电路的开发中,也能事先确认块间的连接,因而能够保证一定装配好芯片。
若采用技术方案2所述的发明,则可编程逻辑器件的逻辑磁芯在保持块间连接的状态下从ASIC逻辑磁芯中切出,所以,若进行采用该逻辑磁芯的可编程逻辑器件的验证,则能够在ASIC中至少能够避免同一构成的验证的重复。因此,能够高效率地同时开发ASIC和可编程逻辑器件。
并且,当插入输入输出缓冲区时,根据芯片的端子信息来生成临时的逻辑磁芯,利用从块中生成的逻辑磁芯的替换装置,能够交叉检查由块定义的芯片的端口信息和芯片的端子信息,能够确保块的端口规格和芯片端子规格两者的质量。
若采用技术方案3所述的发明,则能够生成由任意规模、个数的块的端口和端口的连接信息所构成的网表。
若采用技术方案4所述的发明,则能够生成由任意规模、个数的块的端口和端口的连接信息所构成的网表生成芯片网表。
若采用技术方案5所述的发明,如果所用的存储程序的存储媒体,其程序能使逻辑合成工具执行生成可编程逻辑器件的逻辑磁芯的方法,那么,能够防止难于判断端口功能的网名成为端口名称时逻辑验证等调试效率降低。
如上所述,根据设计文件数据生成逻辑磁芯,从该逻辑磁芯在保持阶层结构和连接信息的状态下为可编程逻辑器件用而重新生成逻辑磁芯,于是能够共用电路结构,填入电路数据,进行了功能验证的实例内的不依存于器件技术的电路数据和实例之间的网,在ASIC化的情况下能够避免再验证,也能够避免由于ASIC和可编程逻辑器件之间的不同而再次设计。
这样,若采用本发明,则能够提供一种能够实现结构共用,尽量避免再设计和再验证的集成电路的开发方法以及存储了集成电路的开发方法的可编程序存储媒体。
并且,若采用本发明,则根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
根据构成上述ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到由上述网表生成工序生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;
利用已编制的ASIC用逻辑合成数据,使ASIC的规划图绘制和定时验证和实机评价用ROM数据的生成同时进行;
利用由上述ROM数据根据实机评价结果进行的电路数据来更改,反映在上述ASIC规划布局图的制作和定时验证中。
所以,其效果是:能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期时间。
并且,若采用本发明,则根据端口间连接信息来组合构成ASIC的功能块,生成由该组合的功能块的端口和端口间连接信息所构成的网表,作为可编程逻辑器件的逻辑磁芯;
根据构成上述ASIC的功能块的电路数据来编制ASIC用逻辑合成数据和可编程逻辑器件用逻辑合成数据;
关于上述组合的功能块的可编程逻辑器件用逻辑合成数据填入到由上述网表生成工序生成的网表内,生成已记录了可编程逻辑器件电路的实机评价用ROM数据;
利用已编制的ASIC用逻辑合成数据,使ASIC的规划图绘制和定时验证和实机评价用ROM数据的生成同时进行;
所以,其效果是:能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期时间。
并且,若采用本发明,则根据用户要求而进行ASIC的逻辑合成,对进行的ASIC逻辑合成结果是否能满足用户要求的速度性能进行判断,根据判断结果,进行可编程逻辑器件的逻辑合成,把ASIC逻辑合成的进行结果和可编程逻辑器件的逻辑合成的进行结果显示到计算机上,ASIC逻辑合成的进行开始和进行结果、以及可编程逻辑器件的逻辑合成的进行开始和进行结果,以电子邮件方式通知用户。所以,其效果是:
用户不必设置逻辑合成的专职人员,任何时候都能进行逻辑合成,能够像专职人员完成的那样使逻辑合成质量均匀,同时能够通过电子邮件接收逻辑合成的开始和结果的通知,不必定期地用计算机来确认逻辑合成情况。
并且,若采用本发明,则因为根据用户要求,由构成ASIC的功能块来生成由用户指定的多个功能块的端口之间的连接信息而构成的网表,把已逻辑合成的对象块能块数据填写到已生成的网表中,生成一种记录可编程逻辑器件电路的ROM数据,把生成的ROM数据的生成结果显示在计算机上,同时用电子邮件来通知用户,所以,用户不需要可编程逻辑器件专用的开发环境,能够减少记录可编程逻辑器件电路的ROM数据进行编制所需的负荷、时间和成本。
并且,若采用本发明,则因为在用户指定的ASIC结构功能块设计未完成,电路数据不存在的情况下,生成网表,该网表是把采用临时触发电路等的电路插入到该功能块的输入端子和输出端子上,所以,在采用可编程逻辑器件的样机的认证中,即使不是检验对象的功能块的设计尚未完成,也能够用样机来进行验证,能够提高验证效率。
并且,若采用本发明,则因为对用户具有的最新电路数据和工具设计者进行工具设计的电路数据之间的更改规模进行监视,根据监视结果和规划设计所需的时间而划画的日期时间一到时,电子邮件方式向用户和ASIC的工具设计者发送通知,说明把更改反映到ASIC工具设计中的时间已到,要求停止,以便根据该通知,由用户更改反映的日期。所以,能够高效率地把发生的更改反映到ASIC规划设计中,同时,设定反映更改的时间,因此能够判断出用户什么时候能够更改,能够早期更改日程。
若采用本发明,则一方面,根据包括多个功能块的全部或一部分的功能块在内的FPGA的端子信息进行描述的第1设计图案、以及作为该第1设计图案的下级层所描述的与该FPGA相同的端子信息进行描述的第2设计图案,生成该第1设计图案、第2设计图案中的同一端子间进行连接,而且在该端子间插入了FPGA对应的缓冲区的FPGA用设计图案信息,另一方面,根据包括多个功能块在内的ASIC的端子信息进行描述的第3设计图案、以及作为该第3设计图案的下级层所描述的与该ASIC相同的端子信息进行描述的第4设计图案,生成该第3设计图案、第4设计图案之间的同一端子间进行连接,而且在该端子间插入了ASIC对应的缓冲区的ASIC用设计图案信息。上述第2设计图案、第4设计图案分别置换成根据各设计图案所包括的功能块的连接信息而生成的电路信息,这样一来,生成FPGA和ASIC的网表。
所以,其效果是:能够高效率地同时开发ASIC和可编程逻辑器件,能够缩短ASIC的开发周期时间。
如上所述,涉及本发明的集成电路的开发方法和存储了集成电路的开发方法的程序存储媒体、以及ASIC和可编程逻辑器件的同时开发系统、开发程序和开发方法,适用于集成电路的开发,尤其适用于ASIC和可编程逻辑器件的开发。

Claims (2)

1.一种集成电路的开发方法,其特征在于,包括以下步骤:
在同时开发ASIC和可编程逻辑器件时,通过从由块的端口和端口的连接信息构成的、被称之为ASIC核心,即逻辑磁芯的网表中选择具有连接关系的任意块进行分组来生成由任意规模、个数的块的端口和端口的连接信息构成的逻辑磁芯;
根据芯片的端子信息利用逻辑合成工具来编制临时的芯片设计图案;
在该设计图案中利用存在于上述芯片的端子信息中的名称来产生端子;
在其内部产生与上述相同的设计图案作为单元;
连接上述设计图案和单元间的同一名称的端口;
根据芯片的端子信息,向该连接网中插入由器件封装端子规格定义的输入输出缓冲区;
将所生成的逻辑磁芯替换成上述单元;以及
展开作为所生成的逻辑磁芯的顶层的、所编制的设计图案的阶层,生成可编程逻辑器件的芯片的网表。
2.如权利要求1所述的集成电路的开发方法,其特征在于:在生成由任意规模、个数的块的端口和端口的连接信息构成的网表的情况下,根据网名来修正端口名以使顶层的端口名与作为连接目的地的块的端口名相一致,并生成由块的端口和端口的连接信息构成的网表。
CN038085666A 2002-04-17 2003-04-15 集成电路开发方法 Expired - Fee Related CN1647082B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2002115273 2002-04-17
JP115273/2002 2002-04-17
JP2002147930 2002-05-22
JP147930/2002 2002-05-22
PCT/JP2003/004787 WO2003088095A1 (fr) 2002-04-17 2003-04-15 Procede de mise au point de circuits integres, support de stockage de programmes contenant un procede de mise au point de circuits integres, systeme de mise au point simultanee d'asic et de circuit logique programmable, et programme et procede de mise au point

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN2007101612984A Division CN101131713B (zh) 2002-04-17 2003-04-15 Asic和可编程逻辑器件并行开发系统和开发方法
CN200710161299A Division CN100576218C (zh) 2002-04-17 2003-04-15 Asic和可编程逻辑器件并行开发系统和开发方法

Publications (2)

Publication Number Publication Date
CN1647082A CN1647082A (zh) 2005-07-27
CN1647082B true CN1647082B (zh) 2010-04-21

Family

ID=29253576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038085666A Expired - Fee Related CN1647082B (zh) 2002-04-17 2003-04-15 集成电路开发方法

Country Status (5)

Country Link
US (4) US7219311B2 (zh)
JP (1) JP3860812B2 (zh)
KR (2) KR100745959B1 (zh)
CN (1) CN1647082B (zh)
WO (1) WO2003088095A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1451732A4 (en) * 2001-12-10 2007-08-08 Mentor Graphics Corp AUTOMATED ELECTRONIC DESIGN REALIZED IN PARALLEL: SHARED SIMULTANEOUS MODIFICATION
US7516435B2 (en) * 2001-12-10 2009-04-07 Mentor Graphics Corporation Reservation of design elements in a parallel printed circuit board design environment
US7587695B2 (en) * 2001-12-10 2009-09-08 Mentor Graphics Corporation Protection boundaries in a parallel printed circuit board design environment
US7112994B2 (en) 2002-07-08 2006-09-26 Viciciv Technology Three dimensional integrated circuits
US6992503B2 (en) 2002-07-08 2006-01-31 Viciciv Technology Programmable devices with convertibility to customizable devices
US8643162B2 (en) 2007-11-19 2014-02-04 Raminda Udaya Madurawe Pads and pin-outs in three dimensional integrated circuits
US7590963B2 (en) * 2003-11-21 2009-09-15 Mentor Graphics Corporation Integrating multiple electronic design applications
US7305648B2 (en) * 2003-11-21 2007-12-04 Mentor Graphics Corporation Distributed autorouting of conductive paths in printed circuit boards
US7030651B2 (en) 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US20090276367A1 (en) * 2008-04-30 2009-11-05 Rosenthal Collins Group, L.L.C. Method and system for providing risk management for multi-market electronic trading
US7243329B2 (en) * 2004-07-02 2007-07-10 Altera Corporation Application-specific integrated circuit equivalents of programmable logic and associated methods
US7546571B2 (en) 2004-09-08 2009-06-09 Mentor Graphics Corporation Distributed electronic design automation environment
US20060101368A1 (en) * 2004-09-08 2006-05-11 Mentor Graphics Corporation Distributed electronic design automation environment
US8566616B1 (en) 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US8612772B1 (en) * 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US20060123378A1 (en) * 2004-12-03 2006-06-08 Ipextreme Inc. Method, System, and Software Product For Using Synthesizable Semiconductor Intellectual Property In Self-Documenting Electronic Extended Package
JP4563286B2 (ja) * 2005-03-08 2010-10-13 パナソニック株式会社 回路自動生成装置
US7299444B1 (en) * 2005-03-31 2007-11-20 Altera Corporation Interface for pin swap information
US7246339B2 (en) * 2005-04-08 2007-07-17 Altera Corporation Methods for creating and expanding libraries of structured ASIC logic and other functions
US7386819B1 (en) * 2005-07-28 2008-06-10 Altera Corporation Methods of verifying functional equivalence between FPGA and structured ASIC logic cells
US8326926B2 (en) * 2005-09-13 2012-12-04 Mentor Graphics Corporation Distributed electronic design automation architecture
US20070061764A1 (en) * 2005-09-15 2007-03-15 Interntional Business Machines Corporation Keyword-based connectivity verification
US20070168741A1 (en) * 2005-11-17 2007-07-19 International Business Machines Corporation Method, system and program product for facilitating debugging of simulation results obtained for an optimized simulation model of a device design having hierarchically-connected components
US7701252B1 (en) * 2007-11-06 2010-04-20 Altera Corporation Stacked die network-on-chip for FPGA
JP5117170B2 (ja) * 2007-11-20 2013-01-09 株式会社リコー 回路設計支援装置、回路設計支援方法、回路設計支援プログラム及び記録媒体
US8516399B2 (en) * 2009-02-18 2013-08-20 Mentor Graphics Corporation Collaborative environment for physical verification of microdevice designs
US8099694B1 (en) * 2009-04-15 2012-01-17 Altera Corporation Interactive tool for contemporaneous design of integrated circuits having different device packages
US20100287571A1 (en) 2009-05-07 2010-11-11 Cypress Semiconductor Corporation Development, programming, and debugging environment
US8438530B2 (en) * 2009-07-22 2013-05-07 Synopsys, Inc. Connection navigation in electronic design automation
US8438531B2 (en) * 2009-12-01 2013-05-07 Cadence Design Systems, Inc. Visualization and information display for shapes in displayed graphical images
US8645901B2 (en) * 2009-12-01 2014-02-04 Cadence Design Systems, Inc. Visualization and information display for shapes in displayed graphical images based on a cursor
US8533626B2 (en) * 2009-12-01 2013-09-10 Cadence Design Systems, Inc. Visualization and information display for shapes in displayed graphical images based on user zone of focus
CN101771408B (zh) * 2010-01-05 2012-05-02 中国人民解放军信息工程大学 一种fpga硬件构件的生成方法及装置
US8443327B2 (en) * 2011-02-22 2013-05-14 Altera Corporation Reassembling scattered logic blocks in integrated circuits
US8484589B2 (en) * 2011-10-28 2013-07-09 Apple Inc. Logical repartitioning in design compiler
TWI502387B (zh) * 2012-08-06 2015-10-01 Wistron Corp 串擾分析方法
US9015644B2 (en) * 2012-08-06 2015-04-21 Wistron Corp. Crosstalk analysis method
WO2014056201A1 (en) 2012-10-12 2014-04-17 Mediatek Inc. Layout module for printed circuit board
US8914762B1 (en) * 2013-07-25 2014-12-16 Xilinx, Inc. Automated generation of platform-specific logic designs for target environments from a common base design
CN103684849A (zh) * 2013-11-22 2014-03-26 汉柏科技有限公司 一种屏蔽网络设备的方法和系统
KR20150112537A (ko) * 2014-03-28 2015-10-07 현대자동차주식회사 차량제어용 소프트웨어 코딩 시스템 및 방법
CN104486197A (zh) * 2014-11-25 2015-04-01 上海高性能集成电路设计中心 一种基于邮件的远程芯片设计系统
WO2019171501A1 (ja) * 2018-03-07 2019-09-12 三菱電機株式会社 プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、コンピュータ、及びコンピュータプログラム
US10740257B2 (en) * 2018-07-02 2020-08-11 International Business Machines Corporation Managing accelerators in application-specific integrated circuits
CN112257357B (zh) * 2020-09-14 2022-09-13 深圳市紫光同创电子有限公司 Fpga芯片顶层电路的构建方法、装置及存储介质
CN117454817B (zh) * 2023-12-25 2024-04-12 芯能量集成电路(上海)有限公司 一种基于fpga的工程处理方法、装置、电子设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867399A (en) 1990-04-06 1999-02-02 Lsi Logic Corporation System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
JP3184420B2 (ja) * 1995-01-19 2001-07-09 株式会社日立製作所 論理分割装置および方法
US6237132B1 (en) 1998-08-18 2001-05-22 International Business Machines Corporation Toggle based application specific core methodology
JP2000090142A (ja) * 1998-09-16 2000-03-31 Fujitsu Ltd 大規模集積回路の開発方法及び開発ツール
EE200100189A (et) * 1998-09-30 2002-08-15 Cadence Design Systems, Inc. Plokkidel põhineva väljatöötamise metodoloogia
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US7013438B1 (en) * 2000-11-01 2006-03-14 Cadence Design Systems, Inc. System chip synthesis
US6976239B1 (en) * 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
US6823502B2 (en) * 2002-12-31 2004-11-23 Lsi Logic Corporation Placement of configurable input/output buffer structures during design of integrated circuits
KR101003577B1 (ko) 2003-12-29 2010-12-23 엘지디스플레이 주식회사 마스크 및 이를 이용한 액정표시소자 제조방법
US7353489B2 (en) * 2004-05-28 2008-04-01 Synopsys, Inc. Determining hardware parameters specified when configurable IP is synthesized
US7275232B2 (en) * 2005-04-01 2007-09-25 Altera Corporation Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Tomoaki KOGA et al."Mega Gate ASIC no Implement Sekke".The Institute of Electronics, Information and Communication Engineer98 287.1998,98(287),71-77.
Tomoaki KOGA et al."Mega Gate ASIC no Implement Sekke".The Institute of Electronics,Information and Communication Engineer98 287.1998,98(287),71-77. *

Also Published As

Publication number Publication date
US20050071787A1 (en) 2005-03-31
KR20070043061A (ko) 2007-04-24
US7219311B2 (en) 2007-05-15
US20100070943A1 (en) 2010-03-18
US20070083840A1 (en) 2007-04-12
US7650586B2 (en) 2010-01-19
JPWO2003088095A1 (ja) 2005-08-25
CN1647082A (zh) 2005-07-27
US8225243B2 (en) 2012-07-17
JP3860812B2 (ja) 2006-12-20
KR100745959B1 (ko) 2007-08-02
US20070083845A1 (en) 2007-04-12
KR100788112B1 (ko) 2007-12-21
KR20040101512A (ko) 2004-12-02
US7647575B2 (en) 2010-01-12
WO2003088095A1 (fr) 2003-10-23

Similar Documents

Publication Publication Date Title
CN1647082B (zh) 集成电路开发方法
Bell et al. Computer Engineering: A DEC View of Hardware Systems Design
CN102902839B (zh) 管理集成电路设计的装置和方法
Chakrabarty et al. Test access mechanism optimization, test scheduling, and tester data volume reduction for system-on-chip
CN104573169B (zh) 以自动流水线操作能力设计集成电路的方法和工具
US6298319B1 (en) Incremental compilation of electronic design for work group
CN101482895B (zh) 电子元件设计、采购和制造协作
US5930148A (en) Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques
JP2003535389A (ja) 回路およびチップ設計で使用される電子コンポーネントの選択および取得のための自動化方法およびシステム
WO2003048995A1 (en) Method of concurrent visualization of process module outputs
CN101821687B (zh) 设计管理设备、生产管理设备、生产管理系统
Guérineau et al. Towards a design-method selection framework for multidisciplinary product development
CN1408092A (zh) 行为合成电子设计自动化工具的β-TO-B应用服务提供商
CN100576218C (zh) Asic和可编程逻辑器件并行开发系统和开发方法
CN101777994B (zh) 电信设备的配置方法和配置系统
Wieczorek et al. Precise steps for choreography modeling for SOA validation and verification
Haubelt et al. A system-level approach to hardware reconfigurable systems
JP2003140895A (ja) 組み替え可能なソフトウェアを持つ検査システム
JP2006268862A (ja) Asicとプログラマブル・ロジックデバイスのコンカレント開発システム、開発プログラム及び開発方法
JP2020160650A (ja) 高位合成方法、高位合成装置、及び高位合成システム
Tarafdar et al. A data-centric approach to high-level synthesis
JP4127720B2 (ja) Fpga及びasicのネットリストを生成する方法
JP4127719B2 (ja) Asicとプログラマブル・ロジックデバイスのコンカレント開発システム及び開発方法
Xiao et al. Optimization on operation sorting for HLS scheduling algorithms
Harsa Advancing Reliability in Electronic Product Design

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: 20100421

Termination date: 20140415