亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可擴(kuò)展可重配置的原型系統(tǒng)及方法

文檔序號(hào):6649841閱讀:172來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):可擴(kuò)展可重配置的原型系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明是關(guān)于電路設(shè)計(jì)的自動(dòng)化和驗(yàn)證(validation)技術(shù),特別地本發(fā)明涉及片上系統(tǒng)型(SoC)電路的設(shè)計(jì)自動(dòng)化和驗(yàn)證技術(shù)。
背景技術(shù)
隨著集成度的提高,許多復(fù)雜邏輯系統(tǒng)現(xiàn)在可以在單個(gè)集成電路上實(shí)現(xiàn)。這樣的集成電路被稱(chēng)為片上系統(tǒng)(SoC)。片上系統(tǒng)一般包括一些復(fù)雜的單元,例如微處理器、外圍設(shè)備和內(nèi)存控制器等。許多片上系統(tǒng)還采用了來(lái)自一些其他供應(yīng)商的現(xiàn)有的電路設(shè)計(jì)。這些電路設(shè)計(jì)在業(yè)界被稱(chēng)為IP核。
在現(xiàn)有技術(shù)中,調(diào)試一個(gè)包含用戶(hù)設(shè)計(jì)的集成一個(gè)或多個(gè)來(lái)自第三方的IP核的系統(tǒng)是十分困難的,因?yàn)橛脩?hù)往往無(wú)法通過(guò)用戶(hù)設(shè)計(jì)和IP核的接口來(lái)完全控制IP核的時(shí)序和邏輯行為。例如,用戶(hù)設(shè)計(jì)不正確的輸出信號(hào)會(huì)導(dǎo)致IP核產(chǎn)生不可預(yù)料的行為,而IP核的行為又反饋到用戶(hù)設(shè)計(jì)從而使用戶(hù)設(shè)計(jì)進(jìn)入不可預(yù)料的狀態(tài)。這樣的錯(cuò)誤是極其難以診斷和定位的。因而,一個(gè)能夠使設(shè)計(jì)者控制用戶(hù)設(shè)計(jì)和IP核之間的接口的設(shè)計(jì)工具是十分需要的。

發(fā)明內(nèi)容
本發(fā)明提供了一種通過(guò)可重配置的平臺(tái)用來(lái)設(shè)計(jì)和仿真用戶(hù)設(shè)計(jì)的系統(tǒng)及其方法。本發(fā)明中的方法尤其適用于基于IP復(fù)用的設(shè)計(jì)方法學(xué),例如由用戶(hù)自行設(shè)計(jì)的可執(zhí)行用戶(hù)自己設(shè)計(jì)和來(lái)自第三方的IP核的片上系統(tǒng)類(lèi)設(shè)計(jì)。本發(fā)明可以在由內(nèi)存和一定數(shù)量的可編程邏輯器件組成的平臺(tái)上實(shí)現(xiàn)。這里的可編程邏輯器件可以是可編程邏輯門(mén)陣列。許多定制的電路可被配置用來(lái)與用戶(hù)設(shè)計(jì)交互操作,提供諸如設(shè)計(jì)調(diào)試、性能分析以及與仿真器連接等功能。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,用來(lái)設(shè)計(jì)和仿真用戶(hù)設(shè)計(jì)的系統(tǒng)包括(1)具有一個(gè)與用戶(hù)工作站相連的接口和一個(gè)數(shù)據(jù)通訊接口的一個(gè)系統(tǒng)控制器;(2)一個(gè)與該數(shù)據(jù)通訊接口相連的模擬平臺(tái),該模擬平臺(tái)包括多個(gè)現(xiàn)場(chǎng)可編程邏輯器件和存儲(chǔ)器,用以實(shí)現(xiàn)用戶(hù)設(shè)計(jì)和第三方IP核,該平臺(tái)還包括一個(gè)與目標(biāo)系統(tǒng)的接口與用戶(hù)設(shè)計(jì)在運(yùn)行時(shí)交互。該數(shù)據(jù)通訊接口包括一組配置總線,一組系統(tǒng)訪問(wèn)總線和一組時(shí)鐘總線。該與目標(biāo)系統(tǒng)的接口包括一組源于可編程器件的輸入/輸出端口的信號(hào)。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,使用用來(lái)設(shè)計(jì)和仿真用戶(hù)設(shè)計(jì)的系統(tǒng),用戶(hù)應(yīng)生成包含用戶(hù)設(shè)計(jì)和一個(gè)或多個(gè)第三方IP核的頂層模塊。用戶(hù)隨即綜合用戶(hù)設(shè)計(jì)。用戶(hù)設(shè)計(jì)和第三方IP核被合理地劃分成多個(gè)區(qū)塊,每個(gè)區(qū)塊均可由一個(gè)或多個(gè)可編程邏輯器件來(lái)實(shí)現(xiàn)。另外,每個(gè)可編程邏輯器件和每個(gè)IP核均被分配一個(gè)接口模塊。通過(guò)該接口模塊,任何一個(gè)實(shí)現(xiàn)在某個(gè)可編程邏輯器件內(nèi)的IP核可以與其他任何一個(gè)在同一個(gè)可編程邏輯器件內(nèi)的區(qū)塊進(jìn)行通信,也可以與在其他可編程邏輯器件內(nèi)的任一區(qū)塊進(jìn)行通信。這些區(qū)塊和接口模塊隨后被布局布線并物理實(shí)現(xiàn)在可編程邏輯器件內(nèi)。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,該被分配到各個(gè)IP核或各個(gè)可編程邏輯器件內(nèi)的接口模塊包括一個(gè)控制電路和一組可變數(shù)量的輸入/輸出單元,每個(gè)單元提供1比特的互連端口。在該實(shí)施例中,每個(gè)輸入/輸出單元包括一個(gè)動(dòng)態(tài)可重配置的存儲(chǔ)器模塊、一個(gè)用來(lái)選擇輸出到1比特互連端口的輸出信號(hào)多路選擇器以及一定數(shù)量的鎖存器,每個(gè)鎖存器均可有選擇性地捕獲從1比特互連端口接收到的信號(hào)。該多路選擇器和鎖存器可以由在動(dòng)態(tài)可重配置存儲(chǔ)器模塊內(nèi)存儲(chǔ)的數(shù)值來(lái)控制。該動(dòng)態(tài)可重配置存儲(chǔ)器模塊可由一個(gè)或多個(gè)動(dòng)態(tài)可重配置的存儲(chǔ)器單元組成,并由一個(gè)狀態(tài)機(jī)(例如,一個(gè)計(jì)數(shù)器)產(chǎn)生的地址來(lái)訪問(wèn)。動(dòng)態(tài)可重配置存儲(chǔ)器模塊通??梢允褂靡粋€(gè)比用戶(hù)設(shè)計(jì)使用的時(shí)鐘頻率更高的時(shí)鐘來(lái)操作。
該接口模塊可以用來(lái)實(shí)現(xiàn)一個(gè)輸出端口、一個(gè)輸入端口、一個(gè)雙向端口或一個(gè)三態(tài)端口。另外,在接口模塊內(nèi)實(shí)現(xiàn)的端口類(lèi)型可以被動(dòng)態(tài)改變。根據(jù)指定的測(cè)試或調(diào)試情況(例如,在邊界掃描操作中),接口模塊也可以被配置用來(lái)將在一個(gè)可編程邏輯器件中的IP核與其他在同一或不同的可編程邏輯器件中的IP核隔離開(kāi)來(lái)。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,一個(gè)或多個(gè)可編程邏輯器件可以被分配一個(gè)驗(yàn)證IP核用來(lái)驗(yàn)證用戶(hù)電路的功能。例如,這樣的驗(yàn)證IP核可以包括一個(gè)仿真業(yè)界標(biāo)準(zhǔn)總線的操作。
根據(jù)本發(fā)明的另一個(gè)具體實(shí)施例,一個(gè)或多個(gè)可編程邏輯器件可以被分配一個(gè)性能分析IP核。例如,性能分析IP核可以包括一個(gè)用來(lái)分析總線帶寬的IP核。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,該系統(tǒng)提供一個(gè)配置工具用以動(dòng)態(tài)重配置在一個(gè)選定的可編程邏輯器件中的邏輯電路。該配置工具也可以包括一個(gè)背板配置工具用來(lái)動(dòng)態(tài)重配置在一個(gè)裝有多個(gè)可編程邏輯器件的電路板上的總線。
根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,該系統(tǒng)提供一個(gè)系統(tǒng)調(diào)試工具來(lái)在運(yùn)行時(shí)監(jiān)測(cè)和分析在多個(gè)可編程邏輯器件之間的信號(hào)。該系統(tǒng)調(diào)試工具可以包括一個(gè)FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)回讀工具、一個(gè)系統(tǒng)訪問(wèn)總線操作工具、一個(gè)內(nèi)部邏輯分析儀工具、一個(gè)帶寬分析工、一個(gè)符號(hào)/事務(wù)提取工具和一個(gè)仿真器鏈接工具。該內(nèi)部邏輯分析儀工具在一個(gè)或多個(gè)可編程邏輯器件中插入一個(gè)邏輯分析電路。符號(hào)/事務(wù)提取工具可以讓用戶(hù)來(lái)把一個(gè)或多個(gè)信號(hào)關(guān)聯(lián)起來(lái),設(shè)定一個(gè)符號(hào)名或設(shè)定由多個(gè)信號(hào)組成的一個(gè)事務(wù)。一個(gè)事務(wù)可由在一定時(shí)間內(nèi)的一組信號(hào)波形來(lái)設(shè)定。調(diào)試工具可以偵測(cè)事務(wù)的發(fā)生并以符號(hào)名的方式向用戶(hù)報(bào)告。仿真器鏈接工具使用戶(hù)可以與一個(gè)在用戶(hù)工作站上運(yùn)行的仿真器程序交互,共同構(gòu)造一個(gè)軟/硬件協(xié)同仿真環(huán)境。


圖1是本發(fā)明的一個(gè)具體實(shí)施例的可擴(kuò)展可重配置原型系統(tǒng)100;圖2是本發(fā)明的可擴(kuò)展可重配置原型系統(tǒng)100的系統(tǒng)控制器102的框圖;圖3是本發(fā)明的可擴(kuò)展可重配置原型平臺(tái)103的示意圖;圖4是本發(fā)明的一個(gè)具體實(shí)施例的示例編譯流程;圖5是本發(fā)明的一個(gè)在一個(gè)存儲(chǔ)器件中常見(jiàn)的“寫(xiě)操作(write)”的事務(wù)波形;圖6a是本發(fā)明的一個(gè)具體實(shí)施例的一個(gè)片上系統(tǒng)設(shè)計(jì)620的示意圖,該片上系統(tǒng)設(shè)計(jì)包括用戶(hù)設(shè)計(jì)電路和IP,該用戶(hù)設(shè)計(jì)和IP被劃分到電路625-1至625-n上,每個(gè)分別與TAI-IP 626-1至626-n相連;圖6b是本發(fā)明的一個(gè)框圖,其所示為T(mén)AI IP 601-1至601-n被實(shí)現(xiàn)在FPGA103內(nèi),并用來(lái)做為FPGA602-1至602-n的接口;圖7是本發(fā)明的一個(gè)具體實(shí)施例的TAI IP 700的框圖;圖8是本發(fā)明的一個(gè)具體實(shí)施例的TAI IP單元800的框圖。
具體實(shí)施例方式
圖1為本發(fā)明的一個(gè)具體實(shí)施例的電可重配置原型系統(tǒng)100。如圖所示,電可重配置原型系統(tǒng)100包括可擴(kuò)展可重配置的原型平臺(tái)103,該原型平臺(tái)103可由一個(gè)或多個(gè)FPGA電路組成??蓴U(kuò)展可重配置原型平臺(tái)103與一個(gè)目標(biāo)系統(tǒng)104通過(guò)可編程的輸入/輸出端口105進(jìn)行交互。這些輸入/輸出端口可以由FPGA驅(qū)動(dòng)??蓴U(kuò)展可重配置原型平臺(tái)103由系統(tǒng)控制器102通過(guò)一組或多組數(shù)據(jù)總線控制。在本實(shí)施例中,這些數(shù)據(jù)總線包括系統(tǒng)配置總線108、系統(tǒng)訪問(wèn)總線(SUB)107和時(shí)鐘總線106。系統(tǒng)配置總線108是用來(lái)配置FPGA電路;系統(tǒng)訪問(wèn)總線(SUB)107是用來(lái)在系統(tǒng)控制器102和可擴(kuò)展可重配置的原型平臺(tái)103之間進(jìn)行數(shù)據(jù)通信;時(shí)鐘總線106為操作可擴(kuò)展可重配置原型平臺(tái)103提供了一個(gè)或多個(gè)時(shí)間基準(zhǔn)。
用戶(hù)工作站101為用戶(hù)提供一個(gè)圖形化的用戶(hù)界面來(lái)操控電可重配置原型系統(tǒng)100的工作。通過(guò)這個(gè)圖形界面,用戶(hù)工作站101的一個(gè)用戶(hù)可以訪問(wèn)用戶(hù)設(shè)計(jì),操作一個(gè)用來(lái)把用戶(hù)設(shè)計(jì)轉(zhuǎn)換成適用于可擴(kuò)展可重配置原型平臺(tái)103的配置信號(hào)的編譯器,使用各種IP庫(kù),調(diào)用電子設(shè)計(jì)自動(dòng)化軟件和運(yùn)行時(shí)軟件。用戶(hù)工作站101可以是一個(gè)工程用工作站或個(gè)人電腦。在本實(shí)施例中,用戶(hù)工作站101與系統(tǒng)控制器102通過(guò)業(yè)界標(biāo)準(zhǔn)通信接口109進(jìn)行通信。該接口109可以是USB、PCI、IEEE-1394(又稱(chēng)“火線”)或其他各種業(yè)界標(biāo)準(zhǔn)通信總線。
在本實(shí)施例中,一個(gè)用戶(hù)設(shè)計(jì)可以通過(guò)常規(guī)的電路圖工具輸入或編輯,或者用一種行為或硬件描述語(yǔ)言(例如,SystemC,Verilog,System Verilog,VHDL等)來(lái)表現(xiàn),然后被綜合成邏輯門(mén)級(jí)的電路圖。本發(fā)明可以在硬件原型系統(tǒng),即電可重配置系統(tǒng)100里,實(shí)現(xiàn)對(duì)已綜合的電路的仿真和驗(yàn)證。
圖2是系統(tǒng)控制器102的一個(gè)框圖。系統(tǒng)控制器102包括通信接口204,系統(tǒng)訪問(wèn)總線控制器202,時(shí)鐘生成器203和配置控制器201。配置控制器201處理配置信號(hào)協(xié)議并從用戶(hù)工作站101通過(guò)配置總線108傳送配置數(shù)據(jù)到可擴(kuò)展可重配置的原型平臺(tái)103。這樣,配置控制器201就可以來(lái)配置或下載一定格式的用戶(hù)設(shè)計(jì)到可擴(kuò)展可重配置FPGA103中的FPGA。配置總線108也可以用來(lái)將在各個(gè)FPGA中的設(shè)計(jì)回讀,用以校驗(yàn);或者在運(yùn)行時(shí)獲取用戶(hù)設(shè)計(jì)中的狀態(tài)信息和數(shù)據(jù)。回讀操作一般是通過(guò)常規(guī)的技巧或使用供應(yīng)商提供的協(xié)議,比如SelectMap和JTAG(邊界掃描)。在本實(shí)施例中,配置總線108可以被用來(lái)測(cè)試在原型系統(tǒng)100中可擴(kuò)展可重配置的原型平臺(tái)103的可編程門(mén)陣列。
系統(tǒng)訪問(wèn)總線控制器通過(guò)系統(tǒng)訪問(wèn)總線(SUB)在運(yùn)行時(shí)訪問(wèn)設(shè)計(jì)和系統(tǒng)特定部件中的寄存器、FIFO(先進(jìn)先出隊(duì)列)、存儲(chǔ)器和其他狀態(tài)單元,例如由編譯器插入用戶(hù)設(shè)計(jì)的特殊邏輯單元。系統(tǒng)訪問(wèn)總線107也可以用來(lái)把可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA復(fù)位或初始化到特定的工作狀態(tài)。
時(shí)鐘發(fā)生器203驅(qū)動(dòng)時(shí)鐘總線106給FPGA陣列提供各種時(shí)鐘信號(hào)。這些時(shí)鐘信號(hào)的頻率和占空比均可編程。這些時(shí)鐘被下載在可擴(kuò)展可重配置的原型平臺(tái)103中的用戶(hù)設(shè)計(jì)使用。
如上所述,可擴(kuò)展可重配置的原型平臺(tái)103可以由一個(gè)或多個(gè)可擴(kuò)展的背板(或電路板)、FPGA、動(dòng)態(tài)可配置的電開(kāi)關(guān)組成??蓴U(kuò)展可重配置的原型平臺(tái)103可以包含任意數(shù)量的FPGA和開(kāi)關(guān)。圖3所示為可擴(kuò)展可重配置的原型平臺(tái)103的示意圖。如圖3所示,一個(gè)可擴(kuò)展可重配置的原型平臺(tái)由FPGA 304-1到304-n構(gòu)成。301-1到304-n中的每個(gè)FPGA都有超過(guò)一組的連接線與其他FPGA相連。本實(shí)施例中,一個(gè)或多個(gè)總線(例如,總線301-303)被用來(lái)互連FPGA 304-1至304-n。在這種方式下,信號(hào)可由任一FPGA連接到其他任意FPGA。總線301-303可以被設(shè)置為“全局總線”(即每個(gè)FPGA都可以訪問(wèn)的總線)?;蛘撸偩€301-303也可以被分配成各種配置,這樣每條總線都可以被配置成為某一組特定FPGA專(zhuān)用。這些總線也可以通過(guò)動(dòng)態(tài)可配置的電路開(kāi)關(guān)相互連。這些電路開(kāi)關(guān)可以由特殊的開(kāi)關(guān)電路來(lái)提供,或者被配置到FPGA 304-1到304-n中。這些FPGA可以被配置成為一個(gè)層次化的結(jié)構(gòu)。在這個(gè)結(jié)構(gòu)中,F(xiàn)PGA可以被分組。這樣,每組中的FPGA由一個(gè)“局部”的互連總線互連,而這些局部互連總線由一層或多層的動(dòng)態(tài)可重配置開(kāi)關(guān)相連。另外,每個(gè)FPGA可以有一個(gè)或多個(gè)輸入或輸出信號(hào)連接在輸入/輸出總線105上與目標(biāo)系統(tǒng)104通信。這些輸入/輸出信號(hào)也可以被由一層或多層動(dòng)態(tài)可配置開(kāi)關(guān)互連,用作FPGA之間的信號(hào)互通。無(wú)論如何,隨著技術(shù)的演進(jìn)和提升,這些互連線的數(shù)量不受限制。這些互連總線和開(kāi)關(guān)通常是在一個(gè)或多個(gè)背板或電路路上實(shí)現(xiàn)為佳?;蛘?,任何的互連總線(例如,總線301-303,配置總線108,SUB總線107或時(shí)鐘總線106中的任一)也可以由電纜、光纖或其他互連方式來(lái)實(shí)現(xiàn)。
一個(gè)復(fù)雜的數(shù)字系統(tǒng)(例如,一個(gè)片上系統(tǒng)或一個(gè)專(zhuān)用電路)通常包括多個(gè)子系統(tǒng)。例如,一個(gè)片上系統(tǒng)設(shè)計(jì)可以包括諸如一個(gè)多媒體子系統(tǒng)、一個(gè)信號(hào)處理子系統(tǒng)、一個(gè)外設(shè)控制系統(tǒng)和一個(gè)中央處理器。每個(gè)子系統(tǒng)可以被配置到一組由一條共用的局部總線連接的FPGA。然后由動(dòng)態(tài)可配置開(kāi)關(guān)來(lái)連接這條局部總線到系統(tǒng)的其他總線。這條共用的局部總線也可以是一條被設(shè)置成“關(guān)”模式(斷開(kāi)連接)的全局總線,這樣來(lái)做為子系統(tǒng)中專(zhuān)用的局部總線。在各條局部總線之間的開(kāi)關(guān)可以被配置成“開(kāi)”模式來(lái)完成子系統(tǒng)之間的通信。全局總線可以被用來(lái)作為子系統(tǒng)之間的通信或FPGA之間的點(diǎn)對(duì)點(diǎn)通信。
為了把一個(gè)用戶(hù)設(shè)計(jì)在可擴(kuò)展可重配置的原型平臺(tái)103中實(shí)現(xiàn),用戶(hù)在用戶(hù)工作站101上使用一個(gè)編譯器。圖4所示為本發(fā)明的一個(gè)實(shí)施例的編譯器程序的流程圖。如圖4所示,在步驟401中,一個(gè)系統(tǒng)設(shè)計(jì)者可以調(diào)用一個(gè)頂層模塊生成器來(lái)為用戶(hù)設(shè)計(jì)生成一個(gè)頂層模塊。用戶(hù)設(shè)計(jì)可以包含特殊的設(shè)計(jì)單元和第三方的IP核。這個(gè)頂層模塊生成器用來(lái)幫助集成來(lái)自用戶(hù)自己的庫(kù)和第三方提供商的各種設(shè)計(jì)和IP核。該生成器根據(jù)標(biāo)準(zhǔn)的總線定義和用戶(hù)自定義的總線和信號(hào)互連關(guān)系來(lái)自動(dòng)連接用戶(hù)設(shè)計(jì)單元和第三方IP核?;蛘?,系統(tǒng)設(shè)計(jì)者也可以手工的創(chuàng)建頂層模塊而不使用自動(dòng)頂層模塊生成器。
在步驟402中,一個(gè)系統(tǒng)或電路設(shè)計(jì)者使用編譯器來(lái)導(dǎo)入(例如,使用一個(gè)“導(dǎo)入設(shè)計(jì)”命令)在頂層模塊中的各個(gè)設(shè)計(jì)單元。這個(gè)設(shè)計(jì)通常是由一種硬件描述語(yǔ)言或網(wǎng)表形式表述。編譯器檢查設(shè)計(jì)的語(yǔ)法、可綜合性和完整性(例如,是否所有在設(shè)計(jì)源碼中的邏輯單元是在一個(gè)預(yù)定義的庫(kù)或一個(gè)邏輯數(shù)據(jù)庫(kù)里可用的或可鏈接獲得的)。如果在一個(gè)導(dǎo)入的設(shè)計(jì)中有錯(cuò)誤存在或一個(gè)邏輯塊不可用,編譯器軟件會(huì)報(bào)告一個(gè)導(dǎo)入錯(cuò)誤。根據(jù)需要,步驟402可以被重復(fù)多次,直到所有的輸入源碼被檢查正確并被編譯器接受。
在設(shè)計(jì)被導(dǎo)入后,在步驟403中,通過(guò)使用例如一條編譯器中的“綜合”命令或可被編譯器調(diào)用的第三方綜合工具,設(shè)計(jì)者可以綜合設(shè)計(jì)中所有的硬件描述(硬件描述語(yǔ)言或其他格式)。在實(shí)施例中,編譯器以自底向上的策略綜合第三方IP核,以此來(lái)保持第三方IP核的邊界信號(hào)并保持運(yùn)行時(shí)性能。綜合后的設(shè)計(jì)包含可以用來(lái)配置到可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA里的網(wǎng)表形式(比如,EDIF文件)。在實(shí)施例中,編譯器把所有EDIF文件合并到一個(gè)EDIF文件來(lái)代表用戶(hù)設(shè)計(jì)。
在本實(shí)施例中,在步驟404中,當(dāng)一個(gè)設(shè)計(jì)被綜合后,設(shè)計(jì)者可以調(diào)用一個(gè)編譯器中的“符號(hào)定義”命令開(kāi)始符號(hào)定義過(guò)程。在符號(hào)定義過(guò)程中,用戶(hù)可以把任何一個(gè)單獨(dú)的信號(hào)或一組信號(hào)定義為一個(gè)符號(hào)。任意數(shù)量的信號(hào)都可以定義為一個(gè)符號(hào)。另外,用戶(hù)也可以定義一個(gè)事務(wù),即一組特定的符號(hào)或信號(hào)的一系列事件,或一組任意長(zhǎng)度的波形。當(dāng)信號(hào)或符號(hào)的狀態(tài)轉(zhuǎn)換與事務(wù)中指定的一定長(zhǎng)度的波形相吻合時(shí),認(rèn)為該事務(wù)發(fā)生。例如,圖5所示是一個(gè)存儲(chǔ)設(shè)備的典型的“寫(xiě)操作”的事務(wù)波形。如圖5所示,這個(gè)“寫(xiě)操作”事務(wù)包括了五個(gè)符號(hào)的波形單獨(dú)的信號(hào)“時(shí)鐘(clk)”,“寫(xiě)操作(write)”,“片選(chipselect)”和總線信號(hào)“地址(address)”,“數(shù)據(jù)(data)”。在這個(gè)例子中,這個(gè)事務(wù)為兩個(gè)時(shí)鐘周期長(zhǎng)。如圖5所示,周期1和周期2在0納秒到100秒之間。在這段時(shí)間內(nèi),“片選(chipselect)”和“寫(xiě)操作(write)”控制信號(hào)都被置為有效一個(gè)“時(shí)鐘(clk)”信號(hào)的周期長(zhǎng)。這個(gè)兩個(gè)時(shí)鐘周期內(nèi)的信號(hào)波形定義了這個(gè)事務(wù)。為了檢測(cè)事務(wù)的發(fā)生,原型系統(tǒng)100可以被配置成在運(yùn)行時(shí)監(jiān)測(cè)指定信號(hào)并將信號(hào)變化與預(yù)定的事務(wù)中的信號(hào)變化相比較。與現(xiàn)有技術(shù)不同的是,當(dāng)事務(wù)發(fā)生被檢測(cè)到時(shí),軟件會(huì)向用戶(hù)報(bào)告事務(wù)的發(fā)生,而不是讓用戶(hù)去解讀一堆信號(hào)狀態(tài)。在這種方式下,事務(wù)以高階抽象的方式向用戶(hù)報(bào)告,既而被用來(lái)幫助調(diào)試。在一個(gè)實(shí)施例中,信號(hào)狀態(tài)被采樣并存儲(chǔ)在一個(gè)板上的存儲(chǔ)器中,或者是在用戶(hù)工作站101上的存儲(chǔ)器或文件中,以被用來(lái)做進(jìn)一步的分析。符號(hào)和事務(wù)在調(diào)試模式下尤其有用,在調(diào)試模式下信號(hào)比較和事務(wù)檢測(cè)機(jī)制都與前述的運(yùn)行時(shí)完全一致。電路設(shè)計(jì)者可以按需要定義任意多的符號(hào)和事務(wù),這樣,大量的運(yùn)行時(shí)信號(hào)信息可以在高抽象層次被定義,以方便調(diào)試。在調(diào)試模式下定義的符號(hào)和事務(wù)可以被轉(zhuǎn)換到運(yùn)行時(shí)使用和觀察。
在步驟405中,用戶(hù)可以用一個(gè)編譯器中的“劃分”命令來(lái)把設(shè)計(jì)劃分到多個(gè)區(qū)塊,每個(gè)區(qū)塊將會(huì)在一個(gè)單獨(dú)的FPGA中實(shí)現(xiàn)。第三方IP核也被劃分并實(shí)現(xiàn)在各個(gè)FPGA中。一個(gè)大的IP核可以被劃分到多個(gè)FPGA中。在一個(gè)實(shí)施例中,劃分命令調(diào)用第三方的劃分工具。由于在后文中講到的“TAI IP單元”的互連方法,在原型系統(tǒng)100中的劃分工具可以遵循最大化FPGA的容量利用率而不用被FPGA的管腳所限的原則來(lái)優(yōu)化劃分。劃分工具產(chǎn)生在可擴(kuò)展FPGA陣列中的每個(gè)FPGA的單獨(dú)的網(wǎng)表。劃分步驟405會(huì)保留所有的用戶(hù)設(shè)計(jì)的所有信息和功能?;蛘撸谌絼澐制骰蚴止澐忠部梢员挥脕?lái)劃分設(shè)計(jì)。劃分器可以接受設(shè)置約束條件,用以指示劃分器來(lái)生成針對(duì)可擴(kuò)展可重配置的原型平臺(tái)103的硬件的網(wǎng)表。
在步驟406中,在用戶(hù)設(shè)計(jì)被劃分后,編譯器在每個(gè)FPGA區(qū)塊中插入一個(gè)定制的電路結(jié)構(gòu)來(lái)提供“可測(cè)性”、“可分析性”和“互連”功能。這個(gè)被稱(chēng)為“TAI IP”的特制的電路結(jié)構(gòu)也被插入到各個(gè)IP或一個(gè)被劃分到多個(gè)FPGA的一個(gè)IP的各個(gè)部分。圖6a中所示為劃分后電路拓?fù)浣Y(jié)構(gòu)的一個(gè)邏輯視圖。如圖6a所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例,一個(gè)包括用戶(hù)設(shè)計(jì)電路和第三方IP的片上系統(tǒng)設(shè)計(jì)620,設(shè)計(jì)被劃分到電路625-1到625-n中,每個(gè)分別對(duì)應(yīng)TAI-IP 626-1到626-n。625-1到625-n中的每個(gè)電路分別是將被實(shí)現(xiàn)在一個(gè)FPGA中的用戶(hù)設(shè)計(jì)的一個(gè)分塊、一個(gè)IP或一個(gè)IP的一個(gè)部分。在某些實(shí)例中,一個(gè)用戶(hù)設(shè)計(jì)的分塊可以被分配到同一個(gè)FPGA。625-1到625-n中的每一塊電路通過(guò)與他們相關(guān)聯(lián)的TAI IP 626-1到626-n及一條或多條通信總線或通道(如圖中所示總線630-1到630-02)與其他部分相互通信。(雖然在圖6a中只示出兩條總線,根據(jù)用戶(hù)的選擇和電路間的互連關(guān)系,一個(gè)通信通道可以包括一條或多條信號(hào)總線。)圖6b是一個(gè)結(jié)構(gòu)框圖,其所示為T(mén)AI IP 602-1到601-n被實(shí)現(xiàn)在可擴(kuò)展可重配置的原型平臺(tái)103中,用來(lái)作為FPGA 602-1到602-n之間的接口。如圖6b所示,每個(gè)FPGA中的TAI IP與其他FPGA中的TAI IP相連,來(lái)提供可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA之間的互連。而一個(gè)FPGA中的每個(gè)IP則也通過(guò)與其相關(guān)的TAI IP與分配在該FPGA中的其他電路以及其他FPGA中的電路通信。在這樣的結(jié)構(gòu)下,一個(gè)IP的輸入和輸出可以通過(guò)TAI IP來(lái)控制。例如,IP的每個(gè)輸出信號(hào)可以被從用戶(hù)設(shè)計(jì)上隔離,而信號(hào)狀態(tài)可以被替換成固定值來(lái)方便調(diào)試。另外,IP的輸入和輸出信號(hào)可以被獨(dú)立監(jiān)測(cè)來(lái)提高可測(cè)性。
圖7是本發(fā)明的一個(gè)實(shí)施例的TAI IP 700的一個(gè)框圖。如圖7所示,TAIIP 700包括控制電路701用以控制TAI IP結(jié)構(gòu)塊電路(“TAI IP單元”)702-1到702-n。每個(gè)TAI IP中的TAI IP單元的數(shù)量是一個(gè)可編程的設(shè)計(jì)參數(shù),通常根據(jù)FPGA陣列板上需要互連的FPGA的數(shù)量、用戶(hù)設(shè)計(jì)的輸入輸出要求和用戶(hù)的指定來(lái)決定。每個(gè)TAI IP單元通過(guò)一個(gè)一位的互連端口(例如,互連端口703-1到703-n中的一個(gè))來(lái)連接到可擴(kuò)展FPGA陣列103電路板上的一條總線?;谶@些要求,編譯器決定所需的TAI IP單元的數(shù)量并產(chǎn)生所需的每個(gè)FPGA中的TAI IP中TAI IP單元和控制電路。
圖8是本發(fā)明的一個(gè)實(shí)施例的TAI IP單元800。如圖8所示,TAI IP單元800包括動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802、多路信號(hào)選擇器803、雙向緩沖器806(包括輸出緩沖器806a和輸入緩沖器806b)和信號(hào)鎖存器807。動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801控制的數(shù)據(jù)輸出信號(hào)808和與之相應(yīng)的輸出使能信號(hào)805的多路選擇。數(shù)據(jù)輸出信號(hào)809和相應(yīng)的輸出使能信號(hào)805包括配置在FPGA中的用戶(hù)設(shè)計(jì)的輸出信號(hào)和指定的內(nèi)部邏輯節(jié)點(diǎn)信號(hào)。另外,固定信號(hào)810(包括一個(gè)固定的“0”和一個(gè)固定的“1”)也可以被信號(hào)輸出多路選擇器選中來(lái)通過(guò)互連端口703傳遞。在這樣的結(jié)構(gòu)下,一個(gè)輸出信號(hào)可以在任何時(shí)刻輸出到互連端口703上。數(shù)據(jù)輸出信號(hào)809中的未分配信號(hào)可以被連上任意的值。如后文所述,這樣的組織使得運(yùn)行時(shí)的增量信號(hào)配置不需要完全的重編譯。未使用的輸出使能信號(hào)被分配一個(gè)“使無(wú)效”的信號(hào)狀態(tài),這樣可以防止無(wú)意地輸出一個(gè)值到互連端口703。
動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器802控制一組信號(hào)鎖存器,每個(gè)鎖存器可以被選中來(lái)鎖存互連端口703上的輸入信號(hào)。如上所述,互連端口703通過(guò)一位的互連總線從其他FPGA接收到信號(hào)。信號(hào)鎖存器807的輸出信號(hào)驅(qū)動(dòng)信號(hào)808,信號(hào)808被連接到用戶(hù)設(shè)計(jì)中的元件的輸入端口。輸入信號(hào)808中未分配的信號(hào)可以被留空。
動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802由控制記數(shù)器尋址,這樣動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802可以在運(yùn)行時(shí)由SUB總線107加載。多路選擇器804控制雙向緩沖器806的方向,由此來(lái)決定互連總線703是一個(gè)輸入端口、一個(gè)輸出端口或一個(gè)雙向端口。多路選擇器804的選擇信號(hào)可以在運(yùn)行時(shí)被改變動(dòng)態(tài)配置端口類(lèi)型。如圖8中所示的實(shí)施例,多路選擇器803和804同時(shí)由動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801產(chǎn)生的控制信號(hào)控制,并選擇同樣數(shù)量的信號(hào)。在這種配置下,相應(yīng)的多路選擇器803和804的輸入信號(hào)被選中。這樣的結(jié)構(gòu)當(dāng)然不是必需的。多個(gè)多路選擇器也可以由動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801的輸出字中的不同字段來(lái)控制,用來(lái)選擇設(shè)計(jì)輸出信號(hào)809和輸出使能信號(hào)805。
一個(gè)三態(tài)輸出端口可以通過(guò)把數(shù)據(jù)輸出信號(hào)作為信號(hào)809中的一個(gè),并把相應(yīng)的輸出使能信號(hào)作為相應(yīng)的輸出使能信號(hào)805中的一個(gè)來(lái)實(shí)現(xiàn)。當(dāng)相應(yīng)的輸出使能信號(hào)被置為無(wú)效時(shí)即得到高阻態(tài)。相似地,一個(gè)雙向信號(hào)可以通過(guò)同時(shí)作為數(shù)據(jù)輸出信號(hào)809和數(shù)據(jù)輸入信號(hào)808以及把相應(yīng)的輸出使能信號(hào)作為輸出使能信號(hào)805中的一個(gè)來(lái)實(shí)現(xiàn)。編譯器確保雙向端口被正確的映射,這樣相應(yīng)的動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器中的相應(yīng)的地址總是被同時(shí)選中。在一個(gè)實(shí)施例中,雙向信號(hào)被映射到動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802中的相同地址。
一個(gè)TAI IP(例如,TAI IP 601-1到601-n中的任一個(gè))可以工作在一個(gè)比用戶(hù)設(shè)計(jì)更快的時(shí)鐘。以這個(gè)快時(shí)鐘來(lái)控制增大或減小計(jì)數(shù)器,并由計(jì)數(shù)器產(chǎn)生用來(lái)訪問(wèn)動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802的地址。每個(gè)計(jì)數(shù)器有一個(gè)可以編程的最大和最小的計(jì)數(shù)值。通常,當(dāng)計(jì)數(shù)器達(dá)到最大或最小計(jì)數(shù)值時(shí),計(jì)數(shù)器輪回計(jì)數(shù)。當(dāng)達(dá)到計(jì)數(shù)上限時(shí),計(jì)數(shù)器被復(fù)位到零。當(dāng)計(jì)數(shù)器在一個(gè)用戶(hù)設(shè)計(jì)的時(shí)鐘周期內(nèi)至少被復(fù)位一次,用戶(hù)設(shè)計(jì)的輸入輸出信號(hào)和要被鎖存的信號(hào)都已經(jīng)被正確的傳送。在這個(gè)實(shí)施例中,每個(gè)計(jì)數(shù)器中的最大或最小計(jì)數(shù)值可以通過(guò)SUB 107在運(yùn)行時(shí)編程。這樣每個(gè)快時(shí)鐘周期內(nèi)可以被交互的信號(hào)可以動(dòng)態(tài)可變。由于動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器801和802可以由用戶(hù)或由實(shí)時(shí)軟件通過(guò)SUB 107來(lái)寫(xiě)入,互連端口703的輸入或輸出信號(hào)就可以以用戶(hù)時(shí)鐘為依據(jù)動(dòng)態(tài)地調(diào)整。這樣的能力使得信號(hào)值或連接可以在測(cè)試或調(diào)試模式下可變。
在TAI IP被插入后,在步驟407中,編譯器調(diào)用布局布線程序來(lái)處理每個(gè)FPGA的網(wǎng)表。布局布線程序通常是FPGA供應(yīng)商定制的程序,用來(lái)把每個(gè)網(wǎng)表轉(zhuǎn)換成一個(gè)二進(jìn)制文件或一個(gè)文本文件。這個(gè)輸出的文件可以下載到可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA中去。在一個(gè)實(shí)施例中,布局布線程序可以在多于一個(gè)用戶(hù)工作站或處理器上運(yùn)行來(lái)并行處理FPGA的布局布線任務(wù)。布局布線后的二進(jìn)制或文本文件可以被存儲(chǔ)在用戶(hù)工作站104上,留待實(shí)時(shí)軟件的進(jìn)一步處理。
一個(gè)IP庫(kù)可以包括除了TAI IP以外的其他提供電路驗(yàn)證、電路調(diào)試和性能分析功能的IP。系統(tǒng)設(shè)計(jì)者可以把一個(gè)或多個(gè)這樣的IP加入用戶(hù)設(shè)計(jì)。把這樣的IP加入用戶(hù)設(shè)計(jì)可以由系統(tǒng)設(shè)計(jì)者指示編譯器或由手工在用戶(hù)設(shè)計(jì)的源代碼中實(shí)例化這些IP來(lái)完成。
用作電路驗(yàn)證的IP(驗(yàn)證IP)可以包括諸如仿真一個(gè)USB總線或PCI總線的電路,用來(lái)驗(yàn)證與一個(gè)USB總線或PCI總線有交互的用戶(hù)設(shè)計(jì)的工作。用在原型系統(tǒng)100中的驗(yàn)證IP使用戶(hù)或?qū)崟r(shí)軟件可以通過(guò)SUB 107訪問(wèn)驗(yàn)證IP的創(chuàng)建者或提供商提供的工作信息。通常,驗(yàn)證IP監(jiān)測(cè)用戶(hù)設(shè)計(jì)的行為,檢查用戶(hù)設(shè)計(jì)與標(biāo)準(zhǔn)通信或信號(hào)協(xié)議的兼容性,或是將用戶(hù)設(shè)計(jì)的行為與一個(gè)特定的行為模式(正確的模式)相比較。驗(yàn)證IP可以提供分析報(bào)告和錯(cuò)誤或警告信息給用戶(hù)或?qū)崟r(shí)軟件。
例如,用作調(diào)試的IP核(調(diào)試IP核)包括完成一個(gè)內(nèi)部邏輯分析儀功能的IP核(內(nèi)部邏輯分析儀IP核)或一個(gè)數(shù)據(jù)流/狀態(tài)分析器。這些IP核使系統(tǒng)設(shè)計(jì)者可以在運(yùn)行時(shí)調(diào)試已配置好的系統(tǒng)。例如,一個(gè)內(nèi)部邏輯分析儀IP核可以用來(lái)在指定的觸發(fā)點(diǎn)采樣用戶(hù)設(shè)計(jì)中的信號(hào)值并存儲(chǔ)到存儲(chǔ)器單元用作后續(xù)分析。運(yùn)行軟件可以在運(yùn)行時(shí)訪問(wèn)并操作這些調(diào)試IP核。
用作性能分析的IP核(性能分析IP核)可以包括用來(lái)做帶寬分析的IP核。這些IP核可以用來(lái)收集性能信息并分析用戶(hù)設(shè)計(jì)的性能。與其他IP核一樣,性能分析IP核可以通過(guò)SUB 107與用戶(hù)或運(yùn)行時(shí)軟件通信來(lái)共同完成性能分析。
在運(yùn)行系統(tǒng)100中的運(yùn)行軟件可包括一個(gè)動(dòng)態(tài)配置工具集和一個(gè)系統(tǒng)調(diào)試工具集。動(dòng)態(tài)配置工具集接收用戶(hù)命令來(lái)配置可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA,背板和TA IPs修改操作模式,交互和甚至實(shí)時(shí)地設(shè)計(jì)功能。在一個(gè)實(shí)施例中,在對(duì)FPGA命令做出響應(yīng)后,F(xiàn)PGA配置工具讀取二進(jìn)制或者ASCII的FPGA配置文件并將文件傳送至系統(tǒng)控制器102中的配置控制器201。FPGA配置工具可單獨(dú)配置一個(gè)或多個(gè)可擴(kuò)展可重配置的原型平臺(tái)103中的FPGA,甚至所需一個(gè)FPGA中的部分。例如,用戶(hù)可修改一個(gè)FPGA中的邏輯塊。使用FPGA配置工具可將修改的邏輯塊下載至FPGA中,而不需要重新配置別的FPGA。
響應(yīng)一個(gè)電路板配置命令,背板配置工具配置電路板上或者可擴(kuò)展可重配置的原型平臺(tái)103中背板上的可配置開(kāi)關(guān)。典型地,任一開(kāi)關(guān)可設(shè)置成“開(kāi)”狀態(tài)或“關(guān)”狀態(tài)。當(dāng)開(kāi)關(guān)處于“開(kāi)”狀態(tài)時(shí),開(kāi)關(guān)導(dǎo)通。當(dāng)開(kāi)關(guān)處于“關(guān)”狀態(tài)時(shí),開(kāi)關(guān)斷開(kāi)。背板配置工具可以用作諸如選擇性地將部分互聯(lián)總線配置成本地總線。
響應(yīng)一個(gè)TAI IP配置命令,TAI IP配置工具生成用于通過(guò)SUB 107存儲(chǔ)在TAI IP單元中的一個(gè)或多個(gè)動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器中的數(shù)據(jù)。這些數(shù)據(jù)代表了FPGA之間的互連關(guān)系或用戶(hù)的特殊需求。例如,某用戶(hù)可能希望給一個(gè)指定的FPGA的某個(gè)輸入信號(hào)提供一個(gè)為“1”的值而不用重編譯。為了達(dá)到這樣的效果,TAI IP配置工具重新計(jì)算所需要的標(biāo)記存儲(chǔ)器內(nèi)的值來(lái)產(chǎn)生這個(gè)輸入值,同時(shí)把修改后的標(biāo)記存儲(chǔ)器的值寫(xiě)入特定的動(dòng)態(tài)可重配置標(biāo)記存儲(chǔ)器。
系統(tǒng)調(diào)試工具集收集和分析設(shè)計(jì)和調(diào)試信息,并設(shè)置特殊的條件和信號(hào)來(lái)實(shí)時(shí)操縱用戶(hù)設(shè)計(jì)的工作。在一個(gè)實(shí)施例中,系統(tǒng)調(diào)試工具集包括(a)一個(gè)FPGA回讀工具,(b)一個(gè)SUB訪問(wèn)工具,(c)一個(gè)內(nèi)部邏輯分析工具,(d)一個(gè)帶寬分析工具,(e)一個(gè)符號(hào)/事務(wù)提取工具和(f)一個(gè)仿真鏈接工具。
FPGA回讀工具在運(yùn)行時(shí)讀取指定的FPGA的內(nèi)容或用戶(hù)設(shè)計(jì)中指定信號(hào)的狀態(tài)。FPGA回讀工具可以從提供商處獲得并使用提供商指定的協(xié)議,諸如JTAG或SelectMAP,來(lái)讀取指定FPGA的內(nèi)容。許多FPGA提供商提供工具來(lái)讀取FPGA中的任一個(gè)寄存器或存儲(chǔ)器單元的內(nèi)容。在這個(gè)實(shí)施例中,當(dāng)數(shù)據(jù)從FPGA回讀后,F(xiàn)PGA回讀工具把這些信息轉(zhuǎn)譯成信號(hào)值并映射到用戶(hù)設(shè)計(jì)中的信號(hào)名和符號(hào)。通過(guò)這樣的方式,就可以得到FPGA內(nèi)任何信號(hào)的完全可觀察性。
SUB訪問(wèn)工具被用來(lái)訪問(wèn)與SUB 107相連的用戶(hù)設(shè)計(jì)中的或原型系統(tǒng)100中的元件。元件都被映射到地址空間,這樣用SUB訪問(wèn)工具來(lái)訪問(wèn)元件就是通過(guò)發(fā)出命令,地址和數(shù)據(jù)到系統(tǒng)控制器102中的SUB控制器202來(lái)讀或?qū)懺械臄?shù)據(jù)。在一個(gè)實(shí)施例中,SUB 107被擴(kuò)展為可以讀寫(xiě)可擴(kuò)展可重配置的原型平臺(tái)103電路板中的任何元件。
內(nèi)部邏輯分析儀工具為原型系統(tǒng)100中內(nèi)嵌的邏輯分析儀設(shè)置觸發(fā)條件。這個(gè)邏輯分析儀是一個(gè)下載在可擴(kuò)展可重配置的原型平臺(tái)103中的一個(gè)或多個(gè)FPGA里的特殊的IP(內(nèi)部邏輯分析儀IP)。這個(gè)邏輯分析儀IP可以提供與傳統(tǒng)的邏輯分析儀相同的功能。在FPGA里與TAI IP共同作用,這個(gè)邏輯分析儀IP可以提供大量信號(hào)的采樣并處理大量的觸發(fā)條件。在一個(gè)實(shí)施例中,這個(gè)內(nèi)部邏輯分析儀工具在內(nèi)嵌的邏輯分析儀IP內(nèi)設(shè)置觸發(fā)條件,等待觸發(fā)條件或事件的發(fā)生,然后從邏輯分板儀IP中內(nèi)嵌的采樣存儲(chǔ)器中讀取采樣到的信號(hào)數(shù)據(jù)并把相關(guān)采樣數(shù)據(jù)轉(zhuǎn)譯成用戶(hù)定義的符號(hào)的形式。在一個(gè)實(shí)施例中,這個(gè)內(nèi)部邏輯分析儀工具設(shè)置一個(gè)邏輯分析儀IP內(nèi)嵌的復(fù)雜的事件狀態(tài)機(jī)。這個(gè)事件狀態(tài)機(jī)根據(jù)采得的信號(hào)數(shù)據(jù)工作來(lái)幫助調(diào)試。內(nèi)部邏輯分析儀工具與邏輯分析儀IP一起為用戶(hù)提供了實(shí)時(shí)監(jiān)測(cè)信號(hào)的功能(例如,在線運(yùn)行模式下)而不會(huì)干擾用戶(hù)設(shè)計(jì)的運(yùn)行狀況。
符號(hào)/事務(wù)提取工具把采樣得到的信號(hào)數(shù)據(jù)解釋為符號(hào)和事務(wù)級(jí)的信息。符號(hào)/事務(wù)提取工具把采樣得到的信號(hào)數(shù)據(jù)映射為符號(hào)和事務(wù)并以符號(hào)的形式表現(xiàn)給用戶(hù)。例如,在前文描述的一個(gè)總線“寫(xiě)操作”事務(wù)中,當(dāng)符號(hào)/事務(wù)提取工具發(fā)現(xiàn)一個(gè)“寫(xiě)操作”事務(wù)的實(shí)例,一條消息被創(chuàng)建來(lái)提供給用戶(hù)總線“寫(xiě)操作”事務(wù)的發(fā)生時(shí)間、“寫(xiě)操作”事務(wù)中寫(xiě)操作的地址和數(shù)據(jù)。這樣的能力是有十分有價(jià)值的,比如對(duì)于固件設(shè)計(jì)者在設(shè)計(jì)和調(diào)試固件程序時(shí)。
仿真器鏈接工具把用戶(hù)工作站101上運(yùn)行的仿真器與可擴(kuò)展可重配置的原型平臺(tái)103里的配置的用戶(hù)設(shè)計(jì)相連接來(lái)完成一個(gè)硬件/軟件的協(xié)同仿真。仿真器鏈接工具可以通過(guò)各種現(xiàn)有方式來(lái)訪問(wèn)仿真器。比如,在一個(gè)實(shí)施例中,一個(gè)PLI或VPI接口被用來(lái)提供與Verilog仿真器的通信,一個(gè)FLI接口被用來(lái)提供與VHDL仿真的通信,一個(gè)SCEMI接口被用來(lái)提供與有SCEMI接口的仿真器的通信。仿真器鏈接工具也可以支持其他標(biāo)準(zhǔn)接口或用戶(hù)定義的接口。
上文的詳細(xì)描述說(shuō)明了本發(fā)明的一些特定實(shí)施例,但本發(fā)明并不限于這些實(shí)施例。在本發(fā)明的范圍內(nèi)可有多種修改和替換均不超出本發(fā)明的揭露以及保護(hù)范圍。
權(quán)利要求
1.一種用于設(shè)計(jì)和仿真用戶(hù)設(shè)計(jì)的系統(tǒng),包括(i)一個(gè)系統(tǒng)控制器,包括(a)一個(gè)與用戶(hù)工作站相連的接口;(b)一個(gè)數(shù)據(jù)通訊接口;和(ii)一個(gè)與所述數(shù)據(jù)通訊接口相連的仿真平臺(tái),包括(a)多個(gè)可實(shí)現(xiàn)用戶(hù)設(shè)計(jì)和第三方IP核的現(xiàn)場(chǎng)可編程邏輯器件;(b)一個(gè)在運(yùn)行時(shí)與用戶(hù)設(shè)計(jì)交互的與目標(biāo)系統(tǒng)連接的接口。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述數(shù)據(jù)通訊接口包括一配置總線。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述數(shù)據(jù)通訊接口包括一系統(tǒng)訪問(wèn)總線。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述數(shù)據(jù)通訊接口包括一時(shí)鐘信號(hào)總線。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述與目標(biāo)系統(tǒng)連接的接口包括源于可編程邏輯器件的可編程輸入/輸出終端的信號(hào)。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述現(xiàn)場(chǎng)可編程邏輯器件包括現(xiàn)場(chǎng)可編程邏輯門(mén)陣列。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述每個(gè)可編程邏輯器件被分配一個(gè)接口模塊,通過(guò)接口模塊實(shí)現(xiàn)分配給可編程邏輯器件的一部分用戶(hù)設(shè)計(jì)與分配給其它可編程邏輯器件的其它部分的用戶(hù)設(shè)計(jì)之間的通訊。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述接口模塊包括(a)一個(gè)控制電路;和(b)多個(gè)輸入/輸出單元,每個(gè)單元提供一個(gè)1比特的互連端口。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于所述每個(gè)輸入/輸出單元包括(a)動(dòng)態(tài)可重配置存儲(chǔ)器模塊;(b)一個(gè)由動(dòng)態(tài)可重配置存儲(chǔ)器模塊控制的第一多路選擇器,其從多個(gè)可編程邏輯器件的配置信號(hào)中選擇輸出到1比特互連端口的一個(gè)輸出信號(hào);(c)多個(gè)可被動(dòng)態(tài)可重配置存儲(chǔ)器模塊選中的鎖存器,接收1比特互連端口的信號(hào)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于所述動(dòng)態(tài)可重配置存儲(chǔ)器模塊包括一個(gè)或多個(gè)動(dòng)態(tài)可重配置存儲(chǔ)單元。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于所述動(dòng)態(tài)可重配置存儲(chǔ)器模塊還包括一個(gè)由動(dòng)態(tài)可重配置存儲(chǔ)器模塊控制的第二多路選擇器,所述第二多路選擇器從多個(gè)輸出使能信號(hào)中選擇一個(gè)輸出使能信號(hào),控制緩沖器輸出信號(hào)到1比特互連端口。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于所述緩沖器可呈高阻抗?fàn)顟B(tài)。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于所述每個(gè)輸出信號(hào)對(duì)應(yīng)一個(gè)輸出使能信號(hào)。
14.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于所述輸出信號(hào)包括固定信號(hào)。
15.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于多個(gè)被選可編程邏輯器件被分配給第三方IP核。
16.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于一個(gè)或多個(gè)可編程邏輯器件被分配給一個(gè)驗(yàn)證用戶(hù)電路功能的校驗(yàn)IP核。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于所述校驗(yàn)IP核包括一個(gè)仿真一個(gè)工業(yè)標(biāo)準(zhǔn)數(shù)據(jù)總線操作的電路。
18.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于一個(gè)或多個(gè)可編程邏輯器件被分配一個(gè)性能分析IP核。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于所述性能分析IP核包括一個(gè)帶寬分析IP核。
20.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述系統(tǒng)還包括一個(gè)可將動(dòng)態(tài)可重配置邏輯電路分配給一個(gè)被選可編程邏輯器件的配置工具。
21.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述系統(tǒng)還包括一個(gè)可動(dòng)態(tài)重配置在一個(gè)裝有多個(gè)可編程邏輯器件的電路板上總線的背板配置工具。
22.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于所述系統(tǒng)還包括一個(gè)系統(tǒng)調(diào)試工具,所述系統(tǒng)調(diào)試工具在運(yùn)行時(shí)監(jiān)測(cè)和分析可編程邏輯器件內(nèi)部和多個(gè)可編程邏輯器件之間的信號(hào)。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)現(xiàn)場(chǎng)可編程門(mén)陣列回讀工具。
24.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)系統(tǒng)訪問(wèn)總線訪問(wèn)工具。
25.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)內(nèi)部邏輯分析工具。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),其特征在于所述內(nèi)部邏輯分析儀工具在一個(gè)或多個(gè)可編程邏輯器件中插入一個(gè)邏輯分析電路。
27.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)帶寬分析工具。
28.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)符號(hào)/事務(wù)提取工具。
29.根據(jù)權(quán)利要求28所述的系統(tǒng),其特征在于所述符號(hào)/事務(wù)提取工具允許用戶(hù)把一個(gè)或多個(gè)信號(hào)與符號(hào)名關(guān)聯(lián)。
30.根據(jù)權(quán)利要求29所述的系統(tǒng),其特征在于所述符號(hào)/事務(wù)提取工具允許用戶(hù)通過(guò)設(shè)定信號(hào)事務(wù)的方式在信號(hào)波形中設(shè)定一個(gè)包含多個(gè)信號(hào)的事務(wù)。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其特征在于所述符號(hào)/事務(wù)提取工具通過(guò)相關(guān)的符號(hào)名報(bào)告設(shè)定事務(wù)的偵測(cè)結(jié)果。
32.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)仿真器聯(lián)接工具。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其特征在于所述仿真器聯(lián)接工具允許用戶(hù)設(shè)計(jì)與一個(gè)在協(xié)同仿真環(huán)境下運(yùn)行于用戶(hù)工作站的仿真器程序交互。
34.一種仿真用戶(hù)設(shè)計(jì)的方法,包括如下步驟提供一個(gè)系統(tǒng)控制器,包括(a)一個(gè)與用戶(hù)工作站相連的接口;和(b)一個(gè)數(shù)據(jù)通訊接口;提供一個(gè)與所述數(shù)據(jù)通訊接口相連的仿真平臺(tái),包括(a)多個(gè)可實(shí)現(xiàn)用戶(hù)設(shè)計(jì)的現(xiàn)場(chǎng)可編程邏輯器件;和(b)一個(gè)與目標(biāo)系統(tǒng)連接的接口,與用戶(hù)設(shè)計(jì)在運(yùn)行時(shí)交互;產(chǎn)生一個(gè)包含用戶(hù)設(shè)計(jì)和一個(gè)或多個(gè)第三方IP核的頂層模塊;綜合用戶(hù)設(shè)計(jì);把用戶(hù)設(shè)計(jì)和第三方IP核分成幾個(gè)區(qū)塊,每個(gè)區(qū)塊由一個(gè)可編程邏輯器件實(shí)現(xiàn);分配給每個(gè)可編程邏輯器件一個(gè)接口模塊,通過(guò)接口模塊使得在可編程邏輯器件內(nèi)實(shí)現(xiàn)的區(qū)塊被允許與在其它可編程邏輯器件內(nèi)的其它區(qū)塊實(shí)現(xiàn)通訊;布局和布線所述區(qū)塊和所述接口模塊;在可編程邏輯器件內(nèi)實(shí)現(xiàn)被布局布線的區(qū)塊。
35.根據(jù)權(quán)利要求34所述的方法,其特征在于所述數(shù)據(jù)通訊接口包括一配置總線。
36.根據(jù)權(quán)利要求34所述的方法,其特征在于所述數(shù)據(jù)通訊接口包括一系統(tǒng)訪問(wèn)總線。
37.根據(jù)權(quán)利要求34所述的方法,其特征在于所述數(shù)據(jù)通訊接口包括一時(shí)鐘信號(hào)總線。
38.根據(jù)權(quán)利要求34所述的方法,其特征在于所述與目標(biāo)系統(tǒng)連接的接口包括源于可編程邏輯器件的可編程輸入/輸出終端的信號(hào)。
39.根據(jù)權(quán)利要求34所述的方法,其特征在于所述現(xiàn)場(chǎng)可編程邏輯器件包括現(xiàn)場(chǎng)可編程邏輯門(mén)陣列。
40.根據(jù)權(quán)利要求34所述的方法,其特征在于所述接口模塊包括(a)一個(gè)控制電路;和(b)多個(gè)輸入/輸出單元,每個(gè)單元提供一個(gè)1比特的互連端口。
41.根據(jù)權(quán)利要求40所述的方法,其特征在于所述每個(gè)輸入/輸出單元包括(a)動(dòng)態(tài)可重配置存儲(chǔ)器模塊;(b)一個(gè)受控于動(dòng)態(tài)可重配置存儲(chǔ)器模塊的第一多路選擇器,用于從多個(gè)可編程邏輯器件的配置信號(hào)中選擇輸出到1比特互連端口的一個(gè)輸出信號(hào);(c)多個(gè)可被動(dòng)態(tài)可重配置存儲(chǔ)器模塊選中的鎖存器,接收1比特互連端口的信號(hào)。
42.根據(jù)權(quán)利要求41所述的方法,其特征在于所述動(dòng)態(tài)可重配置存儲(chǔ)器模塊包括一個(gè)或多個(gè)動(dòng)態(tài)可重配置存儲(chǔ)單元。
43.根據(jù)權(quán)利要求41所述的方法,其特征在于所述動(dòng)態(tài)可重配置存儲(chǔ)器模塊還包括一個(gè)由動(dòng)態(tài)可重配置存儲(chǔ)器模塊控制的第二多路選擇器,所述第二多路選擇器從多個(gè)輸出使能信號(hào)中選擇一個(gè)輸出使能信號(hào),控制緩沖器輸出信號(hào)到1比特互連端口。
44.根據(jù)權(quán)利要求43所述的方法,其特征在于所述緩沖器可呈高阻抗?fàn)顟B(tài)。
45.根據(jù)權(quán)利要求43所述的方法,其特征在于所述每個(gè)輸出信號(hào)對(duì)應(yīng)一個(gè)輸出使能信號(hào)。
46.根據(jù)權(quán)利要求41所述的方法,其特征在于所述輸出信號(hào)包括固定信號(hào)。
47.根據(jù)權(quán)利要求34所述的方法,其特征在于所述方法還包括如下步驟為一個(gè)或多個(gè)可編程邏輯器件分配給一個(gè)驗(yàn)證用戶(hù)電路功能的校驗(yàn)IP核。
48.根據(jù)權(quán)利要求47所述的方法,其特征在于所述校驗(yàn)IP核包括一個(gè)仿真一個(gè)工業(yè)標(biāo)準(zhǔn)數(shù)據(jù)總線操作的電路。
49.根據(jù)權(quán)利要求34所述的方法,其特征在于所述方法還包括如下步驟為一個(gè)或多個(gè)可編程邏輯器件分配一個(gè)性能分析IP核。
50.根據(jù)權(quán)利要求49所述的方法,其特征在于所述性能分析IP核包括一個(gè)帶寬分析IP核。
51.根據(jù)權(quán)利要求34所述的方法,其特征在于所述方法還包括如下步驟提供一個(gè)可將動(dòng)態(tài)可重配置邏輯電路分配給一個(gè)被選可編程邏輯器件的配置工具。
52.根據(jù)權(quán)利要求34所述的方法,其特征在于所述方法還包括如下步驟提供一個(gè)可動(dòng)態(tài)重配置在一個(gè)裝有多個(gè)可編程邏輯器件的電路板上總線的背板配置工具。
53.根據(jù)權(quán)利要求34所述的方法,其特征在于所述方法還包括如下步驟提供一個(gè)系統(tǒng)調(diào)試工具,所述系統(tǒng)調(diào)試工具在運(yùn)行時(shí)監(jiān)測(cè)和分析可編程邏輯器件內(nèi)部和多個(gè)可編程邏輯器件之間的信號(hào)。
54.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)現(xiàn)場(chǎng)可編程門(mén)陣列回讀工具。
55.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)系統(tǒng)訪問(wèn)總線訪問(wèn)工具。
56.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)內(nèi)部邏輯分析工具。
57.根據(jù)權(quán)利要求56所述的方法,其特征在于在一個(gè)邏輯分析電路中包括一個(gè)或多個(gè)可編程邏輯器件。
58.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)帶寬分析工具。
59.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)符號(hào)/事務(wù)提取工具。
60.根據(jù)權(quán)利要求59所述的方法,其特征在于所述符號(hào)/事務(wù)提取工具允許用戶(hù)把一個(gè)或多個(gè)信號(hào)與一個(gè)符號(hào)名相關(guān)聯(lián)。
61.根據(jù)權(quán)利要求59所述的方法,其特征在于所述符號(hào)/事務(wù)提取工具允許用戶(hù)通過(guò)設(shè)定信號(hào)事務(wù)的方式在信號(hào)波形中設(shè)定一個(gè)包含多個(gè)信號(hào)的事務(wù)。
62.根據(jù)權(quán)利要求59所述的方法,其特征在于所述符號(hào)/事務(wù)提取工具通過(guò)相關(guān)的符號(hào)名報(bào)告設(shè)定事務(wù)的偵測(cè)結(jié)果。
63.根據(jù)權(quán)利要求53所述的方法,其特征在于所述系統(tǒng)調(diào)試工具包括一個(gè)仿真器聯(lián)接工具。
64.根據(jù)權(quán)利要求63所述的方法,其特征在于所述仿真器聯(lián)接工具允許用戶(hù)設(shè)計(jì)與一個(gè)在協(xié)同仿真環(huán)境下運(yùn)行于用戶(hù)工作站的仿真器程序交互。
全文摘要
本發(fā)明提供了一種通過(guò)可重配置的平臺(tái)用來(lái)設(shè)計(jì)和仿真用戶(hù)設(shè)計(jì)的系統(tǒng)及其方法。該系統(tǒng)和方法能更容易地設(shè)計(jì)和仿真片上系統(tǒng)類(lèi)型的用戶(hù)設(shè)計(jì)。用戶(hù)設(shè)計(jì)中的網(wǎng)表形式可包含在一個(gè)使用有多個(gè)場(chǎng)可編程邏輯門(mén)陣列器件的平臺(tái)的仿真器中經(jīng)過(guò)定制的或者經(jīng)過(guò)優(yōu)化的第三方的電路的網(wǎng)表形式。許多定制的電路可被配置用來(lái)與用戶(hù)設(shè)計(jì)交互操作,提供諸如設(shè)計(jì)調(diào)試、性能分析以及與仿真器連接等功能。
文檔編號(hào)G06F17/50GK1818912SQ20051011346
公開(kāi)日2006年8月16日 申請(qǐng)日期2005年10月13日 優(yōu)先權(quán)日2005年2月11日
發(fā)明者黃八揆, 陳睦仁 申請(qǐng)人:思爾芯(上海)信息科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1