片上系統(tǒng)技術(shù)匯編_第1頁
片上系統(tǒng)技術(shù)匯編_第2頁
片上系統(tǒng)技術(shù)匯編_第3頁
片上系統(tǒng)技術(shù)匯編_第4頁
片上系統(tǒng)技術(shù)匯編_第5頁
已閱讀5頁,還剩232頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、片上系統(tǒng)片上系統(tǒng)(SOC)技術(shù)技術(shù)秦秦 華華 旺旺 南 京 理 工 大 學(xué) 自 動 化 學(xué) 院南 京 理 工 大 學(xué) 自 動 化 學(xué) 院主要內(nèi)容主要內(nèi)容nSOC概述概述n硬件描述語言硬件描述語言Verilog HDLnQuartus II開發(fā)環(huán)境開發(fā)環(huán)境課程安排課程安排n24學(xué)時的理論課學(xué)時的理論課n8學(xué)時的實驗課學(xué)時的實驗課n開卷考試開卷考試n考核內(nèi)容:考核內(nèi)容:PPT中的知識點中的知識點n暫無教材暫無教材第一章:第一章:SOC概述概述nSOC的定義的定義nSOC的歷史、現(xiàn)狀與發(fā)展趨勢的歷史、現(xiàn)狀與發(fā)展趨勢nSOC的基本概念的基本概念SOC的定義的定義 SOC:片上系統(tǒng),或系統(tǒng)級芯片,即在:

2、片上系統(tǒng),或系統(tǒng)級芯片,即在一個芯片上集成一個計算機系統(tǒng)。一個芯片上集成一個計算機系統(tǒng)。SOC概述概述SOC的發(fā)展歷史的發(fā)展歷史n電子管電子管n晶體管晶體管n集成電路集成電路 工藝:工藝:0.25m以下,進入深亞微米階段以下,進入深亞微米階段 規(guī)模:超大規(guī)模(規(guī)模:超大規(guī)模(VLSI)和特大規(guī)模()和特大規(guī)模(GSI)nSOCSOC概述概述SOC的特性的特性n復(fù)雜系統(tǒng)功能復(fù)雜系統(tǒng)功能n超深亞微米工藝超深亞微米工藝n內(nèi)嵌一個或數(shù)個內(nèi)嵌一個或數(shù)個CPU或或DSPn功能可編輯功能可編輯n復(fù)用復(fù)用IP核核SOC概述概述SOC的國內(nèi)現(xiàn)狀的國內(nèi)現(xiàn)狀地域分布地域分布n長江三角洲長江三角洲n京津京津n珠江三角

3、洲珠江三角洲產(chǎn)業(yè)產(chǎn)業(yè)nIC設(shè)計設(shè)計n芯片加工芯片加工n后工序后工序SOC概述概述SOC的應(yīng)用的應(yīng)用n無線無線/有線通信有線通信n多媒體多媒體n工業(yè)控制工業(yè)控制n交通運輸交通運輸SOC概述概述SOC的分類的分類nCSOC:CPU+可重構(gòu)處理構(gòu)件,研究機構(gòu)主導(dǎo)可重構(gòu)處理構(gòu)件,研究機構(gòu)主導(dǎo)nSOPC:基于:基于FPGA,可編程,可編程SOC,小批量,小批量nASIC SOC:專用集成電路,大批量,主流:專用集成電路,大批量,主流SOC概述概述ASIC(專用集成電路專用集成電路)的分類的分類n全定制:設(shè)計者完成所有電路的設(shè)計全定制:設(shè)計者完成所有電路的設(shè)計n半定制:利用庫里的標(biāo)準(zhǔn)邏輯單元設(shè)計半定制:利

4、用庫里的標(biāo)準(zhǔn)邏輯單元設(shè)計SOC概述概述著名著名ASIC廠商廠商nTI nIBMnSonynSTnToshibanNEC(日電)(日電)nFujitsunRenesas(瑞薩)(瑞薩)nLSInSamsungSOC概述概述SOPC 著名廠商(基于著名廠商(基于FPGA)nXilinxnAlteranLatticenActelnQuiklogicnCypressSOC概述概述可編程器件可編程器件nPLD (Promrammable Logic Device)nCPLD (Complex Promrammable Logic Device)nFPGA (Field Programmable Gate

5、 Array)SOC概述概述CPLD與與FPGA的區(qū)別的區(qū)別nFPGA的集成度比的集成度比CPLD高,高,F(xiàn)PGA一般是幾萬幾百萬邏輯一般是幾萬幾百萬邏輯單元,單元,CPLD一般是幾千幾萬邏輯單元;一般是幾千幾萬邏輯單元;nCPLD更適合完成各種算法和組合邏輯,更適合完成各種算法和組合邏輯,F(xiàn)PGA更適合于完更適合于完成時序邏輯;成時序邏輯;nCPLD的時序延遲是均勻的和可預(yù)測的,而的時序延遲是均勻的和可預(yù)測的,而FPGA的延遲往的延遲往往不可預(yù)測;往不可預(yù)測;n在編程上在編程上FPGA比比CPLD具有更大的靈活性;具有更大的靈活性;nCPLD是粗粒結(jié)構(gòu)是粗粒結(jié)構(gòu)(邏輯塊),延遲小,軟件編譯快

6、;(邏輯塊),延遲小,軟件編譯快;nCPLD比比FPGA使用起來更方便,不需要使用起來更方便,不需要EEPROM;nCPLD的速度比的速度比FPGA快;快;nCPLD保密性更好。保密性更好。SOC概述概述SOC的關(guān)鍵技術(shù)的關(guān)鍵技術(shù)n可重用可重用IP核核n軟硬件協(xié)同設(shè)計軟硬件協(xié)同設(shè)計n時序分析時序分析n可測試性設(shè)計與測試驗證可測試性設(shè)計與測試驗證n深亞微米技術(shù)深亞微米技術(shù)n低電壓、低功耗技術(shù)低電壓、低功耗技術(shù)n總線構(gòu)架技術(shù)總線構(gòu)架技術(shù)n可靠性設(shè)計技術(shù)可靠性設(shè)計技術(shù)n特殊工藝技術(shù)特殊工藝技術(shù)SOC概述概述SOC的的IP核核 IP核,即知識產(chǎn)權(quán)核,即知識產(chǎn)權(quán)IP( Intellectual Prop

7、erty ),是指己驗證的、可重利用的、,是指己驗證的、可重利用的、具有某種確定功能的集成電路模塊。具有某種確定功能的集成電路模塊。n軟核軟核n硬核硬核n固核固核SOC概述概述軟核軟核 軟核是用硬件描述語言描述的功能塊,軟核是用硬件描述語言描述的功能塊,但但是是并不涉及用什么具體電路元件實現(xiàn)這些并不涉及用什么具體電路元件實現(xiàn)這些功能。功能。 軟軟IP的設(shè)計周期短,設(shè)計投入少,應(yīng)用靈的設(shè)計周期短,設(shè)計投入少,應(yīng)用靈活。缺點是在性能上難以獲得全面優(yōu)化,活。缺點是在性能上難以獲得全面優(yōu)化,且知識產(chǎn)權(quán)保護較難。且知識產(chǎn)權(quán)保護較難。SOC概述概述硬核硬核 在性能、功率和面積上經(jīng)過優(yōu)化,并映射在性能、功率

8、和面積上經(jīng)過優(yōu)化,并映射到特定工藝技術(shù)的功能模塊。到特定工藝技術(shù)的功能模塊。 硬核具有可預(yù)見性,同時還可以針對特定硬核具有可預(yù)見性,同時還可以針對特定工藝或購買商進行功耗和尺寸上的優(yōu)化,工藝或購買商進行功耗和尺寸上的優(yōu)化,且更易于實現(xiàn)版權(quán)保護。但應(yīng)用靈活性和且更易于實現(xiàn)版權(quán)保護。但應(yīng)用靈活性和可移植性較差??梢浦残暂^差。SOC概述概述固核固核 固核是軟核和硬核的折衷,是指在結(jié)構(gòu)和固核是軟核和硬核的折衷,是指在結(jié)構(gòu)和拓?fù)浞矫驷槍π阅芎兔娣e進行版圖規(guī)劃,拓?fù)浞矫驷槍π阅芎兔娣e進行版圖規(guī)劃,甚至可能用某種工藝技術(shù)進行過優(yōu)化的可甚至可能用某種工藝技術(shù)進行過優(yōu)化的可復(fù)用模塊。復(fù)用模塊。SOC概述概述軟硬

9、件協(xié)同設(shè)計軟硬件協(xié)同設(shè)計 與傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法不同,軟與傳統(tǒng)的嵌入式系統(tǒng)設(shè)計方法不同,軟/硬件協(xié)同硬件協(xié)同設(shè)計強調(diào)軟件和硬件設(shè)計開發(fā)的并行性和相互反饋,設(shè)計強調(diào)軟件和硬件設(shè)計開發(fā)的并行性和相互反饋,強調(diào)利用現(xiàn)有資源(強調(diào)利用現(xiàn)有資源(I P核和軟件構(gòu)件),縮短系核和軟件構(gòu)件),縮短系統(tǒng)開發(fā)周期,降低系統(tǒng)成本,提高系統(tǒng)性能。統(tǒng)開發(fā)周期,降低系統(tǒng)成本,提高系統(tǒng)性能。n軟硬件任務(wù)劃分軟硬件任務(wù)劃分n軟硬件接口定義軟硬件接口定義n軟硬件協(xié)同仿真和驗證軟硬件協(xié)同仿真和驗證SOC概述概述時序分析時序分析n時鐘同步時鐘同步n時序預(yù)算的分級和分解時序預(yù)算的分級和分解n關(guān)鍵路徑的特殊約束關(guān)鍵路徑的特殊約束

10、SOC概述概述可測試性設(shè)計與測試驗證可測試性設(shè)計與測試驗證SOC驗證工作約占整個設(shè)計工作的驗證工作約占整個設(shè)計工作的70%。n測試架構(gòu)測試架構(gòu)n測試向量有效傳遞性測試向量有效傳遞性n測試平行化測試平行化n降低測試占用時間降低測試占用時間SOC概述概述深亞微米技術(shù)深亞微米技術(shù) 工藝加工線寬的不斷減少,給電路的設(shè)計工藝加工線寬的不斷減少,給電路的設(shè)計、仿、仿真帶來了新的挑戰(zhàn),線與線的相互影響將變得真帶來了新的挑戰(zhàn),線與線的相互影響將變得不可忽略,必須研究關(guān)鍵電路架構(gòu)、時序收斂不可忽略,必須研究關(guān)鍵電路架構(gòu)、時序收斂性、信號完整性、天線效應(yīng)等問題。性、信號完整性、天線效應(yīng)等問題。n0.80.35m稱

11、為亞微米稱為亞微米n0.25m及其以下稱為深亞微米及其以下稱為深亞微米n0.05m及其以下稱為納米及其以下稱為納米SOC概述概述低電壓、低功耗技術(shù)低電壓、低功耗技術(shù) 隨著線寬不斷縮小,電源電壓也相應(yīng)縮小。同隨著線寬不斷縮小,電源電壓也相應(yīng)縮小。同時隨著集成度的提高,電路功耗也會相應(yīng)提高,時隨著集成度的提高,電路功耗也會相應(yīng)提高,所以必須采取相應(yīng)措施,以降低功耗。所以必須采取相應(yīng)措施,以降低功耗。 芯片芯片的功耗主要由跳變功耗、短路功耗和泄漏的功耗主要由跳變功耗、短路功耗和泄漏功耗三部分組成。降低功耗的措施包括:功耗三部分組成。降低功耗的措施包括:電路電路實現(xiàn)工藝、輸入向量控制(實現(xiàn)工藝、輸入向

12、量控制(IVC)技術(shù)、多電壓)技術(shù)、多電壓技術(shù)、功耗管理技術(shù)以及軟件(算法)低功耗技術(shù)、功耗管理技術(shù)以及軟件(算法)低功耗利用技術(shù)等。利用技術(shù)等。SOC概述概述總線構(gòu)架技術(shù)總線構(gòu)架技術(shù)nIBM公司的公司的CoreConnect總線總線nARM公司的公司的AMBA總線總線nAltera公司的公司的Avalon總線總線nSilicore公司的公司的Wishbone總線總線SOC概述概述可靠性設(shè)計技術(shù)可靠性設(shè)計技術(shù)n防死鎖和解鎖機制防死鎖和解鎖機制n容錯機制容錯機制n故障恢復(fù)機制故障恢復(fù)機制SOC概述概述特殊工藝技術(shù)特殊工藝技術(shù)SOC概述概述 對于要求較高的電路,對于要求較高的電路,PN結(jié)隔離和挖槽

13、還結(jié)隔離和挖槽還不能達到要求,需要特殊的噪聲降低和隔不能達到要求,需要特殊的噪聲降低和隔離技術(shù)。離技術(shù)。 一些特殊工藝的相互兼容性,如一些特殊工藝的相互兼容性,如DRAM、Flash與與Logic工藝的兼容、數(shù)字與模擬的工藝的兼容、數(shù)字與模擬的相互兼容等。相互兼容等。EDA(電子設(shè)計自動化電子設(shè)計自動化) EDA(Electronic Design Automation) 是是以計算機為工作平臺,以以計算機為工作平臺,以EDA軟件工具為開軟件工具為開發(fā)環(huán)境,以硬件描述語言為設(shè)計語言,以可發(fā)環(huán)境,以硬件描述語言為設(shè)計語言,以可編程器件為實驗載體,以編程器件為實驗載體,以ASIC、SOC芯片芯片為

14、設(shè)計目標(biāo)器件,以電子系統(tǒng)設(shè)計為應(yīng)用方為設(shè)計目標(biāo)器件,以電子系統(tǒng)設(shè)計為應(yīng)用方向的電子產(chǎn)品自動化設(shè)計過程。向的電子產(chǎn)品自動化設(shè)計過程。SOC概述概述EDA的作用的作用 隨著芯片規(guī)模的不斷擴大,芯片內(nèi)線路的隨著芯片規(guī)模的不斷擴大,芯片內(nèi)線路的復(fù)雜程度不斷增加,復(fù)雜程度不斷增加,IC設(shè)計者必須在先進設(shè)計者必須在先進的的EDA工具的基礎(chǔ)上,采用自上至下、結(jié)工具的基礎(chǔ)上,采用自上至下、結(jié)構(gòu)化設(shè)計、軟硬件協(xié)同設(shè)計等方法來完成構(gòu)化設(shè)計、軟硬件協(xié)同設(shè)計等方法來完成SOC的系統(tǒng)功能設(shè)計。的系統(tǒng)功能設(shè)計。SOC概述概述EDA工具的主要供應(yīng)商工具的主要供應(yīng)商nCadence (美國)(美國)nSynopsys (美國

15、)(美國)nAvant(美國,已被(美國,已被Synopsys 收購)收購)nMagma(美國)(美國)SOC概述概述EDA工具的芯片開發(fā)步驟工具的芯片開發(fā)步驟n前端設(shè)計前端設(shè)計n后端設(shè)計后端設(shè)計n設(shè)計驗證設(shè)計驗證SOC概述概述前端設(shè)計前端設(shè)計 完成從芯片邏輯的概念化設(shè)計到芯片邏輯完成從芯片邏輯的概念化設(shè)計到芯片邏輯門級表示的工作。門級表示的工作。n系統(tǒng)級設(shè)計和分析系統(tǒng)級設(shè)計和分析n寄存器傳輸級寄存器傳輸級(RTL)設(shè)計和分析設(shè)計和分析n邏輯綜合和優(yōu)化邏輯綜合和優(yōu)化SOC概述概述后端設(shè)計后端設(shè)計 描述了如何使設(shè)計結(jié)構(gòu)在芯片上進行物理描述了如何使設(shè)計結(jié)構(gòu)在芯片上進行物理實現(xiàn),尤其是芯片的硅內(nèi)核和

16、庫單元的布實現(xiàn),尤其是芯片的硅內(nèi)核和庫單元的布局和布線。局和布線。n芯片布局芯片布局n布線布線SOC概述概述設(shè)計驗證設(shè)計驗證 保證芯片滿足功能、時序、功率和其他指保證芯片滿足功能、時序、功率和其他指標(biāo)的要求。驗證占用了整個設(shè)計時間的大標(biāo)的要求。驗證占用了整個設(shè)計時間的大約約70。n系統(tǒng)級驗證系統(tǒng)級驗證nRTL級驗證級驗證n邏輯門級驗證邏輯門級驗證n物理級驗證物理級驗證SOC概述概述第二章:第二章:SOC設(shè)計設(shè)計nSOC設(shè)計流程設(shè)計流程nSOC設(shè)計設(shè)計原則原則設(shè)計流程設(shè)計流程SOC設(shè)計設(shè)計設(shè)計復(fù)用的一般原則設(shè)計復(fù)用的一般原則n同步設(shè)計同步設(shè)計n存儲器和混合信號設(shè)計存儲器和混合信號設(shè)計n片上總線片

17、上總線n時鐘分配時鐘分配n清零清零/置位置位/復(fù)位信號復(fù)位信號n物理設(shè)計物理設(shè)計n可交互模塊可交互模塊SOC設(shè)計設(shè)計同步設(shè)計同步設(shè)計 數(shù)據(jù)只在時鐘沿變化,因此指令和數(shù)據(jù)的管理數(shù)據(jù)只在時鐘沿變化,因此指令和數(shù)據(jù)的管理更容易,具體措施:更容易,具體措施:n隨機邏輯中使用寄存器,不用鎖存器隨機邏輯中使用寄存器,不用鎖存器n避免使用內(nèi)部脈沖發(fā)生電路避免使用內(nèi)部脈沖發(fā)生電路n避免使用直接組合邏輯通道避免使用直接組合邏輯通道SOC設(shè)計設(shè)計存儲器設(shè)計存儲器設(shè)計 SOC中存儲器一般占芯片面積的中存儲器一般占芯片面積的60以上,存以上,存儲器設(shè)計的注意事項:儲器設(shè)計的注意事項:n存儲器周邊加虛擬單元,以減小其邊

18、界和中心存儲器周邊加虛擬單元,以減小其邊界和中心陣列的寄生參數(shù)詫異;陣列的寄生參數(shù)詫異;n大規(guī)模存儲器放在芯片的邊或角上;大規(guī)模存儲器放在芯片的邊或角上;n小存儲器分散放置;小存儲器分散放置;n小存儲器用到的金屬層比工藝允許的布線層少小存儲器用到的金屬層比工藝允許的布線層少12層,留下的金屬層用來進行芯片級布線。層,留下的金屬層用來進行芯片級布線。SOC設(shè)計設(shè)計混合信號設(shè)計混合信號設(shè)計 SOC中混合信號一般不超過芯片面積的中混合信號一般不超過芯片面積的5,如,如鎖相環(huán)、數(shù)鎖相環(huán)、數(shù)/模轉(zhuǎn)換器、模模轉(zhuǎn)換器、模/數(shù)轉(zhuǎn)換器、溫度傳數(shù)轉(zhuǎn)換器、溫度傳感器等,混合信號一般對噪聲和工藝非常敏感,感器等,混合

19、信號一般對噪聲和工藝非常敏感,設(shè)計的注意事項:設(shè)計的注意事項:n盡量將混合信號模塊放在芯片角上盡量將混合信號模塊放在芯片角上n周圍加上保護環(huán)和虛擬單元周圍加上保護環(huán)和虛擬單元SOC設(shè)計設(shè)計片上總線片上總線 片上總線在片上總線在SOC設(shè)計中起著極其重要的作用,設(shè)計中起著極其重要的作用,由于片上總線提供了各種核都可以連接的通用由于片上總線提供了各種核都可以連接的通用接口,因此基于總線的設(shè)計有利于管理。片上接口,因此基于總線的設(shè)計有利于管理。片上總線的設(shè)計和數(shù)據(jù)傳輸協(xié)議的制定應(yīng)該在選定總線的設(shè)計和數(shù)據(jù)傳輸協(xié)議的制定應(yīng)該在選定核之前就予以考慮。若在核開發(fā)完成后核之前就予以考慮。若在核開發(fā)完成后再再設(shè)計

20、設(shè)計片上總線,則容易導(dǎo)致數(shù)據(jù)傳輸機制的混亂。片上總線,則容易導(dǎo)致數(shù)據(jù)傳輸機制的混亂。SOC設(shè)計設(shè)計時鐘分配時鐘分配n盡可能使用同步設(shè)計盡可能使用同步設(shè)計n不同時鐘域的數(shù)量越少越好不同時鐘域的數(shù)量越少越好n盡可能避免使用鎖存盡可能避免使用鎖存n盡可能減小時鐘偏斜盡可能減小時鐘偏斜(在系統(tǒng)內(nèi)不同元件處檢測在系統(tǒng)內(nèi)不同元件處檢測到有效的時鐘跳變沿所需的時間差異到有效的時鐘跳變沿所需的時間差異)SOC設(shè)計設(shè)計清零清零/置位置位/復(fù)位信號復(fù)位信號n盡可能使用同步復(fù)位盡可能使用同步復(fù)位n文檔中應(yīng)對這些信號作詳細(xì)說明文檔中應(yīng)對這些信號作詳細(xì)說明SOC設(shè)計設(shè)計物理設(shè)計物理設(shè)計n版圖規(guī)劃版圖規(guī)劃n綜合綜合n時序

21、時序n輸入輸入/輸出端口輸出端口n確認(rèn)與測試確認(rèn)與測試SOC設(shè)計設(shè)計版圖規(guī)劃版圖規(guī)劃 芯片設(shè)計之初的版圖規(guī)劃有助于估算芯片的大芯片設(shè)計之初的版圖規(guī)劃有助于估算芯片的大小,以及確定是否能達到面積、時序、性能和小,以及確定是否能達到面積、時序、性能和成本的目標(biāo)。成本的目標(biāo)。SOC設(shè)計設(shè)計綜合綜合(synthesis ) 綜合:將電路的高級語言描述編譯生成出細(xì)節(jié)更綜合:將電路的高級語言描述編譯生成出細(xì)節(jié)更加豐富的低級描述。在設(shè)計之初,要對綜合后的加豐富的低級描述。在設(shè)計之初,要對綜合后的面積、時序和功耗制定明確的目標(biāo)。面積、時序和功耗制定明確的目標(biāo)。SOC設(shè)計設(shè)計時序時序 在版圖設(shè)計之前,應(yīng)對版圖規(guī)

22、劃后的塊進行時在版圖設(shè)計之前,應(yīng)對版圖規(guī)劃后的塊進行時序分析,在版圖設(shè)計完成后,再進行時序驗證。序分析,在版圖設(shè)計完成后,再進行時序驗證。SOC設(shè)計設(shè)計輸入輸入/輸出端口輸出端口 要對要對I/O端口進行詳細(xì)定義,并合理規(guī)劃其擺放端口進行詳細(xì)定義,并合理規(guī)劃其擺放位置,一些經(jīng)驗法則有:位置,一些經(jīng)驗法則有:n所有的電源所有的電源/地引腳應(yīng)該排列在同一邊地引腳應(yīng)該排列在同一邊n信號信號I/O排列在兩個邊上排列在兩個邊上SOC設(shè)計設(shè)計可交互模型可交互模型 設(shè)計的復(fù)用在很大程度上依賴于可交互模設(shè)計的復(fù)用在很大程度上依賴于可交互模塊的質(zhì)量,這些模塊包括:行為模型、功塊的質(zhì)量,這些模塊包括:行為模型、功能

23、模型、仿真模型、時序模型、版圖規(guī)劃能模型、仿真模型、時序模型、版圖規(guī)劃模型等。模型等。n盡量提高可交互模型的質(zhì)量盡量提高可交互模型的質(zhì)量n對模型進行加密,防止逆向工程對模型進行加密,防止逆向工程SOC設(shè)計設(shè)計第三章:第三章:IP核設(shè)計核設(shè)計n軟核軟核/固核的設(shè)計固核的設(shè)計n硬核的設(shè)計硬核的設(shè)計軟核軟核/固核特點固核特點 軟核和固核是軟核和固核是RTL形式的產(chǎn)品,易于復(fù)用且具有形式的產(chǎn)品,易于復(fù)用且具有較高的靈活性;但是,由于沒有確定的版圖,它較高的靈活性;但是,由于沒有確定的版圖,它們的面積、功耗和性能沒有經(jīng)過優(yōu)化。們的面積、功耗和性能沒有經(jīng)過優(yōu)化。 RTL:寄存器傳輸級,用硬件描述語言描述預(yù)

24、期寄存器傳輸級,用硬件描述語言描述預(yù)期的功能。與之相對應(yīng)的門級則是用具體的邏輯單的功能。與之相對應(yīng)的門級則是用具體的邏輯單元來描述一定的功能。元來描述一定的功能。RTL和門級是設(shè)計上的不和門級是設(shè)計上的不同階段,同階段,RTL經(jīng)過邏輯綜合后就得到門級。之所經(jīng)過邏輯綜合后就得到門級。之所以有以有RTL,是因為集成電路可以看作由一組寄存,是因為集成電路可以看作由一組寄存器以及寄存器之間的邏輯操作構(gòu)成。器以及寄存器之間的邏輯操作構(gòu)成。軟核軟核/固核設(shè)計固核設(shè)計軟核軟核/固核設(shè)計流程固核設(shè)計流程軟核軟核/固核設(shè)計固核設(shè)計有陰影的框表示固核所需的附加步驟有陰影的框表示固核所需的附加步驟設(shè)計說明文檔設(shè)計說

25、明文檔n功能要求:指定核的用途和操作功能要求:指定核的用途和操作n物理要求:指定封裝、面積、功耗、工藝庫等物理要求:指定封裝、面積、功耗、工藝庫等n設(shè)計要求:指定結(jié)構(gòu)和帶數(shù)據(jù)流的框圖設(shè)計要求:指定結(jié)構(gòu)和帶數(shù)據(jù)流的框圖n接口要求:指定信號名稱和功能、時序圖和交接口要求:指定信號名稱和功能、時序圖和交直流參數(shù)直流參數(shù)n測試與調(diào)試要求:指定生產(chǎn)測試、可測性設(shè)計測試與調(diào)試要求:指定生產(chǎn)測試、可測性設(shè)計方法、測試向量產(chǎn)生方法、故障分級等方法、測試向量產(chǎn)生方法、故障分級等n軟件要求:指定硬件模塊的軟件驅(qū)動程序軟件要求:指定硬件模塊的軟件驅(qū)動程序軟核軟核/固核設(shè)計固核設(shè)計產(chǎn)品產(chǎn)品nRTL代碼代碼n功能測試平

26、臺功能測試平臺n測試向量文件測試向量文件n綜合的腳本文件綜合的腳本文件n描述核功能的文檔描述核功能的文檔n工作特性工作特性n仿真結(jié)果仿真結(jié)果n門級網(wǎng)表(固核)(網(wǎng)表:雛形的電路,描述器件的連接)門級網(wǎng)表(固核)(網(wǎng)表:雛形的電路,描述器件的連接)n工藝庫說明(固核)工藝庫說明(固核)n時序模型(固核)時序模型(固核)n面積和功耗估計(固核)面積和功耗估計(固核)n原型樣片(固核)原型樣片(固核)軟核軟核/固核設(shè)計固核設(shè)計硬核設(shè)計特點硬核設(shè)計特點n需要物理設(shè)計需要物理設(shè)計n在面積和時序上要對特定的工藝進行優(yōu)化在面積和時序上要對特定的工藝進行優(yōu)化n用版圖數(shù)據(jù)用版圖數(shù)據(jù)(GDSII)交付交付硬核設(shè)計

27、硬核設(shè)計硬核設(shè)計中的特有問題硬核設(shè)計中的特有問題n時鐘和復(fù)位信號時鐘和復(fù)位信號n布線通道疏松度、引腳排列和寬長比布線通道疏松度、引腳排列和寬長比n全定制電路全定制電路n測試測試硬核設(shè)計硬核設(shè)計時鐘和復(fù)位信號時鐘和復(fù)位信號n具有獨立于具有獨立于SOC系統(tǒng)的時鐘和復(fù)位信號系統(tǒng)的時鐘和復(fù)位信號n硬核中的時鐘和復(fù)位信號要使用緩沖器和硬核中的時鐘和復(fù)位信號要使用緩沖器和最小的連線負(fù)載最小的連線負(fù)載n硬核輸出端口也應(yīng)有經(jīng)過緩沖的時鐘,用硬核輸出端口也應(yīng)有經(jīng)過緩沖的時鐘,用于和其他時鐘的同步于和其他時鐘的同步硬核設(shè)計硬核設(shè)計布線通道疏松度布線通道疏松度 SOC集成時,通常布線從核的上方或內(nèi)部集成時,通常布線

28、從核的上方或內(nèi)部穿過,為此:穿過,為此:n硬核中的布線應(yīng)該有一定的疏松度硬核中的布線應(yīng)該有一定的疏松度n限制核中使用的金屬線層數(shù),使之比工藝限制核中使用的金屬線層數(shù),使之比工藝允許的少一層或兩層允許的少一層或兩層硬核設(shè)計硬核設(shè)計引腳排列引腳排列n總線信號相鄰總線信號相鄰n輸入的時鐘和復(fù)位信號要引出輸入的時鐘和復(fù)位信號要引出n電源和地引腳盡量放在一邊電源和地引腳盡量放在一邊n基本的基本的I/O引腳引腳(USB、PCI)盡量放在一邊盡量放在一邊n核內(nèi)部的公共電源和地線應(yīng)盡量短核內(nèi)部的公共電源和地線應(yīng)盡量短硬核設(shè)計硬核設(shè)計寬長比寬長比 盡量使硬核的寬長比接近盡量使硬核的寬長比接近1:1或或1:2,以

29、此,以此盡量減小對盡量減小對SOC級布局的影響。級布局的影響。硬核設(shè)計硬核設(shè)計全定制電路全定制電路 有時因為性能或面積的需要,硬核內(nèi)包含有時因為性能或面積的需要,硬核內(nèi)包含有全定制電路模塊,這種電路需要在晶體有全定制電路模塊,這種電路需要在晶體管級進行仿真,這些電路的性能對工藝參管級進行仿真,這些電路的性能對工藝參數(shù)高度敏感,需要良好的文檔來描述這種數(shù)高度敏感,需要良好的文檔來描述這種電路的功能和實現(xiàn)。電路的功能和實現(xiàn)。硬核設(shè)計硬核設(shè)計測試測試 硬核中必須有可測試性設(shè)計硬核中必須有可測試性設(shè)計DFT(Design For Test) ,硬核的硬核的DFT設(shè)計要求在設(shè)計要求在SOC集成時產(chǎn)生最少

30、的約束。集成時產(chǎn)生最少的約束。硬核設(shè)計硬核設(shè)計硬核設(shè)計流程硬核設(shè)計流程硬核設(shè)計硬核設(shè)計系統(tǒng)集成系統(tǒng)集成n使用硬核設(shè)計使用硬核設(shè)計n使用軟核設(shè)計使用軟核設(shè)計n系統(tǒng)驗證系統(tǒng)驗證IP核設(shè)計核設(shè)計使用硬核設(shè)計使用硬核設(shè)計n功能和時序等的驗證工程,占整個設(shè)計功能和時序等的驗證工程,占整個設(shè)計工作量的工作量的6070n驗證環(huán)境的魯棒性驗證環(huán)境的魯棒性/完整性、設(shè)計環(huán)境完整性、設(shè)計環(huán)境的完整性的完整性/可維護性可維護性n時鐘分配、電源時鐘分配、電源/地以及信號的布線地以及信號的布線IP核設(shè)計核設(shè)計使用軟核設(shè)計使用軟核設(shè)計n可以通過參數(shù)進行配置可以通過參數(shù)進行配置n需要在目標(biāo)工藝庫下驗證需要在目標(biāo)工藝庫下驗證

31、IP核設(shè)計核設(shè)計系統(tǒng)驗證系統(tǒng)驗證n單獨測試葉級單獨測試葉級(leaf-level)模塊的正確性模塊的正確性n驗證核之間的接口驗證核之間的接口n軟硬件協(xié)同仿真軟硬件協(xié)同仿真n制造硬件原型制造硬件原型(ASIC或或FPGA)IP核設(shè)計核設(shè)計第四章:硬件描述語言第四章:硬件描述語言(HDL) 硬件描述語言硬件描述語言(HDL):用于設(shè)計硬件電:用于設(shè)計硬件電路的語言??梢酝ㄟ^路的語言??梢酝ㄟ^EDA工具的綜合,工具的綜合,生成數(shù)字邏輯網(wǎng)表,然后在一定的工藝生成數(shù)字邏輯網(wǎng)表,然后在一定的工藝下實現(xiàn)具體的電路。下實現(xiàn)具體的電路。常用的硬件描述語言常用的硬件描述語言nVerilog HDL (Cadenc

32、e)nVHDL (美國國防部美國國防部)nAHDL (Altera)nSystem C (Synopsys)硬件描述語言硬件描述語言Verilog HDL 在在ASIC領(lǐng)域,主要用領(lǐng)域,主要用Verilog HDL ;在在FPGA/CPLD中,中, Verilog HDL 和和VHDL 使用均很廣泛。本課程主要介紹使用均很廣泛。本課程主要介紹Verilog HDL。硬件描述語言硬件描述語言Verilog HDL 基礎(chǔ)知識基礎(chǔ)知識n詞法詞法n數(shù)據(jù)類型數(shù)據(jù)類型n運算符運算符n系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)n編譯指令編譯指令硬件描述語言硬件描述語言Verilog HDL 詞法詞法n間隔符與注釋

33、符間隔符與注釋符n數(shù)值數(shù)值n字符串字符串硬件描述語言硬件描述語言間隔符與注釋符間隔符與注釋符間隔符:間隔符:n空格空格nTabn換行符換行符n換頁符換頁符注釋符:注釋符:n/*.*/ 為多行注釋為多行注釋n/為單行注釋為單行注釋Verilog HDL 詞法詞法數(shù)值數(shù)值數(shù)值有四類數(shù)值有四類狀態(tài)狀態(tài)值:值:n0:邏輯:邏輯0或假狀態(tài)或假狀態(tài)n1:邏輯:邏輯1或真狀態(tài)或真狀態(tài)nx:未知狀態(tài):未知狀態(tài)nz:高阻態(tài):高阻態(tài)Verilog HDL 詞法詞法數(shù)值數(shù)值兩種數(shù)值常量:兩種數(shù)值常量:n整形數(shù)整形數(shù)n實型數(shù)實型數(shù)Verilog HDL 詞法詞法整形數(shù)整形數(shù)格式:格式:n :位寬,可省略:位寬,可省略

34、n:固有字符:固有字符nbase_format:進制格式,二進制為:進制格式,二進制為b或或B,十進制為,十進制為d或或D,十六進制為十六進制為h或或H,八進制為,八進制為o或或OnNumber:一串?dāng)?shù)字:一串?dāng)?shù)字n位寬小于實際位數(shù)則高位被忽略;位寬大于實際位數(shù),若最位寬小于實際位數(shù)則高位被忽略;位寬大于實際位數(shù),若最高位是高位是0或或1則高位補則高位補0,若最高位是,若最高位是x或或z,則高位補,則高位補x或或z。n659、h837FF、o7460、4b1001、5D3、12hx、16hz、16b0001_1010_1111_1000n4af、b001、8b_0001_1010(非法非法)V

35、erilog HDL 詞法詞法實形數(shù)實形數(shù)十進制和科學(xué)計數(shù)法兩種表示形式:十進制和科學(xué)計數(shù)法兩種表示形式:n1.8、3.8e10、2.9E-9、3_2387.3398_3047n3.、.2e6(非法非法)Verilog HDL 詞法詞法字符串字符串 字符串是用雙引號括起來的字符序列,字符串是用雙引號括起來的字符序列,必須在同一行中,當(dāng)必須在同一行中,當(dāng)作為作為操作數(shù)時,看操作數(shù)時,看作作ASCII值序列。值序列。n“this is a string”n“print out a messagen”Verilog HDL 詞法詞法Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型n物理數(shù)據(jù)類型:與具體的硬件

36、電路對應(yīng)物理數(shù)據(jù)類型:與具體的硬件電路對應(yīng)n抽象數(shù)據(jù)類型:不與具體的硬件電路對應(yīng)抽象數(shù)據(jù)類型:不與具體的硬件電路對應(yīng)硬件描述語言硬件描述語言物理數(shù)據(jù)類型物理數(shù)據(jù)類型n連線型連線型n寄存器型寄存器型 這兩種類型的變量定義時均需要設(shè)置位這兩種類型的變量定義時均需要設(shè)置位寬,缺省時默認(rèn)為寬,缺省時默認(rèn)為1。變量的每一位可。變量的每一位可以取以取0、1、x或或z。Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型連線型數(shù)據(jù)連線型數(shù)據(jù) 連線型數(shù)據(jù)對應(yīng)的是硬件電路中的物理連線型數(shù)據(jù)對應(yīng)的是硬件電路中的物理信號連線,沒有電荷保持作用信號連線,沒有電荷保持作用(trireg除外除外),必須有驅(qū)動源驅(qū)動,有兩種驅(qū),必須有

37、驅(qū)動源驅(qū)動,有兩種驅(qū)動方式:動方式:n把它連接到一個門或模塊的輸出端把它連接到一個門或模塊的輸出端n用連續(xù)賦值語句用連續(xù)賦值語句assign對其進行對其進行賦值賦值Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型連線型數(shù)據(jù)列表連線型數(shù)據(jù)列表Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型連線型數(shù)據(jù)連線型數(shù)據(jù)功能描述功能描述wire, tri兩種常見類型兩種常見類型(wire:連線;連線;tri:三態(tài):三態(tài)線,有多個驅(qū)動源驅(qū)動時一般用線,有多個驅(qū)動源驅(qū)動時一般用tri,二者用法一致二者用法一致)wor, trior多重驅(qū)動時具有線或特性多重驅(qū)動時具有線或特性wand, triand多重驅(qū)動時具有線與特性多重驅(qū)動

38、時具有線與特性trireg具有電荷保持特性具有電荷保持特性tri1上拉電阻上拉電阻tri0下拉電阻下拉電阻supply1電源線,邏輯電源線,邏輯1supply0電源線,邏輯電源線,邏輯0寄存器型數(shù)據(jù)寄存器型數(shù)據(jù) 寄存器型數(shù)據(jù)對應(yīng)的是具有狀態(tài)保持作用寄存器型數(shù)據(jù)對應(yīng)的是具有狀態(tài)保持作用的硬件電路元件,如觸發(fā)器、鎖存器等。的硬件電路元件,如觸發(fā)器、鎖存器等。n關(guān)鍵字為關(guān)鍵字為regn未初始化時為未知狀態(tài)未初始化時為未知狀態(tài)xn缺省時為缺省時為1位數(shù)位數(shù)Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型寄存器型數(shù)據(jù)與連線型數(shù)據(jù)的區(qū)別寄存器型數(shù)據(jù)與連線型數(shù)據(jù)的區(qū)別n寄存器型數(shù)據(jù)保持最后一次的賦值,連線寄存器型數(shù)

39、據(jù)保持最后一次的賦值,連線型數(shù)據(jù)需要有持續(xù)的驅(qū)動型數(shù)據(jù)需要有持續(xù)的驅(qū)動n寄存器型數(shù)據(jù)的驅(qū)動可以通過過程賦值語寄存器型數(shù)據(jù)的驅(qū)動可以通過過程賦值語句實現(xiàn)句實現(xiàn)Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型物理數(shù)據(jù)類型示例物理數(shù)據(jù)類型示例nreg a; /寄存器變量寄存器變量nreg3: 0 v; /4位的寄存器變量位的寄存器變量ntri 15: 0 bus; /16位的三態(tài)總線位的三態(tài)總線ntri1 7: 0 data_bus; /8位的數(shù)據(jù)線,處于三態(tài)時為上拉位的數(shù)據(jù)線,處于三態(tài)時為上拉電阻電阻ntri0 31: 0 add_bus; /32位的連線型,處于三態(tài)時為下位的連線型,處于三態(tài)時為下拉電阻

40、拉電阻nreg scalared 1: 4 b; /4位寄存器位寄存器,可選擇部分位賦值,可選擇部分位賦值nreg vectored 1: 4 a; /不可部分賦值,缺省為不可部分賦值,缺省為scalared nreg 7: 0 RAM 0: 1023; /8位寬容量為位寬容量為1k的的RAMnwire #(2.4, 1.8) carry; /具有升降延遲的連線型具有升降延遲的連線型nwire (strong1, pull0) sum=a+b; /指定驅(qū)動強度且連續(xù)指定驅(qū)動強度且連續(xù)幅值的連線型幅值的連線型,supply,strong,pull,weak(強到弱強到弱)ntrireg (sma

41、ll) storeit;/小強度電荷存儲線小強度電荷存儲線,medium,largeVerilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型存儲器存儲器用寄存器數(shù)組來表示存儲器用寄存器數(shù)組來表示存儲器parameter /實時參數(shù)實時參數(shù)wordsize = 16;memsize = 256;/申明申明16位位256字的存儲器與寄存器字的存儲器與寄存器reg wordsize-1: 0mem memsize-1: 0,writereg,readreg;Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型ninteger 整型整型ntime 時間型時間型nreal 實型實型nparameter 參數(shù)

42、型參數(shù)型Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型integer 整型整型n常用于定義循環(huán)控制變量常用于定義循環(huán)控制變量n寄存器型數(shù)據(jù)被當(dāng)作無符號數(shù),整型數(shù)據(jù)寄存器型數(shù)據(jù)被當(dāng)作無符號數(shù),整型數(shù)據(jù)為為32位有符號數(shù)位有符號數(shù)ninteger countninteger k1: 64; /數(shù)組數(shù)組Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型time 時間型時間型n主要用于對模擬時間的存儲與計算處理主要用于對模擬時間的存儲與計算處理n為為64位的無符號數(shù)位的無符號數(shù)time start, stop; /兩個兩個64位時間變量位時間變量Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型real 實型實型n浮點型數(shù)值浮

43、點型數(shù)值real s; Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型parameter 參數(shù)型參數(shù)型n被命名的常量被命名的常量n在仿真開始時對其在仿真開始時對其賦值賦值,仿真過程中保持不變,仿真過程中保持不變n數(shù)據(jù)的具體類型由所賦的值來決定數(shù)據(jù)的具體類型由所賦的值來決定n增加描述的可讀性,為以后的修改帶來方便增加描述的可讀性,為以后的修改帶來方便parameter msb=7;parameter e=25, f=9;parameter average=(r+f)/2;parameter r=5.7;Verilog HDL 數(shù)據(jù)類型數(shù)據(jù)類型Verilog HDL 運算符運算符n算術(shù)運算符算術(shù)運算符n

44、邏輯運算符邏輯運算符n關(guān)系運算符關(guān)系運算符n相等運算符相等運算符n按位運算符按位運算符n歸約運算符歸約運算符n移位運算符移位運算符n條件運算符條件運算符n連接運算符連接運算符硬件描述語言硬件描述語言算術(shù)運算符算術(shù)運算符n+ 加加n- 減減n* 乘乘n/ 除除n% 取模取模Verilog HDL 運算符運算符邏輯運算符邏輯運算符n! 邏輯非邏輯非n& 邏輯與邏輯與n| 邏輯或邏輯或結(jié)果只能為結(jié)果只能為0或或1。Verilog HDL 運算符運算符關(guān)系運算符關(guān)系運算符n 大于大于n= 大于等于大于等于 如果比較關(guān)系成立,則返回邏輯如果比較關(guān)系成立,則返回邏輯1,否,否則返回邏輯則返回邏輯0

45、。Verilog HDL 運算符運算符相等關(guān)系運算符相等關(guān)系運算符n= 相等相等 :返回:返回1或或0或或xn!= 不等不等 :返回:返回1或或0或或xn= 全等全等 :只返回:只返回1或或0,不返回,不返回xn!= 非全等:只返回非全等:只返回1或或0,不返回,不返回xVerilog HDL 運算符運算符按位運算符按位運算符n 按位非按位非n& 按位與按位與n| 按位或按位或n 按位異或按位異或n按位異或非按位異或非n按位異或非按位異或非不能將邏輯運算符與按位運算符相混淆不能將邏輯運算符與按位運算符相混淆Verilog HDL 運算符運算符歸約運算符歸約運算符n& 歸約與歸約

46、與n| 歸約或歸約或n 歸約異或歸約異或n&歸約與非歸約與非n|歸約或非歸約或非n歸約異或非歸約異或非n歸約異或非歸約異或非 先將操作數(shù)的第先將操作數(shù)的第1位與第位與第2位進行歸約運算,然后將位進行歸約運算,然后將運算結(jié)果與第運算結(jié)果與第3位進行歸約運算,依次類推,直至位進行歸約運算,依次類推,直至最后一位。最后一位。Verilog HDL 運算符運算符移位運算符移位運算符n 右移位右移位na = 4b1010na 2 /結(jié)果為結(jié)果為4b0010Verilog HDL 運算符運算符條件運算符條件運算符n?: 條件運算符條件運算符 有三個操作然,若第一個操作數(shù)是邏輯有三個操作然,若第一個

47、操作數(shù)是邏輯1則返則返回第二個操作數(shù),若第一個操作數(shù)為邏輯回第二個操作數(shù),若第一個操作數(shù)為邏輯0則則返回第三個操作數(shù)。返回第三個操作數(shù)。 result = (c = d) ? a+b : a-bVerilog HDL 運算符運算符連接運算符連接運算符n : 連接運算符連接運算符n :復(fù)制運算符復(fù)制運算符na=1b1nb=2b00nc=a, b /c=3b100nd=4 a /d=4b1111Verilog HDL 運算符運算符運算符的優(yōu)先級運算符的優(yōu)先級Verilog HDL 運算符運算符運算符運算符描述描述 位選擇或部分選擇位選擇或部分選擇( )圓括號圓括號! 邏輯非和按位非邏輯非和按位非&

48、amp; | & | 歸約運算符歸約運算符+ -單目算術(shù)運算符單目算術(shù)運算符 連接運算符連接運算符* / %算術(shù)運算符算術(shù)運算符+ -雙目算術(shù)運算符雙目算術(shù)運算符移位運算符移位運算符 = =關(guān)系運算符關(guān)系運算符= !=相等運算符相等運算符&按位與按位與 按位異或和異或非按位異或和異或非|按位或按位或&邏輯與邏輯與|邏輯或邏輯或?:條件運算符條件運算符Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)n用于對仿真過程的控制和對仿真結(jié)果的分析用于對仿真過程的控制和對仿真結(jié)果的分析n以以 “$”開頭開頭n系統(tǒng)任務(wù)可以沒有返回值,或有多個返回值,系統(tǒng)任務(wù)可以沒有返回值

49、,或有多個返回值,而系統(tǒng)函數(shù)只有一個返回值而系統(tǒng)函數(shù)只有一個返回值n系統(tǒng)任務(wù)可以帶延遲,而系統(tǒng)函數(shù)不允許帶系統(tǒng)任務(wù)可以帶延遲,而系統(tǒng)函數(shù)不允許帶延遲,在延遲,在0時刻執(zhí)行時刻執(zhí)行硬件描述語言硬件描述語言Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)n標(biāo)準(zhǔn)輸出任務(wù)標(biāo)準(zhǔn)輸出任務(wù)n文件管理任務(wù)文件管理任務(wù)n仿真控制任務(wù)仿真控制任務(wù)n時間函數(shù)時間函數(shù)n其他其他硬件描述語言硬件描述語言標(biāo)準(zhǔn)輸出任務(wù)標(biāo)準(zhǔn)輸出任務(wù)n$display: 可以自動換行可以自動換行n$write:不會自動換行不會自動換行n$display(“The count is %b”,counter )n%d:十進制;十進制;

50、 %b:二進制;二進制; %h:十六進制;十六進制; %o:八進制;八進制; %t:時間格式;時間格式; %f:浮點格式;浮點格式; %s:字符串;字符串;n:換行。換行。Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)文件管理任務(wù)文件管理任務(wù)n$fopen: 打開文件打開文件ninteger handleA;nhandleA = $fopen “myfile.out”Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)文件管理任務(wù)文件管理任務(wù)n$fdisplay:可以自動換行可以自動換行n$fwrite:不會自動換行不會自動換行輸出到文件輸出到文件ninteger han

51、dleA;nhandleA = $fopen “myfile.out”;n$fdisplay(handleA, “Hello”);Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)文件管理任務(wù)文件管理任務(wù)n$freadmemb:二進制讀取二進制讀取n$freadmemh:十六進制讀取十六進制讀取n從文件中讀取數(shù)據(jù)到存儲器從文件中讀取數(shù)據(jù)到存儲器nreg 7: 0 memory 9: 0;n$freadmemb(“myfile.dat”, memory);Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)仿真控制任務(wù)仿真控制任務(wù)n$monitor:監(jiān)控,信號發(fā)生變化時輸出監(jiān)控

52、,信號發(fā)生變化時輸出n$monitoron:打開監(jiān)控任務(wù)打開監(jiān)控任務(wù)n$monitoroff:關(guān)閉監(jiān)控任務(wù)關(guān)閉監(jiān)控任務(wù)n$monitor(“a=%d, b=%d”, a, b);Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)仿真控制任務(wù)仿真控制任務(wù)n$finish:結(jié)束仿真,返回操作系統(tǒng)結(jié)束仿真,返回操作系統(tǒng)n$stop:暫時掛起仿真,返回暫時掛起仿真,返回Verilog界面界面Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)時間函數(shù)時間函數(shù)n$timeformat:控制控制%t格式如何顯示時間信息格式如何顯示時間信息n$printtimescale:給出指定模塊的時

53、間單位和精度給出指定模塊的時間單位和精度n$time:返回返回64位的整數(shù),指定當(dāng)前的仿真時間位的整數(shù),指定當(dāng)前的仿真時間n$stime:返回返回32位的仿真時間位的仿真時間n$realtime:以實數(shù)形式返回當(dāng)前的仿真時間以實數(shù)形式返回當(dāng)前的仿真時間Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)其他函數(shù)其他函數(shù)n$random:隨機函數(shù),產(chǎn)生一個隨機數(shù)隨機函數(shù),產(chǎn)生一個隨機數(shù)n$rtoi:通過截斷小數(shù)值將實數(shù)變換成整數(shù)通過截斷小數(shù)值將實數(shù)變換成整數(shù)n$itor:將整數(shù)變換成實數(shù)將整數(shù)變換成實數(shù)n$realtobits:將實數(shù)變換成將實數(shù)變換成64位的實數(shù)向量位的實數(shù)向量n$bi

54、tstoreal:將位模式變換為實數(shù)將位模式變換為實數(shù)Verilog HDL 系統(tǒng)任務(wù)與系統(tǒng)函數(shù)系統(tǒng)任務(wù)與系統(tǒng)函數(shù)編譯指令編譯指令n編譯指令以字符編譯指令以字符“”開頭開頭n編譯指令末尾不需要分號編譯指令末尾不需要分號n編譯指令不受模塊與文件的限制,已定義的編譯指令不受模塊與文件的限制,已定義的編譯指令一直有效,直到其他編譯指令修改編譯指令一直有效,直到其他編譯指令修改它或?qū)⒃摼幾g指令關(guān)閉它或?qū)⒃摼幾g指令關(guān)閉硬件描述語言硬件描述語言宏編譯指令宏編譯指令ndefine:定義宏定義宏nundef:取消宏取消宏ndefine cycle 20Verilog HDL 編譯指令編譯指令文件包含指令文件包

55、含指令ninclude:包含需要用到的文件包含需要用到的文件ninclude file1.vVerilog HDL 編譯指令編譯指令條件編譯指令條件編譯指令ifdef TEST module counter; . endmoduleelse module counter_test; . endmoduleendif 當(dāng)且僅當(dāng)宏當(dāng)且僅當(dāng)宏TEST定義時編譯模塊定義時編譯模塊counter,否則編譯模塊,否則編譯模塊counter_testVerilog HDL 編譯指令編譯指令時間定標(biāo)指令時間定標(biāo)指令ntimescale:用于設(shè)定時延的時間單位用于設(shè)定時延的時間單位ntimescale 1 ns

56、 / 10psVerilog HDL 編譯指令編譯指令工作庫定義指令工作庫定義指令nuselib:定義工作庫定義工作庫file=庫文件名的路徑庫文件名的路徑dir=庫目錄名的路徑庫目錄名的路徑 libext=.文件擴展文件擴展nuselib file=/models/udp.libnuselib dir=/models/gate_lib libext=.vVerilog HDL 編譯指令編譯指令用戶自定義元件用戶自定義元件(UDP)n基本門級元件基本門級元件(Basic Gate-level Primitives)n基本開關(guān)級元件基本開關(guān)級元件(Basic Switch-level Primi

57、tives)n用戶自定義元件用戶自定義元件(UDP)硬件描述語言硬件描述語言UDP的定義的定義 primitive (, , , . ,); 輸出端口類型說明輸出端口類型說明(output); 輸入端口類型說明輸入端口類型說明(input);輸出端寄存器變量說明輸出端寄存器變量說明(reg);元件初始狀態(tài)說明元件初始狀態(tài)說明(initial);table ; ;. ;endtableendprimitive用戶自定義元件用戶自定義元件(UDP)UDP的定義的定義 primitive mux4_1 (out, in1, in2, in3, in4, ctrl1, ctrl2); output o

58、ut; input in1, in2, in3, in4, ctrl1, ctrl2;table/in1 in2 in3 in4 ctrl1 ctrl2 : out 0 ? ? ? 0 0 : 0; 1 ? ? ? 0 0 : 1; ? 0 ? ? 0 1 : 0; ? 1 ? ? 0 1 : 1; ? ? 0 ? 1 0 : 0; ? ? 1 ? 1 0 : 1; ? ? ? 0 1 1 : 0; ? ? ? 1 1 1 : 1; endtableendprimitive用戶自定義元件用戶自定義元件(UDP)UDP的定義的定義nUDP定義模塊不能出現(xiàn)在其他模塊定義之內(nèi)定義模塊不能出現(xiàn)在其他模

59、塊定義之內(nèi)n只能有一個輸出端口,而且必須為第一項只能有一個輸出端口,而且必須為第一項n只有時序邏輯元件才能將輸出端口定義成寄存器類只有時序邏輯元件才能將輸出端口定義成寄存器類變量變量n初始狀態(tài)為電路上電時刻的狀態(tài),只能為初始狀態(tài)為電路上電時刻的狀態(tài),只能為0、1、xntable表項中只能出現(xiàn)表項中只能出現(xiàn)0、1、x三種邏輯值三種邏輯值用戶自定義元件用戶自定義元件(UDP)組合邏輯電路組合邏輯電路UDPn直接把電路的邏輯真值表搬到直接把電路的邏輯真值表搬到UDP的的table表中表中n完全由輸入決定輸出完全由輸入決定輸出用戶自定義元件用戶自定義元件(UDP)時序邏輯電路時序邏輯電路UDPn時序邏

60、輯電路元件的輸出除了與當(dāng)前的輸入狀態(tài)有時序邏輯電路元件的輸出除了與當(dāng)前的輸入狀態(tài)有關(guān),還與時序元件本身的內(nèi)部狀態(tài)有關(guān)關(guān),還與時序元件本身的內(nèi)部狀態(tài)有關(guān)ntable表中多了一個內(nèi)部狀態(tài)表中多了一個內(nèi)部狀態(tài)n必須將輸出端口定義為寄存器類型必須將輸出端口定義為寄存器類型n往往需要對元件的初始狀態(tài)值加以指定往往需要對元件的初始狀態(tài)值加以指定用戶自定義元件用戶自定義元件(UDP)時序邏輯電路時序邏輯電路UDPn電平觸發(fā)時序電路電平觸發(fā)時序電路UDPn邊沿觸發(fā)時序電路邊沿觸發(fā)時序電路UDP用戶自定義元件用戶自定義元件(UDP)電平觸發(fā)時序邏輯電路電平觸發(fā)時序邏輯電路UDPn內(nèi)部狀態(tài)改變由某一輸入信號電平觸發(fā)內(nèi)部狀態(tài)改變由某一輸入信號電平觸發(fā)用戶自定義元件用戶自定義元件(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論