Ic电路验证平台的制作方法

文档序号:6514971阅读:280来源:国知局

专利名称::Ic电路验证平台的制作方法
技术领域
:本发明是一种IC电路验证平台,其是针对集成电路设计的验证做出一个简易测试并操作方便的平台,以期为使验证流程更具便利、迅速与准确性。
背景技术
:数字逻辑对全人类而言十分重要,其基本单位是所谓的位(bit),也就是由″0″与″1″所构成的应用技术。除了直接绘制电路图Schematic之外,也有直接以语言实现电路的方式,这种语言即称为硬件描述语言(HDL,HardwareDescripitionLanguage)。当然对于功能复杂的数字电路实现而言,绘制电路的过程是相当费时的,这就是硬件描述语言(HDL)出头之日了,其中最为人注目的二个语言,其一是VERILOG的HDL,其二为VHDL。然而目前使用HDL语言来设计逻辑电路时,FPGA(FieldProgrammableGateArray)与CPLD(ComplexProgrammableLogicDevice)组件可以说是提供最佳的验证方法。FPGA是在一颗超大规模集成电路,超大规模集成电路(通常是84脚或更大的IC包装)中,均匀配置了一大堆的可程序逻辑单元(称之为CLB)。每个CLB都拥有基本的组合逻辑跟顺序逻辑,而在CLB和CLB之间也均匀配置了一大串的可程序配线(Routing),控制这些配线就可将一个个单独的CLB整合成完整而复杂的大型电路;最后再利用分布于外围的可程序输入输出阜(称之为IOB),提供FPGA和外部电路的界面关系。最特别的是,FPGA组件中的逻辑单元(CLB)、输出输入阜(IOB)和配线(Routing)不但都是可程序化,还是RAM型的可程序结构。所以FPGA中的逻辑电路不但是可程序的,还可以像读写RAM一样的随时加载并更新设计,就像是一个计算机辅助配线的面包板一样方便,只是理论上由于接脚个数上的限制,可程序逻辑电路的起始设定程序稍慢了些,比较像SerialRAM一样,必须用串行讯号来控制读写的动作。但是跟以往直接用逻辑闸辛苦兜出同样功能的电路工作比起来,实在方便多了。如图1所示,其中关键设备是一个PGA控制模块,内含三颗Xilinx的FPGA组件XCS05和其可程序加载接口。利用个人计算机提供的打印机接口和个人计算机联机,所以可以由个人计算机来发展VHDL程序,在编辑完毕后再加载FPGA组件中。另外在FPGA组件加载并开始工作后,个人计算机还是可以透过打印机接口进行FPGA组件的参数设定和监控工作。就操作的FPGA模块来说,每个FPGA芯片都面对了一组PRT界面和两组I/O接口。其中PRT界面是微电脑间的通讯接口,可以规划成类似总线(BUS)的资料沟通管道,而每组I/O包括了16位的可程序输入输出端,可以在FPGA组件内预作规划而控制不同的目标,每组I/O接口可根据需求而连接不同的模块,且个模块都具有相同的16位I/O接口。如台湾专利公告第563043号中所述(配合图2及图3),其第一观点中,其一种复合集成电路设计的验证方法包含下列步骤连接一可场程序规划的闸极数组(FPGA)于一事件测试器;根据EDA环境下所产生的设计资料透过该事件测试器在线上程序规划该FPGA而在该FPGA中建立一集成电路等效物于所打算的绩体电路;藉该事件测试器施加该集成电路设计资料所产生的测式向量于该FPGA及评估该FPGA的响应输出;侦测该响应输出中的误差及藉修正该FPGA的线上程序规划来校正设计误差;以及重复该误差侦测及设计校正步骤,直到获得无误差的设计资料于该事件测试器中为止。较佳地,该发明的该方法进一步地包含接收该设计资料及转换该设计资料以用于该FPGA的线上程序规划的步骤;透过该事件测试器的该FPGA的线上程序规划的步骤包含透过该事件测式器之一控制总线传输程序规划的资料到该FPGA的步骤。较佳地,在该发明中,施加该等测试向量的步骤包含透过该事件测试器运转在EDA环境下产生的测试平台及用于所打算的集成电路所制备的应用软件于该FPGA之上的步骤。该发明的方法进一步地包含透过在该EDA环境下所产生之一测试平台抽取事件资料的步骤,以及安装所抽取的事件资料于该事件测试器之中及根据所抽取的事件资料产生该测试向量而透过该事件测试器之一测试装备具施加该等测试向量于该FPGA的步骤。在该发明的第二观点中,复合集成电路设计的该验证方法使用该FPGA之外的仿真器板。该方法包含下列步骤连接一仿真器板于一事件测试器;供应所打算的集成电路的设计资料于该仿真器板,使得该仿真器板仿真所打算的集成电路的功能;藉该事件测试器施加该集成电路的设计资料所产生的测试向量于该仿真器板及评估该仿真器板响应输出;侦测该响应输出中的误差及藉修正供应到该仿真板的设计资料来校正设计误差;以及重复该误差侦测及设计校正步骤,直到获得无误差的设计资料于该事件测试器中为止。该发明的进一步观点是一种复合集成电路设计的验证设备,该设计的验证设备是藉不同装置建构以用于达成上述设计的验收方法,其利用该事件测试器及该FPGA的组合或该事件测试器及该仿真器板的组合以用于高速测试图案应用及响应评估以及设计除错及误差校正。根据该发明,可使用该事件测试器与FPGAs的线上程序规划来验证该设计以取代所使用的缓慢的EDA仿真工具。因为不使用全芯片位准仿真且并用软件在FPGA上运转更快,故可完成目前技术中所不可行的扩增验证。
发明内容目前市面上亦有不少植基于FPGA的原型板,大多数的系统并无直接与PC连接,电路下载至FPGA后,所有资料的输入得经由接线的方式传送至FPGA,输出则是连接至逻辑分析仪上,透过逻辑分析仪储存并观察电路的执行结果,由测得及观察电路的执行结果再去修改电路,将修改完的电路再重新执行测试,但若测试程序若是有错误需修改,仍需重新撰写程序无法立即修改测试程序,其依旧是利用逻辑分析仪呈现出执行结果,当然有部份原型板则是PCI接口,直接插在PCI槽,使用者藉由驱动程序发展程序与其电路沟通,进行电路的验证工作,但驱动程序撰写程序较麻烦,且在电路设计的早期,无法协助各小模块做验证的工作,而本系统在硬件部份亦可利用PCI为接口来测试电路,且我们在软件端提供相当多的改良与创新,让使用者可以轻易地直接透过计算机观察电路执行后的结果,不需再另外连接一堆繁琐的测试电路或是逻辑显示仪,并因此达到便利且方便修改测试程序及资料的方式,大幅的减少测试及修改测试程序的时间,提高研发、测试及制程等等方面的经济效益,在验证结果的呈现方式、资料进一步的分析及提供使用者以更简单及直觉的方式撰写及修改与电路沟通的程序,且在资料的呈现方式上可依绕使用者的要求做不同方式的呈现,皆是目前鲜少工具提供。图1为习知FPGA验证的示意图;图2为台湾专利公告第563043号的验证设备与方法的基本架构;图3为台湾专利公告第563043号的实施例;图4为本发明的基本系统流程图;图5为本发明的软件平台大体架构图;图6为本发明的硬件平台大体架构图;图7为本发明的系统软件流程图;图8为本发明的硬件验证平台流程图。图号说明10使用者端20软件平台30硬件平台40数据处理系统50使用者程序(UserProgram)51应用程序(Tunnel)52波形编辑平台(WaveformEditor)53资料储存平台(DataStorage)54波形显示/比对平台(WaveformDisplay/Checker)55接口应用软件(InterfaceApplicationProgram)56运作系统(OperatingSystem)57转换驱动装置(Driver)58软硬件接口(I/F)60软硬件接口(I/F)61控制芯片(ControlChip)62时脉显示系统(ClockGenSystem)63控制缓存器(ControlBuffer)64缓存器管理者&目录表(BufferController&ContentTable)65周边控制单元芯片(PeripheralChip)66从属FPGA(SlaveFPGA)67多路复用器(Mux)68第一层缓存器(Level1Buffer)69第二层缓存器(Level2Buffer)具体实施方式本系统是一种适用于各类特殊应用IC(ASIC,ApplicationSpecificIntegratedCircuit)及硅智财(SIP,SiliconIntelligenceProperty)于电路设计完成后,进行functional验证(emulation)工作时所采用的平台。本系统如图4所示,其包含了四个平台;当使用者端10将所想测试的指令输入至软件平台20内之后,此时软件平台20收到指令台20,并将执行使用者端10所输入的指令,且依照输入的指令要求硬件平台30及数据处理系统40做出该指令指示的动作,且同时将输入及输出所能呈现的数值传送至数据处理系统40,然其透过硬件平台30来装设测试的仿真电路,令使用者端10所下的测试指示可以经由软件平台20传送至硬件平台30内的仿真电路能来测试该电路是否正确;就数据处理系统而言,当其接收到使用者端10给与软件平台20所下的指令要求进行处理资料及输出输入讯号(数值)于显示装置呈现。再又如图5所示,其软件平台20是主要包括有以下四个大单元一使用者及硬件沟通接口21,其是为使用者指令与软件及硬件间的沟通平台,彼此间做一程序语言沟通;一测试修改资料接口22,其可实时性的测试硬件上所负载的FPGA仿真电路,亦可实时针对FPGA仿真电路提供修改测试资料的接口。一资料分析接口23,其将输入输出的讯号(数值)做一分析处理,并将资料传送至影像呈现接口;一影像呈现接口24,其是将资料分析接口传送的资料做一图像化编辑处理传送至数据处理系统内显示装置显示供以使用者观察;然针对硬件平台30而言,如图6所示,其硬件包括有以下四种大单元一控制芯片31,其是控制测试讯号产生、暂存区接口处理、FPGA仿真电路测试数据传输的整合式控制芯片;一控制缓存器32,其是整合测试资料堆栈至暂存区,并加以监控及交换处理资料;一暂存区置放装置33,其是给予测试输出、输入讯号的资料交换及暂存的空间;一FPGA装设装置34,其供以FPGA仿真电路芯片负载的装置,以供仿真电路测试。如图7与图8所示,其中如图7所示,针对其各主组件做一解释,I/FApplicationProgram58其功能架构在OS上,针对其上层的软件应用程序进行管理,以及对下层的硬件板(ControlChip,SlaveFPGA,ClockGen,buffer等)进行控制。Userprogram50使用者可根据硬件电路的需求,在runtime时产生实时的数据,以提供电路仿真的使用,并接收来自硬件的实时数据,进行处理或储存,此一功能有助于SOC(SystemonChip)中的HW/SWCo-simulation/co-verification,其实作方式可以利用DynamicLinkLibraryorClasslibrary实现,以使之可以直接与Tunnel连接。Tunnel51是一个应用程序,其功用是提供一个接口,可以在run-time时,藉由Interfaceapplicationprogram将数据传至HW端以供仿真使用。此程序亦可提供Hostcomputer端,根据资料进行HW端时脉控制,其另一端连结使用者自行发展的程序(userprogram)来做为二者资料交换之用。Waveformchecker用来与事先准备好的资料进行比对。Waveformdisplay以波形方式显示HWBoard回传的资料。DataStorage53用来储存大量上传及回传的资料如硬盘。WaveformEditor52以图形化接口来编辑仿真时所须上传至FPGA的资料(根据时脉)。再针对其流程再做一次叙述,如图7所示,现在假设使用者将设计好的逻辑电路植入(programming)到SlaveFPGA后,使用者可藉由WaveformEditor52或使用者程序UserProgram50(经由Tunnel51也就是当使用者程序呼叫APIs时,APIs会透过操作系统所提供IPC(InterProcessCall)的方式与系统软件建立沟通的信道。)所产生的输入资料或已经储存在DataStorage53内的测试资料,透过InterfaceApplicationProgram55将输入待测试资料与硬件控制讯号放置在PC的内存,经driver57转为I/F58(如PCIorUSB等)的资料收送格式并送至HW端;然,接口应用软件InterfaceApplicationProgram55可将应用程序Tunnel51、波形编辑平台WaveformEditor52、资料储存平台DataStorage53、波形显示/比对平台WaveformDisplay/Checker54四者间做一传输整合处理,可令使用者使用者程序UserProgram50可清楚看见测试出的波形显示,且接口应用软件InterfaceApplicationProgram55透过运作系统OperatingSystem56、转换驱动装置Driver57与软硬件接口I/F58相互间做资料的传递与转换。再将其做一适当的说明,当使用者程序呼叫APIs时,APIs会透过操作系统所提供IPC(InterProcessCall)的方式与系统软件建立沟通的信道。IPC的实作方式依操作系统的不同而有所差异,在MS-Windows下可以采用Pipe、DDE、RPC、Sockets等方式;在Linux下则可用Semaphros、MessageQueue及Sharedmemory。透过这种方式,两个同时在执行的程序可以互相交换所有资料,达到使用者的程序可以透过我们的验证系统与其电路协同运作。又如图8所示,在此先做一组件的说明,I/F为controlchip与hostcomputer之间的沟通接口,其可以是parallel接口,如PCI,PCI-X等,或serial接口,如USB,1394,Ethernet,PCIExpress(PCI-XP),GigaEthernet等,或无线接口,如UltraWideBand,802.11x等。ControlChip是用来控制HW所有模块(Modules)的动作,以及与Hostcomputer之间的沟通,另一方面将储存于LevellBuffer/Level2Buffer内的资料传回至HostComputer,或将HostComputer中的WaveformEditor,DataStorage或UserProgram所产生的资料以及SlaveFPGA的控制讯号传至ControlBuffer内,以及clockcontroller的控制。ClockControllerSlaveFPGA的ClockSource可有三个来源分别来自ControlChip(fromI/F),ClockGeneration以及PeripheralIC,由于ControlChip需要控制SlaveFPGA的动作,如单步执行,多步执行或断点等,因此必需将ClockSource做适当的降频或暂停等处置的控制。ClockGen是由HWboard所提供的时脉讯号。PeripheralIC泛指一般的周边电路,其可具有ClockinputorClockoutput,ControlBus,DataBus等讯号,并可与SlaveFPGA相连结,另外,由于SlaveFPGA运作可能会降频或暂停的情况,因此PeripheralIC的Clock必须受Clockcontroller所控制。ControlBuffer是ControlChip与SlaveFPGA之间的资料存取的缓存器,根据每个时脉,将讯号输入至SlaveFPGA,为确保SlaveFPGA的工作不会因为ControlChip与Hostcomputer之间的资料传送时而中断,因此ControlBuffer中存有多个时脉所需的资料,以FIFO的形式送到SlaveFPGA,依实际情况,此Buffer最小size可为1,最大可至数十K到数百K级以上。BufferController&ContentTable这是关于Level1及Level2Buffers的资料的讯息。包含两个Buffer内资料的多寡,格式是否availableforaccess,资料与时间的相关资料,在SlaveFPGA要写入资料到Buffers中时也必须更新contentTable中的字段,而ControlChip将资料搬回HostComputer时也必须参考ContentTable中的资料并依情况加以更新。Multiplexer是用来切换的数据是要传至Level1BufferorLevel2Buffer的电路。当Hostcomputer与Level1Buffer之间没有数据传输时则multiplexer指向Level1Buffer,否则就指向Level2Buffer,其动作由ControlChip所控制。Level1Buffer为Volatile内存(如SRAM或DRAM),其功能为储存SlaveFPGA所需要回传至Hostcomputer的资料,以供其系统软件的使用,此一Buffer为hostcomputer与HW之间无数据传输的时候所使用一旦此Buffer的资料过多时就必须以Burst的方式一次回传至Hostcomputer,而其内容状态则存在Buffercontroller&contenttable之中,如此可以减少HostcomputerandHW之间的传输次数,以增加效率。Level2Buffer其功能与Level1Buffer相同,差别在于当HostComputer与Level1Buffer进行资料回传的动作时,假如SlaveFPGA因为任何因素不能将其动作暂停,此时其动作与状态必须继续且被记录时,其资料就会被存到Level2Buffer中,待Level1Buffer资料传完后,且可再被写入时,此时SlaveFPGA的资料转存至Level1buffer这时Level2Buffer的资料才被回传至Hostcomputer由图8所示,依照流程图再做一详加的解释,ControlChip61将收到的I/F60讯号,取出时脉讯号与时脉控制讯号送至ClockGenSystem62用以控制时脉来源与时脉动作,此时脉来源可来自ControlChip61(fromI/F60),由HWboard所提供的时脉讯号以及PeripheralIC。控制时脉动作将时脉来源做适当的降频或暂停等处置,以便执行SlaveFPGA66的单步执行,多步执行或断点等的动作。ControlChip61同时将收到的待测资料与控制讯号存放在Data/ControlBuffer63内。Data/ControlBuffer63根据每个时脉,将讯号输入至SlaveFPGA66。硬件板上亦提供周边电路与SlaveFPGA66相连结,由于SlaveFPGA66运作可能会降频或暂停的情况,因此PeripheralIC的Clock必须受ClockGenSystem62所控制。SlaveFPGA66所产生的输出讯号,根据BufferControl&ContentDescriptionTable64所包含两个Buffer内资料的多寡,格式是否availableforaccess,资料与时间的相关资料,加以判断处理并将输出讯号传至level1Buffer68orlevel2Buffer69,并用Multiplexer67来切换传送资料的路径。在SlaveFPGA66要写入资料到Buffers中时也必须更新Buffercontrol&contentDescriptionTable64中的字段。为避免HostcomputerandHW之间的传输次数过于频繁,因此使用两个Buffer(Level1Buffer68andLevel2Buffer69),并以Burst的方式将Buffer内的资料回传至Hostcomputer。当Level1Buffer的资料过多时就经由ControlChip61将资料回传至Hostcomputer,此时SlaveFPGA26的输出资料就会被存到level2Buffer中,待Level1Buffer68资料传完后,BufferControl&ContentDescriptionTable64亦必须更新(由Controlchip61更新Buffercontrol&contentDescriptionTable64),且可再被写入时,SlaveFPGA66的资料转存至Level1Buffer68,而Leve62Buffer69的资料则被回传至Hostcomputer。配合上图8的软件验证平台,其资料传回Hostcomputer后,使用者可在WaveformDisplay/Checker观测比较SlaveFPGA输出讯号,或经由Tunnel至使用者程序UserProgram再处理其回传的资料。综上所述,本发明所述的IC电路验证平台,不仅可达预期的实用功效外并且为前所未见的设计,已符合专利法发明的要件,于是依法具文申请之。为此,谨请贵审员详予审查,并祈早日赐请专利,至感德便。以上已将发明作一详细说明,惟以上所述者,仅为本发明之较佳实施例而已,当不能限定本发明实施之范围,即凡一本发明申请专利范围所作之均等变化与修饰等,皆应属本发明之专利涵盖范围意图保护之范畴。权利要求1.一种IC电路验证平台,其特征在于,其包括有一使用者端,使用者将指令输入至软件平台内,以执行所下指令的程序;一软件平台,将执行使用者所输入的指令,并依照输入的指令要求硬件及数据处理系统做出该指令指示的动作,且同时将输入及输出数值传送至数据处理系统;一硬件平台,其是主要为装设测试仿真电路,且主控制芯片接收处理软件给予的指示要求,对仿真电路进行测试;一数据处理系统,其接收到软件所下的指令要求进行处理资料及输出输入讯号的数值于显示装置呈现。2.如权利要求1所述的一种IC电路验证平台,其软件平台包括有以下四个单元一使用者及硬件沟通接口,其是为使用者指令与软件及硬件间的沟通平台,彼此间做一程序语言沟通;一测试修改资料接口,其是可实时性的测试硬件上所负载的FPGA仿真电路,亦可实时针对FPGA仿真电路提供修改测试资料的接口。一资料分析接口,其是将输入输出的讯号(数值)做一分析处理,并将资料传送至影像呈现接口;一影像呈现接口,其是将资料分析接口传送的资料做一图像化编辑处理传送至数据处理系统内显示装置显示供以使用者观察。3.如权利要求1所述的一种IC电路验证平台,其硬件包括有以下四种单元一控制芯片,其是控制测试讯号产生、暂存区接口处理、FPGA仿真电路测试数据传输的整合式控制芯片;一控制缓存器,其是整合测试资料堆栈至暂存区,并加以监控及交换处理资料;一暂存区置放装置,其是给予测试输出、输入讯号的资料交换及暂存的空间;一FPGA装设装置,其供以FPGA仿真电路芯片负载的装置,以供仿真电路测试。4.如权利要求1所述的一种IC电路验证平台,其数据处理系统为PC个人计算机、或大型计算机、或PDA、或手机或PDA手机。5.如权利要求2所述的一种IC电路验证平台,其软件平台可细分为一使用者程序UserProgram,其是将使用者指令透过应用程序Tunnel进行电路测试;一应用程序Tunnel,为使用者程序UserProgram软件间的沟通接口;一波形编辑平台WaveformEditor,是将输入输出讯号的数值加以编辑成波型讯号的数值;一资料储存平台DataStorage,是将输入输出讯号的数值加以暂存及储存;一波形显示/比对平台WaveformDisplay/Checker,是将输入输出讯号的数值加以比对分析;一接口应用软件InterfaceApplicationProgram,将待测试资料与硬件控制讯号放置在数据处理系统的内存;一运作系统OperatingSystem,掌管软件整体运作;一转换驱动装置Driver,将转为软硬件接口I/F的资料收送格式并送至硬件端;一软硬件接口I/F,为软硬件沟通接口。6.如权利要求2所述的一种IC电路验证平台,其硬件平台可细分为一软硬件接口I/F,为软硬件沟通接口;一控制芯片ControlChip,控制硬件内部整体的整合运作;一时脉显示系统ClockGenSystem,控制时脉来源与时脉动作;一控制缓存器ControlBuffer,将收到的待测资料与控制讯号的存放处,并根据每个时脉,将讯号输入至从属FPGASlaveFPGA;一缓存器管理者&目录表BufferController&ContentTable,将测试资料与时间的相关资料,加以判断处理及更新并将输出讯号传至第一层缓存器Level1Bufferor第二层缓存器Level2Buffer;一周边控制单元芯片PeripheralChip,提供测试脉波;一从属FPGASlaveFPGA,置放仿真电路FPGA的装置处;一多路复用器Mux,是用来切换的资料是要传至第一层缓存器Level1Bufferor第二层缓存器Level2Buffer的电路;一第一层缓存器Level1Buffer,第一层资料存放空间;一第二层缓存器Level2Buffer,第二层资料存放空间。7.如权利要求5或6所述的一种IC电路验证平台,其I/F软硬件接口为parallel接口。8.如权利要求7所述的一种IC电路验证平台,其parallel接口为PCI、或为PCI-X。9.如权利要求5或6所述的一种IC电路验证平台,其I/F软硬件接口为serial接口。10.如权利要求9所述的一种IC电路验证平台,其serial接口为USB、或为1394、或为Ethernet、或PCIExpress、或GigaEthernet。11.如权利要求5或6所述的一种IC电路验证平台,其I/F软硬件接口为无线接口。12.如权利要求11所述的一种IC电路验证平台,其无线接口是为UltraWideBand或802.11x。全文摘要本发明是一种IC电路验证平台,此平台是包括有使用者端,其是为使用者将指令输入至软件平台内,以执行所下指令的程序;一软件平台,将执行使用者所输入的指令,并依照输入的指令要求硬件及数据处理系统做出该指令指示的动作,且同时将输入及输出数值传送至数据处理系统;一硬件平台,其是主要为装设测试仿真电路,且主控制芯片接收处理软件给予的指示要求,对仿真电路进行测试;一数据处理系统,其接收到软件所下的指令要求进行处理资料及输出输入讯号(数值)于显示装置呈现,此平台减少观查仪器的装设及修改测试数据以达到便利、迅速与准确的电路设计验证工作。文档编号G06F17/50GK1825322SQ200510007449公开日2006年8月30日申请日期2005年2月21日优先权日2005年2月21日发明者张莉菁申请人:北瀚科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1