專利名稱::改進(jìn)的計(jì)算機(jī)化擴(kuò)展的設(shè)備和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及半導(dǎo)體設(shè)計(jì)和集成電路自動(dòng)設(shè)計(jì)領(lǐng)域。更明確地說,本發(fā)明提出了一種用于創(chuàng)建用于特別是由高級(jí)語(yǔ)言描述的IC設(shè)計(jì)的擴(kuò)展組件的改進(jìn)方法和設(shè)備。
背景技術(shù):
:目前有多種計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具用來設(shè)計(jì)和制造集成電路(IC)。這些計(jì)算機(jī)輔助或自動(dòng)IC設(shè)計(jì)工具包括解決綜合和優(yōu)化過程二者的模塊或程序。一般來說,綜合被定義為一種把高級(jí)抽象轉(zhuǎn)化為低級(jí)抽象的自動(dòng)方法,并且包括在不同級(jí)別的抽象發(fā)生的多個(gè)綜合技術(shù)的任意所需組合。所謂“行為綜合”是一種設(shè)計(jì)工具,其中能過向計(jì)算機(jī)程序中輸入所需IC的行為(如輸入、輸出、功能)以設(shè)計(jì)一個(gè)能夠展示所需行為的設(shè)備。這種工具允許IC設(shè)計(jì)者制造出越來越復(fù)雜和多功能的設(shè)備,有時(shí)使用到的邏輯門達(dá)到數(shù)以千萬計(jì),卻只有很少甚至沒有錯(cuò)誤;與其他人工設(shè)計(jì)技術(shù)如手工布線相比只需要極短的時(shí)間周期。綜合過程的實(shí)施例涉及不同級(jí)別的抽象,包括結(jié)構(gòu)級(jí)綜合和邏輯級(jí)綜合,這兩種方法并入IC設(shè)計(jì)過程。結(jié)構(gòu)級(jí)綜合主要是關(guān)于電路的宏觀結(jié)構(gòu),它利用功能塊(包括涉及內(nèi)部功能及其互連模塊的相關(guān)信息)。結(jié)構(gòu)級(jí)綜合包括寄存器傳輸級(jí)綜合,這種綜合具有諸如寄存器和運(yùn)算器的多比特組件。另一方面,邏輯級(jí)綜合是關(guān)于門級(jí)的設(shè)計(jì)。邏輯級(jí)綜合決定電路的微觀結(jié)構(gòu),并且把邏輯模型轉(zhuǎn)變成元件庫(kù)的實(shí)例的互連。邏輯級(jí)綜合的結(jié)果是邏輯設(shè)備以及他們的互連的網(wǎng)表。從多個(gè)商業(yè)賣主能夠得到邏輯級(jí)綜合器(所謂的綜合“引擎”)。綜合過程通常從設(shè)計(jì)者基于目標(biāo)設(shè)備所要實(shí)現(xiàn)的功能編譯一組IC規(guī)范開始。然后這些規(guī)范由諸如從紐約的IEEE可得到的VHDL或者加利福尼亞州圣克拉拉的CadenceDesignSystemInc.可得的Verilog的硬件描述語(yǔ)言(HDL)(超高速集成電路(VHSIC)硬件描述語(yǔ)言)編碼。這些規(guī)范按照所需的輸入輸出和功能以及可用內(nèi)存或時(shí)鐘速度來定義IC。設(shè)計(jì)者通過HDL生成一個(gè)包括門的列表及其互連的“網(wǎng)表”,該網(wǎng)表是所需IC的電路描述。最日公告的專利號(hào)為No.6,324,678的Dangelo等人的專利,題目為“MethodAndSystemForCreatingAndValidatingLowLevelDescriptionOfElectronicDesign”,該專利公開了一種從高級(jí)描述和規(guī)范生成復(fù)雜的數(shù)字設(shè)備的更低級(jí)結(jié)構(gòu)描述的方法。由于IC設(shè)計(jì)技術(shù)已經(jīng)很成熟,更多的努力放在如何使得設(shè)計(jì)過程更直觀和易于理解。這些努力產(chǎn)生了與上述邏輯綜合工具(其目標(biāo)在于設(shè)計(jì)過程的低級(jí)階段)相比應(yīng)用于高抽象級(jí)的大量行為綜合或設(shè)計(jì)工具。這些高級(jí)工具通常集中在所謂的用戶配置性,即為用戶/設(shè)計(jì)者提供方便快速地生成包括所有想要得到的特性和功能的IC(如,處理器)設(shè)計(jì)的能力。由Assignee制造的ARChitectTM設(shè)計(jì)環(huán)境(軟件)例證了用戶可配置IC設(shè)計(jì)工具技術(shù)目前的狀況;參見WIPO公布號(hào)No.WO0022553的討論,該討論是關(guān)于用戶可配置處理器設(shè)計(jì)工具的基本特性。擴(kuò)展性這些高級(jí)設(shè)計(jì)工具的關(guān)鍵在于增加或者擴(kuò)展現(xiàn)有的處理器硬件配置的能力。一般來說,可以許多不同的方式擴(kuò)展硬件IP設(shè)計(jì)。例如,對(duì)于像這里受讓人所開發(fā)和銷售的ARCtargetTM這樣的處理器IP內(nèi)核,通過添加諸如指令、核心寄存器、內(nèi)存映射寄存器或外圍組件的IP組件擴(kuò)展硬件IP設(shè)計(jì)。在設(shè)計(jì)過程中,設(shè)計(jì)者可以把他們的擴(kuò)展組件集成到維持多個(gè)擴(kuò)展組件的描述的軟件庫(kù)中。已經(jīng)提出了多種擴(kuò)展處理器硬件的方法,其中一種方法是1988年8月9日公告的專利號(hào)No.4,763,242的Lee等人的美國(guó)專利,題目為“Computerprovidingflexibleprocessorextension,flexibleinstructionsetextension,andimplicitemulationforupwardsoftwarecompatibility”。該專利描述了一種計(jì)算機(jī)系統(tǒng)和用于允許指令集擴(kuò)展的相關(guān)指令集,以及所謂的“輔件”(擴(kuò)展了處理器性能的硬件)??墒?,Lee的“處理器”分布在幾個(gè)離散的組件中,并且在任一組件的設(shè)計(jì)過程中沒有辦法提供用戶可配置的高級(jí)抽象。2002年5月14日公告的專利號(hào)No.6,389,528的Pappalardo等人的美國(guó)專利,題目為“Processorwithacontrolinstructionforsendingcontrolsignalswithoutinterpretationforextensionofinstructionset”,該專利公開了一種包含操作單元interpretationforextensionofinstructionset”,該專利公開了一種包含操作單元和操作符單元的指令集的處理器。對(duì)于一個(gè)具體的控制指令,操作符部分沿著與正常路徑不同的旁路被發(fā)送到操作區(qū),其中在正常路徑中解釋正常指令。通過這種方式,可以完成指令集的擴(kuò)展用于將指令集裁減成用戶自己的需求。和上面Lee的類似,Pappalardo在處理器設(shè)計(jì)過程中決不提供用戶可配置的高級(jí)抽象。2000年2月29日公告的專利號(hào)為No.6,032,253,Cashman等人的美國(guó)專利,題目為“Dataprocessorwithmultiplecompareextensioninstruction”,該專利公開了一種可以根據(jù)多種協(xié)議處理不同的數(shù)據(jù)流的可編程數(shù)字通信設(shè)備。這種設(shè)備配備了一種包括具有擴(kuò)展指令集的多個(gè)可編程處理器的協(xié)處理器,所述指令集包括能夠提供零塞入、CRC校驗(yàn)計(jì)算、局部比較、條件移動(dòng)以及Trie遍歷等操作的指令。這些指令允許協(xié)處理器的處理器更有效地執(zhí)行程序?qū)崿F(xiàn)數(shù)字通信協(xié)議。由于每個(gè)處理器是可編程的,因此可以適應(yīng)協(xié)議標(biāo)準(zhǔn)的變化。但是沒有為用戶提供可配置性或可擴(kuò)展性的機(jī)制,也可以參見美國(guó)專利No.6,175,915和No.6,065,027。WIPO2000年4月20日公布的專利No.WO0022553,題目為“MethodAndApparatusForManagingTheConfigurationAndFunctionalityOfASemiconductorDesign”,該專利公開了一種利用硬件描述語(yǔ)言(HDL)在用戶操作的設(shè)計(jì)環(huán)境下管理集成電路(IC)設(shè)計(jì)的配置、設(shè)計(jì)參數(shù)和功能的基本方法。在設(shè)計(jì)過程中,設(shè)計(jì)者可以交互地增加、減少或生成指令,通過使用基于用戶編輯的指令集和輸入的腳本生成IC設(shè)計(jì)的定制的HDL描述。然后,定制的HDL描述可以被用作生成用于模擬和/或邏輯級(jí)綜合的“文件編寫”的基礎(chǔ)。這種方法進(jìn)一步提供了生成諸如微處理器或數(shù)字信號(hào)處理器的一個(gè)完整設(shè)備的HDL模型的能力。同時(shí)還提供了用于不同類型擴(kuò)展的庫(kù)機(jī)制。硬件/軟件協(xié)同設(shè)計(jì)一般來說,處理器設(shè)計(jì)和測(cè)試的另一種方法是指硬件/軟件協(xié)共設(shè)計(jì)。這種方法產(chǎn)生一個(gè)處理器設(shè)計(jì)方案以及一種或多種工具(如匯編器、編譯器、仿真器等),這在某些方面是特別生成(以及定制的)硬件設(shè)計(jì)方案。硬件設(shè)計(jì)的變化一般來說使得軟件工具也發(fā)生變化。例如,1999年9月7日公告的專利No.5,949,993的Fritz的美國(guó)專利,題目為“MethodForTheGenerationSoftwareDevelopmentToolsToBeUsedInHardwareAndSoftwareDevelopment”,該專利公開了一種可以生成用于硬件和軟件開發(fā)的軟件開發(fā)工具的方法。通過處理諸如微處理器的可編程電子器件的硬件描述和語(yǔ)法描述以及生成硬件和軟件開發(fā)者有用的一系列開發(fā)工具可以使用該發(fā)明。這些工具包括例如仿真器、匯編器、解碼器、解匯編器、行為語(yǔ)義及屬性語(yǔ)法。2002年11月5日公告的專利No.6,477,683的Killian等人的美國(guó)專利,題目為“AutomatedProcessorGenerationSystemForDesigningAConfigurableProcessorAndMethodForTheSame”,描述了一種自動(dòng)處理器設(shè)計(jì)工具。這種工具包括由標(biāo)準(zhǔn)語(yǔ)言描述的定制的處理器指令集擴(kuò)展,用于開發(fā)目標(biāo)指令集的可配置的定義、用于實(shí)現(xiàn)該指令集所必需的電路的硬件描述語(yǔ)言的描述;以及可以用來開發(fā)處理器的應(yīng)用程序并且進(jìn)行驗(yàn)證的開發(fā)工具如編譯器、匯編器、調(diào)試器和仿真器。能夠用諸如面積、功耗、速度等的不同的標(biāo)準(zhǔn)對(duì)處理器電路的實(shí)施進(jìn)行優(yōu)化。一旦已經(jīng)開發(fā)出處理器配置,就可以測(cè)試該處理器配置并且將該處理器配置輸入到修改后以反復(fù)優(yōu)化處理器實(shí)施的系統(tǒng)中。然而,在上面提到的‘683專利中的“描述”語(yǔ)言(TIE或者Tensilica指令擴(kuò)展語(yǔ)言)復(fù)雜并且限制在它能定義的指令類型中。相比而言,與TIE/TIE2不同,通過在HDL定義指令可以整個(gè)完全控制使用的HDL構(gòu)造,因此也控制綜合,包括推斷或者示出用于綜合工具的組件以得到優(yōu)選實(shí)施的能力。同樣的,2002年11月5日公告的專利No.6,477,697的Killian等人的美國(guó)專利,題目為“AddingComplexInstrcutionExtensionsDefinitionOfATargetInstructionSet,AndHdlDescriptionOfCircuitryNecessaryToImplementTheInstructionSet,AndDevelopmentAndVerificationToolsForTheInstructionSet”,也公開了一種自動(dòng)處理器設(shè)計(jì)工具。該專利中公開的標(biāo)準(zhǔn)語(yǔ)言能夠處理擴(kuò)展指令集,該指令集可以修改處理器狀態(tài)或使用可配置處理器。除了上述的,在硬件/軟件協(xié)同設(shè)計(jì)內(nèi)容中已經(jīng)提出處理器的多種不同的行為(如指令集)和結(jié)構(gòu)描述。參見例如,“EXPRESSIOAnADLForSystemLevelDesignExploration,”TechnicalReportNo.98-29,日期1998年9月,以及“LISA-MachineDescriptionLanguageAndGenericMachineModelForHw/SwCo-Design”Zivojnovic等人,1996年10月。同時(shí)參見Hadjiyiannis等人,“ISDLAnInstructionSeDescriptionLanguageForRetargetablility”,DAC,1997年。Cadence公司的nML語(yǔ)言也很著名,參見Hartoog等人的“GenerationofSoftwareToolsFromProcessorDescriptionsforHardware/SoftwareCodesign”ACM,1997年6月pp.303-306。Leupers等人的“RetargetableCodeGenerationbasedonStructuralProcessorDescriptions”DesignAutomationforEmbeddedSystem,vol.3,no.1,1998年1月,該文獻(xiàn)公開了一種相類似的協(xié)同設(shè)計(jì)的方法,其描述了MIMOLA/TREEMOLA設(shè)計(jì)語(yǔ)言和工具箱。一般來說,MIMOLA方法比Expression、nML、LISA或ISDL等方法更類似于硬件描述語(yǔ)言(如VHDL),這些方法在更大程度上適合周期精確(指令)模型?,F(xiàn)有技術(shù)的缺點(diǎn)盡管現(xiàn)有技術(shù)中有大量的處理器設(shè)計(jì)方法,這些方法一般都有一個(gè)或幾個(gè)明顯的缺點(diǎn),特別是在便于用戶向目標(biāo)設(shè)計(jì)中添加擴(kuò)展組件這一部分。第一,當(dāng)向現(xiàn)有的硬件IP添加擴(kuò)展部件時(shí),通常設(shè)計(jì)者能夠很好地理解擴(kuò)展本身,但是現(xiàn)有的硬件接口可能很復(fù)雜,難以理解。特別是在處理器設(shè)計(jì)中為用戶擴(kuò)展指令設(shè)計(jì)有效界面的時(shí)候。第二,試圖幫助生成擴(kuò)展硬件的工具必須要在簡(jiǎn)化自動(dòng)化過程使得可以使用和易得(特別是要生成簡(jiǎn)單的擴(kuò)展)之間平衡,但在當(dāng)需要時(shí)也允許足以產(chǎn)生復(fù)雜擴(kuò)展的功能。這就意味著,或者擴(kuò)展的復(fù)雜性受到限制,或者自動(dòng)控制很復(fù)雜,這使得產(chǎn)生擴(kuò)展很困難而且不直觀。第三,擴(kuò)展部件一般是設(shè)計(jì)為與諸如具體的處理器內(nèi)核或者變量的預(yù)定義的目標(biāo)架構(gòu)接口。為某一個(gè)處理器內(nèi)核設(shè)計(jì)的擴(kuò)展部件如一個(gè)擴(kuò)展指令,與任何其它處理器內(nèi)核將會(huì)不兼容。第四,使用不同的語(yǔ)言對(duì)硬件IP進(jìn)行模型化,一般來說,描述語(yǔ)言(諸如,HDL)用來定義可綜合模型,用C/C++定義行為模型。如果用一種通用語(yǔ)言生成擴(kuò)展IP部件,功能性通常會(huì)受到限制,因?yàn)橛幸粋€(gè)附加的語(yǔ)言轉(zhuǎn)換過程所以實(shí)施也不是最優(yōu)的。這也使得支持一種新的建模語(yǔ)言很困難。第五,使用不同級(jí)抽象用幾種不同的架構(gòu)模型實(shí)現(xiàn)硬件IP模型。例如,仿真模型可以是指令精確或是周期精確,而硬件模型可以采用行為HDL或綜合HDL。前面描述的現(xiàn)有技術(shù)系統(tǒng)一般不支持不同的架構(gòu)模型和具有不同級(jí)抽象的模型。第六,可以以許多不同的方式擴(kuò)展硬件IP設(shè)計(jì),諸如,為處理器IP內(nèi)核添加指令、核心寄存器和內(nèi)存映射寄存器。通常,由于支持不同擴(kuò)展類型的復(fù)雜性,硬件IP的擴(kuò)展被限制在有限的幾種接口類型。最后,當(dāng)產(chǎn)生硬件擴(kuò)展時(shí),除了生成模型外,還必須考慮設(shè)計(jì)實(shí)現(xiàn)中很多其他方面的問題。例如,硬件擴(kuò)展需要驗(yàn)認(rèn)、文檔化、或者可能地綜合腳本。處理器擴(kuò)展可能需要匯編器和編譯器擴(kuò)展以及支持文件。通用的現(xiàn)有技術(shù)方法依靠不同的機(jī)制生成仿真模型和支持文件,從而導(dǎo)致了效率低和潛在的不兼容?;谝陨纤觯浅P枰糜诟倪M(jìn)擴(kuò)展集成電路(如處理器)設(shè)計(jì)的方法和設(shè)備。理想的情況下,改進(jìn)的方法和設(shè)備具有一下特點(diǎn)(i)便于實(shí)施新的擴(kuò)展;(ii)允許在各種相同或不同的平臺(tái)和結(jié)構(gòu)上進(jìn)行擴(kuò)展;(iii)支持不同類型的仿真模型和其它開發(fā)工具。這些改進(jìn)方法也易于使用,在復(fù)雜性和抽象級(jí)別上靈活,并且能夠適應(yīng)多種不同的建模語(yǔ)言。
發(fā)明內(nèi)容本發(fā)明通過使用一種交互式計(jì)算機(jī)程序提供一種管理和擴(kuò)展集成電路設(shè)計(jì)的配置的自動(dòng)裝置,可以滿足以上所述的需求。本發(fā)明的第一方面公開了一種計(jì)算機(jī)化處理器設(shè)計(jì)工具,適于允許增加用戶配置的擴(kuò)展,所述擴(kuò)展在多個(gè)不同的目標(biāo)架構(gòu)上是有用的。在一示例性實(shí)施方式中,擴(kuò)展包括抽象語(yǔ)言(如XML)表示,每一個(gè)至少參考一種本地目標(biāo)架構(gòu)模板。本發(fā)明第二方面公開了一種計(jì)算機(jī)化的處理器設(shè)計(jì)工具,適于允許使用不同級(jí)別的設(shè)計(jì)抽象增加用戶配置的擴(kuò)展。在一示例性實(shí)施方式中,提供了三種級(jí)別的抽象(i)高級(jí)抽象,其中依照用戶界面的輸入自動(dòng)地執(zhí)行與擴(kuò)展有關(guān)的硬件;(ii)中間級(jí)抽象,其中依照用戶界面的定義實(shí)現(xiàn)擴(kuò)展的至少第一部分,并且為用戶提供簡(jiǎn)化的擴(kuò)展界面,從而允許創(chuàng)建定制的功能;以及(iii)低級(jí)抽象,其中與擴(kuò)展相關(guān)的所有內(nèi)部信號(hào)通過用戶界面提供給用戶,用戶界面允許用戶創(chuàng)建復(fù)雜的擴(kuò)展。本發(fā)明第三方面公開了一種用于擴(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化工具,通常包含以置標(biāo)語(yǔ)言表述的至少一抽象出的且用戶配置的擴(kuò)展定義,部件定義至少參考以本地語(yǔ)言表述的至少一結(jié)構(gòu)。在一示例性實(shí)施方式中,置標(biāo)語(yǔ)言包含可擴(kuò)展標(biāo)記語(yǔ)言(XML),并且結(jié)構(gòu)包含以硬件描述語(yǔ)言或者行為語(yǔ)言表述的模板。本發(fā)明的第四方面描述了一種產(chǎn)生用于在計(jì)算機(jī)化處理器設(shè)計(jì)中使用的擴(kuò)展部件的方法,這種方法通常包含從多個(gè)類型中選擇至少一擴(kuò)展類型,這種擴(kuò)展類型要包含以第一語(yǔ)言表述的擴(kuò)展定義;從用戶獲得磁于所述擴(kuò)展所需功能的邏輯;參考以第二語(yǔ)言表述的至少一擴(kuò)展模板;以及基于擴(kuò)展定義、用戶邏輯、以及擴(kuò)展模板三者中至少一部分產(chǎn)生的擴(kuò)展部件。在一示例性實(shí)施方式中,擴(kuò)展部件存儲(chǔ)在基本上以XML語(yǔ)言表述的數(shù)據(jù)庫(kù)中。本發(fā)明的第五方面描述了一種對(duì)數(shù)字處理器計(jì)算機(jī)化設(shè)計(jì)有用的改進(jìn)的擴(kuò)展部件,該部件包含適用于產(chǎn)生用于至少一擴(kuò)展類型控制邏輯的至少一擴(kuò)展模板;適用于允許測(cè)試所述擴(kuò)展部件的至少一擴(kuò)展測(cè)試模板;以及描述所述擴(kuò)展部件至少一部分功能的用戶提供的擴(kuò)展邏輯。在一示例性實(shí)施方式中,擴(kuò)展部件還包含用戶提供的擴(kuò)展測(cè)試代碼以及部件集成文件,并且所述控制邏輯包含用于下述的實(shí)例的控制邏輯(i)擴(kuò)展ALU;(ii)條件代碼;以及(iii)擴(kuò)展寄存器。本發(fā)明的第六方面描述一種產(chǎn)生用于計(jì)算機(jī)化的處理器設(shè)計(jì)中使用的擴(kuò)展部件的方法,包含選擇由擴(kuò)展部件使用的至少一擴(kuò)展類型;選擇與至少一擴(kuò)展類型相關(guān)的多個(gè)配置選項(xiàng);基于選擇步驟的至少一部分產(chǎn)生至少一模板;基于所述至少一模板的至少一部分產(chǎn)生定制界面;通過所述定制界面獲得邏輯;以及組合所述邏輯和所述至少一模板產(chǎn)生所述擴(kuò)展部件。本發(fā)明的第七方面描述了一種用于擴(kuò)展集成電路設(shè)計(jì)的改進(jìn)的計(jì)算機(jī)化工具,該工具通常包含以通用語(yǔ)言表述的且至少一抽象的和可配置的擴(kuò)展部件定義,所述部件定義適用于至少單獨(dú)地參考多個(gè)結(jié)構(gòu),所述各結(jié)構(gòu)是以不同的本地語(yǔ)言表述的。在一示例性實(shí)施方式中,至少一結(jié)構(gòu)與還不存在的目標(biāo)架構(gòu)相關(guān)聯(lián);從而該工具有利地制成只要模板(界面)對(duì)于將來要開發(fā)的任何新目標(biāo)架構(gòu)是可用的,那么就與該任何新目標(biāo)架構(gòu)“向前兼容”。本發(fā)明的第八方面描述了工作的方法,這種方法通常包含向至少一用戶提供設(shè)計(jì)環(huán)境,以及與所述設(shè)計(jì)環(huán)境兼容的擴(kuò)展工具;以及以預(yù)定的格式向所述至少一用戶提供處理器指令,所述格式適用與所述工具和設(shè)計(jì)環(huán)境一起使用。在一示例性實(shí)施方式中,該格式包括預(yù)定的或者保留的操作碼。本發(fā)明的第九方面描述了一種用于有效地?cái)U(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化的工具,該工具通常包含以通用語(yǔ)言表述的且至少一抽象的和可配置化的擴(kuò)展部件定義,該擴(kuò)展部件定義適用于產(chǎn)生支持文件。在一示例性實(shí)施方式中,支持文件由下述文件中的一個(gè)或者多個(gè)構(gòu)成(i)測(cè)試硬件支持文件;測(cè)試軟件支持文件;以及(iii)匯編/編譯支持文件。這些文檔的自動(dòng)提供有利地減少了擴(kuò)展(和處理器設(shè)計(jì))產(chǎn)生和測(cè)試周期。本發(fā)明的第十方面描述了一種用于產(chǎn)生處理器設(shè)計(jì)的計(jì)算機(jī)化系統(tǒng),該系統(tǒng)通常包含計(jì)算機(jī)化的父設(shè)計(jì)環(huán)境;擴(kuò)展工具,適用于與所述的環(huán)境一起工作,所述工具適用于通過以下的方式來產(chǎn)生擴(kuò)展部件選擇與所述部件一起使用的至少一擴(kuò)展類型;選擇與所述至少一擴(kuò)展類型相關(guān)的多個(gè)配置選項(xiàng);基于所述選擇步驟的至少一部分產(chǎn)生至少一模板;基于所述至少一模板產(chǎn)生用戶界面;通過所述用戶界面獲得邏輯;以及組合所述邏輯和所述至少一模板以產(chǎn)生所述擴(kuò)展部件。在一示例性實(shí)施方式中,設(shè)計(jì)環(huán)境包含適于在計(jì)算機(jī)中運(yùn)行的面向?qū)ο蟓h(huán)境,以及可用的擴(kuò)展類型包含ALU、條件代碼、輔助寄存器、或者核心寄存器中至少之一。擴(kuò)展部件和一個(gè)或多個(gè)模板是以置標(biāo)語(yǔ)言表述的;還將適于存儲(chǔ)他們的置標(biāo)語(yǔ)言數(shù)據(jù)庫(kù)提供為系統(tǒng)的一部分。圖1所示為依照本發(fā)明擴(kuò)展設(shè)計(jì)的一般性方法的邏輯流程圖;圖2所示用于抽象與設(shè)計(jì)相關(guān)的模型界面的方法的示例性實(shí)施方式的圖形表示;圖2a所示由允許多個(gè)擴(kuò)展實(shí)例的擴(kuò)展定義產(chǎn)生的示例性GUI的圖形表示;圖3所示為圖2的擴(kuò)展部件(界面)的示例性設(shè)計(jì)工具(如ARChitect)實(shí)施的流程圖;圖4所示為由圖3的設(shè)計(jì)工具產(chǎn)生的一個(gè)用戶界面的圖形表示;圖5所示為依照本發(fā)明的示例性上下文相關(guān)的編輯器GUI的圖形表示,示出了在VHDL語(yǔ)言中的定制擴(kuò)展應(yīng)用的實(shí)施例;圖6所示為示例性設(shè)計(jì)環(huán)境GUI的圖形表示,示出了添加到電路設(shè)計(jì)中采樣擴(kuò)展部件;圖7所示為在系統(tǒng)顯示中組合有擴(kuò)展元件的設(shè)計(jì)環(huán)境GUI的圖形表示;圖8所示為依據(jù)本發(fā)明在設(shè)計(jì)環(huán)境(如ARChitect)IP庫(kù)中設(shè)置擴(kuò)展元件的一示例性實(shí)施方式的圖形表示;圖9所示為在擴(kuò)展ALU模板和用戶提供的ALU擴(kuò)展邏輯(包括向處理器內(nèi)核提供的信號(hào)集)之間的示例性界面的邏輯框圖;圖10所示為在擴(kuò)展條件代碼(cc)模板和用戶之間的示例性硬件接口的邏輯框圖;圖11所示為依照本發(fā)明的示例性擴(kuò)展核心寄存器接口的邏輯框圖;圖12所示為用于擴(kuò)展核心寄存器的示例性模板邏輯的示意圖;圖13所示為輔助寄存器擴(kuò)展模板的典型接口的邏輯框圖;圖14所示為用于擴(kuò)展輔助寄存器的示例性模板邏輯的示意圖;圖15所示為擴(kuò)展工具的邏輯表示,示出了工具范圍內(nèi)通過部件的示例性信號(hào)傳播。具體實(shí)施例方式現(xiàn)在參照附圖進(jìn)行說明,其中在整個(gè)附圖中相同數(shù)字表示相似部件。這里所用到的,術(shù)語(yǔ)“計(jì)算機(jī)程序”、“例程”、“子例程”以及“算法”實(shí)質(zhì)上涵義相同,“計(jì)算機(jī)程序”通常(但是不排它地)用于說明后三個(gè)要素的集合或者組??梢酝ㄟ^任何包括諸如面向?qū)ο蟮恼Z(yǔ)言實(shí)施該程序、例程/子例程和算法。但是,通常這里用到的所有上述術(shù)語(yǔ)均表示涵蓋為實(shí)現(xiàn)特定目的按順序執(zhí)行的任何系列的邏輯步驟。這里用到的術(shù)語(yǔ)“IP”通常是指包括但不限于IC設(shè)計(jì)、方法、處理、原理圖、代碼、硬件描述語(yǔ)言模型、配置(“構(gòu)造”)、腳本、邏輯級(jí)描述以及通過單獨(dú)或者系統(tǒng)使用或者產(chǎn)生的軟件對(duì)象和部件(以及其它描述)的智力成果。這里所用的,術(shù)語(yǔ)“IP庫(kù)”通常是指定義IP部件的知識(shí)庫(kù),該知識(shí)庫(kù)可以是一個(gè)或者多個(gè)用戶可以訪問的任何字面形式。這里所用的,術(shù)語(yǔ)“擴(kuò)展”和“擴(kuò)展部件”通常是指一個(gè)或者多個(gè)邏輯功能和/或可以進(jìn)行選擇性配置和/或添加到IC設(shè)計(jì)中的部件。例如,擴(kuò)展可以包括諸如在桶形移位器中循環(huán)、運(yùn)算和邏輯移位的擴(kuò)展指令(或者根據(jù)模板預(yù)定的,或者由設(shè)計(jì)者定制產(chǎn)生/配置的)、MAC功能、交換功能(用于交換高位字節(jié)和低位字節(jié),諸如用于相反尾端)、定時(shí)器中斷、休眠、FFI、CMUL、CMAC、XMAC、IPSec、維特比蝴蝶結(jié)構(gòu)(Viterbibutterfly)等。擴(kuò)展還包括諸如乘法器/運(yùn)算單元、功能單元、存儲(chǔ)器、記分板的特征或者部件以及設(shè)計(jì)者希望施加設(shè)計(jì)控制的任何其他數(shù)量的特征。這里所用到的,術(shù)語(yǔ)“擴(kuò)展工具”通常是指能夠使能擴(kuò)展的自動(dòng)產(chǎn)生和/或配置的軟件工具或者模塊。這里所包含的任何關(guān)于描述語(yǔ)言(DL)、硬件描述語(yǔ)言(HDL)或者VHSICHDL(VHDL)的參考文獻(xiàn)還意味著包括諸如Verilog、VHDL、C、Java、CAS、ISS或者設(shè)計(jì)的任何基于編程語(yǔ)言描述的其他適當(dāng)?shù)挠布枋稣Z(yǔ)言。而且,可以使用諸如設(shè)計(jì)編譯器的典型Synopsys綜合引擎可以用于綜合這里上述的各種實(shí)施方式,或者可選擇地,可以使用諸如由CadenceDesignSystems,Inc.,提供Buildgates的其他綜合引擎。IEEEStd.1076.3-1997、IEEEStandardVHDL程序包括描述了用于詳細(xì)說明熟悉本領(lǐng)域普通技術(shù)人員可用的基于硬件定義語(yǔ)言設(shè)計(jì)以及綜合能力的行業(yè)接受語(yǔ)言。這里所述的,術(shù)語(yǔ)“處理器”表示包括任何能夠?qū)χ辽僖粋€(gè)指令字執(zhí)行操作的集成電路或者電子設(shè)備(或者電子設(shè)備集合),包括但不限于諸如由受讓人提供的用戶可配置內(nèi)核ARCAx和ARClite系列的精簡(jiǎn)指令集內(nèi)核(RISC)處理器、中央處理單元(CPU)、ASIC、和數(shù)字信號(hào)處理器(DSP)。可以將這些設(shè)備的硬件集成到單一襯底(例如,硅“芯片”)或者分布于兩個(gè)或者多個(gè)襯底中。而且,該處理器的各種功能方面均可以單獨(dú)實(shí)施為和處理器相關(guān)的軟件或者固件。這里所用到的,術(shù)語(yǔ)“置標(biāo)語(yǔ)言”是指置標(biāo)語(yǔ)言系中的任意成員,包括但不限于XML、XSL、SGML、HTML、VoXML、MathML、SVG、VML、XHTML和許多其他變形。例如,XML是指可擴(kuò)展標(biāo)記語(yǔ)言,該可擴(kuò)展標(biāo)記語(yǔ)言是用于含有結(jié)構(gòu)信息的文檔的置標(biāo)語(yǔ)言并且由WorldWideWebConsortium(W3C)研發(fā)開發(fā)的,其包括XML1.0、XML1.0(第二版)和XML1.1。此外這里所用到的術(shù)語(yǔ)“階段”是指流水線處理機(jī)中的各種連續(xù)階段;即,階段1是指第一流水線階段,階段2是指第一流水線階段等等。該多個(gè)階段包括例如取指令、解碼、執(zhí)行和回寫階段。術(shù)語(yǔ)“用戶邏輯”通常是指由用戶提供的作為標(biāo)準(zhǔn)部件結(jié)構(gòu)或者模板的附加部分的任何描述語(yǔ)言和/或其他部件(例如,測(cè)試代碼)。最后,術(shù)語(yǔ)“用戶界面”(UI)是指一個(gè)或者多個(gè)用戶或者其他信息源在其本身和擴(kuò)展工具之間通信信息時(shí)使用的任何機(jī)制。該界面可以包括例如圖形用戶界面(GUI)、聽覺界面(AUI)、觸覺界面(諸如適于電容或者其他形式的“觸摸”激活的顯示器)、光學(xué)(視網(wǎng)膜)界面等,所有這些對(duì)于熟悉相關(guān)領(lǐng)域的普通技術(shù)人員來說都是公知的。這些界面還可以包括對(duì)于諸如數(shù)據(jù)庫(kù)、算法和聯(lián)網(wǎng)設(shè)備的自動(dòng)化或者計(jì)算機(jī)化的界面,各計(jì)算機(jī)化界面均適于從擴(kuò)展工具接收信息請(qǐng)求,并向請(qǐng)求方提供被請(qǐng)求的數(shù)據(jù)。因此,盡管以用戶(人工)操作計(jì)算機(jī)程序進(jìn)行說明,但是應(yīng)該認(rèn)識(shí)到可以以完全或者幾乎完全自動(dòng)的方式實(shí)施本發(fā)明的主要方面。概述本發(fā)明特別提供適于創(chuàng)建、開發(fā)以及執(zhí)行用于硬件IP設(shè)計(jì)的擴(kuò)展部件以產(chǎn)生諸如標(biāo)準(zhǔn)IP庫(kù)部件的結(jié)構(gòu)或者其他輸出的方法和裝置。該發(fā)明便于設(shè)計(jì)者和最終用戶實(shí)施新的擴(kuò)展,同時(shí)如果需要的話,同時(shí)支持相對(duì)較高級(jí)別的擴(kuò)展復(fù)雜性。在一示例性變形中,本發(fā)明包括自動(dòng)產(chǎn)生用于生成各種擴(kuò)展類型(例如ALU擴(kuò)展、核心寄存器擴(kuò)展、輔助寄存器擴(kuò)展、以及條件代碼擴(kuò)展)標(biāo)準(zhǔn)擴(kuò)展代碼的軟件實(shí)體或者模塊,從而用戶只需要提供專用于具體實(shí)施的邏輯即可。本發(fā)明的擴(kuò)展還支持許多改變配置。用戶可以選擇所需擴(kuò)展類型的許多配置選項(xiàng)。使用所選的配置創(chuàng)建實(shí)施基本擴(kuò)展功能的許多指令模板。然后根據(jù)由模板(存在于擴(kuò)展工具中)限定的界面將定制邏輯添加到擴(kuò)展中。然后組合模板和定制邏輯以產(chǎn)生新的擴(kuò)展部件。有益的是,可以將該模板提供給包括例如VHDL、Verilog、CAS、ISS(包括提供測(cè)試代碼和匯編程序支持)的各種不同的語(yǔ)言和工具以盡可能靈活而且完整地進(jìn)行實(shí)施。還可以諸如通過添加額外的編譯階段(例如,TIE到HDL)將前面所述現(xiàn)有技術(shù)的“定制的”行為和結(jié)構(gòu)語(yǔ)言(例如,LISA、nML、EXPRESSION、MIMOLA、TIE等)用作符合本發(fā)明的模板或者其他結(jié)構(gòu)的基礎(chǔ)。此外,本發(fā)明通過抽象和其相關(guān)的復(fù)雜界面簡(jiǎn)化創(chuàng)建定制IP擴(kuò)展,從而允許更簡(jiǎn)化的界面。然后根據(jù)由設(shè)計(jì)者控制的預(yù)定模板或者其他數(shù)據(jù)結(jié)構(gòu)自動(dòng)產(chǎn)生抽象層之間所需的硬件IP。使用不同級(jí)的抽象有利于允許向用戶展示不同級(jí)的復(fù)雜性。在最高抽象級(jí),通過用戶界面(例如GUI)定義完全自動(dòng)實(shí)施該硬件。通過下一抽象級(jí),根據(jù)UI定義執(zhí)行某些設(shè)計(jì),并且向用戶展示簡(jiǎn)化界面以允許設(shè)計(jì)者/用戶建立定制IP。在最低抽象級(jí),展示全部(或者基本全部)內(nèi)部信號(hào)以允許由用戶建立任何復(fù)雜擴(kuò)展。該GUI控制展示的邏輯量,允許在這些主要級(jí)之間展示多級(jí)抽象。在高級(jí)抽象操作時(shí),有益的是用戶沒有必要執(zhí)行控制邏輯,這樣可以允許他們集中于ALU的功能。由于本發(fā)明有選擇地把擴(kuò)展界面抽象到較高級(jí),并通過多個(gè)模板(或者其他結(jié)構(gòu))產(chǎn)生用于目標(biāo)架構(gòu)的界面邏輯,沒有將由本發(fā)明產(chǎn)生的擴(kuò)展部件限定為任何具體目標(biāo)架構(gòu)。只要提供了界面模板/結(jié)構(gòu)完全可以使用任何目標(biāo)架構(gòu)。這樣有利于允許在相似目標(biāo)架構(gòu)之間共享擴(kuò)展部件,諸如共享用于ARCtangent-A4和ARCtangentTMA5處理器的擴(kuò)展指令部件。該特征還可以擴(kuò)展到不相似的架構(gòu);例如,采用本發(fā)明ARCtangentTMA5和TensilicaXtensa結(jié)構(gòu)可以共享擴(kuò)展部件。在示例性實(shí)施方式中,在參考在本機(jī)語(yǔ)言中提供的模板或者其他結(jié)構(gòu)的置標(biāo)語(yǔ)言(例如,XML)中限定抽象的擴(kuò)展部件。因此,不必修改參考新擴(kuò)展的部件模板/結(jié)構(gòu)和源文件的工具就可以添加新的擴(kuò)展部件模板/結(jié)構(gòu)和源文件。因此實(shí)質(zhì)上該擴(kuò)展部件基本上是“通用的”。該特征有利于添加新的擴(kuò)展部件,以及擴(kuò)展現(xiàn)有擴(kuò)展部件的功能。如上所述將定制界面抽象為單獨(dú)模板的技術(shù)優(yōu)點(diǎn)在于,如果目標(biāo)架構(gòu)改變,只需要考慮修改該抽象出的擴(kuò)展模板,而不會(huì)進(jìn)行在現(xiàn)有技術(shù)條件下所需的更多的實(shí)質(zhì)修改。不必修改本發(fā)明的置標(biāo)語(yǔ)言數(shù)據(jù)庫(kù)中可用的擴(kuò)展部件。而且,在創(chuàng)建定制擴(kuò)展時(shí)甚至不必存在目標(biāo)架構(gòu)。在開發(fā)新的目標(biāo)架構(gòu)時(shí),可以實(shí)施用于新的目標(biāo)架構(gòu)的抽象出的模板,從而使得所有現(xiàn)有的擴(kuò)展部件和新架構(gòu)兼容。因此,只要提供用于將來目標(biāo)架構(gòu)的模板,由本發(fā)明提供的擴(kuò)展技術(shù)就可以有效地與該目標(biāo)架構(gòu)“向前兼容”。還可以獨(dú)立于擴(kuò)展部件存儲(chǔ)該抽象出的擴(kuò)展部件模板;因此,為了將定制擴(kuò)展集成到不同目標(biāo)架構(gòu)上,僅需要改變抽象出的模板。但是,由于抽象出的模板和定制部件具有同樣格式,因此,還可以將他們一起結(jié)合(“綁”)為單一部件實(shí)現(xiàn)。這種方法使該擴(kuò)展專用于具體目標(biāo)架構(gòu),還有利于允許較低級(jí)別的模板實(shí)現(xiàn)進(jìn)行修改從而允許建立更復(fù)雜以及更優(yōu)化的設(shè)計(jì)。如上所述,將語(yǔ)言實(shí)現(xiàn)之間的公用數(shù)據(jù)抽象為置標(biāo)語(yǔ)言數(shù)據(jù)庫(kù),從而允許對(duì)每個(gè)支持語(yǔ)言應(yīng)用專用語(yǔ)言模板界面。該特征在現(xiàn)有設(shè)計(jì)環(huán)境中優(yōu)化了本發(fā)明的實(shí)施,并且通過允許建立新界面模板便于結(jié)合新的建模語(yǔ)言。通過以適用類型提供模板界面分別支持不同架構(gòu)模型和具有不同抽象級(jí)的模型。而且,本發(fā)明允許用戶單獨(dú)定義界面和擴(kuò)展類型。該特征采用用于定義不同擴(kuò)展的公共機(jī)制使本發(fā)明能夠支持任何擴(kuò)展類型。還提供支持以所需格式進(jìn)行指令交付。如果有必要的話,本發(fā)明的示例性擴(kuò)展工具模塊允許以采用指定或者預(yù)定操作碼的格式向終端用戶或者顧客交付指令。具體地,在示例性實(shí)施方式中,由于可用擴(kuò)展操作碼位置數(shù)量有限,已經(jīng)定義了用戶可用的一些操作碼,并且出于其他目的(例如將來擴(kuò)展等)保留一些操作碼。該方法有利于確保用戶操作碼和其他(制造商或者保留的)操作碼不發(fā)生沖突。這里公開的示例性擴(kuò)展工具允許用戶通過UI從“用戶分配”操作碼中選擇他們自己的操作碼,然后在整個(gè)擴(kuò)展實(shí)施上自動(dòng)激增,從而使得很容易改變操作碼。制造商或者保留設(shè)計(jì)的擴(kuò)展使用保留的分配操作碼,從而使得他們永遠(yuǎn)不會(huì)與用戶操作碼沖突。最后,用于本發(fā)明中產(chǎn)生仿真模型的機(jī)制能夠產(chǎn)生(或者自動(dòng)、半自動(dòng)或者用戶控制下手動(dòng)地)任何形式的支持文件,諸如測(cè)試硬件和軟件、以及匯編/編譯支持文件。這一點(diǎn)是非常有益的,由于在創(chuàng)建硬件擴(kuò)展時(shí),除了創(chuàng)建擴(kuò)展模型以外,還必須考慮設(shè)計(jì)實(shí)施的許多其他方面。例如,該硬件擴(kuò)展需要驗(yàn)證、文檔化和可能的綜合腳本。處理器擴(kuò)展需要匯編和編譯擴(kuò)展以及支持文件。本發(fā)明產(chǎn)生這些附加部件的能力大大降低了開發(fā)時(shí)間。參照?qǐng)D1,說明了根據(jù)本發(fā)明的擴(kuò)展產(chǎn)生過程的基本方法。應(yīng)該認(rèn)識(shí)到圖1的過程100是以后更詳細(xì)說明更復(fù)雜處理的總圖。如圖1所示,該擴(kuò)展過程100主要包括三個(gè)不同階段或者步驟,即(i)擴(kuò)展類型定義和選擇102;(ii)邏輯捕捉104;以及(iii)擴(kuò)展生成106。這里所用到的,術(shù)語(yǔ)“擴(kuò)展類型”通常是指確定擴(kuò)展配置的信息。擴(kuò)展類型的實(shí)施例包括算數(shù)邏輯單元(ALU)、條件代碼、核心寄存器和輔助寄存器擴(kuò)展類型,也可以很容易地指定其他類型。根據(jù)本發(fā)明的擴(kuò)展類型為有效地可配置模板,以及類似其他配置模板的IP“元素”。表1所示為根據(jù)本發(fā)明的示例性擴(kuò)展類型定義。表1可以多次啟動(dòng)表1中的每個(gè)擴(kuò)展類型。例如,一個(gè)擴(kuò)展可以包含具有多個(gè)條件代碼和寄存器的多個(gè)指令(相同或者不同類型)。將擴(kuò)展類型定義為獨(dú)立IP部件。這樣每個(gè)類型具有其自身的選項(xiàng)集和其自身的文件目錄集和變量組。還可以將擴(kuò)展類型添加到父部件中。通過通知擴(kuò)展工具需要將模板引入到部件中在各步驟102獲取每個(gè)擴(kuò)展類型所需的信息;然后建立“骨架”擴(kuò)展,用戶將他們自己的定制邏輯添加到其中以完成擴(kuò)展(以下所述步驟104)。邏輯捕捉步驟104對(duì)于擴(kuò)展部件附加處理具有重大意義。其決定了如何實(shí)際使用在步驟102定義的擴(kuò)展類型。在典型實(shí)施方式中,在邏輯捕捉過程中采用GUI編輯器(見圖5)。該GUI編輯器和支持捕捉過程設(shè)計(jì)為(i)向用戶表示可用輸入、輸出和內(nèi)部信號(hào);(ii)允許用戶添加內(nèi)部聲明;例如多個(gè)庫(kù)和包;(iii)允許用戶向/從新的擴(kuò)展添加附加的輸入/輸出;(iv)從用戶捕捉擴(kuò)展邏輯;并且(v)允許添加更多的層級(jí)。以下將更詳細(xì)地說明這些特征。最后,在步驟106,產(chǎn)生擴(kuò)展部件(在示例性實(shí)施方式中以IP庫(kù)中的典型IP部件的形式)。所建立的部件的兩個(gè)變形為(i)“最小”和(ii)完全。在最小配置中,存儲(chǔ)在部件中的信息包括在公共目錄中的對(duì)模板的參考。該方法允許對(duì)模板的改變/缺陷修復(fù)固定在模板以不需要改變單獨(dú)擴(kuò)展波及整個(gè)未來構(gòu)造(builds)。以這種方式產(chǎn)生的部件是獨(dú)立處理器,并且可以不進(jìn)行任何改變能夠與任意處理器一起使用。在“完全”選項(xiàng)中,存儲(chǔ)在部件中的信息包括具有全部添加HDL的完全擴(kuò)展,并且不依賴于任何模板。該方法允許用戶修改所有產(chǎn)生的代碼,但是這樣作會(huì)破壞與軟件擴(kuò)展工具的兼容性(例如,該擴(kuò)展不能裝載回該工具中)。該方法還可以擴(kuò)展專用處理器。該方法還允許創(chuàng)建適合向終端用戶分配的IP,并允許使用該擴(kuò)展工具作為起始點(diǎn)以執(zhí)行工具本身不支持的更復(fù)雜指令。以下將提供關(guān)于IP部件建立和存儲(chǔ)的其他細(xì)節(jié)。示例性實(shí)施方式現(xiàn)在以一些示例性實(shí)施方式詳細(xì)描述本發(fā)明各個(gè)方面和特征。應(yīng)該認(rèn)識(shí)到盡管以下示例性實(shí)施方式主要針對(duì)之前已經(jīng)結(jié)合進(jìn)來的2003年4月25日提交的美國(guó)專利申請(qǐng)No.10/423,745中所述的ARCtangentTMA5處理器、ARCompactTMISA以及現(xiàn)有的面向?qū)ο蟀l(fā)計(jì)的環(huán)境,所述申請(qǐng)題目為“ApparatusandMethodforManagingIntegratedCircuitDesigns”(以下通常稱之為“ARChitect2TM”),但是本發(fā)明的各個(gè)方面決不限于這些處理器或者環(huán)境(或者任何特定編程范例),并且在任意數(shù)量的不同應(yīng)用中可以使用本發(fā)明,以下僅是本發(fā)明較寬原理的示例性說明。熟悉這里提供的公開所指定的
技術(shù)領(lǐng)域:
的普通技術(shù)人員可以很容易地實(shí)現(xiàn)對(duì)本發(fā)明的修改,并因此這里不作更詳細(xì)說明。ARCtangent處理器是用于ASIC、片上系統(tǒng)(SoC)和FPGA集成的用戶定制32位RISC內(nèi)核。該處理器是可綜合、可配置并且可擴(kuò)展,因此允許開發(fā)者修改并擴(kuò)展該架構(gòu)以更好地適應(yīng)具體應(yīng)用。該處理器包括具有四級(jí)執(zhí)行流水線的32位RISC架構(gòu)。指令集、寄存器堆、條件代碼、高速緩沖存儲(chǔ)器、總線和其他結(jié)構(gòu)特征是用戶可配置的并且是可擴(kuò)展的。該處理器具有32×32位的核心寄存器堆,如果應(yīng)用需要的話還可以對(duì)該寄存器堆加倍。此外,可以使用大量輔助寄存器(最高為2E32)。該處理器內(nèi)核的功能部件包括算數(shù)邏輯單元(ALU)、寄存器堆(例如32×32)、程序計(jì)數(shù)器(PC)、取指令(i-fetch)接口邏輯以及各級(jí)鎖存。ARCompactTM包括允許設(shè)計(jì)者在32位用戶可配置處理器混和16位和32位指令的指令集結(jié)構(gòu)(ISA)。ISA的主要好處在于可以大大降低SoC(片上系統(tǒng))的存儲(chǔ)需求,從而在諸如無線通信和大量消費(fèi)電子產(chǎn)品的深嵌入式應(yīng)用中降低功耗并降低設(shè)備成本。該ARCompactISA的主要特征包括用于提供更優(yōu)代碼密度的32位指令、用于通用操作的16位指令集、在無模式轉(zhuǎn)換情況自由混和16和32位指令——這一點(diǎn)具有重要意義,由于其和競(jìng)爭(zhēng)模式切換架構(gòu)相比降低了編譯器使用的復(fù)雜性。該ARCompact指令集擴(kuò)展了用戶能夠添加到基本情況ARCompactTM處理器指令集中的大量定制擴(kuò)展指令。通過ARCompact,用戶可以添加上百條新指令,用戶還可以添加新核心寄存器、輔助寄存器和條件代碼。因此該ARCompactISA保持并擴(kuò)展了ARC可擴(kuò)展處理器技術(shù)的用戶可定制和可擴(kuò)展的特征。隨著32位架構(gòu)在深嵌入式系統(tǒng)中應(yīng)用越來越廣泛,代碼密度直接影響系統(tǒng)成本。通常,存儲(chǔ)器占據(jù)片上系統(tǒng)(SoC)的相當(dāng)大一部分硅面積。ARCompactISA交付幫助明顯降低嵌入式應(yīng)用所需存儲(chǔ)器的高密度代碼。而且,通過將代碼固定到較小存儲(chǔ)區(qū)域,該處理器潛在地肯定進(jìn)行更少的存儲(chǔ)器訪問。這樣可以降低功耗并且延長(zhǎng)諸如MP3播放器、數(shù)碼相機(jī)和無線手持設(shè)備的便攜式設(shè)備的電池壽命。而且,通過在單時(shí)鐘周期執(zhí)行以前需要兩個(gè)或者更多指令的某些操作,短指令可以改善系統(tǒng)吞吐量。這樣可以在不必在較高時(shí)鐘頻率下運(yùn)行處理器的情況提高應(yīng)用程序的性能。支持自由使用16和32位指令允許編譯器和程序編制器對(duì)指定任務(wù)采用最適合的指令,而不必進(jìn)行具體代碼分割或者系統(tǒng)模式管理。通過用新的16位指令直接替換32位指令可以提供以單獨(dú)指令級(jí)輸出該應(yīng)用程序可以實(shí)現(xiàn)的立即代碼密度利益。由于編譯器不需要重構(gòu)代碼,因此在大范圍的指令上提供了更大的優(yōu)化范圍。由于新產(chǎn)生的代碼遵循原始源代碼的結(jié)構(gòu),因此應(yīng)用程序調(diào)試更加直觀。在2003年1月31日提交的共同待審美國(guó)專利申請(qǐng)序列No.10/356,129中更詳細(xì)說明了ARCompactISA,該申請(qǐng)題目為“ConfigurableDataProcessorWithMulti-LengthInstructionSetArchitecture”,該申請(qǐng)已轉(zhuǎn)讓給受讓人,并在此引入其全部?jī)?nèi)容作為參考。因此,本發(fā)明的示例性實(shí)施方式支持各種不同擴(kuò)展指令結(jié)構(gòu),包括(i)16位單/雙操作數(shù);(ii)16位單/多周期;(iii)32位單/雙操作數(shù);以及(iv)32位單/多周期。既支持流水線多周期指令又支持延遲的多周期指令。還向多周期擴(kuò)展指令提供寄存器記分板。擴(kuò)展工具的示例性實(shí)施方式的特征包括(i)用于編輯和配置的GUI;(ii)在該工具內(nèi)編輯/復(fù)制/剪切以及粘貼IP;(iii)在編輯階段“設(shè)計(jì)期正確”規(guī)則檢測(cè)在擴(kuò)展中構(gòu)建的功能;(iv)自動(dòng)生成文檔(在編輯階段構(gòu)建,并在構(gòu)建時(shí)間配置輸出);(v)自動(dòng)集成由具有沖突檢測(cè)的模塊(例如中斷、寄存器、記分板等)所需的其他部件;(vi)自動(dòng)檢測(cè)平臺(tái)/代碼綜合;(vii)對(duì)各HDL模塊綜合控制;(viii)在用戶產(chǎn)生擴(kuò)展和現(xiàn)有擴(kuò)展之間進(jìn)行自動(dòng)沖突檢測(cè);(ix)通過建立的擴(kuò)展和HDL語(yǔ)法檢測(cè)自動(dòng)產(chǎn)生HDL;并且(x)包含在定制處理器設(shè)計(jì)的程序編制模塊內(nèi)產(chǎn)生的擴(kuò)展。在上述示例性ARChitect2設(shè)計(jì)環(huán)境下,通過本公開可以基本上解決下述問題(i)IP源模板—在現(xiàn)有的IP模型內(nèi)怎樣對(duì)方案建模,包括在描述語(yǔ)言級(jí)建模(即,從用戶描述語(yǔ)言到內(nèi)核描述語(yǔ)言的信號(hào)和界面);(ii)IP目標(biāo)部件—在庫(kù)中怎樣向IP部件中構(gòu)建擴(kuò)展描述;以及(iii)UI-本發(fā)明的特征和功能性集成到現(xiàn)有用戶界面(即,GUI)。因此,這里所述的軟件工具的優(yōu)點(diǎn)是對(duì)ARChitect設(shè)計(jì)環(huán)境的“即插即用”模塊?,F(xiàn)在參照?qǐng)D2-15,詳細(xì)說明在示例性實(shí)施方式內(nèi)容中實(shí)施本發(fā)明的具體方面。模型接口抽象圖2示出了根據(jù)本發(fā)明用于抽象模型界面的方法的示意圖。應(yīng)當(dāng)理解,當(dāng)按照三(3)級(jí)抽象進(jìn)行下面的討論時(shí),可以與本發(fā)明一同地實(shí)施具有不同特征和信息的更多或更少級(jí)別。圖2的模板界面結(jié)構(gòu)202含有設(shè)計(jì)用來簡(jiǎn)化或抽象表示給擴(kuò)展設(shè)計(jì)方的界面的邏輯。抽象出的界面隨后被暴露到可以創(chuàng)建用戶擴(kuò)展的定制邏輯層204。模板界面結(jié)構(gòu)202包含用于特定類型擴(kuò)展的邏輯,例如多周期指令或者用于擴(kuò)展處理器內(nèi)核的核心寄存器。模板界面結(jié)構(gòu)也被設(shè)計(jì)為其可以容易地被復(fù)制。在示出的實(shí)施中提供機(jī)了允許擴(kuò)展的各例示之間的微小差別的機(jī)制,例如其物理地址。具體地,模板界面結(jié)構(gòu)包含參數(shù)化的值,其定義存儲(chǔ)在XML中。工具從定義(見圖2a)創(chuàng)建GUI,其自動(dòng)允許擴(kuò)展的多個(gè)實(shí)例。用戶隨后控制用于各實(shí)例的參數(shù)。用于各實(shí)例的定制參數(shù)存儲(chǔ)在來自各擴(kuò)展的庫(kù)部件內(nèi);當(dāng)在設(shè)計(jì)中使用擴(kuò)展時(shí),設(shè)計(jì)環(huán)境軟件檢查一些預(yù)定義的參數(shù)以確保它們是有效的并且不沖突。示例性實(shí)施方式中由設(shè)計(jì)環(huán)境檢查的參數(shù)包括存儲(chǔ)器圖、輔助寄存器圖、以及操作碼圖。如果有沖突的話,用戶可以返回到GUI定義并且改變參數(shù)以去除沖突。在示出的實(shí)施方式中,操作碼/寄存器的值初始創(chuàng)建為從XML獲得的默認(rèn)值;如果用戶愿意,用戶隨后可以修改這些值。通過提供不同的界面抽象模板206在任意目標(biāo)結(jié)架構(gòu)上支持定制邏輯。在示例性實(shí)施方式中,以軟件工具或模塊的形式在前述面向?qū)ο蟮脑O(shè)計(jì)環(huán)境內(nèi)實(shí)施圖2的模型界面抽象。圖3示出了該工具300的一個(gè)示例性配置。圖2的界面抽象模板206與對(duì)于各界面結(jié)構(gòu)特定的數(shù)據(jù)一起存儲(chǔ)在置標(biāo)語(yǔ)言(例如,XML)數(shù)據(jù)庫(kù)308中。該額外數(shù)據(jù)定義界面的行為,并允許可以由用戶定義可配置參數(shù)。第二個(gè)軟件工具(未示出)可選地用來解釋模板數(shù)據(jù)并創(chuàng)建圖形用戶界面(GUI);該GUI允許用戶來指定模板參數(shù)310從而可以創(chuàng)建定制界面。圖4示出了由存儲(chǔ)在數(shù)據(jù)庫(kù)308的擴(kuò)展模板內(nèi)的數(shù)據(jù)產(chǎn)生的GUI的一個(gè)實(shí)施方式。如前所述,此處所述的將定制界面抽象為單獨(dú)模板的技術(shù)的一個(gè)優(yōu)點(diǎn)是,如果目標(biāo)結(jié)構(gòu)改變,僅僅需要考慮修改抽象的擴(kuò)展模板;不需要修改(XML)數(shù)據(jù)庫(kù)中可用的擴(kuò)展部件。而且,抽象出的部件的XML定義參考其本機(jī)語(yǔ)言中的模板;因此在不需要修改參考新的擴(kuò)展部件模板和源文件的工具的情況下可以添加新的擴(kuò)展部件模板和源文件。這樣使得添加新的擴(kuò)展部件和擴(kuò)展現(xiàn)有擴(kuò)展部件的功能變得容易。該技術(shù)的另一個(gè)優(yōu)點(diǎn)是當(dāng)創(chuàng)建定制擴(kuò)展時(shí)不需要存在目標(biāo)架構(gòu)。當(dāng)開發(fā)新的目標(biāo)架構(gòu)時(shí),可以為新目標(biāo)架構(gòu)實(shí)施抽象出的模板,從而所有現(xiàn)有的擴(kuò)展部件將與新的架構(gòu)兼容。因?yàn)楝F(xiàn)有的擴(kuò)展可以立即適用于該使用,這樣提供了很大的靈活性并且顯著地減少了實(shí)施新目標(biāo)架構(gòu)所需的時(shí)間和勞動(dòng)。在示出的實(shí)施方式中,四種不同的擴(kuò)展部件類型是可配置的(見圖4)ALU擴(kuò)展414a、條件代碼擴(kuò)展414b、核心寄存器擴(kuò)展414c、以及輔助寄存器擴(kuò)展414d??梢岳斫?,可以配置其他擴(kuò)展部件類型,其包括但不限于僅用于示例性說明的第三方IP擴(kuò)展。從XML定義直接產(chǎn)生圖4中所示的可定制的參數(shù)416,雖然可以使用定義這些參數(shù)的其他方法。如圖4所示,本實(shí)施方式的架構(gòu)有利地允許可用模板同時(shí)被合并或合計(jì)在一起以創(chuàng)建單一定制擴(kuò)展部件。因此,各模板的界面也可以集成在一起。例如,如圖2所示,一個(gè)擴(kuò)展部件類型的輸出可以用作另一個(gè)的輸入。在本發(fā)明的一個(gè)方面,前述的軟件工具允許通過將上下文相關(guān)編輯器提供給用戶來輸入定制邏輯。圖5示出了上下文相關(guān)編輯器502的一個(gè)實(shí)施方式的示例性GUI。編輯器502顯示定制邏輯504,暴露簡(jiǎn)化后的界面,并允許訪問用于更多復(fù)雜擴(kuò)展的所有可用目標(biāo)系統(tǒng)界面信號(hào)(如圖2中的虛線240所示)。也可選地提供GUI技術(shù)中公知的類型的“工具提示”圖形元件510,其中工具提示提供從(XML)數(shù)據(jù)庫(kù)308訪問的界面定義。應(yīng)當(dāng)理解,因?yàn)閿U(kuò)展部件的定義在基本上通用(此處,XML)的數(shù)據(jù)庫(kù)中是可用的,任何工具可以訪問與各部件關(guān)聯(lián)的參數(shù)。經(jīng)由編輯器502輸入的定制邏輯隨后存儲(chǔ)在用戶擴(kuò)展XML數(shù)據(jù)庫(kù)314(圖3)中。當(dāng)擴(kuò)展部件在用戶擴(kuò)展XML數(shù)據(jù)庫(kù)314中可用時(shí),可以將部件自動(dòng)地集成到系統(tǒng)設(shè)計(jì)。因?yàn)閿U(kuò)展部件定義駐留在XML數(shù)據(jù)庫(kù)308中,幾乎任何工具可以訪問與各擴(kuò)展部件關(guān)聯(lián)的參數(shù)。例如,通過以該方式使用來自XML數(shù)據(jù)庫(kù)的數(shù)據(jù)產(chǎn)生前述的圖5中的工具提示510。XML數(shù)據(jù)庫(kù)308中的參數(shù)保持可定制化,甚至在已經(jīng)實(shí)施定制擴(kuò)展部件之后。在一個(gè)實(shí)施方式中,系統(tǒng)創(chuàng)建GUI,該GUI允許當(dāng)在設(shè)計(jì)中使用部件時(shí)修改這些可定制的參數(shù)。在示出的實(shí)施方式中,用戶擴(kuò)展XML數(shù)據(jù)庫(kù)314也包含用于擴(kuò)展的合適源代碼,以及定義部件如何與另一設(shè)計(jì)集成的額外數(shù)據(jù)。本發(fā)明的軟件工具可以當(dāng)部件添加到設(shè)計(jì)時(shí)將這些擴(kuò)展部件數(shù)據(jù)與系統(tǒng)數(shù)據(jù)組合起來,從而允許工具(i)產(chǎn)生用于設(shè)計(jì)的定制文檔,以及(ii)創(chuàng)建表示整個(gè)系統(tǒng)設(shè)計(jì)(或其選擇的部件)的GUI顯示。圖6示出了用于提供該功能的顯示600的一實(shí)施方式的圖形表示。擴(kuò)展部件616添加到電路設(shè)計(jì),并且在用戶擴(kuò)展XML數(shù)據(jù)庫(kù)314中可用的任何部件614也可以添加到設(shè)計(jì)。圖7示出了將擴(kuò)展部件數(shù)據(jù)結(jié)合進(jìn)系統(tǒng)顯示的顯示GUI700的一個(gè)實(shí)施方式的圖形表示。前述的軟件工具使用用戶擴(kuò)展XML數(shù)據(jù)庫(kù)314(圖3)中的數(shù)據(jù)將擴(kuò)展部件616與標(biāo)準(zhǔn)擴(kuò)展模板306集成到一起,隨后集成到系統(tǒng)設(shè)計(jì)。圖3中所示的第二階段325示出了這一過程。當(dāng)擴(kuò)展部件添加到系統(tǒng)時(shí),諸如寄存器和存儲(chǔ)器圖的擴(kuò)展部件參數(shù)也可以用于執(zhí)行DRC/依賴性檢查。例如,在本發(fā)明的一個(gè)實(shí)施方式中,數(shù)據(jù)用來檢查存儲(chǔ)器和寄存器圖與系統(tǒng)設(shè)計(jì)中的現(xiàn)有部件沖突。根據(jù)公知的算法進(jìn)行這些檢查,并因此不在此做進(jìn)一步描述。附錄A提供了在實(shí)施該功能中使用的示例性代碼?,F(xiàn)在參照?qǐng)D8,描述了根據(jù)本發(fā)明的擴(kuò)展部件的一個(gè)示例性配置。該部件可以設(shè)置在例如前述設(shè)計(jì)環(huán)境的IP庫(kù)內(nèi)。擴(kuò)展部件802包含父擴(kuò)展804,其可以具有作為孩子的一個(gè)或多個(gè)擴(kuò)展ALU實(shí)例806、條件代碼單元(未示出)、核心實(shí)例808、以及輔助寄存器實(shí)例810。為了提供上述所需功能,圖8的示例性擴(kuò)展部件802包括(i)擴(kuò)展模板,(ii)擴(kuò)展測(cè)試模板,(iii)用戶提供的ALU擴(kuò)展邏輯(例如,%%ExtensionName%%v(hdl)),(iv)用戶提供的擴(kuò)展測(cè)試碼(例如,%%ExtensionName%%s),(v)通過GUI或其他用戶界面用戶提供的參數(shù)(例如,uxdefs.v(hdl)),以及(vi)集成文件?,F(xiàn)在將詳細(xì)描述這些實(shí)體及其相互關(guān)系。擴(kuò)展部件模板擴(kuò)展部件模板包括1)擴(kuò)展模板,以及2)擴(kuò)展測(cè)試模板。擴(kuò)展模板—擴(kuò)展模板產(chǎn)生用于擴(kuò)展ALU806和條件代碼的控制邏輯,以及擴(kuò)展寄存器的完整實(shí)施。這些模板也提供橋以將擴(kuò)展連接到處理器內(nèi)核。擴(kuò)展模板尤其包括a)ALU擴(kuò)展模板(例如,xaluv(hdl));b)條件代碼擴(kuò)展模板(xcondcodev(hdl));c)核心寄存器擴(kuò)展模板(xcoreregv(hdl));d)輔助寄存器擴(kuò)展模板(xauxregv(hdl));e)擴(kuò)展占位符模板(extensionv(hdl));f)擴(kuò)展常數(shù)占位符模板(uxdefsv(hdl));g)擴(kuò)展包裝模板(extension_wrapperv(hdl));以及h)擴(kuò)展封包占位符模板(userextensionsv(hdl))。在單一擴(kuò)展內(nèi)可以多次使用ALU、條件代碼、以及寄存器模板以形成具有多個(gè)擴(kuò)展指令、條件代碼、以及寄存器的擴(kuò)展部件,從而提供顯著的設(shè)計(jì)靈活性。ALU模板-xaluv(hdl)-示例性ALU模板包含必需的控制邏輯的實(shí)施以在流水線的執(zhí)行階段結(jié)束時(shí)將擴(kuò)展執(zhí)行結(jié)果(ALU結(jié)果和擴(kuò)展或者更新的標(biāo)記)提供到處理器。該模板用于產(chǎn)生用于下面三個(gè)基本類型的擴(kuò)展指令的控制邏輯(1)雙操作數(shù);(2)單操作數(shù);以及(3)零操作數(shù)。對(duì)于這三種類型的擴(kuò)展指令的每個(gè),提供了下面的選項(xiàng)(a)指令名稱;(b)指令操作碼;(c)周期數(shù);(d)多周期執(zhí)行模式流水線或延遲的結(jié)果回寫(write-back);(e)允許以匯編碼具有擴(kuò)展的標(biāo)記設(shè)定(或使用“F”);(f)結(jié)果回寫(不適用于零操作數(shù)指令);以及(g)具有延遲的結(jié)果回寫(僅多周期雙或單操作數(shù)指令)。在示例性ALU模板中產(chǎn)生的控制邏輯包括指令解碼邏輯、結(jié)果選擇邏輯、結(jié)果回寫邏輯、回寫延遲邏輯、以及寄存器記分板邏輯。圖9示出了在由用戶提供的該ALU模板902和ALU擴(kuò)展邏輯904以及提供到處理器內(nèi)核的信號(hào)集906之間的示例性接口。在圖9中的所有ALU模板/用戶邏輯信號(hào)名稱中出現(xiàn)的字符串“ExtName”代表替換變量“%%instruction_name%%”,其在擴(kuò)展部件/內(nèi)核建立時(shí)間由用戶指定的真正擴(kuò)展名所替換。在ALU模板902和用戶邏輯904之間的接口中出現(xiàn)的信號(hào)910在模板內(nèi)部產(chǎn)生并被模板自身使用。根據(jù)選出的擴(kuò)展類型和選項(xiàng),用戶有條件地可用或用戶所需要的信號(hào)。在下面的表2中描述了這些信號(hào)的可用性和說描述。表2如在圖9和表2中可以看見的,將有條件地表示接口中除指令解碼信號(hào)之外的所有信號(hào)。ALU模板902聲明兩個(gè)信號(hào),i_ExtName_res和i_ExtName_flag,并且要求用戶邏輯904在這兩個(gè)信號(hào)上提供擴(kuò)展ALU結(jié)果和/或標(biāo)記結(jié)果。在模板內(nèi)有條件地聲明所有其他信號(hào),并且如果這些信號(hào)出現(xiàn)這些信號(hào)對(duì)用戶是可用的。用戶邏輯904應(yīng)當(dāng)避免聲明在該接口中出現(xiàn)任何信號(hào)。指令解碼邏輯產(chǎn)生擴(kuò)展指令解碼,以在ALU模板902、擴(kuò)展封包模板(例如,extension_wrapperv(hdl))以及處理器內(nèi)核中使用。其產(chǎn)生階段2和階段3二個(gè)階段的解碼信號(hào),即,i_p2dec_ExtName和i_p3dec_ExtName。產(chǎn)生三組這些信號(hào),以分別用于雙、單、或零操作數(shù)指令。這些信號(hào)的每個(gè)具有多個(gè)實(shí)現(xiàn),并且一組替換變量用來選擇特定信號(hào)的實(shí)現(xiàn)。未選擇的所有實(shí)現(xiàn)在擴(kuò)展部件建立時(shí)間不并入到占位符。在表3中描述了該控制方案。表3示出的實(shí)施方式提供了用于具有延遲的多周期指令的具體階段3解碼信號(hào),因?yàn)橛秒A段3使能信號(hào)(en3)不能改變?cè)擃愋椭噶畹慕獯a,而是該解碼信號(hào)將無限期地占據(jù)流水線。如表4所述,擴(kuò)展指令解碼邏輯也提供用于內(nèi)核的階段2指令解碼信息。表4在表4中,替換變量導(dǎo)通邏輯,如果擴(kuò)展與最后一列中的類型和選項(xiàng)相匹配,所述邏輯驅(qū)動(dòng)期望的輸出信號(hào)。示出的實(shí)施方式的最終選擇邏輯將用戶提供的擴(kuò)展結(jié)果(ALU和/或標(biāo)記)添加到在擴(kuò)展占位符模板(extensionv(hdl))中生成的多路復(fù)用器(MUX)上。再次,其產(chǎn)生MUX的兩個(gè)可能入口,并且四個(gè)替換變量用來選擇產(chǎn)生期望結(jié)果的邏輯。這點(diǎn)在下面的表5中示出。表5在表5中,替換變量導(dǎo)通邏輯,如果擴(kuò)展與最后一列中的類型和選項(xiàng)相匹配,所述邏輯驅(qū)動(dòng)期望的輸出信號(hào)。示例性結(jié)果回寫過程包含(i)ALU結(jié)果回寫,以及(ii)標(biāo)記更新。對(duì)于單周期擴(kuò)展指令,當(dāng)指令輸入到流水線的階段3時(shí)設(shè)置信號(hào)ux_snglec_wben。然而,對(duì)于多周期擴(kuò)展指令,ALU結(jié)果回寫控制更加復(fù)雜,并且回寫通過三個(gè)信號(hào)的組來控制,即,(1)ux_multic_wben,其表示結(jié)果何時(shí)準(zhǔn)備好;(2)ux_multic_wba,其提供回寫地址;以及(3)ux_multic_busy,其表示擴(kuò)展指令是否完成。對(duì)于將把ALU結(jié)果寫回到寄存器的所有單操作數(shù)指令,當(dāng)指令輸入到階段2時(shí)應(yīng)當(dāng)設(shè)置控制信號(hào)ux_p2bfield_b_a。如果擴(kuò)展指令不進(jìn)行回寫,那么當(dāng)擴(kuò)展分別輸入到階段2或階段3時(shí)應(yīng)當(dāng)設(shè)置信號(hào)uxp2idest和uxmwb。在示出的實(shí)施方式中,這些信號(hào)都已經(jīng)在ALU模板902中實(shí)施,并且通過表6所示的替換變量選擇期望的實(shí)現(xiàn)邏輯。表6多周期擴(kuò)展指令的回寫地址從階段2地址總線(例如,dest)鎖存,并且實(shí)施狀態(tài)機(jī)用來提供結(jié)果回寫使能和指令忙信息。對(duì)于該狀態(tài)機(jī)有三個(gè)示例性實(shí)現(xiàn),并且替換變量用來通過下面的表7所示由用戶選擇的選項(xiàng)來控制這些實(shí)現(xiàn)的選擇。表7擴(kuò)展標(biāo)記更新通過用于多周期擴(kuò)展的信號(hào)uxsetflags以及用于單周期擴(kuò)展的咄ux_flgen來控制。為了當(dāng)其結(jié)果被回寫時(shí)允許多周期擴(kuò)展設(shè)置標(biāo)記,階段3信號(hào)p3setflags被鎖存直到多周期回寫使能變?yōu)橛行?,并且在回寫時(shí)通過該信號(hào)設(shè)置uxsetflags,所述信號(hào)隨后強(qiáng)制內(nèi)核從擴(kuò)展標(biāo)記更新標(biāo)記。表8描述了示出的實(shí)施方式的標(biāo)記更新控制。表8關(guān)于流水線延遲邏輯,ALU模板902產(chǎn)生用于寄存器記分板的流水線階段2延遲邏輯,以及用于通過延遲流水線多周期擴(kuò)展回寫結(jié)果的階段3延遲邏輯。當(dāng)階段2中的指令訪問未完成多周期擴(kuò)展指令的目標(biāo)寄存器時(shí),階段2記分板邏輯設(shè)置階段2延遲信號(hào)uxholdup12。當(dāng)具有延遲的回寫的多周期擴(kuò)展指令到達(dá)流水線階段3時(shí),階段3延遲邏輯設(shè)置uxholdup123。表9示出了該功能。表9條件代碼模板-xcondcodev(hdl)-在圖10中示出了在條件代碼(cc)模板和用戶之間的示例性硬件接口。cc模板1002使用用戶提供的條件代碼后綴和值1004來執(zhí)行條件代碼解碼,并且將用戶提供的條件真實(shí)信號(hào)i_%%suffix%%_cc通過uxp2ccmatch(階段2)和uxp3ccmatch(階段3)傳遞到內(nèi)核。在模板1002中聲明條件真實(shí)信號(hào)i_%%suffix%%_cc并且應(yīng)當(dāng)在用戶邏輯1004內(nèi)指定該真實(shí)信號(hào)。在示例性實(shí)施方式中,如果期望的條件匹配,該信號(hào)包含‘1’或1’b1。核心寄存器模板-xcorerv(hdl)-該模板支持三種類型的核心寄存器擴(kuò)展(1)只讀;(2)只寫;以及(3)讀/寫。在本實(shí)施方式中,只讀型的核心寄存器對(duì)于用戶是不可用的。該類型的寄存器用于在不使用常規(guī)回寫路徑的情況下存儲(chǔ)ALU結(jié)果。為了支持該類型的核心寄存器,當(dāng)擴(kuò)展包含多個(gè)ALU和多個(gè)核心寄存器時(shí),需要在UI向?qū)е袑?shí)施在ALU結(jié)果和核心寄存器之間的一對(duì)一映射。核心寄存器模板一直實(shí)施直寫寫邏輯并將任何擴(kuò)展寄存器放到快捷路徑上。如果多周期指令使用核心寄存器,該模板還自動(dòng)實(shí)施寄存器記分板。由該模板提供的選項(xiàng)包括(i)寄存器名稱;(ii)寄存器地址;(iii)工作模式只寫或讀/寫。在圖11中示出了核心寄存器擴(kuò)展模板的示例性用戶界面。如此處所示的,為了擴(kuò)展核心寄存器不是必須要有用戶邏輯。在下面的表10中給出了在模板內(nèi)向用戶聲明的接口信號(hào)的描述。然而,應(yīng)當(dāng)理解,一些信號(hào)基于選中的選項(xiàng)對(duì)用戶是有條件地可用的。表10在表11中描述了用于產(chǎn)生核心寄存器的替換變量。在圖12中示出了核心寄存器模板(具有直寫)的示例性的門邏輯1200,雖然應(yīng)當(dāng)理解其他的邏輯結(jié)構(gòu)和方法可用用來提供期望的描述的功能。表11輔助寄存器模板-xauxregv(hdl)-根據(jù)本發(fā)明的輔助寄存器模板的示例性實(shí)施方式僅支持只寫或讀寫單訪問輔助寄存器擴(kuò)展。如果模板與多周期指令一起使用,模板被設(shè)計(jì)來提供記分板;這樣可以防止在多周期指令沒有完成時(shí)訪問擴(kuò)展輔助寄存器。由該模板下述選項(xiàng)是可用的(i)寄存器名稱;(ii)寄存器地址;以及(iii)工作模式只寫或讀/寫。在圖13中示出了輔助寄存器擴(kuò)展模板的示例性接口。如圖13所示,沒有用戶邏輯需要擴(kuò)展輔助寄存器。在表12中給出了在模板內(nèi)聲明的接口信號(hào)的描述。然而,一些信號(hào)基于選擇的選項(xiàng)對(duì)用戶是有條件地可用的。表12在表13中描述了用來產(chǎn)生輔助寄存器的替換變量,并且在圖14中示出了示例性模板邏輯1400。表13應(yīng)當(dāng)理解,當(dāng)在示例性實(shí)施方式中描述的輔助寄存器擴(kuò)展支持32位時(shí),本發(fā)明可用適用于簡(jiǎn)直任何長(zhǎng)度的擴(kuò)展,包括但不限于16位和64位。擴(kuò)展占位符模板-extensionv(hdl)-在示出的實(shí)施方式中,在建立時(shí)間擴(kuò)展占位符模板被復(fù)制到由用戶庫(kù)指定的目錄中(例如,build_dir\vhdl),并且被重命名為擴(kuò)展名稱。在該模板內(nèi),根據(jù)該擴(kuò)展內(nèi)的指令、條件代碼、以及寄存器的類型和選擇的選項(xiàng)來定義對(duì)內(nèi)核的最小擴(kuò)展接口。接口包含分別用于ALU擴(kuò)展、條件代碼擴(kuò)展、輔助寄存器擴(kuò)展以及核心寄存器擴(kuò)展的接口。在接口中出現(xiàn)的每個(gè)信號(hào)通過替換變量來選擇,并且不同類型的擴(kuò)展共享接口中的一些信號(hào)。表14至表17描述了分別用于ALU擴(kuò)展、條件代碼擴(kuò)展、輔助寄存器擴(kuò)展以及核心寄存器擴(kuò)展的這些接口。表14表15表16表17在此示出的擴(kuò)展占位符模板可以用于擴(kuò)展指令、擴(kuò)展條件代碼、擴(kuò)展核心或輔助寄存器、或這些類型的擴(kuò)展的任意組合。模板也可以被有利地設(shè)計(jì)為在單個(gè)擴(kuò)展內(nèi)提供多個(gè)指令、條件代碼、和寄存器(輔助的或核心的)。包含在擴(kuò)展內(nèi)的所有指令、條件代碼、寄存器在建立時(shí)間合并入該模板。擴(kuò)展常數(shù)占位符模板-uxdefsv(hdl)-該模板提供為在產(chǎn)生的HDL或相似的輸出文件中保持軟件工具意識(shí)到避免“魔術(shù)”號(hào)碼的任何常數(shù)(即,指令操作碼、寄存器地址、條件代碼號(hào)、以及任何用戶定義的常數(shù))。在示出的實(shí)施方式中,常數(shù)占位符模板包含具有表18中定義的替換變量的空模板。表18擴(kuò)展封包模板-extension_wrapperv(hdl)-擴(kuò)展封包模板在擴(kuò)展封包占位符模板或userextensionv(hdl)中定義擴(kuò)展(單指令或多指令擴(kuò)展)的聲明和例示。產(chǎn)生需要用來例示擴(kuò)展的任何內(nèi)部信號(hào);然而,這些內(nèi)部信號(hào)對(duì)于用戶是不可用的,因?yàn)樗麄兾挥趯蛹?jí)內(nèi)的較高級(jí)別。擴(kuò)展封包模板也將來自擴(kuò)展的任何輸出信號(hào)添加到由占位符模板userextensionsv(hdl)提供的多路復(fù)用器上。在封包模板中使用的替換變量與在擴(kuò)展占位符模板中使用的替換變量是等同的。擴(kuò)展封包占位符-userextensionsv(hdl)-該模板是所有用戶創(chuàng)建的擴(kuò)展的頂級(jí),并且將這些擴(kuò)展連接到內(nèi)核。在該模板產(chǎn)生多路復(fù)用器以將各擴(kuò)展輸出發(fā)送到內(nèi)核。如果多于一個(gè)多周期擴(kuò)展指令集成到給定的建立內(nèi)的內(nèi)核,為這些指令創(chuàng)建結(jié)果回寫優(yōu)先級(jí)判優(yōu)器以解決回寫爭(zhēng)用(在相同的周期)。通過附錄B中所示的示例性VHDL端口列表描述使用本發(fā)明的工具的全部擴(kuò)展接口。擴(kuò)展測(cè)試模板-擴(kuò)展測(cè)試模板(例如,占位符模板xtest.s)提供用于擴(kuò)展通過主要測(cè)試環(huán)境(例如,示出的實(shí)施方式中的ARCtest)的測(cè)試的機(jī)制。這些測(cè)試模板產(chǎn)生擴(kuò)展測(cè)試碼封包以及用于擴(kuò)展的編譯指令。這些模板包括擴(kuò)展測(cè)試占位符;以及擴(kuò)展交叉引用模板。擴(kuò)展測(cè)試占位符模板-xtest.s-該模板提供用戶測(cè)試代碼的封包,其合并入由該封包中的編譯指示EXTENSION_TEST_CODE定義的位置,并且其嵌入下面的替換變量(a)擴(kuò)展名稱測(cè)試文件名稱;以及(b)編譯指令聲明測(cè)試下的所有擴(kuò)展。模板也包括在實(shí)際測(cè)試碼開始之前的下述文件(1)macros.s;(2)code.s;(3)vectors.s;以及(4)int_test.s。擴(kuò)展測(cè)試占位符封包也提供下述標(biāo)簽_start(由directive.global定義)xtest_start%%ExtensionName%%_startend_progins_err_handle模板在標(biāo)簽xtest_start初始化指定的一個(gè)或多個(gè)測(cè)試寄存器(例如,示出的實(shí)施方式中的125),并且對(duì)成功于在標(biāo)簽end_prog報(bào)告測(cè)試結(jié)果,對(duì)于失敗在ins_err_handle報(bào)告測(cè)試結(jié)果。當(dāng)檢測(cè)到測(cè)試下的擴(kuò)展的錯(cuò)誤時(shí),用戶可以使用ins_err_handle分支地址來終止測(cè)試。擴(kuò)展交叉引用模板-test.xref-該模板用于測(cè)試(例如,ARCtest)集成。其將下面所示的交叉引用入口添加到ARChitect2建立目錄中的交叉引用占位符文件test.xrefAlways=board%%userdir%%tests/extensions/%%extension_name%%%%userdir%%tests/hmsl/host_program_no_step.hmsl擴(kuò)展部件集成通過使用替換變量和定義將文件復(fù)制和合并入建立目錄的文件清單文件在示例性軟件設(shè)計(jì)環(huán)境(例如,ARChitect2)內(nèi)自動(dòng)地完成將如前所述的擴(kuò)展部件集成到目標(biāo)核心。為了允許通過軟件工具創(chuàng)建的擴(kuò)展的正確集成,在指定的目錄中需要有一組集成文件(在附錄C中的表C-1),其中根據(jù)用于內(nèi)核建立的描述語(yǔ)言集,$template_path指向IPLibrary\com\arc\templates\eia,$eiaLink_path指向IPLibrary\com\arc\links\eia,并且$hdl_child是指,例如,vhdl_child或verilog_child。示出的實(shí)施方式的擴(kuò)展集成文件包含(i)文件清單文件;(ii)變量文件;(iii)層級(jí)文件;(iv)擴(kuò)展集成模板(例如,Lib.list);(v)測(cè)試集成模板(例如,用于ARCtesttest.xref);以及(vi)ARChitect2支持?jǐn)?shù)據(jù)(例如,寄存器圖,條件代碼等)。擴(kuò)展部件測(cè)試和測(cè)試程序集成單個(gè)擴(kuò)展中的對(duì)于任何指令、條件代碼、輔助寄存器以及核心寄存器的編譯器指令通過在表19中列出的文件中的替換變量compilerDirectives來產(chǎn)生(其中$template_path指向一個(gè)目錄,例如IPLibrary\com\arc\templates\eia)表19為了將與本發(fā)明的擴(kuò)展相關(guān)的測(cè)試代碼集成到測(cè)試(例如,ARCtest)環(huán)境中,利用了表20的示例性文件表20本發(fā)明的擴(kuò)展工具也有利地適用于允許不同的其他類型的測(cè)試。例如,在一個(gè)示例性變形中,在共同擁有和同時(shí)待審的2002年11月5日申請(qǐng)的題為“RandomInstructionGeneratorandMethod”的美國(guó)專利申請(qǐng)序列號(hào)No.10/289,510中描述的隨機(jī)指令產(chǎn)生器(RIG)測(cè)試設(shè)備可以與擴(kuò)展工具(和設(shè)計(jì)環(huán)境)一起使用,所述申請(qǐng)?jiān)诖私Y(jié)合進(jìn)來以作參考。RIG提供了產(chǎn)生匯編語(yǔ)言指令的隨機(jī)序列的便利。RIG不是體系結(jié)構(gòu)特有的,而通常是語(yǔ)言“不可知的”,因?yàn)槠淇梢允褂枚喾N不同的語(yǔ)言進(jìn)行編程。示例性實(shí)施方式通過使用一種可擴(kuò)展標(biāo)記語(yǔ)言(XML)的形式是可編程的;RIG有利地指定如何產(chǎn)生隨機(jī)序列并且封裝產(chǎn)生的指令的體系結(jié)構(gòu)依賴方面。RIG可以被通常認(rèn)為是具有額外特性的概率串產(chǎn)生器以支持指令產(chǎn)生的需要。此外,當(dāng)示例性實(shí)施方式的RIGXML不被認(rèn)為是普遍計(jì)算的(圖靈機(jī))語(yǔ)言,程序員可以產(chǎn)生匯編計(jì)算的表達(dá),從而適應(yīng)寬范圍的計(jì)算需求。如在編程技術(shù)中公知的,XML是表達(dá)單一樹的簡(jiǎn)單語(yǔ)言。樹通過RIG來“執(zhí)行”以產(chǎn)生隨機(jī)序列。樹的特定屬性允許重復(fù)執(zhí)行,從而可以產(chǎn)生多個(gè)隨機(jī)指令。因?yàn)槠洳皇求w系結(jié)構(gòu)特有的,RIG在多種不同的硬件環(huán)境方面是有利地有用的,包括例如前面引用的TangentA5RISC處理器內(nèi)核。該靈活性很好地適用于本發(fā)明的高度靈活(和體系結(jié)構(gòu)“不可知”)的擴(kuò)展工具。然而應(yīng)當(dāng)理解,其它類型和構(gòu)造的測(cè)試工具也可以與本發(fā)明一起使用。擴(kuò)展的驗(yàn)證在本發(fā)明的示例性配置內(nèi)定義了擴(kuò)展方法驗(yàn)證表,從而測(cè)試通過軟件工具創(chuàng)建的擴(kuò)展。所有擴(kuò)展被假設(shè)為包含至少一個(gè)擴(kuò)展指令。對(duì)于包含多于一個(gè)擴(kuò)展指令的擴(kuò)展,定義擴(kuò)展驗(yàn)證的最小要求。從這些驗(yàn)證表中排除擴(kuò)展寄存器的測(cè)試。在附錄D中示出了示例性表。示例性實(shí)施方式也被設(shè)計(jì)為執(zhí)行用于指定的擴(kuò)展的回寫“沖突”測(cè)試。雖然應(yīng)當(dāng)理解其它方式也可以與本發(fā)明一致地使用,但是使用下面的情況測(cè)試擴(kuò)展回寫沖突(i)擴(kuò)展單周期指令在相同周期將結(jié)果回寫作為裝載返回(loadreturn);(ii)擴(kuò)展多周期指令在相同周期將結(jié)果回寫作為裝載返回;(iii)擴(kuò)展多周期指令在相同周期將結(jié)果回寫作為擴(kuò)展乘累加(multiply-accumulate,XMAC);以及(iv)兩個(gè)擴(kuò)展多周期指令在相同周期回寫結(jié)果。仿真器和相關(guān)的工具擴(kuò)展本發(fā)明通過提供專用于擴(kuò)展部件的定制動(dòng)態(tài)鏈接庫(kù)(DLL)可以有利地?cái)U(kuò)展到仿真器(例如,指令集仿真器(ISS)和周期準(zhǔn)確仿真器(CAS))以及其他工具。仿真對(duì)于片上系統(tǒng)(SoC)設(shè)計(jì)是至關(guān)重要的,因?yàn)槠渥層脩?例如,程序員)在最初芯片變得可用之前測(cè)試并且定下其代碼的輪廓。例如CAS和ISS仿真器的基于軟件的工具也是對(duì)于基于硬件的開發(fā)系統(tǒng)的低成本替代,因?yàn)槎鄠€(gè)用戶可以并行工作而不競(jìng)爭(zhēng)硬件資源。在ISS的示例性實(shí)例中,實(shí)施提供所需功能的標(biāo)準(zhǔn)“C”語(yǔ)言界面。按照與使用前述ARChitect2設(shè)計(jì)環(huán)境構(gòu)建HDL的相同方式構(gòu)造ISS擴(kuò)展C代碼。具體地,通過ISS提供用于ALU擴(kuò)展以及用于寄存器和條件代碼的一些聲明和功能。該信息提取自前述的軟件工具擴(kuò)展配置,并因此在示例性實(shí)施方式中自動(dòng)操作。從軟件擴(kuò)展工具可以產(chǎn)生下述(i)完全C模板(減去定制邏輯);(ii)一個(gè)或多個(gè)文件編寫(例如,SOLARIS,LINUX和XP);以及(iii)測(cè)試代碼(以測(cè)試ISS實(shí)現(xiàn);測(cè)試代碼在包括ISS,CAS,VHDL和Verilog的示例性實(shí)現(xiàn)之間是公共的)。ALU操作所需的定制邏輯可以按照前述的HDL邏輯捕獲的相似方式來捕獲,并因此由用戶/設(shè)計(jì)者來提供。在CAS方面,提供了與上述ISS的方案相似的方案。例如,在一個(gè)示例性實(shí)施方式中,與前述ISS相比,由受讓人制造的CASTM(周期準(zhǔn)確仿真器)仿真器適用于提供自動(dòng)化的方案。CAS仿真器提供用于要設(shè)計(jì)的用戶可定制的處理器的周期準(zhǔn)確測(cè)試環(huán)境,并可以有利地作為相關(guān)調(diào)試工具(例如,MetaWareSeeCode調(diào)試器)的目標(biāo)而工作。利用該示例性調(diào)試工具,開發(fā)者可以使用單一GUI來在包括ISS和基于硬件的開發(fā)平臺(tái)的多個(gè)目標(biāo)之間切換。因?yàn)殚_發(fā)者可以定制用于特定應(yīng)用的目標(biāo)處理器,CAS仿真器也可以做成用戶可定制的。提供在編程領(lǐng)域中公知類型的應(yīng)用編程界面(API)以允許開發(fā)者利用XAS仿真器使用其定制指令和其它擴(kuò)展的功能和周期準(zhǔn)確模型。當(dāng)程序員在前述設(shè)計(jì)環(huán)境下正在寫用于要開發(fā)的定制處理器架構(gòu)的代碼時(shí),程序員可以獲得周期準(zhǔn)確反饋。在示例性實(shí)施方式中,真器作為用于選擇的平臺(tái)(例如,MicrosoftWindowsXP)的動(dòng)態(tài)鏈接庫(kù)(DLL)提供CAS仿真器,或者作為用于SunSolarisTM或兼容系統(tǒng)的SO格式庫(kù)提供CAS仿真器。優(yōu)點(diǎn)還在于,用戶還能夠不重建仿真器在運(yùn)行時(shí)可以設(shè)置附加的選項(xiàng)(例如緩沖存儲(chǔ)器配置和擴(kuò)展部件)。操作的原理通常與VHDL、Verilog、CAS和ISS一樣。可以使用與用于HDL相同的擴(kuò)展類型的XML數(shù)據(jù)定義,所以擴(kuò)展選擇GUI是相同的(見圖4)。區(qū)別是由該定義選出的模板對(duì)于目標(biāo)實(shí)現(xiàn)是特定的,即CAS或ISS,而不是VHDL或Verilog。這些模板將ISS和CAS界面抽象到VHDL和Verilog使用的相同界面。用與VHDL和Verilog相同的GUI界面創(chuàng)建和編輯定制擴(kuò)展,僅有的區(qū)別是用于特定目標(biāo)模型的語(yǔ)言。CAS和ISS的優(yōu)點(diǎn)是它們都是用C/C++定義的,并且因?yàn)樵谀0鍍?nèi)含有與下層模型的接口,所以用于CAS和ISS的擴(kuò)展的實(shí)現(xiàn)是等同的。CAS實(shí)現(xiàn)可以包含額外時(shí)序信息以保持整個(gè)處理器CAS模型的周期準(zhǔn)確性;在這種情況下,ISS實(shí)現(xiàn)會(huì)忽略時(shí)序信息。作為前述的例子,對(duì)于最簡(jiǎn)單的雙操作數(shù)擴(kuò)展,將需要在四種不同的目標(biāo)模型上實(shí)施的ALU操作的不同實(shí)現(xiàn)是VHDL-i_simd_res=s1val+(s2val/2);Verilog-i_simd_res=s1val+(s2val/2);CAS-i_simd_res=s1val+(s2val/2);ISS-i_simd_res=s1val+(s2val/2);與VHDL和Verilog一樣,CAS和ISS擴(kuò)展用來創(chuàng)建用于設(shè)計(jì)環(huán)境(例如ARChitect)工具的庫(kù)部件。庫(kù)部件包含所有源代碼并且支持用于各擴(kuò)展部件的文件(文件編寫,測(cè)試代碼等)。當(dāng)為多于一個(gè)目標(biāo)實(shí)現(xiàn)定義模型時(shí),所有模型存儲(chǔ)在相同的庫(kù)部件中,因此庫(kù)可以包含下面的元素(i)VHDL模型;(ii)Verilog模型;(iii)CAS模型;(iv)ISS模型;(v)模型數(shù)據(jù)(操作碼等);(vi)測(cè)試代碼;以及(vii)文件編寫(對(duì)于CAS和ISS模型)。設(shè)計(jì)環(huán)境軟件隨后可以用來將擴(kuò)展部件添加到設(shè)計(jì),并隨后在選擇的目標(biāo)實(shí)現(xiàn)(VHDL、Verilog、CAS或ISS)中建立設(shè)計(jì)。軟件可以用擴(kuò)展已經(jīng)提供有的任何語(yǔ)言建立具有擴(kuò)展的處理器設(shè)計(jì)。在CAS和ISS的建立過程中,可以編譯C模型以創(chuàng)建根據(jù)目標(biāo)平臺(tái)的DLL或SO(共享對(duì)象)模型。該模型隨后可以適當(dāng)?shù)貏?dòng)態(tài)鏈接到CAS或ISS處理器模型。此外,前述設(shè)計(jì)環(huán)境(例如,ARChitect)軟件可以設(shè)計(jì)為產(chǎn)生適用于用戶正在建立的特定項(xiàng)目的CAS的定制版本。本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,前述的技術(shù)也可以容易地應(yīng)用于其他類型的仿真器。最終的擴(kuò)展IP部件如前面所討論的,在按照?qǐng)D1完成擴(kuò)展授權(quán)和捕獲處理(在此,實(shí)施為本領(lǐng)域公知的類型的例如“向?qū)А钡幕贕UI的例程)之后,創(chuàng)建對(duì)應(yīng)于新部件的IP部件用于設(shè)置在IP庫(kù)中(步驟106)。在示例性實(shí)施方式中,IP部件包含基于選擇的參數(shù)和用戶的邏輯輸入的自動(dòng)創(chuàng)建的擴(kuò)展IP。部件的結(jié)構(gòu)與主設(shè)計(jì)環(huán)境(例如,ARChitect)相似或相同;因此,設(shè)計(jì)軟件看到并呈現(xiàn)新的擴(kuò)展部件,以像庫(kù)中任何其他部件一樣使用。例如,用戶可以產(chǎn)生飽和-添加指令擴(kuò)展。在運(yùn)行前述向?qū)r(shí),在IP庫(kù)內(nèi)創(chuàng)建飽和-添加部件。在ARChitect軟件內(nèi)的部件查看部件隨后將飽和-添加表示為擴(kuò)展指令。在IP庫(kù)內(nèi)創(chuàng)建的擴(kuò)展部件的方面,可以考慮多種形式。例如,在第一個(gè)實(shí)施方式(前面引用的所謂的“最小”配置)中,擴(kuò)展引用前述的擴(kuò)展部件模板。這種擴(kuò)展形式可以潛在地是處理器獨(dú)立的,因?yàn)槟0蹇梢蕴囟ǖ剡m用于如上面所討論的目標(biāo)處理器。各模板包含封裝其模板的元素的個(gè)別IP部件—例如,ALUIP部件將是擴(kuò)展的ALU方面的模板。各模板將具有配置IP的一組選項(xiàng)——例如,ALU部件可以具有操作碼值、指令助詞符號(hào)、周期數(shù)目等。在一個(gè)示例性配置中,按照在項(xiàng)目中使用普通IP庫(kù)部件的方式使用這些模板。例如,如果用戶希望將JTAG界面添加到核心,他們會(huì)將JTAG界面從庫(kù)添加到項(xiàng)目,并配置選項(xiàng)。相似地,ALU可以添加到擴(kuò)展部件并隨后使用部件選項(xiàng)進(jìn)行配置。當(dāng)創(chuàng)建用于在庫(kù)中設(shè)置擴(kuò)展時(shí),擴(kuò)展部件軟件處理使用該方法。對(duì)于需要的各模板部件,可以創(chuàng)建部件模板的實(shí)例。再次參照?qǐng)D8,示出了在IP庫(kù)中使用的示例性擴(kuò)展部件結(jié)構(gòu)。部件802(“我的新擴(kuò)展”)是IP庫(kù)中的部件,并具有擴(kuò)展結(jié)構(gòu)804(“EI父實(shí)例”)。擴(kuò)展部件802包含對(duì)所有包含在擴(kuò)展結(jié)構(gòu)804內(nèi)的2個(gè)ALU實(shí)例806、核心實(shí)例808以及輔助寄存器實(shí)例810的引用。應(yīng)當(dāng)注意到,部件802(我的新擴(kuò)展)是IP庫(kù)中的IP部件定義,并且結(jié)構(gòu)(EI父實(shí)例)及其孩子ALU806、核心寄存器808以及輔助寄存器810部件是設(shè)置在其中的部件實(shí)例。在將部件802(我的新擴(kuò)展)添加到項(xiàng)目中之后,部件實(shí)例被創(chuàng)建為任何其他部件,并具有隨后要運(yùn)行的軟件工具的定制實(shí)例創(chuàng)建代碼,以及結(jié)構(gòu)804復(fù)制到部件802中,從而有效地創(chuàng)建擴(kuò)展實(shí)例。當(dāng)部件添加到項(xiàng)目時(shí),可以按兩種方式之一創(chuàng)建部件實(shí)例。第一,稱作部件例示對(duì)象(例如,“ComponentInst”)的方法(例如,“onCreate()”)。該方法調(diào)用基于庫(kù)部件創(chuàng)建默認(rèn)部件實(shí)例。另外,如果有定義為部分庫(kù)部件的定制事件處理器,稱作其“onCreate()”方法。在示例性實(shí)施方式中,該事件處理器包含是實(shí)例創(chuàng)建過程的給定完整控制的計(jì)算機(jī)代碼(例如,Javascript),并且該計(jì)算機(jī)代碼在ComponentInst對(duì)象的范圍內(nèi)執(zhí)行。因?yàn)楹竺孢@種方法允許參照?qǐng)D8所述的復(fù)制操作所需的特殊處理的性能,所以本發(fā)明的擴(kuò)展工具來優(yōu)先使用這種后面的方法。如上所述,用戶邏輯(例如,由用戶提供的作為對(duì)標(biāo)準(zhǔn)模板邏輯的補(bǔ)充的HDL和測(cè)試代碼)必須按照與文件文件在其他IP部件的鏈接中存在方式的相同方式被捕獲并被存儲(chǔ)為庫(kù)內(nèi)的部分?jǐn)U展部件;例如,vhdl文件將在vhdl_child鏈接中。在示出的實(shí)施方式中,各部件(例如,ALU)將添加其作為目標(biāo)的各語(yǔ)言的單一HDL文件,例如,VHDL,Verilog,SystemC等。各文件被提供有相應(yīng)的文件清單入口以允許將其合并入目的地文件。在測(cè)試代碼方面,示出的實(shí)施方式可選地提供用于各擴(kuò)展的測(cè)試代碼。創(chuàng)建一個(gè)單一文件,并且還提供相應(yīng)的文件清單操作以將其包括在目的地文件集中。前述的方法需要當(dāng)在項(xiàng)目中使用擴(kuò)展時(shí)出現(xiàn)模板。因此,本發(fā)明還考慮模板控制,匹配或升級(jí)機(jī)制,從而在建立內(nèi)核之前驗(yàn)證模板的當(dāng)前版本。這樣解決了使用非當(dāng)前模板可能導(dǎo)致不一致的潛在問題;例如,當(dāng)創(chuàng)建擴(kuò)展并將其用于(與模板一起)在最初建立中時(shí),以及模板在進(jìn)行下一建立之前執(zhí)行模板改變,從而導(dǎo)致雖然庫(kù)中的模板沒有改變但是第二建立與其不同。在一實(shí)施方式中,提供模板控制機(jī)制。例如,一種這樣的機(jī)制包含提供模板的版本號(hào)碼作為庫(kù)部件的一部分;因此進(jìn)行增加版本號(hào)碼的驗(yàn)證(每次改變自動(dòng)地執(zhí)行,或者在用戶的控制下半自動(dòng)地執(zhí)行)。當(dāng)創(chuàng)建設(shè)計(jì)時(shí),使用的部件的版本也已經(jīng)存儲(chǔ)在項(xiàng)目?jī)?nèi)。因此,可以容易地評(píng)估項(xiàng)目中的版本以用庫(kù)(例如經(jīng)由設(shè)計(jì)環(huán)境的父軟件)確定其是否是最新的。雖然應(yīng)當(dāng)理解可以使用其他語(yǔ)言或格式存儲(chǔ)版本號(hào),但是在示例性實(shí)施方式中,庫(kù)和項(xiàng)目中的版本號(hào)碼都以XML存儲(chǔ)。在第二個(gè)示例性變形(“完全”變形)中,擴(kuò)展授權(quán)處理建立孤立的IP部件(與前述的基于“參考”的實(shí)施方式相比);在該方法中,不依賴于模板,從而有利地允許不用模板來分配指令。按照與前述的“最小”方案相同的方式來構(gòu)造和設(shè)計(jì)擴(kuò)展,而不是將該結(jié)構(gòu)存儲(chǔ)在庫(kù)中,執(zhí)行擴(kuò)展的定制構(gòu)建。該過程的結(jié)果是所有的模板文件合并入根擴(kuò)展文件,其自身被作為入口包括在文件清單中。而且,需要用來支持與設(shè)計(jì)環(huán)境軟件相關(guān)的查看器模塊的所有數(shù)據(jù),例如,存儲(chǔ)器圖,寄存器圖等被合并,并且值被固定(基于對(duì)模板部件特定的選項(xiàng)值)。最后終的部件隨后放置在IP庫(kù)中。應(yīng)當(dāng)理解,打破對(duì)于擴(kuò)展模板的各關(guān)系打破(例如通過用戶修改代碼)。擴(kuò)展通常失去與此處所述的軟件擴(kuò)展工具的兼容性。這樣可以降低特定情況下工具的靈活性,或潛在地產(chǎn)生其他不期望的結(jié)果。因此,對(duì)該事件的一種示例性方案是在相關(guān)HDL的一個(gè)或多個(gè)保護(hù)區(qū)域的周圍設(shè)置評(píng)注的標(biāo)語(yǔ)或其他界線;這樣保證在不破壞任何用戶代碼的情況下可以安全地重新產(chǎn)生HDL。也可以可選地采用本領(lǐng)域普通技術(shù)人員所公知的其他方法(用于包保用戶代碼)。UI管理和產(chǎn)生本發(fā)明也提供用于動(dòng)態(tài)用戶界面(UI)管理和產(chǎn)生。特別的,與父軟件設(shè)計(jì)環(huán)境相關(guān)的UI(例如,GUI)的顯著特征是基于模板驅(qū)動(dòng)擴(kuò)展過程動(dòng)態(tài)地產(chǎn)生GUI。例如,在前述ARChitect環(huán)境中,GUI不需要對(duì)任何Java代碼進(jìn)行改變以修復(fù)HDL事件,改變顯示的信號(hào),以及將選項(xiàng)添加到模板。在示例性實(shí)施方式中,基于相關(guān)的擴(kuò)展模板產(chǎn)生GUI以實(shí)現(xiàn)“捕獲”顯示。圖4示出了該類型的示例性顯示400。圖4的四個(gè)顯示的表(元素)代表正在被模板自動(dòng)化的和被用戶配置的示例性擴(kuò)展(即,指令、輔助寄存器、核心寄存器、以及條件代碼)的四個(gè)元素。從IP庫(kù)內(nèi)的IP部件模板提取各元素。例如,“指令”元素利用來自IP庫(kù)的一個(gè)或多個(gè)模板;例如,設(shè)置在其中的模板文件夾。所有擴(kuò)展模板駐留在該文件夾下。相似地,ALUIP部件利用來自庫(kù)的模板。創(chuàng)建表以允許用戶將ALU的實(shí)例添加到他們的擴(kuò)展。在圖4的顯示400中,“指令”元素具有在數(shù)據(jù)行中表出的兩個(gè)ALU實(shí)例。第一個(gè)ALU指令(實(shí)例)是MULU指令,其包含當(dāng)完成時(shí)回寫結(jié)果的32位雙操作數(shù)流水線的多循環(huán)擴(kuò)展。從用于IP部件的選項(xiàng)的模板標(biāo)準(zhǔn)集導(dǎo)出顯示400的列數(shù)據(jù)。在上面的例子中,ALU部件具有下面的選項(xiàng)(i)助記符號(hào),(ii)代碼大小,(iii)操作數(shù),(iv)執(zhí)行的周期,(v)回寫,以及(vi)多周期行為。ALU部件的各實(shí)例必須將值提供到這些選項(xiàng)。在捕獲用戶邏輯中,顯示了用戶在其擴(kuò)展內(nèi)使用的可用信號(hào)。圖5示出了由設(shè)計(jì)環(huán)境(ARChitect)提供的一種示例性信號(hào)顯示配置500。注意到,相同信號(hào)用于在擴(kuò)展內(nèi)層級(jí)的頂級(jí)的各指令,例如,在上面的例子中,MULU,MULS和頂級(jí)層級(jí)模塊共享相同的信號(hào)。在示例性實(shí)施方式中,各IP部件模板指定大量信號(hào)。信號(hào)是被作為存儲(chǔ)在與其有關(guān)的IP部件內(nèi)的工具數(shù)據(jù)的項(xiàng)目執(zhí)行的數(shù)據(jù)類型。例如,ALU模板部件將具有作為XML代碼存儲(chǔ)的一列信號(hào),當(dāng)移植用于在GUI500上顯示的信號(hào)列表以及用于其它使用的模板的信號(hào)時(shí),可以讀取后者。在GUI500內(nèi),信號(hào)被認(rèn)為是具有表21所示的屬性的數(shù)據(jù)項(xiàng)目。表21再次參考圖5,用戶能夠從可用信號(hào)502的列表添加到局部范圍504內(nèi)的信號(hào)。該添加映射到在擴(kuò)展文件內(nèi)的信號(hào)聲明,其實(shí)施將信號(hào)引入擴(kuò)展范圍內(nèi)。上面的定義不提供允許用戶包括在局部范圍504中信號(hào)的功能;其僅允許定義以指定在“被顯示為局部的”字段中的那些條件(是表21定義的一部分的數(shù)據(jù))。因此,必須保持用戶希望添加的所有信號(hào)的列表;如果感興趣的信號(hào)包括在該列表中,或者“被顯示為局部的”字段返回為真,那么可以確定信號(hào)在局部范圍內(nèi)。在示出的實(shí)施方式中,信號(hào)實(shí)例列表存儲(chǔ)在IP庫(kù)內(nèi)的IP部件定義內(nèi)。例如,圖8示出了具有兩個(gè)ALU實(shí)例806的名為我的新擴(kuò)展的部件;信號(hào)列表存儲(chǔ)在XML或者在我的新擴(kuò)展級(jí)別的可相比的語(yǔ)言文件內(nèi)。在可選的實(shí)施方式中,與擴(kuò)展工具相關(guān)的所有或部分相關(guān)信號(hào)名稱被抽象,從而其至少在某些程度上是人類可讀的,或者以其它方式提供關(guān)于信號(hào)和與不可讀的(非信息化的)名稱相關(guān)聯(lián)的信息。該抽象有利地使目標(biāo)處理器技術(shù)之間的變化更簡(jiǎn)單,因?yàn)橄嗤男盘?hào)名稱可用用來與其相應(yīng)的處理器特有的信號(hào)名稱一起使用。該抽象也可以被理想地文檔化(例如通過使用相關(guān)表或其他比較機(jī)制)。例如,擴(kuò)展界面可以使用一組獨(dú)立于處理器的普通信號(hào)。擴(kuò)展通過部件例示被集成到處理器內(nèi)核,其中查找表被用于特定處理器以將處理器特有的輸入/輸出信號(hào)連接到擴(kuò)展使用的普通輸入/輸出信號(hào),從而減少可以使用這些信號(hào)名稱的任何調(diào)試操作的復(fù)雜性。設(shè)計(jì)層級(jí)考慮在示出的實(shí)施方式中,設(shè)計(jì)層級(jí)被支持到至少擴(kuò)展軟件工具內(nèi)的第一級(jí)別??梢允褂美纾珹RChitect設(shè)計(jì)環(huán)境內(nèi)的標(biāo)準(zhǔn)層級(jí)支持來手動(dòng)地添加后來的層級(jí)的級(jí)別。然而,還可以考慮第一層級(jí)級(jí)別的支持可以允許多個(gè)(“n”)層級(jí)級(jí)別的支持。因此,示出的實(shí)施方式提供手動(dòng)添加選項(xiàng)(因?yàn)橛脩艨赡芟M跀U(kuò)展工具外部添加復(fù)雜HDL),以及適合于“內(nèi)部”應(yīng)用的自動(dòng)選項(xiàng)?,F(xiàn)在將更詳細(xì)地描述這些選項(xiàng)。為了提供層級(jí)的自動(dòng)創(chuàng)建,相同的信息必須被捕獲作為用于ALU(前面討論過)。也必須提供塊的名稱及其在層級(jí)內(nèi)的位置。名稱和信號(hào)允許端口列表的創(chuàng)建、部件聲明(VHDL),以及例示代碼。圖15示出在擴(kuò)展工具的范圍內(nèi)在部件間示例性信號(hào)傳播。圖15用作參考以在如上所述的示例性顯示內(nèi)(圖5)移植信號(hào)字段。圖15包含兩個(gè)部分;頂部1502包含擴(kuò)展工具內(nèi)的ALU級(jí),而底部1504添加層級(jí)。圖15中出現(xiàn)的箭頭1506表示由于擴(kuò)展工具的信號(hào)“暗示”側(cè)的信號(hào)源。信號(hào)暗示需要通過層級(jí)傳播;箭頭表示該傳播以及在層級(jí)中的任何給定點(diǎn)可用的信號(hào)。圖15的頂部1502的信號(hào)顯示十分簡(jiǎn)單,因?yàn)槠溆尚盘?hào)的腳本值來確定。然而,底(層級(jí))部1504依賴于用戶選擇連接到用戶的一個(gè)或多個(gè)信號(hào)的信號(hào)。在圖5中,該關(guān)系需要在局部范圍信號(hào)表504中添加列,以識(shí)別局部信號(hào)連接到的可用信號(hào)。還應(yīng)當(dāng)注意到,此處描述的擴(kuò)展技術(shù)可以應(yīng)用到不同程度中的設(shè)計(jì)環(huán)境。例如,本公開考慮可以經(jīng)由公開的擴(kuò)展工具和相關(guān)的方法添加那些將要添加到核內(nèi)的所有擴(kuò)展中的選擇數(shù)量或子集。另外,可以配置擴(kuò)展工具和設(shè)計(jì)環(huán)境,從而經(jīng)由擴(kuò)展工具添加任何/所有擴(kuò)展。該后面的配置的優(yōu)點(diǎn)是允許識(shí)別落入到特定交付的特征列表范圍內(nèi)的那些擴(kuò)展,以及實(shí)施軟件工具內(nèi)的這些特征。這樣允許在一單一包中提供所有相關(guān)的數(shù)據(jù)和工具(例如,測(cè)試代碼,ISS模型,HDL,回歸等),從而為設(shè)計(jì)者提供更綜合和更易使用的方案。也應(yīng)當(dāng)理解,當(dāng)在較不復(fù)雜的擴(kuò)展中已經(jīng)描述了本發(fā)明的示例性實(shí)施方式時(shí),可以通過軟件工具(或可選的可以與設(shè)計(jì)環(huán)境一起提供的IP授權(quán)工具,或經(jīng)由第三方工具)來支持更復(fù)雜的擴(kuò)展特征。例如,下面的“復(fù)雜”擴(kuò)展類型可以與本發(fā)明一起實(shí)施(i)用戶外圍設(shè)備;(ii)用戶內(nèi)存系統(tǒng)/判優(yōu)器;(iii)直接內(nèi)存界面(DMI)主機(jī);以及(iv)(i)至(iii)的仿真器版本。本發(fā)明有利地提供了用于開發(fā)這些更復(fù)雜的擴(kuò)展的起始點(diǎn)(見前面參考圖1的“完整”部件描述的討論)。可以理解,當(dāng)按照方法的步驟的特定次序已經(jīng)描述了本發(fā)明的特定方面時(shí),這些描述僅說明本發(fā)明的較寬方法,并且可以按特定應(yīng)用所需修改這些描述。特定步驟在特定情況下可以被認(rèn)為是不必要的或可選的。此外,在公開的實(shí)施方式中可以添加一些步驟或者功能,或可以改變兩個(gè)或多個(gè)步驟的執(zhí)行次序。所有這些變型被認(rèn)為是包含在此處公開和要求的發(fā)明內(nèi)。當(dāng)如同應(yīng)于各種實(shí)施方式上述的詳細(xì)說明已經(jīng)示出、描述并指出本發(fā)明的新穎特征,應(yīng)當(dāng)理解,在不背離本發(fā)明的情況下本領(lǐng)域技術(shù)人員可以對(duì)示出的器件或過程的形式和細(xì)節(jié)做出不同省略、替換和改變。前面的描述當(dāng)前被認(rèn)為是實(shí)施本發(fā)明的最佳模式。該描述絕不意味著限制、而是應(yīng)當(dāng)被認(rèn)為是說明本發(fā)明的一般原理。應(yīng)當(dāng)參照權(quán)利要求確定本發(fā)明的范圍。附錄A(用于擴(kuò)展工具的示例件代碼)(參見所附CDROM-附錄A)附錄B-擴(kuò)展接口端口列表(參見所附CDROM-附錄B)附錄C(示例性集成文件命名)2003ARC國(guó)際版權(quán)所有,未經(jīng)書面許可嚴(yán)禁復(fù)制。表C-1附錄D-驗(yàn)證2003ARC國(guó)際版權(quán)所有。未經(jīng)書面許可嚴(yán)禁復(fù)制。表D-1-在擴(kuò)展內(nèi)用于單一指令的驗(yàn)證表表D-2-在擴(kuò)展中用于多指令的驗(yàn)證表表D-3-由EIA支持的特征的驗(yàn)證權(quán)利要求1.一種計(jì)算機(jī)化的處理器設(shè)計(jì)工具,適用于允許增加用戶配置的擴(kuò)展,該擴(kuò)展在多個(gè)層級(jí)目標(biāo)架構(gòu)上是有用的。2.根據(jù)權(quán)利要求1所述的設(shè)計(jì)工具,其特征在于,所述擴(kuò)展包含抽象語(yǔ)言表述,各抽象語(yǔ)言表述參考至少一本地目標(biāo)架構(gòu)模板。3.根據(jù)權(quán)利要求2所述的設(shè)計(jì)工具,其特征在于,所述抽象語(yǔ)言表述包含作為部件存儲(chǔ)在數(shù)據(jù)庫(kù)中的可擴(kuò)展標(biāo)記語(yǔ)言定義。4.一種計(jì)算機(jī)化的處理器設(shè)計(jì)工具,適用于允許增加用戶配置的擴(kuò)展,所述工具還適于提供各種級(jí)別的設(shè)計(jì)抽象。5.根據(jù)權(quán)利要求4所述的工具,其特征在于,所述多個(gè)級(jí)別的抽象包含至少一高級(jí)抽象,其中基于來自所述用戶的用戶界面的輸入,與所述擴(kuò)展相關(guān)的硬件自動(dòng)地執(zhí)行。6.根據(jù)權(quán)利要求5所述的工具,其特征在于,所述多個(gè)級(jí)別的抽象包含至少一中間級(jí)抽象,其中,依照用戶界面的定義實(shí)施所述擴(kuò)展中至少第一部分,并且還為所述用戶提供簡(jiǎn)化的擴(kuò)展界面以允許創(chuàng)建定制的功能。7.根據(jù)權(quán)利要求5所述的工具,其特征在于,所述多個(gè)級(jí)別的抽象包含至少一低級(jí)抽象,其中,與所述擴(kuò)展有關(guān)的所有內(nèi)部信號(hào)將通過用戶界面提供給所述用戶,所述用戶界面允許所述用戶創(chuàng)建復(fù)雜的擴(kuò)展。8.一種用于擴(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化工具,包含以置標(biāo)語(yǔ)言表述的至少一抽象出的且用戶配置的擴(kuò)展部件定義,所述部件定義參考以本地語(yǔ)言表述的至少一結(jié)構(gòu)。9.根據(jù)權(quán)利要求8所述的工具,其特征在于,所述置標(biāo)語(yǔ)言包含可擴(kuò)展標(biāo)記語(yǔ)言,所述結(jié)構(gòu)包含以硬件描述語(yǔ)言表述的模板。10.根據(jù)權(quán)利要求8所述的工具,其特征在于,所述置標(biāo)語(yǔ)言包含可擴(kuò)展標(biāo)記語(yǔ)言,所述結(jié)構(gòu)包含以行為語(yǔ)言表述的模板。11.根據(jù)權(quán)利要求10所述的工具,其特征在于,所述工具還適于在計(jì)算機(jī)化的設(shè)計(jì)環(huán)境內(nèi)操作。12.一種適用于在計(jì)算機(jī)化設(shè)計(jì)環(huán)境中使用的計(jì)算機(jī)化的工具,自動(dòng)地產(chǎn)生在制造至少一擴(kuò)展時(shí)有用的計(jì)算機(jī)代碼,所述工具配置為用戶僅需要提供用于所述擴(kuò)展的邏輯。13.根據(jù)權(quán)利要求12所述的工具,其特征在于,所述至少一擴(kuò)展選自由下述構(gòu)成的組(i)算數(shù)邏輯運(yùn)算單元擴(kuò)展;(ii)核心寄存器擴(kuò)展部分;(iii)輔助寄存器擴(kuò)展;以及(iv)條件代碼擴(kuò)展。14.根據(jù)權(quán)利要求13所述的工具,其特征在于,所述設(shè)計(jì)環(huán)境包含面向?qū)ο蟮挠?jì)算機(jī)化環(huán)境。15.根據(jù)權(quán)利要求13所述的工具,其特征在于,所述工具還包含具有多個(gè)置標(biāo)語(yǔ)言擴(kuò)展定義的數(shù)據(jù)庫(kù),所述定義各參考至少一模板。16.根據(jù)權(quán)利要求15所述的工具,其特征在于,所述工具以對(duì)目標(biāo)架構(gòu)來說本地化的語(yǔ)言表述。17.一種產(chǎn)生用于與計(jì)算機(jī)化的處理器設(shè)計(jì)一起使用的擴(kuò)展部件的方法,包含從多個(gè)類型中選擇至少一擴(kuò)展類型,所述至少一擴(kuò)展類型包含以第一語(yǔ)言表述的擴(kuò)展定義;從用戶獲得關(guān)于所述擴(kuò)展所需功能的邏輯;參考以第二語(yǔ)言表述的至少一擴(kuò)展模板;以及基于關(guān)于所述定義、用戶邏輯、以及所述至少一擴(kuò)展模板三者中至少一部分產(chǎn)生所述擴(kuò)展部件。18.根據(jù)權(quán)利要求17所述的方法,其特征在于,還包含在基本上以所述第一語(yǔ)言表述的數(shù)據(jù)庫(kù)中存儲(chǔ)所述擴(kuò)展部件。19.一種對(duì)數(shù)字處理器的計(jì)算機(jī)化設(shè)計(jì)有用的擴(kuò)展部件,包含至少一擴(kuò)展模板,適用于產(chǎn)生用于至少一擴(kuò)展類型的控制邏輯;至少一擴(kuò)展測(cè)試模板,適用于允許測(cè)試所述擴(kuò)展部件;以及用戶提供的擴(kuò)展邏輯,描述所述擴(kuò)展部件的至少一部分功能。20.根據(jù)權(quán)利要求19所述的擴(kuò)展部件,其特征在于,還包含用戶提供的擴(kuò)展測(cè)試代碼;以及部件集成文件。21.根據(jù)權(quán)利要求19所述的擴(kuò)展部件,其特征在于,所述控制邏輯包含用于下述的實(shí)例的控制邏輯(i)擴(kuò)展算數(shù)邏輯運(yùn)算單元;(ii)條件代碼;以及(iii)擴(kuò)展寄存器。22.根據(jù)權(quán)利要求19所述的擴(kuò)展部件,其特征在于,所述測(cè)試模板適用于產(chǎn)生用于擴(kuò)展的擴(kuò)展測(cè)試代碼封包和編譯指令。23.根據(jù)權(quán)利要求19所述的擴(kuò)展部件,其特征在于,所述測(cè)試模板包含至少一擴(kuò)展測(cè)試占位符模板和至少一擴(kuò)展交叉引用模板。24.一種產(chǎn)生用于在計(jì)算機(jī)化的處理器設(shè)計(jì)中使用的擴(kuò)展部件的方法,包含選擇由所述部件使用的至少一擴(kuò)展類型;選擇與所述至少一擴(kuò)展類型相關(guān)的多個(gè)配置選項(xiàng);基于所述選擇步驟的至少一部分產(chǎn)生至少一模板;基于所述至少一模板的至少一部分產(chǎn)生定制界面;通過所述定制界面獲得邏輯;以及組合所述邏輯和所述至少一模板產(chǎn)生所述擴(kuò)展部件。25.根據(jù)權(quán)利要求24所述的方法,其特征在于,還包含在數(shù)據(jù)庫(kù)中以置標(biāo)語(yǔ)言格式存儲(chǔ)擴(kuò)展部件。26.根據(jù)權(quán)利要求25所述的方法,其特征在于,所述的選擇步驟包含從由下述構(gòu)成的組中選擇(i)算數(shù)邏輯運(yùn)算單元擴(kuò)展;(ii)核心寄存器擴(kuò)展;(iii)輔助寄存器擴(kuò)展;以及(iv)條件代碼擴(kuò)展。27.一種用于擴(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化工具,包含以通用語(yǔ)言表述的至少一抽象的和可配置的擴(kuò)展部件定義,所述部件定義適用于至少單獨(dú)地參考多個(gè)結(jié)構(gòu),所述各結(jié)構(gòu)是以不同的本地語(yǔ)言表述的。28.根據(jù)權(quán)利要求27所述的工具,其特征在于,至少一所述結(jié)構(gòu)是與還不存在的目標(biāo)架構(gòu)相關(guān)的。29.根據(jù)權(quán)利要求27所述的工具,其特征在于,所述多個(gè)結(jié)構(gòu)包含存儲(chǔ)在與所述部件定義不同位置的多個(gè)模板。30.根據(jù)權(quán)利要求27所述的工具,其特征在于,至少一所述多個(gè)結(jié)構(gòu)和所述定義是打包在一起的,以使單一的庫(kù)元件明確對(duì)應(yīng)于目標(biāo)架構(gòu)。31.一種用于根據(jù)多個(gè)不同的語(yǔ)言實(shí)施和架構(gòu)模型擴(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化工具,包含置標(biāo)語(yǔ)言數(shù)據(jù)庫(kù);第一數(shù)據(jù),在所述語(yǔ)言實(shí)施中公用,抽象成所述數(shù)據(jù)庫(kù);以及多個(gè)語(yǔ)言特有的模板界面對(duì)應(yīng)于所述多個(gè)語(yǔ)言實(shí)施中相應(yīng)的那個(gè)語(yǔ)言實(shí)施。32.一種工作方法,包含向至少一用戶提供設(shè)計(jì)環(huán)境,以及與所述設(shè)計(jì)環(huán)境兼容的擴(kuò)展工具;以及以預(yù)定的格式向所述至少一用戶提供處理器指令,所述格式適用與所述工具和設(shè)計(jì)環(huán)境一起使用,并且所述格式還適于限制所述用戶對(duì)與所述指令相關(guān)的特定參數(shù)的選擇以已經(jīng)預(yù)先存在的指令相關(guān)的所述多個(gè)參數(shù)中那個(gè)參數(shù)沒有沖突。33.根據(jù)權(quán)利要求32所述的方法,其特征在于,所述的以預(yù)定格式提供處理器指令的步驟包含提供具有預(yù)定的或者保留的操作碼的所述指令。34.一個(gè)適用于有效地?cái)U(kuò)展集成電路設(shè)計(jì)的計(jì)算機(jī)化的工具,包含以通用語(yǔ)言表述的至少一抽象的且可配置的擴(kuò)展部件定義,所述部件定義適用于產(chǎn)生支持文件。35.根據(jù)權(quán)利要求34所述的工具,其特征在于,所述的支持文件選自由以下構(gòu)成的組(i)測(cè)試硬件支持文件;測(cè)試軟件支持文件;以及(iii)匯編/編譯支持文件。36.一種用于產(chǎn)生處理器設(shè)計(jì)的計(jì)算機(jī)化的系統(tǒng),包含計(jì)算機(jī)化的父設(shè)計(jì)環(huán)境;擴(kuò)展工具,適用于與所述的環(huán)境一起工作,所述工具適用于通過以下的步驟來產(chǎn)生擴(kuò)展部件選擇與所述部件一起使用的至少一擴(kuò)展類型;選擇與所述至少一擴(kuò)展類型相關(guān)的多個(gè)配置選項(xiàng);基于所述選擇步驟的至少一部分產(chǎn)生至少一模板;基于所述至少一模板的至少一部分產(chǎn)生用戶界面;通過所述用戶界面獲得邏輯;以及組合所述邏輯和所述至少一模板以產(chǎn)生所述擴(kuò)展部件。37.根據(jù)權(quán)利要求36所述的系統(tǒng),其特征在于,所述設(shè)計(jì)環(huán)境包含適于在計(jì)算機(jī)上運(yùn)行的面向?qū)ο蟮沫h(huán)境。38.根據(jù)權(quán)利要求37所述的系統(tǒng),其特征在于,所述至少一擴(kuò)展類型包含算數(shù)邏輯運(yùn)算單元、條件代碼、輔助寄存器、或者核心寄存器中至少之一。39.根據(jù)權(quán)利要求38所述的系統(tǒng),其特征在于,所述擴(kuò)展部件和所述至少一模板以置標(biāo)語(yǔ)言表述。40.根據(jù)權(quán)利要求39所述的系統(tǒng),其特征在于,還包含適于存儲(chǔ)所述部件和所述模板中至少之一的置標(biāo)語(yǔ)言數(shù)據(jù)庫(kù)。41.根據(jù)權(quán)利要求40所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫(kù)還包含(i)用于所述擴(kuò)展部件的源代碼;以及(ii)與所述部件和處理器設(shè)計(jì)的集成相關(guān)的數(shù)據(jù)。全文摘要一種用于集成電路(IC)設(shè)計(jì)的裝置和方法包括向設(shè)計(jì)中配置和增加擴(kuò)展。在一示例性實(shí)施方式中,公開了以面向?qū)ο笳Z(yǔ)言表述的計(jì)算機(jī)程序?qū)嵤┯糜谙驍?shù)字處理器中自動(dòng)增加用戶定制的擴(kuò)展的上述方法。該程序包括適用于改變抽象級(jí)并且重要地自動(dòng)創(chuàng)建和產(chǎn)生各種不同擴(kuò)展類型的擴(kuò)展工具,所述擴(kuò)展類型例如ALU、條件代碼和寄存器。使用抽象出的擴(kuò)展部件的置標(biāo)語(yǔ)言(例如,XML)數(shù)據(jù)庫(kù)以允許增加和修改擴(kuò)展,并且擴(kuò)展能夠跨越不同的目標(biāo)架構(gòu)。文檔編號(hào)G06F17/50GK1973290SQ200480031957公開日2007年5月30日申請(qǐng)日期2004年8月27日優(yōu)先權(quán)日2003年8月29日發(fā)明者李·休伊特,馬克·法爾,董超,西蒙·布拉德利申請(qǐng)人:Arc國(guó)際公司