IC設(shè)計(jì)總結(jié)文檔_第1頁
IC設(shè)計(jì)總結(jié)文檔_第2頁
IC設(shè)計(jì)總結(jié)文檔_第3頁
IC設(shè)計(jì)總結(jié)文檔_第4頁
IC設(shè)計(jì)總結(jié)文檔_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微電子技術(shù)概述集成電路的發(fā)展回顧全球集成電路發(fā)展的路程,基本上可以總結(jié)為六個(gè)階段:第一階段:1962年制造出包含12個(gè)晶體管的小規(guī)模集成電路(SSI,Small-ScaleIntegration)。第二階段:1966年發(fā)展到集成度為100?1000個(gè)晶體管的中規(guī)模集成電路(MSI,Medium-ScaleIntegration)。第三階段:1967?1973年,研制出1000?100000個(gè)晶體管的大規(guī)模集成電路(LSI,Large-ScaleIntegration)。第四階段:1977年研制出在30平方毫米的硅晶片上集成15萬個(gè)晶體管的超大規(guī)模集成電路(VLSI,VeryLarge-ScaleIntegration)。這是電子技術(shù)的第4次重大突破,從此真正邁入了微電子時(shí)代。第五階段:1993年隨著集成了1000萬個(gè)晶體管的16MBFLASH和256MBDRAM的研制成功,進(jìn)入了特大規(guī)模集成電路(ULSI,UltraLarge-ScaleIntegration)時(shí)代。第六階段:1994年由于集成1億個(gè)元件的1GBDRAM的研制成功,進(jìn)入巨大規(guī)模集成電路(GSI,GigaScaleIntegration)時(shí)代。集成電路產(chǎn)業(yè)分工微電子技術(shù)的迅速發(fā)展得益于集成電路產(chǎn)業(yè)內(nèi)部的細(xì)致分工。目前,集成電路產(chǎn)業(yè)鏈主要包括設(shè)計(jì)、制造、封裝和測(cè)試,如圖所示。在這歷史過程中,世界IC產(chǎn)業(yè)為適應(yīng)技術(shù)的發(fā)展和市場(chǎng)的需求,其產(chǎn)業(yè)結(jié)構(gòu)經(jīng)歷了3次重大變革。1、以生產(chǎn)為導(dǎo)向的初級(jí)階段20世紀(jì)60年代的集成電路產(chǎn)業(yè)就是半導(dǎo)體產(chǎn)業(yè),IC設(shè)計(jì)只是附屬產(chǎn)品。70年代出現(xiàn)獨(dú)立的IC廠家設(shè)計(jì)IC產(chǎn)品。2、Foundry與Fabless設(shè)計(jì)公司的崛起20世紀(jì)80年代,工藝設(shè)備生產(chǎn)能力已經(jīng)相當(dāng)強(qiáng)大,但是費(fèi)用十分昂貴,IC廠家自己的設(shè)計(jì)不足以供其飽和運(yùn)行,因此開始承接對(duì)外加工,繼而由部分到全部對(duì)外加工,形成了Foundry加工和Fabless設(shè)計(jì)的分工。Foundry:芯片代工廠的簡(jiǎn)稱,不搞設(shè)計(jì),沒有自己的IC產(chǎn)品,為Fabless提供完全意義上的代工,這使得Fabless可以放心地把產(chǎn)品交給Foundry而無需擔(dān)心知識(shí)產(chǎn)權(quán)外流。Fabless:半導(dǎo)體集成電路行業(yè)中無生產(chǎn)線設(shè)計(jì)公司的簡(jiǎn)稱。Fabless開拓市場(chǎng)后進(jìn)行產(chǎn)品設(shè)計(jì),將設(shè)計(jì)的成果外包給Foundry廠家進(jìn)行芯片生產(chǎn),生產(chǎn)出來的芯片經(jīng)過封裝測(cè)試后由設(shè)計(jì)公司自己銷售。3、“四業(yè)分離”的IC產(chǎn)業(yè)20世紀(jì)90年代,IC產(chǎn)業(yè)結(jié)構(gòu)開始向高度專業(yè)化轉(zhuǎn)變,開始形成設(shè)計(jì)、制造、封裝、測(cè)試獨(dú)立成型的局面。這次分工的另一個(gè)特征是:系統(tǒng)設(shè)計(jì)和IP(知識(shí)產(chǎn)權(quán))設(shè)計(jì)開始分工,它對(duì)集成電路產(chǎn)業(yè)的影響不亞于20世紀(jì)80年代Foundry與Fabless的分工。1.2SoC概述隨著設(shè)計(jì)與制造技術(shù)的發(fā)展,集成電路設(shè)計(jì)從晶體管的集成發(fā)展到邏輯門的集成,現(xiàn)在又發(fā)展到IP的集成,即SoC(System-on-a-Chip)設(shè)計(jì)技術(shù),SoCdesign=systemarchitecture+IC。在經(jīng)過了多年的爭(zhēng)論后,專家們就SoC的定義達(dá)成了一致意見。這個(gè)定義雖然不是非常嚴(yán)格,但明確地表明了SoC的特征:①實(shí)現(xiàn)復(fù)雜系統(tǒng)功能的VLSI;采用超深亞微米工藝技術(shù);②使用一個(gè)以上嵌入式CPU/數(shù)字信號(hào)處理器(DSP);③外部可以對(duì)芯片進(jìn)行編程;注:晶圓:指硅半導(dǎo)體集成電路所用的硅晶片,由于其形狀為圓形,故稱為晶圓,晶圓是生產(chǎn)集成電路所用的載體。晶圓越大,同一圓片上可生產(chǎn)的IC就越多,可降低成本;但對(duì)材料技術(shù)和生產(chǎn)技術(shù)的要求更高,一般認(rèn)為硅晶圓的直徑越大,代表這座晶圓廠有更好的技術(shù),在生產(chǎn)晶圓的過程當(dāng)中,良品率是很重要的條件。工藝等級(jí):通常把0.8?0.35um稱為亞微米,0.25um及其以下稱為深亞微米,0.18um或以下稱為超深亞微米,0.05um及其以下稱為納米級(jí)。SoC中包含了微處理器/微控制器、存儲(chǔ)器以及其他專用功能邏輯(DSP等),但并不是包含了微處理器、存儲(chǔ)器以及其他專用功能邏輯的芯片就是SoC。SoC技術(shù)被廣泛認(rèn)同的根本原因,并不在于SoC可以集成多少個(gè)晶體管,而在于SoC可以用較短時(shí)間被設(shè)計(jì)出來。這是SoC的主要價(jià)值所在——縮短產(chǎn)品的上市周期,因此,SoC更合理的定義為:SoC是在一個(gè)芯片上由于廣泛使用預(yù)定制模塊IP(IntellectualProperty)而得以快速開發(fā)的集成電路。從設(shè)計(jì)上來說,SoC就是一個(gè)通過設(shè)計(jì)復(fù)用達(dá)到高生產(chǎn)率的硬件軟件協(xié)同設(shè)計(jì)的過程。從方法學(xué)的角度來看,SoC是一套極大規(guī)模集成電路的設(shè)計(jì)方法學(xué),包括IP核可復(fù)用設(shè)計(jì)/測(cè)試方法及接口規(guī)范、系統(tǒng)芯片總線式集成設(shè)計(jì)方法學(xué)、系統(tǒng)芯片驗(yàn)證和測(cè)試方法學(xué)。SoC是一種設(shè)計(jì)理念,就是將各個(gè)可以集成在一起的模塊集成到一個(gè)芯片上,他借鑒了軟件的復(fù)用概念,也有了繼承的概念。也可以說是包含了設(shè)計(jì)和測(cè)試等更多技術(shù)的一項(xiàng)新的設(shè)計(jì)技術(shù)。SoC的一般構(gòu)成:從大處來分,SoC含有:.邏輯核包括CPU、時(shí)鐘電路、定時(shí)器、中斷控制器、串并行接口、其它外圍設(shè)備、I/O端口以及用于各種IP核之間的粘合邏輯等等;.存儲(chǔ)器核包括各種易失、非易失以及Cache等存儲(chǔ)器;.模擬核包括ADC、DAC、PLL以及一些高速電路中所用的模擬電路?,F(xiàn)在的SoC芯片上可綜合實(shí)現(xiàn)CPU、DSP、數(shù)字電路、模擬電路、存儲(chǔ)器、片上可編程邏輯等多種電路;綜合實(shí)現(xiàn)圖像處理、語音處理、通信協(xié)議、通信機(jī)能、數(shù)據(jù)處理等功能。SoC按用途可分為兩種類型:一種是專用SoC芯片,是專用集成電路(ASIC)向系統(tǒng)級(jí)集成的自然發(fā)展;另一種是通用SoC芯片,將絕大多數(shù)部件,如CPU、DSP、RAM、I/O等集成在芯片上,同時(shí)提供用戶設(shè)計(jì)所需要的邏輯資源和軟件編程所需的軟件資源。IP核是具有復(fù)雜系統(tǒng)功能的能夠獨(dú)立出售的VLSI塊,經(jīng)過驗(yàn)證并能在設(shè)計(jì)中復(fù)用的功能模塊。SoC設(shè)計(jì)流程軟硬件協(xié)同設(shè)計(jì)SoC通常被稱作系統(tǒng)級(jí)芯片或者片上系統(tǒng),作為一個(gè)完整的系統(tǒng),其包含硬件和軟件兩部分內(nèi)容。這里所說的硬件指SoC芯片部分,軟件是指運(yùn)行在SoC芯片上的系統(tǒng)及應(yīng)用程序。既然它是由軟件和硬件組合而成,則在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),就必須同時(shí)從軟件和硬件的角度去考慮。高鍬算法建模與仿真系統(tǒng)需求悅明基本輸入/輸出基本算法需求計(jì)克模型通信模型硬件系統(tǒng)側(cè)試軟硬件協(xié)同設(shè)計(jì)的SoC設(shè)計(jì)流程一個(gè)完整的SoC設(shè)計(jì)包括系統(tǒng)結(jié)構(gòu)設(shè)計(jì)(也稱為架構(gòu)設(shè)計(jì)),軟件結(jié)構(gòu)設(shè)計(jì)和ASIC設(shè)計(jì)(硬件設(shè)計(jì))。SoC設(shè)計(jì)與傳統(tǒng)的ASIC設(shè)計(jì)最大的不同在于以下兩方面:1)SoC設(shè)計(jì)更需要了解整個(gè)系統(tǒng)的應(yīng)用,定義出合理的芯片架構(gòu),使得軟硬件配合達(dá)到系統(tǒng)最佳工作狀態(tài)。因而,軟硬件協(xié)同設(shè)計(jì)被越來越多地采用。SoC設(shè)計(jì)是以IP復(fù)用或更大的平臺(tái)復(fù)用為基礎(chǔ)的。因而,基于IP復(fù)用的設(shè)計(jì)是硬件實(shí)現(xiàn)的特點(diǎn)。1.系統(tǒng)需求說明系統(tǒng)設(shè)計(jì)首先從確定所需的功能開始,包含系統(tǒng)基本輸入和輸出及基本算法需求,以及系統(tǒng)要求的功能、性能、功耗、成本和開發(fā)時(shí)間等。在這一階段,通常會(huì)將用戶的需求轉(zhuǎn)換為用于設(shè)計(jì)的技術(shù)文檔,并初步確定系統(tǒng)的設(shè)計(jì)流程。2.高級(jí)算法建模與仿真設(shè)計(jì)者將使用如C和C++等高級(jí)語言創(chuàng)建整個(gè)系統(tǒng)的高級(jí)算法模型和仿真模型。目前,一些EDA工具可以幫助我們完成這一步驟。有了高級(jí)算法模型,便可以得到軟硬件協(xié)同仿真所需的可執(zhí)行的說明文檔。此類文檔會(huì)隨著設(shè)計(jì)進(jìn)程的深入而不斷地完善和細(xì)化。3.軟硬件劃分過程設(shè)計(jì)者通過軟硬件劃分來決定哪些功能應(yīng)該由硬件完成,哪些功能應(yīng)該由軟件來實(shí)現(xiàn)。這是一個(gè)需要反復(fù)評(píng)估-修改直至滿足系統(tǒng)需求的過程。軟硬件劃分的合理性對(duì)系統(tǒng)的實(shí)現(xiàn)至關(guān)重要。有些功能既可以用軟件實(shí)現(xiàn)也可以用硬件實(shí)現(xiàn),這取決于所要達(dá)到的性能指標(biāo)與實(shí)現(xiàn)的復(fù)雜程度及成本口4.軟硬件同步設(shè)計(jì)由于軟硬件的分工已明確,芯片的架構(gòu)及同軟件的接口也已定義,接下來便可以進(jìn)行軟硬件的同步設(shè)計(jì)了。其中硬件設(shè)計(jì)包括RTL設(shè)計(jì)和集成、綜合、布局布線及最后的流片。軟件設(shè)計(jì)則包括算法優(yōu)化、應(yīng)用開發(fā),以及操作系統(tǒng)、接口驅(qū)動(dòng)和應(yīng)用軟件的開發(fā)。下面主要介紹硬件(芯片)設(shè)計(jì):基于標(biāo)準(zhǔn)單元的SoC芯片設(shè)計(jì)流程.硬件設(shè)計(jì)定義說明硬件設(shè)計(jì)定義說明描述芯片總體結(jié)構(gòu)、規(guī)格參數(shù)、模塊劃分、使用的總線,以及各個(gè)模塊的詳細(xì)定義等。.模塊設(shè)計(jì)及IP復(fù)用根據(jù)所劃分出的功能模塊,確定需要重新設(shè)計(jì)的部分及可復(fù)用的IP核,對(duì)于需要重新設(shè)計(jì)的模塊進(jìn)行設(shè)計(jì);對(duì)于可復(fù)用的IP核,通常由于總線接口標(biāo)準(zhǔn)不一致需要做一定的修改。IP核可自主研發(fā)或者購買其他公司的IP。目前,設(shè)計(jì)的輸入是采用硬件描述語言(HDL),如Verilog或VHDL,所以,數(shù)字模塊的設(shè)計(jì)通常稱為RTL代碼編寫。.頂層模塊集成頂層模塊集成是將各個(gè)不同的功能模塊,包括新設(shè)計(jì)的與復(fù)用的整合在一起,形成一個(gè)完整的設(shè)計(jì)。通常采用硬件描述語言對(duì)電路進(jìn)行描述,其中需要考慮系統(tǒng)時(shí)鐘/復(fù)位、I/O環(huán)等問題。.前仿真前仿真也叫RTL級(jí)仿真,功能仿真。通過HDL仿真器驗(yàn)證電路邏輯功能是否有效,及HDL描述是否符合設(shè)計(jì)所定義的功能期望。在前仿真時(shí),通常與具體的電路物理實(shí)現(xiàn)無關(guān),沒有時(shí)序信息。.邏輯綜合邏輯綜合是指使用EDA工具把由硬件描述語言設(shè)計(jì)的電路自動(dòng)轉(zhuǎn)換成特定工藝下的網(wǎng)表,即從RTL級(jí)的HDL描述通過編譯與優(yōu)化產(chǎn)生符合約束條件的門級(jí)網(wǎng)表。網(wǎng)表是一種描述邏輯單元和他們之間互連的數(shù)據(jù)文件。約束條件包括時(shí)序、面積和功耗的約束。其中,時(shí)序是最復(fù)雜和最關(guān)鍵的約束,決定了整個(gè)芯片的性能。在綜合過程中,EDA工具會(huì)根據(jù)約束條件對(duì)電路進(jìn)行優(yōu)化,優(yōu)化(這里指的是初次邏輯綜合優(yōu)化)的主要目的是在滿足時(shí)序要求的前提下盡量減小芯片面積。與工藝無關(guān)的優(yōu)化缺乏非常準(zhǔn)確的時(shí)序信息,因而注意力往往集中在優(yōu)化面積上。等到映射之后時(shí)序信息比較準(zhǔn)確時(shí)再進(jìn)行修正更有效。.版圖布局規(guī)劃版圖布局規(guī)劃完成的任務(wù)是確定設(shè)計(jì)中各個(gè)模塊在版圖上的位置,主要包括:▲I/O規(guī)劃,確定I/O的位置,定義電源和接地口的位置;▲模塊放置,定義各種物理的組、區(qū)域或模塊,對(duì)這些大的宏單元進(jìn)行放置;▲供電設(shè)計(jì),設(shè)計(jì)整個(gè)版圖的供電網(wǎng)絡(luò),基于電壓降(IRDrop)和電遷移進(jìn)行拓?fù)鋬?yōu)化。版圖布局規(guī)劃的挑戰(zhàn)是在保證布線能夠走通且性能允許的前提下,如何最大限度地減少芯片面積,是物理設(shè)計(jì)過程中需要設(shè)計(jì)者付出最大努力的地方之一。.功耗分析▲在設(shè)計(jì)中的許多步驟都需要對(duì)芯片功耗進(jìn)行分析,從而決定是否需要對(duì)設(shè)計(jì)進(jìn)行改進(jìn)。▲在版圖布局規(guī)劃后,需要對(duì)電源網(wǎng)絡(luò)進(jìn)行功耗分析(PNA,PowerNetworkAnalysis),確定電源引腳的位置和電源線寬度?!谕瓿刹季植季€后,需要對(duì)整個(gè)版圖的布局進(jìn)行動(dòng)態(tài)功耗分析和靜態(tài)功耗分析。▲除了對(duì)版圖進(jìn)行功耗分析以外,還應(yīng)通過仿真工具快速計(jì)算動(dòng)態(tài)功耗,找出主要的功耗模塊或單元。.單元布局和優(yōu)化單元布局和優(yōu)化主要定義每個(gè)標(biāo)準(zhǔn)單元的擺放位置并根據(jù)擺放的位置進(jìn)行優(yōu)化?,F(xiàn)在,EDA工具廣泛支持物理綜合,即將布局和優(yōu)化與邏輯綜合統(tǒng)一起來,引入真實(shí)(實(shí)際)的連線延時(shí)信息,減少了時(shí)序收斂所需要的迭代次數(shù)。注:綜合(synthesis):就是把思想轉(zhuǎn)換為實(shí)現(xiàn)欲想功能的可制造的設(shè)計(jì),綜合是約束驅(qū)動(dòng)和基于路徑的:在進(jìn)行綜合時(shí),對(duì)時(shí)序的約束和優(yōu)化都是針對(duì)路徑的,優(yōu)化時(shí)序就是優(yōu)化路徑上的時(shí)序,因?yàn)檫x定工藝后,單元的建立保持時(shí)間是固定的,因此只有改變路徑來滿足約束,綜合工具總是計(jì)算路徑的延時(shí),并根據(jù)邏輯單元對(duì)時(shí)序的要求來判斷綜合結(jié)果中的路徑是否滿足設(shè)計(jì)要求。在邏輯設(shè)計(jì)中,時(shí)序路徑延時(shí)通常由組合邏輯延時(shí)和布線延時(shí)組成,其中布線延時(shí)可以通過工具優(yōu)化,而組合邏輯延時(shí)屬于器件延時(shí),因此如何在設(shè)計(jì)階段進(jìn)行優(yōu)化以減少組合邏輯延時(shí)(減少組合邏輯的器件級(jí)數(shù))是我們需要考慮的。在0.13微米以前的工藝時(shí),互連線上延遲非常的不明顯,標(biāo)準(zhǔn)單元的延遲占絕對(duì)主導(dǎo)因素,因此在邏輯綜合后,網(wǎng)表就被直接拿來進(jìn)行布局布線,時(shí)序往往也沒有問題。然而自0.13微米的工藝以來,連線延時(shí)越來越起主導(dǎo)作用了。物理綜合是將邏輯綜合和布局布線結(jié)合起來設(shè)計(jì)方法學(xué)。簡(jiǎn)單地說,物理綜合工具除了具有原來邏輯綜合,簡(jiǎn)單的自動(dòng)放置標(biāo)準(zhǔn)單元的能力外,還會(huì)把標(biāo)準(zhǔn)單元在放置過程中實(shí)際位置的不同而導(dǎo)致的連線電容、電阻值的種種變化考慮進(jìn)去,從而得到具有實(shí)際物理意義的準(zhǔn)確的RC延遲及時(shí)序信息。如果當(dāng)前的布置無法滿足時(shí)序要求時(shí),物理綜合工具就會(huì)自動(dòng)地嘗試改變標(biāo)準(zhǔn)單元的放置或優(yōu)化電路結(jié)構(gòu),直到時(shí)序滿足輸入約束(或能達(dá)到的最優(yōu)情況)為止。傳統(tǒng)的邏輯綜合方法是依賴于連線負(fù)載模型(Wire-loadModel)的,所用的連線延時(shí)信息是根據(jù)wire-loadmodel估算出來的。在物理綜合時(shí),就考慮布局布線的問題了(邏輯綜合沒有包含布局布線的信息),計(jì)算延時(shí)的方法不是通過連線負(fù)載模型得出的,而是通過布局信息得到。它(指物理綜合)在綜合(轉(zhuǎn)換成可制造的設(shè)計(jì))的同時(shí)也根據(jù)版圖規(guī)劃(Floorplan)的信息來完成電路布局過程(所以這是一個(gè)邏輯綜合+布局結(jié)合的過程),同時(shí)進(jìn)行電路綜合(換成可制造的設(shè)計(jì))和布局的過程能提供準(zhǔn)確的互連線延時(shí)信息。物理綜合要求的約束條件通常有芯片尺寸、引腳位置、線上負(fù)載信息、版圖規(guī)劃信息等。一般使用以下兩種操作模式。1)RTL到門級(jí)模式:在RTL到門級(jí)模式下,物理綜合的輸入信息是RTL級(jí)的設(shè)計(jì)電路、版圖規(guī)劃信息及含有版圖信息的物理綜合的庫文件。經(jīng)過綜合后,輸出帶有布局(placement)數(shù)據(jù)的門級(jí)網(wǎng)表及布局信息。(這是上述意義上的物理綜合過程)2)門級(jí)到布局后門級(jí)模式:在這一模式下,與RTL到門級(jí)模式的唯一區(qū)別是物理綜合的輸入信息是門級(jí)網(wǎng)表,而不是RTL級(jí)的設(shè)計(jì)電路。門級(jí)網(wǎng)表是由傳統(tǒng)方法通過邏輯綜合方法運(yùn)用連線負(fù)載模型wire-loadmodel得出的,通過物理綜合能夠優(yōu)化網(wǎng)表并得到門級(jí)電路的布局信息。當(dāng)設(shè)計(jì)電路很龐大的時(shí)候,RTL到網(wǎng)表需要花費(fèi)的時(shí)間會(huì)很長(zhǎng),而由于缺少實(shí)際的布局布線的信息,所得的網(wǎng)表對(duì)實(shí)際布局而言并不是優(yōu)化的。建議在這一級(jí)的綜合時(shí)不要花太多的時(shí)間優(yōu)化,而把優(yōu)化工作由物理綜合完成。換句話說,可以先通過簡(jiǎn)單的邏輯綜合將RTL級(jí)的設(shè)計(jì)轉(zhuǎn)換為網(wǎng)表,然后通過物理綜合對(duì)網(wǎng)表進(jìn)行布局與優(yōu)化,最終得到滿足時(shí)序的電路結(jié)構(gòu)。隨著物理綜合工具的不斷成熟,物理綜合在0.18mm以下工藝的大型SOC設(shè)計(jì)中被廣泛采用。.靜態(tài)時(shí)序分析STA是一種靜態(tài)驗(yàn)證方法通過對(duì)提取電路中所有路徑上的延遲等信息的分析,計(jì)算出信號(hào)在時(shí)序路徑上的延遲,找出違背時(shí)序約束的錯(cuò)誤,如檢查建立時(shí)間(SetupTime)和保持時(shí)間(HoldTime)是否滿足要求。靜態(tài)時(shí)序分析的方法不依賴于激勵(lì),而且可以窮盡所有的路徑,運(yùn)行速度快,占用內(nèi)存少。它完全克服了動(dòng)態(tài)時(shí)序驗(yàn)證的缺陷,是SoC設(shè)計(jì)中重要的一個(gè)環(huán)節(jié)。在后端設(shè)計(jì)的很多步驟完成后都要進(jìn)行靜態(tài)時(shí)序分析,如在邏輯綜合完成之后、在布局優(yōu)化之后、在布線完成后等。動(dòng)態(tài)驗(yàn)證的缺陷有:①現(xiàn)在SoC的發(fā)展趨勢(shì)是將上百萬個(gè)甚至更多門級(jí)電路集成在一個(gè)芯片上,通過動(dòng)態(tài)仿真的方法驗(yàn)證這樣的電路設(shè)計(jì),則需要花費(fèi)很長(zhǎng)的時(shí)間。②動(dòng)態(tài)仿真取決于驗(yàn)證時(shí)采用的測(cè)試向量的覆蓋率及仿真平臺(tái)(Testbench)的性質(zhì),因此往往只能測(cè)試到部分邏輯而其他的邏輯被忽略。.形式驗(yàn)證形式驗(yàn)證也是一種靜態(tài)驗(yàn)證方法,與靜態(tài)時(shí)序分析一起構(gòu)成設(shè)計(jì)的靜態(tài)驗(yàn)證。在整個(gè)設(shè)計(jì)流程中會(huì)多次引入形式驗(yàn)證用于比較RTL代碼之間、門級(jí)網(wǎng)表與RTL代碼之間,以及門級(jí)網(wǎng)表之間在修改之前與修改之后功能的一致性。.可測(cè)性電路插入可測(cè)性設(shè)計(jì)是SoC設(shè)計(jì)中的重要一步。通常,對(duì)于邏輯電路采用掃描鏈的可測(cè)試結(jié)構(gòu),對(duì)于芯片的輸入/輸出端口采用邊界掃描的可測(cè)試結(jié)構(gòu)?;舅枷胧峭ㄟ^插入掃描鏈,增加電路內(nèi)部節(jié)點(diǎn)的可控性和可觀測(cè)性,以達(dá)到提高測(cè)試效率的目的。一般在邏輯綜合或物理綜合后進(jìn)行掃描電路的插入和優(yōu)化。注:在集成電路設(shè)計(jì)領(lǐng)域,通常所說的驗(yàn)證和測(cè)試是指兩種不同的事,其主要區(qū)別在于:驗(yàn)證是在設(shè)計(jì)過程中確認(rèn)所設(shè)計(jì)的電路功能的正確性,測(cè)試是指采用測(cè)試設(shè)備檢查芯片是否存在制造或封裝過程中產(chǎn)生的缺陷。驗(yàn)證可以通過軟件仿真、硬件模擬和形式驗(yàn)證等方法進(jìn)行,它是在流片之前要做的。.時(shí)鐘樹綜合SoC設(shè)計(jì)方法強(qiáng)調(diào)同步電路的設(shè)計(jì),即所有的寄存器或一組寄存器是由同一個(gè)時(shí)鐘的同一個(gè)邊沿驅(qū)動(dòng)的。構(gòu)造芯片內(nèi)部全局或局部平衡的時(shí)鐘鏈的過程稱為時(shí)鐘樹綜合。分布在芯片內(nèi)部寄存器與時(shí)鐘的驅(qū)動(dòng)電路構(gòu)成了一種樹狀結(jié)構(gòu),這種結(jié)構(gòu)稱為時(shí)鐘樹。時(shí)鐘樹綜合是在布線設(shè)計(jì)之前進(jìn)行的。.布線設(shè)計(jì)這一階段完成所有節(jié)點(diǎn)的連接。布線工具通常將布線分為兩個(gè)階段:全局布線與詳細(xì)布線。在布局之后,電路設(shè)計(jì)通過全局布線決定布局的質(zhì)量及提供大致的延時(shí)信息。為了減少綜合到布局的迭代次數(shù)及提高布局的質(zhì)量,通常在全局布線之后要提取一次時(shí)序信息,盡管此時(shí)的時(shí)序信息沒有詳細(xì)布線之后得到的準(zhǔn)確,得到的時(shí)序信息將被反標(biāo)(Back-Annotation)到設(shè)計(jì)網(wǎng)表上(用于替代wireloadmodel估算的連線延時(shí)),用于做靜態(tài)時(shí)序分析,只有當(dāng)時(shí)序得到滿足時(shí)才進(jìn)行到下一階段。詳細(xì)布線是布局工具做的最后一步,在詳細(xì)布線完成之后,可以得到精確的時(shí)序信息。.寄生參數(shù)提取通過提取版圖上內(nèi)部互連所產(chǎn)生的寄生電阻和電容值,得到SPEF文件,SPEF通過PT轉(zhuǎn)換成SDF被反標(biāo)回設(shè)計(jì),用于做靜態(tài)時(shí)序分析和后仿真。.后仿真后仿真也叫門級(jí)仿真、時(shí)序仿真、帶反標(biāo)的仿真,需要利用在布局布線后獲得的精確延遲參數(shù)和網(wǎng)表進(jìn)行仿真,驗(yàn)證網(wǎng)表的功能和時(shí)序是否正確。后仿真一般使用標(biāo)準(zhǔn)延時(shí)(SDF,StandardDelayFormat)文件來輸入延時(shí)信息。.ECO修改1)ECO修改是工程修改命令的意思。2)這一步實(shí)際上是正常設(shè)計(jì)流程的一個(gè)例外。當(dāng)在設(shè)計(jì)的最后階段發(fā)現(xiàn)個(gè)別路徑有時(shí)序問題或邏輯錯(cuò)誤時(shí),有必要通過ECO對(duì)設(shè)計(jì)的局部進(jìn)行小范圍的修改和重新布線,并不影響芯片其余部分的布局布線。在大規(guī)模的IC設(shè)計(jì)中,ECO修改是一種有效、省時(shí)的方法,通常會(huì)被采用。.物理驗(yàn)證物理驗(yàn)證是對(duì)版圖的設(shè)計(jì)規(guī)則檢查(DRC,DesignRuleCheck)及邏輯圖網(wǎng)表和版圖網(wǎng)表比較(LVS,LayoutVs.Schematic)oDRC用以保證制造良率。LVS用以確認(rèn)電路版圖網(wǎng)表結(jié)構(gòu)是否與其原始電路原理圖(網(wǎng)表)一致。SOC設(shè)計(jì)與EDA工具電子系統(tǒng)級(jí)設(shè)計(jì)與工具SoC的設(shè)計(jì)趨勢(shì)正從RTL向電子系統(tǒng)級(jí)(ESL,ElectronicSystemLevel)轉(zhuǎn)移。ESL可以幫助設(shè)計(jì)者從更高層次進(jìn)行電路設(shè)計(jì),能協(xié)助工程師進(jìn)行系統(tǒng)級(jí)設(shè)計(jì)、結(jié)構(gòu)定義、算法開發(fā)、軟硬件劃分和協(xié)同設(shè)計(jì)、建立虛擬原型機(jī),以及驗(yàn)證不同架構(gòu)方案的可行性等。目前的ESL工具通常采用工業(yè)標(biāo)準(zhǔn)語言進(jìn)行建模,如C/C++、SystemC、SystemVerilog等,常用的軟硬件協(xié)同設(shè)計(jì)驗(yàn)證工具有Mentor公司的Seamless和CarbonDesignSystems公司的SoCDesigner。Mentor的Catapult可實(shí)現(xiàn)C++到RTL級(jí)的綜合(高層次的綜合)。驗(yàn)證的分類及相關(guān)工具SOC設(shè)計(jì)中驗(yàn)證包含以下幾個(gè)方面:▲驗(yàn)證原始描述的正確性;▲驗(yàn)證設(shè)計(jì)的邏輯功能是否符合設(shè)計(jì)規(guī)范的要求;▲驗(yàn)證設(shè)計(jì)結(jié)果的時(shí)序是否符合原始設(shè)計(jì)規(guī)范的性能指標(biāo);▲驗(yàn)證結(jié)果是否包含違反物理設(shè)計(jì)規(guī)則的錯(cuò)誤。驗(yàn)證方法的分類.動(dòng)態(tài)驗(yàn)證動(dòng)態(tài)驗(yàn)證也叫仿真,是指從電路的描述提取模型,然后將外部激勵(lì)信號(hào)或數(shù)據(jù)施加于此模型,通過觀察該模型在外部的激勵(lì)信號(hào)作用下的實(shí)時(shí)響應(yīng)來判斷該電路系統(tǒng)是否實(shí)現(xiàn)了預(yù)期的功能。仿真目前最常用的是基于事件驅(qū)動(dòng)的方法,也在發(fā)展周期驅(qū)動(dòng)的方法。.靜態(tài)驗(yàn)證靜態(tài)驗(yàn)證是指采用分析電路的某些特性是否滿足設(shè)計(jì)要求的方法,來驗(yàn)證電路的正確與否。形式驗(yàn)證時(shí)近幾年來興起的一種驗(yàn)證方法,它需要有一個(gè)正確的模型作為參考,把待驗(yàn)證的電路與正確的模型進(jìn)行比較,并給出不同版本的電路是否在功能上等效的結(jié)論,他利用理論證明的方法來驗(yàn)證設(shè)計(jì)結(jié)果的正確性。比較動(dòng)態(tài)驗(yàn)證和靜態(tài)驗(yàn)證,各有優(yōu)勢(shì)和不足。動(dòng)態(tài)仿真主要是模擬電路的功能行為,必須給出適當(dāng)?shù)募?lì)信號(hào),然而很難選擇激勵(lì)來達(dá)到覆蓋電路所有功能的目的,同時(shí)動(dòng)態(tài)仿真很耗費(fèi)時(shí)間。靜態(tài)驗(yàn)證只限于數(shù)字邏輯單路,其準(zhǔn)確性低于動(dòng)態(tài)驗(yàn)證,偶爾還會(huì)提供錯(cuò)誤信息。動(dòng)態(tài)驗(yàn)證及相關(guān)工具動(dòng)態(tài)驗(yàn)證的工具很多,主要由電路級(jí)仿真工具,如SPICE、TimeMill、NanoSim,以及邏輯仿真工具,如VCS、Verilog-XL、NCVerilog、Modelsiim等?!娐芳?jí)仿真工具模擬晶體管級(jí)的電路行為特性,主要用于模擬電路的設(shè)計(jì)。▲邏輯仿真工具可以仿真行為級(jí)、RTL級(jí)和門級(jí)網(wǎng)表的數(shù)字電路,有Synopsys的VCS和Mentor的Modelsim。靜態(tài)驗(yàn)證及相關(guān)工具靜態(tài)驗(yàn)證包括形式驗(yàn)證(從功能上對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證)和靜態(tài)時(shí)序分析(從時(shí)序上對(duì)設(shè)計(jì)驗(yàn)證)?!问津?yàn)證工具有Synopsys公司的Formality及Cadance公司的EncounterConformalEquivalentChecker等。▲靜態(tài)時(shí)序分析工具有Synopsys公司的Primetime。注:下面列出IC前端設(shè)計(jì)流程中使用到的EDA工具數(shù)字前端設(shè)計(jì):以生成可以布局布線的網(wǎng)表為終點(diǎn)。數(shù)字后端設(shè)計(jì):以生成可以送交foundry進(jìn)行流片的GDS2文件為終點(diǎn)。

1 硬件設(shè)計(jì)定義 1模塊設(shè)計(jì)及IP復(fù)用頂層模塊集成 ]前仿真、邏輯綜合1靜態(tài)時(shí)序分析r 版圖布局規(guī)劃 ’電源戰(zhàn)]絡(luò)功耗分析] 單元布局和優(yōu)化 ’在DFT插入*t1靜態(tài)時(shí)序分析'1時(shí)鐘樹綜合腦式驗(yàn)證 :布線設(shè)計(jì)功耗分析「 F信號(hào)完整性1 憂憶 1t寄生基數(shù)提取」( 形式驗(yàn)證靜態(tài)時(shí)序分析布局后仿真反。修改,+、5 r1 r靜■態(tài)時(shí)序分折后仿真形式騙證 d &物理驗(yàn)證r ~交付芯片制造廠圖中沒有物理綜合,這是一個(gè)傳統(tǒng)的流程:邏輯綜合+布局布線,目前的一個(gè)趨勢(shì)是邏輯綜合和布局布線的集成,即物理綜合,所以物理綜合慢慢的取代了從邏輯綜合到布線這一系列步驟,即物理綜合工具可以完成從邏輯綜合到布線之間多個(gè)工具完成的功能。

eetrequirementsNETLIST▲以往的方法是對(duì)網(wǎng)表文件(綜合后文件)做門級(jí)仿真。此種方式的仿真時(shí)間較長(zhǎng),且覆蓋率相對(duì)較低。eetrequirementsNETLIST▲以往的方法是對(duì)網(wǎng)表文件(綜合后文件)做門級(jí)仿真。此種方式的仿真時(shí)間較長(zhǎng),且覆蓋率相對(duì)較低。形式驗(yàn)證布局布線前靜態(tài)時(shí)序分析▲形式驗(yàn)證+靜態(tài)時(shí)序分析。此種方法仿真時(shí)間短,覆蓋率高,為業(yè)界普遍采用的方式。SYNOPSYS—DesignCompiler:傳統(tǒng)的邏輯綜合工具

Ftgure1-1DesignCompilerandtheDesignRowHDLHDLCompilerDesignConpIerConstraintsTecnnoiog/Library七~1ITimingoptimization'synthesis1DesignConpIerConstraintsTecnnoiog/Library七~1ITimingoptimization'synthesis1closurej-SymbolLbrarjjIPDesignAar

LibraryOptimizednellist初次綜合時(shí),使用wireloadmodel來估算延時(shí)。OptimizednellistSYNOPSYS-PrimeTime在初次進(jìn)行靜態(tài)時(shí)序分析時(shí),仍然采用wireloadmodel來估算電路時(shí)序。▲布局布線前(即初次綜合和STA分析時(shí)),由于無布線信息,所以連線(wire)延時(shí)只能夠通過連接關(guān)系(與fanout相關(guān))估計(jì)得到?!?dāng)特征尺寸降低時(shí),此種估計(jì)方法越來越不準(zhǔn)確,所以可以使用physicalsynthesis技術(shù)?!诓季植季€后,布局布線工具可以提取出實(shí)際布線后的線網(wǎng)負(fù)載電容,此時(shí)PT可以計(jì)算實(shí)際延時(shí)(back-annote)??梢詫⒀訒r(shí)信息寫入SDF文件用,然后反向標(biāo)注到DC綜合工具進(jìn)行時(shí)序的優(yōu)化。PT使用方法與DC類似.指定使用的庫.讀入網(wǎng)表文件.指定時(shí)序約束及工作環(huán)境.進(jìn)行靜態(tài)時(shí)序分析,給出報(bào)告。

以上是后端設(shè)計(jì)流程及EDA工具,也是傳統(tǒng)的流程。目前隨著EDA軟件的功能越來越強(qiáng),各大EDA公司都推出了RTL到GDSII的完整工具包。這樣大大減少了使用不同工具帶來的數(shù)據(jù)格式不同等問題,如Synopsys的Galaxy平臺(tái)、Candence公司的SOCEncounter、Magma公司的Blaster等。4SOC系統(tǒng)結(jié)構(gòu)設(shè)計(jì)嵌入式軟件是運(yùn)行在SOC芯片之上的。軟件和硬件的有效結(jié)合決定了系統(tǒng)的效率和性能。電子系統(tǒng)級(jí)(ESL,electronicsystemlever)設(shè)計(jì)以抽象方式來描述SOC系統(tǒng),給軟硬件工程師提供一個(gè)虛擬的硬件原型平臺(tái)(已經(jīng)比較細(xì)節(jié)化了,面向某一應(yīng)用領(lǐng)域的基礎(chǔ)底層平臺(tái),針對(duì)該領(lǐng)域內(nèi)不同應(yīng)用的特點(diǎn)進(jìn)行微小的擴(kuò)展或者裁剪即可滿足需求,增加了設(shè)計(jì)的復(fù)用性一ESL三步走的最有一步的結(jié)果),用以進(jìn)行硬件系統(tǒng)結(jié)構(gòu)的探索和軟件程序的開發(fā)。SOC的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的過程可以分為以下三個(gè)階段(上述的三步走):功能設(shè)計(jì)階段、應(yīng)用驅(qū)動(dòng)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)階段及平臺(tái)導(dǎo)向的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)階段。(1)功能設(shè)計(jì)階段這一階段的主要目標(biāo)是根據(jù)應(yīng)用的需要,正確地定義系統(tǒng)功能,以此為基礎(chǔ)建立一個(gè)面向應(yīng)用需求的系統(tǒng)功能模型。需要考慮以下問題:①正確定義系統(tǒng)的輸入/輸出;②確定系統(tǒng)中各功能組件的功能行為;③各功能組件之間的互連結(jié)構(gòu)和通信方式。(2)應(yīng)用驅(qū)動(dòng)的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)階段主要目標(biāo)是針對(duì)特定的應(yīng)用需求(如需要支持播放視頻、音頻等),確定SOC的系統(tǒng)結(jié)構(gòu)。將設(shè)計(jì)劃分為一系列硬件模塊和軟件任務(wù),并確定各軟硬件之間的接口規(guī)范。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的最初級(jí)階段需要確定芯片上使用的處理器(如處理器類型及個(gè)數(shù))、總線(總線標(biāo)準(zhǔn)、總線架構(gòu))和存儲(chǔ)器類型(需要哪些處理器)。在這一階段也確定了軟硬件的劃分,如那些任務(wù)用處理器完成,哪些任務(wù)用硬件加速器完成。通過這一階段,可以得到一個(gè)高抽象層次的SOC系統(tǒng)結(jié)構(gòu)平臺(tái)。(3)平臺(tái)導(dǎo)向的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)階段主要目標(biāo)是創(chuàng)建一個(gè)較低抽象層次的SOC硬件平臺(tái)(即上面說的硬件原型平臺(tái))。在該階段需要關(guān)注更多的設(shè)計(jì)細(xì)節(jié),如處理器的型號(hào)、存儲(chǔ)器容量、總線仲裁等。本階段所構(gòu)建的SOC平臺(tái)將是面向某一應(yīng)用領(lǐng)域(如手機(jī))的基礎(chǔ)底層平臺(tái),針對(duì)該領(lǐng)域內(nèi)不同的應(yīng)用特點(diǎn)僅需對(duì)該平臺(tái)進(jìn)行微小的擴(kuò)展或裁減即可,大大增加設(shè)計(jì)復(fù)用性?;谠撾A段構(gòu)建的SOC平臺(tái)進(jìn)行設(shè)計(jì)的方法稱為基于平臺(tái)的設(shè)計(jì)方法。SOC中常用的處理器分為三類:通用處理器、數(shù)字信號(hào)處理器和可配置處理器。通用處理器:主要負(fù)責(zé)控制、操作系統(tǒng)平臺(tái)和一般的信號(hào)處理等任務(wù)。無法滿足計(jì)算密集型任務(wù)對(duì)于實(shí)時(shí)性的需要。如ARM系列處理器、MIPS系列處理器、PowerPC系列處理器數(shù)字信號(hào)處理器DSP:常常被作為SOC中的核心處理器或者在多核SOC中被作為對(duì)計(jì)算密集型任務(wù)進(jìn)行加速的處理器。如TI系列DSP、ADI系列DSP、Freescale系列DSP。可配置處理器:針對(duì)不同應(yīng)用的需求,允許用戶配置具有不同體系結(jié)構(gòu)的處理器。如Tensilica系列處理器、Nios系列處理器、ARC系列處理器。SOC中常用的總線較有影響力的片上總線標(biāo)準(zhǔn)有ARM公司的AMBA總線、IBM公司的CoreConnect總線、SilicoreCorp公司的Wishbone總線和Altera公司的Avalon總線等。(1)AMBA總線標(biāo)準(zhǔn)包括AHB(AdvancedHigh-performanceBus)總線、ASB(AdvancedSystemBus)總線、APB(AdvancedPeripheralBus)總線和AXI總線。AHB和ASB總線連接高性能系統(tǒng)模塊,ASB是舊版本的系統(tǒng)總線,使用三態(tài)總線,目前已被新版本的AHB總線所代替。AHB是AMBA2.0標(biāo)準(zhǔn),而AXI是最新推出的新一代AMBA3.0標(biāo)準(zhǔn)。APB連接低性能外圍設(shè)備。(2)CoreConnect總線包括PLB(ProcesorLocalBus)總線、OPB(On-ChipPeripheralBus)總線、DCR(DeviceControlRegister)總線在CoreConnect總線中,PLB總線連接高性能設(shè)備如處理器、存儲(chǔ)器接口、DMA等。OPB總線連接低性能設(shè)備如各種外圍接口等DCR總線主要用來訪問和配置PLB和OPB總線設(shè)備的狀態(tài)和控制寄存器(3)Wishbone總線是由Silicore公司推出的片上總線標(biāo)準(zhǔn),這種總線具有簡(jiǎn)單、靈活和開放的特點(diǎn),現(xiàn)在已經(jīng)被OpenCores采用并組織維護(hù)。在Wishbone中,所有核都連接在同一標(biāo)準(zhǔn)接口上。當(dāng)需要時(shí),系統(tǒng)設(shè)計(jì)者可以選擇在一個(gè)微處理器核上實(shí)現(xiàn)兩個(gè)接口,一個(gè)給高速設(shè)備,另一個(gè)給低速設(shè)備一個(gè)Wishbone系統(tǒng)由主設(shè)備、從設(shè)備、INTERCON和SYSCON組成。其中INTERCON定義了主設(shè)備和從設(shè)備之間的連接方式,而SYSCON用來產(chǎn)生系統(tǒng)時(shí)鐘和復(fù)位信號(hào)在Wishbone中有4種不同的連接方式可以使用,它們分別是點(diǎn)對(duì)點(diǎn)、數(shù)據(jù)流、共享總線和交叉連接方式(4)AVALON總線主要應(yīng)用在FPGA中,作為SOPC(SystemOnaProgrammableChip)中的片上總線。SOPC:System-on-a-Programmable-Chip,即可編程片上系統(tǒng),可編程片上系統(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。OCP:開放核協(xié)議(OCP,OpenCoreProtocol)是由OCP-IP組織定義的IP互連協(xié)議。它不是總線定義,而是在IP核之間的一種獨(dú)立于總線之外的高性能接口規(guī)范。一個(gè)IP核可以是處理器、外圍設(shè)備或者片上總線(帶有這一標(biāo)準(zhǔn)接口的總線),OCP在兩個(gè)通信實(shí)體之間定義了點(diǎn)到點(diǎn)的接口。SOC中典型的存儲(chǔ)器存儲(chǔ)器分RAM、ROM和FLASH三種。(1)RAM有SRAM、DRAM兩大類:▲SRAM(StaticRAM,靜態(tài)隨機(jī)存儲(chǔ)器),是目前讀寫最快的存儲(chǔ)設(shè)備,可以達(dá)到和處理器的時(shí)鐘同步,SRAM存儲(chǔ)器的接口簡(jiǎn)單,比較容易設(shè)計(jì),SRAM在系統(tǒng)中常常作為處理器的緩存(如CPU的一級(jí)緩存和二級(jí)緩存)。但是一個(gè)SRAM的每1位需要6個(gè)晶體管,因此相同存儲(chǔ)空間的RAM的面積較大,在SoC中只能少量使用。DRAM(DynamicRAM,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器),通常都用作計(jì)算機(jī)內(nèi)的主存儲(chǔ)器。DRAM保留數(shù)據(jù)的時(shí)間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快。計(jì)算機(jī)內(nèi)存就是DRAM的。DRAM分為很多種,最常見的就是SDRAM、DDRRAM。SDRAM:SDRAM(同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)的價(jià)格低、體積小、容量大,與SRAM相比,SDRAM的控制邏輯復(fù)雜,速度較慢。DDRAM:DDRAM(雙倍傳輸速度隨機(jī)存儲(chǔ)器)采用雙倍數(shù)據(jù)技術(shù),這種改進(jìn)型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個(gè)時(shí)鐘讀寫兩次數(shù)據(jù),支持在時(shí)鐘的上升沿和下降沿同時(shí)進(jìn)行數(shù)據(jù)的傳輸,從而增加數(shù)據(jù)的吞吐量。其最大帶寬可達(dá)SDRAM的兩倍。當(dāng)然它的設(shè)計(jì)也更復(fù)雜。這是目前電腦中用得最多的內(nèi)存,而且它有著成本優(yōu)勢(shì)。在很多高端的顯卡上,也配備了高速DDRAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。ROM(只讀存儲(chǔ)器)是一種只讀存儲(chǔ)器,包括掩膜式ROM、可編程ROM(PROM)、可擦除的可編程ROM(EPROM)和電可擦除的可編程ROM(EEPROM)等。ROM在SoC中一般用來存儲(chǔ)固定的代碼或資料。FLASH(閃存),它結(jié)合了ROM和RAM的長(zhǎng)處,不僅具備電子可擦出可編程(EEPROM)的性能,還不會(huì)斷電丟失數(shù)據(jù)同時(shí)可以快速讀取數(shù)據(jù)(NVRAM的優(yōu)勢(shì)),U盤和MP3里用的就是這種存儲(chǔ)器。NORFlash和NANDFlash是現(xiàn)在市場(chǎng)上兩種主要的Flash存儲(chǔ)器。NORFLASH的特點(diǎn)是芯片內(nèi)可以直接運(yùn)行程序,而不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,但寫入和擦除速度較低,這大大影響了它的性能。NANDFLASH寫入和擦除速度很快,但NANDFLASH沒有采取內(nèi)存的隨機(jī)讀取技術(shù),它的讀取是以一次讀取一快的形式來進(jìn)行的,通常是一次讀取512個(gè)字節(jié),采用這種技術(shù)的Flash比較廉價(jià)。用戶不能直接運(yùn)行NANDFlash上的代碼,因此好多使用NANDFlash的開發(fā)板除了使用NANDFLASH。以外,還作上了一塊小的NORFlash來運(yùn)行啟動(dòng)代碼。多核SOC的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)多核與多處理器:①多核處理器(CMP )是指在一枚處理器(processor)中集成兩個(gè)或多個(gè)完整的計(jì)算引擎(內(nèi)核core)。多核處理器可以在處理器內(nèi)部共享緩存。形象的比喻是:雙核心可以形象比喻成一套兩居室,房子里有兩個(gè)屋子,每個(gè)屋子都是獨(dú)立存在的,不互相干擾。出門時(shí)也可以各走各的臥室門到大門口。不過如果因?yàn)槟承┰颍绶乓繇懧曇暨^大等情況,在同一套兩居室里的兩個(gè)屋子之間也會(huì)相互影響。而且房子里的其他設(shè)施都是共享的,所以多核共享緩存。②多處理器(SMPSymmetricMulti-Processing)是指在一個(gè)計(jì)算機(jī)上匯集了一組處理器(多CPU),多CPU則是真正意義上的多核心,不光是處理器核心有多個(gè),其他例如緩存等硬件配置也都是多份的。即每個(gè)CPU都有自己的緩存。各CPU之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu)。形象的比喻是:雙CPU,他就是名副其實(shí)的兩套房子,每個(gè)房子有每個(gè)房子的大門,不會(huì)出現(xiàn)雙核心那樣一個(gè)房間因?yàn)槟承┰蛴绊懥硪婚g,即使某個(gè)房子播放音響也不會(huì)影響到另外一套房子。每個(gè)房子都有自己的設(shè)施。但是兩個(gè)房子在一個(gè)小區(qū),所以共享小區(qū)的公共設(shè)施,所以多CPU之間共享內(nèi)存、總線結(jié)構(gòu)等。③而超線程則是用軟件將一個(gè)物理核心模擬出雙核的效果。形象的比喻是:超線程技術(shù)實(shí)際上就相當(dāng)于把一個(gè)房間人為的通過添加屏風(fēng)或者推拉門來劃分成兩小間,雖然表面上每間居住者可以自己干自己的事,不互相影響,但是在出門時(shí)都要走同一個(gè)臥室門?!诵呐c核心之間的通信是由CPU芯片內(nèi)部的總線完成的;而多塊CPU芯片之間的通信則應(yīng)該有CPU與CPU之間的總線完成,如上面所述的AMBA等總線。上述說的是一個(gè)處理器芯片上集成核數(shù)的問題,然則在SOC中,本身就是一個(gè)芯片集成了一個(gè)系統(tǒng),因此多核SOC和多處理器SOC是一個(gè)概念,因?yàn)槎际嵌鄠€(gè)處理引擎集成在一個(gè)芯片中。因此在書本中是這么表達(dá)的:多核SOC或多處理器SOC——P45《SOC的設(shè)計(jì)方法與實(shí)現(xiàn)》第二版。原文中還說明:實(shí)際上,由于不同的任務(wù)可在很大的程度上互相獨(dú)立運(yùn)行,如音頻和視頻處理及網(wǎng)絡(luò)協(xié)議處理等,可以將具有內(nèi)在執(zhí)行并行性的復(fù)雜任務(wù)分解為一系列子任務(wù),并行執(zhí)行,因此我們說多核SOC中的核不僅僅指通用處理器核,也可以是音頻解碼核、視頻解碼核及網(wǎng)絡(luò)協(xié)議處理器核。多核結(jié)構(gòu)的設(shè)計(jì)可以復(fù)用現(xiàn)有的成熟的單核處理器作為處理器核心。可用的并發(fā)性設(shè)計(jì)師可以利用許多不同級(jí)別的并發(fā)性,通常這些級(jí)別的并發(fā)性可歸納為3中:指令并級(jí)發(fā)性、數(shù)據(jù)級(jí)并發(fā)性和任務(wù)級(jí)并發(fā)性。(1)指令級(jí)并發(fā)性(ILP,InstructionLevelParallelism)利用指令之間的無關(guān)性,使得多條指令可以同時(shí)執(zhí)行,改變傳統(tǒng)串行執(zhí)行指令造成的較大延時(shí),提高指令和程序的執(zhí)行效率。最常見的指令并行是利用指令流水線保證多條相互無關(guān)的指令重疊執(zhí)行不同的流水階段,從而提高指令執(zhí)行的吞吐率。(2)數(shù)據(jù)級(jí)并發(fā)性(DLP,DataLevelParallelism)是指,一組待處理的數(shù)據(jù)內(nèi)部存在較為松散的依賴關(guān)系,在理論上可以對(duì)這些松散數(shù)據(jù)并行執(zhí)行(3)任務(wù)級(jí)并行(TLP,TaskLevelParallelism),由于系統(tǒng)往往需要完成多種功能,而這些功能可能獨(dú)立于系統(tǒng)中的其他功能。任務(wù)級(jí)并行性可以從原本的一個(gè)串行任務(wù)中提取出來。與前兩類并行性相比,任務(wù)級(jí)并行性對(duì)于結(jié)構(gòu)設(shè)計(jì)師更為重要。多核SOC設(shè)計(jì)中的系統(tǒng)結(jié)構(gòu)選擇(1)處理器結(jié)構(gòu)需要重點(diǎn)考慮對(duì)處理器的選型、處理器間的互連結(jié)構(gòu)及存儲(chǔ)器的共享方式等方面。因?yàn)槎嗪薙OC中的核不僅僅指通用處理器核,也可以是音頻解碼核、視頻解碼核及網(wǎng)絡(luò)協(xié)議處理器核。所以多核結(jié)構(gòu)可以根據(jù)處理器核的特性分為同構(gòu)多核結(jié)構(gòu)和異構(gòu)多核結(jié)構(gòu)。①同構(gòu)多核結(jié)構(gòu):一個(gè)芯片上集成了多個(gè)相同的處理器,這些處理器執(zhí)行相同或類似的任務(wù),多用于服務(wù)器市場(chǎng)。②異構(gòu)多核結(jié)構(gòu):處理器中只有一個(gè)或數(shù)個(gè)同用核心承擔(dān)任務(wù)指派功能,而諸如協(xié)處理器、加速器和外設(shè)等功能都可以通過專業(yè)核心如DSP來完成。應(yīng)用很廣泛,比如多媒體應(yīng)用中。(2)核間通信多核處理器的各個(gè)核心之間需要進(jìn)行數(shù)據(jù)共享與同步,因此其硬件結(jié)構(gòu)必須支持核間通信。高效的通信機(jī)制是保證多核處理器高性能的關(guān)鍵。目前比較主流的片上高效通信機(jī)制有兩種,一種是基于總線共享Cache結(jié)構(gòu),一種是基于片上的互連結(jié)構(gòu)?!诳偩€共享cache結(jié)構(gòu),是指每個(gè)處理器內(nèi)核擁有共享的二級(jí)或三級(jí)cache(每個(gè)處理器核擁有私有的一級(jí)cache),cache中保存比較常用的數(shù)據(jù),并通過連接核心的總線進(jìn)行通信?!谄匣ミB的結(jié)構(gòu)?;谄匣ミB的結(jié)構(gòu)是指每個(gè)處理器核具有獨(dú)立的處理單元和cache,各個(gè)處理器核通過總線(交叉開關(guān)或片上網(wǎng)絡(luò)等方式)連接在一起,利用消息傳遞機(jī)制進(jìn)行通信。典型的多核SOC系統(tǒng)結(jié)構(gòu):①片上網(wǎng)絡(luò)NOC:隨著同一芯片內(nèi)部集成的處理器數(shù)量不斷增加,利用傳統(tǒng)的基于總線的互連結(jié)構(gòu)已成為多核間通信的主要瓶頸。總線帶寬有限,分時(shí)復(fù)用難以解決數(shù)據(jù)計(jì)算密集型的應(yīng)用中。在基于NOC的SOC中,處理器核之間依靠網(wǎng)絡(luò)和數(shù)據(jù)包交換機(jī)制,在一條由其他處理器或IP核構(gòu)成的連接或路由上完成數(shù)據(jù)的交互。NOC借鑒了計(jì)算機(jī)網(wǎng)絡(luò)的理念。較好的解決了傳統(tǒng)的基于總線的多核SOC系統(tǒng)在總線結(jié)構(gòu)設(shè)計(jì)上所面臨的帶寬和復(fù)雜邏輯協(xié)議問題。圖典型的NOC系統(tǒng)結(jié)構(gòu)NOC包括計(jì)算和通信兩個(gè)子系統(tǒng),計(jì)算子系統(tǒng)(PE,processingelement構(gòu)成的子系統(tǒng)),完成廣義的“計(jì)算”任務(wù),PE既可以是處理器也可以是各種專用功能的IP核或存儲(chǔ)器陣列等。通信子系統(tǒng)(S,switch組成的子系統(tǒng)),負(fù)責(zé)連接PE,實(shí)現(xiàn)計(jì)算資源之間的高速通信。②TI的開放式多媒體應(yīng)用平臺(tái)(OMAP)架構(gòu):在異構(gòu)多核處理器方面,RISC通用處理器和DSP的結(jié)構(gòu)收到了業(yè)界的廣泛關(guān)注,產(chǎn)品以TI的OMAP最具代表性。它采用雙核結(jié)構(gòu),把TI的高性能低功耗DSP核與控制性能強(qiáng)的ARM微處理器結(jié)合起來。此外,芯片中還包括圖像、圖形的加速器及一些輸入輸出接口。在該SOC中,利用低功耗的ARM處理器實(shí)現(xiàn)接口和控制方面的需求,而DSP用來增加芯片對(duì)音視頻應(yīng)用中的信號(hào)處理能力。圖TIOMAP結(jié)構(gòu)

SOC中的軟件結(jié)構(gòu)在一個(gè)SOC的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中,除了硬件結(jié)構(gòu)外,還包括軟件結(jié)構(gòu)。IO接口——?應(yīng)用程序應(yīng)用程序應(yīng)用程序調(diào)試接口 應(yīng)用程序源代碼標(biāo)準(zhǔn)接口編譯器標(biāo)準(zhǔn)庫連接器操作系統(tǒng)核心驅(qū)動(dòng)硬件驅(qū)動(dòng)中斷服務(wù)等系統(tǒng)軟件圖形化調(diào)試工具初始化、復(fù)位、BMI]口ader等程序芯片《CPU/1O/存簡(jiǎn)耦/其他硬件)硬件調(diào)試接口圖SOC中的應(yīng)用軟件運(yùn)行環(huán)境及開發(fā)工具結(jié)構(gòu)IP復(fù)用的設(shè)計(jì)與方法ip是知識(shí)產(chǎn)權(quán)的意思在集成電路行業(yè)里,IP通常是指硅知識(shí)產(chǎn)權(quán)(SiliconIntellectualProperty),即IP核。(1)從差異化的程度來區(qū)分除可集成到芯片上的IP核外,還有大量專門用于驗(yàn)證電路的IP。這些IP稱為驗(yàn)證IP(VerificationIP),如用于驗(yàn)證USB2.0的IP,用于驗(yàn)證AHB的總線功能模型等,這些IP是不需要可綜合的。(2)從設(shè)計(jì)流程上來區(qū)分①軟核(SoftIP)利用Verilog或VHDL等硬件描述語言,依照所制定的規(guī)格,將系統(tǒng)所需的功能寫成RTL的程序,被稱為軟核。與具體的實(shí)現(xiàn)工藝無關(guān)。②固核(FirmIP)RTL程序經(jīng)過仿真后,通過綜合從單元庫中選取相應(yīng)的邏輯門,轉(zhuǎn)換成漉輯門單元形式呈現(xiàn)的網(wǎng)表文件,即所謂的固核。③硬核(HardIP)網(wǎng)表文件經(jīng)過驗(yàn)證后,經(jīng)過布局規(guī)劃和布局布線后所產(chǎn)生的GDSII文件,即稱為硬核。硬核的設(shè)計(jì)與工藝已經(jīng)完成而且無法修改,用戶得到的硬核僅是產(chǎn)品功能而不是產(chǎn)品設(shè)計(jì)。與軟核和固核不同,硬核在物理設(shè)計(jì)完成后必須用特定的工具對(duì)其進(jìn)行建模。一個(gè)完整的硬核通常包含以下模型:▲功能模型▲時(shí)序模型▲功耗模型▲測(cè)試模型▲物理模型RTL代碼的編寫代碼編寫前的準(zhǔn)備(1)總線設(shè)計(jì)的考慮目前,片上總線尚處于發(fā)展階段,沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),國(guó)際上比較成熟的總線結(jié)構(gòu)有PCI總線、ARM公司的AMBA和AXI總線、IBM的coreconnect等(2)模塊的劃分模塊劃分是將復(fù)雜的設(shè)計(jì)劃分成許多小模塊,它的好處是區(qū)分不同的功能模塊,使得每個(gè)功能模塊的尺寸和功能不至于太復(fù)雜,利于一個(gè)團(tuán)隊(duì)共同完成設(shè)計(jì)。模塊劃分的技巧如下:①關(guān)于芯片級(jí)的模塊劃分在進(jìn)行芯片級(jí)的模塊劃分時(shí),建立明確的層次結(jié)構(gòu)仍然是經(jīng)典的設(shè)計(jì)形式,這種方式有助于基于IP復(fù)用設(shè)計(jì)的進(jìn)行。頂層模塊組織結(jié)構(gòu)要簡(jiǎn)單,這樣可以使得頂層連接更加簡(jiǎn)單、直觀,同時(shí)也有利于分塊式的布局布線。要確保只有在頂層模塊才包含I/O引腳。②基于核心邏輯的模塊劃分②基于核心邏輯的模塊劃分對(duì)核心邏輯進(jìn)行模塊劃分時(shí),要避免子模塊間出現(xiàn)連接用的粘附邏輯。寄不苫<寄不苫<圖粘附邏輯圖消除粘附邏輯盡可能地把相關(guān)的組合邏輯集中到一個(gè)模塊中處理。這是因?yàn)榫C合器在默認(rèn)的工作模式下綜合優(yōu)化時(shí),不能跨越模塊邊界對(duì)相關(guān)的組合邏輯做歸并優(yōu)化處理。圖組合邏輯被分散在多個(gè)模塊寄存器A寄存器A圖組合邏輯歸并③把多周期路徑或偽路徑限制到一個(gè)模塊中▲如果在設(shè)計(jì)中包含了多周期路徑或偽路徑,應(yīng)盡可能地把這些邏輯限制到一個(gè)模塊中,并在代碼編寫時(shí)用注釋行明確指出注:多周期路徑約束和FALSEpath約束稱為慢速例外時(shí)間約束?!鴤温窂绞窃O(shè)計(jì)者告訴靜態(tài)時(shí)許分析工具已經(jīng)認(rèn)定的時(shí)序不滿足的路徑。把多周期路徑限制到一個(gè)模塊中處理可以減少綜合時(shí)間和優(yōu)化非多周期路徑的綜合結(jié)果。把多周期路徑或偽路徑限制到一個(gè)模塊中,可以方便設(shè)計(jì)者給出相關(guān)的綜合及靜態(tài)時(shí)序分析的約束,同時(shí)也便于設(shè)計(jì)者在后端設(shè)計(jì)實(shí)現(xiàn)后進(jìn)行檢查。④根據(jù)時(shí)鐘的相關(guān)性劃分模塊應(yīng)當(dāng)盡量根據(jù)時(shí)鐘的相關(guān)性來劃分模塊。簡(jiǎn)單地說,就是將時(shí)鐘分頻、門控單元和復(fù)位產(chǎn)生等電路盡量放在同一模塊中這么做使得在綜合的時(shí)候便于設(shè)置時(shí)鐘約束。每個(gè)模塊盡量只使用一個(gè)時(shí)鐘,,如果實(shí)在不能避免的話,應(yīng)該設(shè)計(jì)一個(gè)單獨(dú)的模塊負(fù)責(zé)時(shí)鐘同步。圖同步時(shí)鐘模塊(3)對(duì)時(shí)鐘的處理設(shè)計(jì)中需要多少個(gè)時(shí)鐘,芯片中的時(shí)鐘是從哪里來的呢,是內(nèi)部產(chǎn)生的嗎,是由鎖相環(huán)(PLL)產(chǎn)生的嗎,還是由電路分頻器、異步計(jì)數(shù)器、串行計(jì)數(shù)器或者同步計(jì)數(shù)器提供的時(shí)鐘?為了方便后續(xù)設(shè)計(jì),最好將時(shí)鐘產(chǎn)生電路與芯片的其余部分分開。為了到達(dá)這一目的,可以使用層次化設(shè)計(jì)。(4)IP的選擇及設(shè)計(jì)復(fù)用的考慮系統(tǒng)結(jié)構(gòu)設(shè)計(jì)做好模塊劃分時(shí),必須確定哪些模塊基于標(biāo)準(zhǔn)單元庫進(jìn)行設(shè)計(jì),哪些模塊需要購買IP,IP模塊的對(duì)接需要增加哪些連接性設(shè)計(jì)。模塊劃分過程中還需要考慮以下幾點(diǎn):▲時(shí)鐘生成應(yīng)該被劃分為單獨(dú)的模塊,如分頻電路、計(jì)數(shù)器、多路時(shí)鐘信號(hào)選擇器等?!偩€接口邏輯應(yīng)被劃分為單獨(dú)的模塊,如總線接口、地址譯碼器?!峁┨厥鉁y(cè)試功能的邏輯應(yīng)該被劃分為單獨(dú)的模塊?!鴮?duì)于功能模塊的設(shè)計(jì)采用必要的層次化描述。(5)芯片速度的考慮設(shè)計(jì)者計(jì)劃在設(shè)計(jì)中實(shí)現(xiàn)多少功能,運(yùn)行在什么速度下采用什么工藝實(shí)現(xiàn),對(duì)設(shè)計(jì)做什么改動(dòng)來實(shí)現(xiàn)速度要求,選擇流水線結(jié)構(gòu)還是寄存器重新排序,組合邏輯不能太多地集中在兩個(gè)寄存器之間,有時(shí)候?yàn)榱烁倪M(jìn)速度,會(huì)選擇特殊結(jié)構(gòu)單元,如單周期乘法器、串行加法器鏈、復(fù)雜控制邏輯、大指令解碼單元等,這些可以在RTL中直接調(diào)用Synopsys的DesignWare庫。注:對(duì)于一些特定的功能單元,如加法器、乘法器、存儲(chǔ)器,其性能與實(shí)現(xiàn)的架構(gòu)有著緊密的關(guān)系。DesignWare是由Synopsys公司提供的IP庫,其中的FoundationIP中包含很多設(shè)計(jì)中經(jīng)常會(huì)用到的功能單元,這些功能單元是用特定的架構(gòu)實(shí)現(xiàn)的。使用Synopsys的綜合工具時(shí)調(diào)用Designware中的IP進(jìn)行綜合,能獲得更優(yōu)的結(jié)果,如速度更快或面積更小等(這些IP采用特定的架構(gòu)實(shí)現(xiàn),綜合的結(jié)果更好,因此在設(shè)計(jì)時(shí),某些功能電路可以用designware中的IP來實(shí)現(xiàn),這樣對(duì)整個(gè)設(shè)計(jì)進(jìn)行綜合時(shí),會(huì)綜合出比較滿意的結(jié)果)。Designware在綜合時(shí)的調(diào)用可以是自動(dòng)的,也可以是手工的。手工的方法是指在RTL代碼編寫時(shí)將選用的Designware單元“隱含”進(jìn)去,這樣在綜合時(shí)就能夠選用指定的Designware了。使用詳見《SOC設(shè)計(jì)方法與實(shí)現(xiàn)》P108(6)對(duì)布線的考慮在芯片設(shè)計(jì)流程中,布線是最后的階段,其功能是根據(jù)門級(jí)網(wǎng)表的描述實(shí)現(xiàn)各個(gè)單元的連接。有時(shí)RTL級(jí)設(shè)計(jì)者為了方便把大量信號(hào)組合起來形成一個(gè)大的邏輯,不僅會(huì)造成由于這一級(jí)組合邏輯太多而難以滿足時(shí)序要求,而且會(huì)形成一個(gè)很大的多路選擇器(MUX),造成連線過于集中,從而在一小塊面積內(nèi)占用大量的布線資源。其實(shí),如果多路選擇器的輸出是供給設(shè)計(jì)中的不同部分使用的,就應(yīng)該將一個(gè)大的多路選擇器分解為多級(jí)的較小的多路選擇器,使原來非常集中的連線變得分散,從而解決布線的困難。另一個(gè)常見的布線擁擠的例子是多個(gè)偏上RAM/ROM共用一個(gè)BIST模塊,由于BIST信號(hào)送到每一塊RAM/ROM上,在這個(gè)BIST模塊附近常會(huì)出現(xiàn)布線阻塞。BIST(Built-inSelfTest)是在設(shè)計(jì)時(shí)在電路中植入相關(guān)功能電路用于提供自我測(cè)試功能的技術(shù),以此降低器件測(cè)試對(duì)自動(dòng)測(cè)試設(shè)備(ATE)的依賴程度。簡(jiǎn)言之,就是設(shè)計(jì)時(shí),在電路中植入的提供芯片測(cè)試的電路。ATE是AutomaticTestEquipment的縮寫,于半導(dǎo)體產(chǎn)業(yè)意指集成電路(IC)自動(dòng)測(cè)試機(jī),用于檢測(cè)集成電路功能之完整性,為集成電路生產(chǎn)制造之最后流程,以確保集成電路生產(chǎn)制造之品質(zhì)。可綜合RTL代碼編寫指南編碼風(fēng)格(1)在系統(tǒng)設(shè)計(jì)階段應(yīng)該為每個(gè)模塊進(jìn)行命名,最終的頂層模塊應(yīng)該以芯片的名稱來命名。在頂層模塊中,除I/O引腳和不需要綜合的模塊外,其余作為次級(jí)頂層模塊,建議以xx_core.v命名。(2)一個(gè)文件只能包含一個(gè)模塊,而文件名應(yīng)該與模塊名相同,這樣做可以方便修改設(shè)計(jì)。(3)語句塊之間應(yīng)由begin和end劃分清楚,initial、always等語句塊的begin關(guān)鍵詞跟在本行的末尾,相應(yīng)的end關(guān)鍵詞與initial、always對(duì)齊。(4)對(duì)于時(shí)序單元(建立時(shí)序電路時(shí))必須采用非阻塞賦值。時(shí)序電路基本工作原理是依據(jù)當(dāng)前狀態(tài)和輸入信號(hào),在時(shí)鐘同步信號(hào)的作用下進(jìn)入到下一狀態(tài),同時(shí)產(chǎn)生相應(yīng)的輸出。輸出信號(hào)和下一狀態(tài)都與當(dāng)前狀態(tài)和當(dāng)前輸入信號(hào)相關(guān),客觀上要求采用并發(fā)的非阻塞賦值語句進(jìn)行處理。(5)描述組合邏輯時(shí),可以使用阻塞賦值和非阻塞賦值,但建議使用阻塞賦值語句。(6)不要在同一個(gè)always塊中同時(shí)使用阻塞賦值和非阻塞賦值語句。(7)保證敏感列表完整,避免仿真和綜合過程中出現(xiàn)功能錯(cuò)誤。6.2.2綜合考慮(1)每個(gè)模塊盡可能只使用一個(gè)時(shí)鐘(2)不在數(shù)據(jù)通路上的觸發(fā)器都需要有復(fù)位信號(hào)(3)如果電路中同時(shí)存在具備復(fù)位信號(hào)和不具備復(fù)位信號(hào)的觸發(fā)器,不要將他們放在一個(gè)程序塊中(如不要放在always程序塊中)。(4)在case語句中,指明所有可能出現(xiàn)的情況,如果不需要所有情況,加上default語句。不要使用casex和casezo(5)不要在代碼描述中加入specify語句去規(guī)定多周期路徑(6)避免觸發(fā)器在綜合過程中生成鎖存器,在if…else…語句中,如果設(shè)計(jì)沒有很好地覆蓋到各種情況,就很有可能綜合產(chǎn)生一些鎖存器的結(jié)構(gòu)。(7)盡量避免異步邏輯、帶有反饋環(huán)的組合電路及自同步邏輯。一個(gè)模塊內(nèi)盡量使用同步邏輯+組合邏輯的方式。(8)盡量把需要綜合的代碼置于節(jié)點(diǎn)模塊,層次化模塊僅起到連接節(jié)點(diǎn)模塊的作用。(9)通常在Verilog語言中,有always和initial兩個(gè)程序塊,synopsys的綜合工具忽略initial程序塊,并將產(chǎn)生警告。(10)在綜合過程中,工具將忽略電路中的延時(shí)語句,例如“assign#10C=A&B”在綜合的時(shí)候就相當(dāng)于"assignC=A&B",因?yàn)榫C合的時(shí)候相關(guān)的時(shí)序在選用的標(biāo)準(zhǔn)單元庫中都有描述。否則,會(huì)造成前仿真和后仿真的結(jié)果不一致。7Verilog需要重點(diǎn)記住的語法問題數(shù)據(jù)類型(1)常量有三種類型:整形(對(duì)080「)、實(shí)型(91)和字符串型*仃臃)。1)整形可以按照如下兩種方式書寫:▲簡(jiǎn)單的十進(jìn)制格式:32是是十進(jìn)制的32▲基數(shù)格式:4'b1101四位二進(jìn)制數(shù)2)實(shí)數(shù)實(shí)數(shù)也有兩種形式▲十進(jìn)制表示法:5.768▲科學(xué)表示法:5E-4——0.0005 3.6E2 360.03)字符串字符串是雙引號(hào)內(nèi)的字符序列,不能分成多行寫“internalerror”。(2)變量有三種類型:線網(wǎng)(net)、寄存器(reg)和存儲(chǔ)器(memory)。1)線網(wǎng):用wire進(jìn)行聲明,默認(rèn)位寬為1,線網(wǎng)類型表達(dá)了電路網(wǎng)絡(luò)中的物理連線,該類型變量的值則由連接器件的輸出端連續(xù)驅(qū)動(dòng),只要輸入發(fā)生變化,輸出就重新進(jìn)行計(jì)算、更新。如果沒有驅(qū)動(dòng)源,線網(wǎng)缺省值為z。2)寄存器:寄存器(reg)變量是電路存儲(chǔ)單元的抽象表示,定義時(shí)用關(guān)鍵字reg。與線網(wǎng)變量剛相反,reg變量如同觸發(fā)器,只在某種條件下(通常為時(shí)鐘信號(hào)邊沿)輸入驅(qū)動(dòng)才傳輸?shù)捷敵?并保持該值,此時(shí)即使輸入變化或者沒有輸入驅(qū)動(dòng),輸出仍然保持不變。它只能在always和initial語句中被賦值。缺省值為x?!鎯?chǔ)器(memory)是由reg來進(jìn)行聲明,用于對(duì)寄存器文件、RAM、ROM等建模,Verilog中存儲(chǔ)器是一維寄存器數(shù)組,每一個(gè)數(shù)組元素稱為一個(gè)字(word),每個(gè)字是一個(gè)寄存器型位向量,寬度可以是1位或n位向量。reg標(biāo)量表示觸發(fā)器,reg向量表示寄存器,存儲(chǔ)器是一維寄存器數(shù)組,由寄存器組成。存儲(chǔ)器能夠通過數(shù)組下標(biāo)作為地址來進(jìn)行訪問某個(gè)字,但每個(gè)存儲(chǔ)器字是一個(gè)向量型寄存器,只能整體訪問,無法訪問其中的某個(gè)位。同時(shí),存儲(chǔ)器是數(shù)組,無法整體訪問。建模方式(1)門級(jí)單元建模數(shù)字電路絕大多數(shù)是建立在門級(jí)或者更高的抽象層次上的。在門級(jí),電路網(wǎng)絡(luò)用所有邏輯門的互連來表達(dá)是很直觀的。一般使用門級(jí)電路的實(shí)例引用來建模。(2)數(shù)據(jù)流建模邏輯電路的另一種觀點(diǎn)是試圖將電路的工作看做一系列的邏輯操作,組合電路是由輸入信號(hào)到輸出的傳遞,時(shí)序電路則由輸入信號(hào)以及當(dāng)前狀態(tài)到輸出以及下一存儲(chǔ)狀態(tài)的傳遞。連續(xù)賦值語句是數(shù)據(jù)流建模的基本語句,語句的目標(biāo)類型必須是線網(wǎng)變量。用assign語句,只要右端表達(dá)式上的某一操作數(shù)發(fā)生變化,表達(dá)式立即重新計(jì)算,并將值傳遞給左邊。(3)行為級(jí)建模對(duì)于復(fù)雜的設(shè)計(jì),設(shè)計(jì)者更傾向于從電路外部功能的角度,也即從算法的角度對(duì)電路進(jìn)行描述。主要利用initial和always語句塊來描述。路徑延時(shí)模型(1)邏輯單元的慣性延時(shí)與傳播延時(shí)邏輯設(shè)計(jì)最終的實(shí)現(xiàn)依靠半導(dǎo)體元件及他們之間的金屬互連,數(shù)字電路的邏輯轉(zhuǎn)換需要線網(wǎng)及元件上電荷的積累或耗散導(dǎo)致的電平變化,因而信號(hào)在電路網(wǎng)絡(luò)中的傳遞以及邏輯元件相應(yīng)信號(hào)的變化都需要一定的延時(shí)。這些延時(shí)不僅僅決定了電路工作的性能,如果設(shè)計(jì)不周,它們會(huì)影響電路工作的正確性。電路延時(shí)按形成原理可分成兩種。一種是基本門在建立一個(gè)0或1的邏輯電平之前,電路中的電荷必須聚集到一定的程度。如果把信號(hào)加到門輸入端,但在聚集足夠的電荷之前撤銷掉,輸出端則不會(huì)產(chǎn)生對(duì)應(yīng)的電平變化。這個(gè)電荷聚集所需的時(shí)間稱為慣性延時(shí)。另一種延時(shí)表示為信號(hào)在經(jīng)由金屬導(dǎo)線傳輸時(shí)產(chǎn)生的。因?yàn)樾酒系慕饘龠B線并非理想導(dǎo)線,特別是隨著特征工藝線寬不斷縮小時(shí)、電路規(guī)模不斷擴(kuò)大和電路工作頻率不斷加快,金屬連線的電阻、連線間電容、電感等越來越不可忽略,所呈現(xiàn)的傳輸線效應(yīng)越來越明顯。與慣性延時(shí)不同,這種信號(hào)傳播延時(shí)不會(huì)一直窄脈沖,所有驅(qū)動(dòng)端的信號(hào)毛刺會(huì)顯現(xiàn)在接收端,給電路設(shè)計(jì)制造麻煩。(2)門級(jí)建模延時(shí)門級(jí)建模設(shè)計(jì)中,Verilog語言可以在門實(shí)例化語句中規(guī)定慣性延時(shí),即從門的任意輸入到輸出的傳輸延遲。若沒有規(guī)定則延時(shí)值為0。門延時(shí)在三類不同的信號(hào)轉(zhuǎn)換情形時(shí)可以有不同的值,這三種情形是:①信號(hào)上升:在門的輸入發(fā)生變化的情況下,門的輸出從0,x,z變化到1所需的時(shí)間稱為上升延遲時(shí)間。②信號(hào)下降:在門的輸入發(fā)生變化的情況下,門的輸出從1,x,z變化到0所需的時(shí)間。③信號(hào)關(guān)斷:在門的輸入發(fā)生變化的情況下,門的輸出從0,1,x變化到高阻態(tài)z所需的時(shí)間。包含多個(gè)延時(shí)值的時(shí)候,多個(gè)延時(shí)值定義的順序是上升、下降、關(guān)斷。門延時(shí)的值不是固定的,這與輸入端驅(qū)動(dòng)能力、輸出端負(fù)載狀況都有關(guān)系,因而每種延時(shí)又有最小值、典型值、最大值之分,形式為min:typ:max。三態(tài)門可以有三種延時(shí),但其他門只有兩種延時(shí):信號(hào)上升延時(shí)和信號(hào)下降延時(shí)。nand#(1:2:3,3:4:5); //定義了兩個(gè)延時(shí),上升和下降(3)數(shù)據(jù)流建模延時(shí)在數(shù)據(jù)流建模設(shè)計(jì)中,延時(shí)的定義主要出現(xiàn)在連續(xù)賦值語句中。assign#5change=up&&down //右端事件需經(jīng)5個(gè)時(shí)間單位到達(dá)change端這種表示形式同樣用于描述慣性延時(shí)。數(shù)據(jù)流建模中延時(shí)也可以定義上升、下降、關(guān)斷三種,并且每種延時(shí)值還可設(shè)定最小、典型、最大值。除了在連續(xù)賦值語句中定義延時(shí)外,也可以在線網(wǎng)聲明時(shí)說明。Wire#2turn;Assign#3turn=left||right;最終延時(shí)是兩種延時(shí)的累加,left變化后計(jì)算表達(dá)式,在3時(shí)間單位后到達(dá)連續(xù)賦值左端,但定義了線網(wǎng)延時(shí),要在經(jīng)過2個(gè)時(shí)間單位才完成。注:語句間延時(shí)和語句內(nèi)延時(shí)的定義如下:#Nsum=a+b;//語句間延時(shí):從到達(dá)該語句到執(zhí)行該語句的時(shí)間間隔,可以看作是在語句執(zhí)行前的“等待時(shí)間”,因此在這個(gè)延時(shí)過程中,語句壓根就還沒開始執(zhí)行。sum=#Na+b;//語句內(nèi)延時(shí):該語句已經(jīng)開始執(zhí)行了,但把右式的值賦給左式的目標(biāo)之前延遲一段時(shí)間?!谶B續(xù)賦值語句中使用語句間延時(shí),可以描述慣性延時(shí)?!诜亲枞x值語句中使用語句內(nèi)延時(shí),可以描述傳輸延時(shí)。在持續(xù)賦值中插入語句內(nèi)延時(shí)是非法的,這是因?yàn)檎Z句內(nèi)延時(shí)需要將T時(shí)刻的結(jié)果保持到T+N時(shí)刻進(jìn)行賦值,表現(xiàn)出記憶特性,與持續(xù)賦值的意義相沖突。我們可以將一個(gè)語句理解為一個(gè)進(jìn)程,首先是進(jìn)程的觸發(fā),其次是執(zhí)行進(jìn)程,如有延時(shí)則執(zhí)行進(jìn)程掛起,等到延時(shí)結(jié)束時(shí)刻執(zhí)行進(jìn)程。所以上述連續(xù)賦值語句只有句間延時(shí),當(dāng)連續(xù)賦值語句的右側(cè)表達(dá)式中的操作數(shù)改變時(shí),就會(huì)計(jì)算右側(cè)表達(dá)式,若新的結(jié)果值與原來的值不同,進(jìn)程被觸發(fā)。若在把右側(cè)的值傳遞給左側(cè)之前,右側(cè)的值發(fā)生了變化,則在延時(shí)期間右側(cè)表達(dá)式發(fā)生的變化會(huì)被濾掉,即這期間右側(cè)表達(dá)式的變化直接忽略不管。連續(xù)賦值語句為組合邏輯和門控鎖存器建模(條件賦值語句)建模,只能使用語句間延時(shí)。連續(xù)賦值語句可以用來對(duì)線網(wǎng)進(jìn)行賦值,不能用來對(duì)寄存器進(jìn)行賦值。這是由它的硬件背景決定的,數(shù)據(jù)流建模的連續(xù)賦值語句基于電平敏感行為,總是處于活躍狀態(tài),即只要賦值語句右邊表達(dá)式中任一變量發(fā)生電平變化,該表達(dá)式即被重新計(jì)算,然后將新值傳遞給左邊。用于對(duì)組合邏輯建模,條件賦值語句可以描述門控鎖存器。邏輯行為建模行為描述基本結(jié)構(gòu)是由initial和always結(jié)構(gòu)組成的。Initial和always結(jié)構(gòu)只能對(duì)寄存器變量進(jìn)行賦值。行為描述是基于周期行為的,always結(jié)構(gòu)依次執(zhí)行語句,并且是無限反復(fù)運(yùn)行。這種周期的觸發(fā)可以是電平敏感控制(這種周期是異步周期性行為),也可以是時(shí)鐘邊沿控制(一旦觸發(fā)即開始一個(gè)新的周期)。因?yàn)槭侵芷谛孕袨?,在周期之間信號(hào)或變量保持其狀態(tài)(具有記憶功能),所以在行為描述結(jié)構(gòu)中只能對(duì)寄存器類型變量賦值。其中,基于電平觸發(fā)的always為組合邏輯建模,基于時(shí)鐘邊沿觸發(fā)的always為時(shí)序邏輯建模。分為阻塞賦值和非阻塞賦值,也可以分為語句間延時(shí)和語句內(nèi)延時(shí):1)阻塞賦值:該語句執(zhí)行完才能執(zhí)行下一條語句。特點(diǎn)是:等號(hào)“=”右邊表達(dá)式的結(jié)果計(jì)算和將計(jì)算結(jié)果賦值給左邊變量的操作,是一個(gè)統(tǒng)一、連續(xù)的過程,不允許在其中插入其他動(dòng)作。在語句啟動(dòng)后延時(shí)的一段時(shí)間輸出當(dāng)前時(shí)刻(語句間延時(shí))或語句啟動(dòng)時(shí)刻(語句內(nèi)延時(shí))的邏輯結(jié)果,并且會(huì)忽略這段時(shí)間內(nèi)所有的輸入改變事件。在阻塞賦值語句中插入延時(shí)不能模擬實(shí)際電路中的慣性延時(shí)或者傳輸延時(shí),因此不適合在阻塞賦值中插入延時(shí)。2)非阻塞賦值:體現(xiàn)一定程度的并行特征。在非阻塞賦值中,對(duì)目標(biāo)的賦值在將來的某個(gè)時(shí)刻發(fā)生,但一組賦值語句沒有前后順序關(guān)系,他們?cè)谕粫r(shí)刻開始計(jì)算右邊表達(dá)式,也就不等當(dāng)前語句執(zhí)行完即開始進(jìn)行下一條語句的執(zhí)行。非阻塞賦值對(duì)于左邊賦值變量的更新操作的優(yōu)先級(jí)要低于阻塞賦值,也要低于非阻塞賦值本身等號(hào)右邊的表達(dá)式計(jì)算。非阻塞賦值也可以插入語句間延時(shí)和語句內(nèi)延時(shí),在非阻塞賦值中插入語句內(nèi)延時(shí)可以很好的描述實(shí)際電路行為中的傳輸延時(shí),這也是在過程賦值中唯一推薦使用的延時(shí)描述。非阻塞賦值中,而非阻塞賦值中插入語句間延時(shí)的效果大致與阻塞賦值中相同,會(huì)在當(dāng)前的語句啟動(dòng)以后,延時(shí)一段時(shí)間輸出當(dāng)前時(shí)刻的邏輯結(jié)果,并且會(huì)忽略這段時(shí)間內(nèi)的所有輸入改變事件,不符合慣性延時(shí)和內(nèi)定延時(shí)的行為特點(diǎn)。任務(wù)與函數(shù)在硬件邏輯設(shè)計(jì)中會(huì)出現(xiàn)這樣的情況,某種共通的功能經(jīng)常在不同的地方重復(fù)出現(xiàn),因而有必要將這些通用的功能抽取出來,組成庫的形式,而后在各個(gè)需要使用該功能的地方只需要調(diào)用庫中的子程序??煞譃槿蝿?wù)和函數(shù)兩種。任務(wù)支持輸入、輸出和雙向的參數(shù)變量,但任務(wù)本身沒有類型的含意,所以沒有返回值。如果任務(wù)需要返回某種結(jié)果,只能通過輸出或雙向參數(shù)變量。任務(wù)是一種具有較強(qiáng)行為能力的子程序(描述行為的能力強(qiáng))。在某個(gè)任務(wù)內(nèi)可以調(diào)用另一個(gè)任務(wù)或函數(shù),并可包含時(shí)延、事件或時(shí)序控制的聲明語句。子程序的好處不僅僅體現(xiàn)在以下兩方面:▲避免對(duì)共通的程序段的重復(fù)書寫▲有利于使整個(gè)設(shè)計(jì)代碼結(jié)構(gòu)清晰可讀。函數(shù)是一種具有較弱行為能力的子程序(描述行為的能力弱),只能描述純組合電路的行為,包含一個(gè)或多個(gè)輸入?yún)?shù),但不能包含輸出及雙向參數(shù),此外它一定有一個(gè)返回值。函數(shù)可以調(diào)用另一個(gè)函數(shù),但不能調(diào)用任務(wù),函數(shù)內(nèi)不能包含時(shí)延、事件或時(shí)序控制的聲明語句。和一般軟件中的子程序庫不同,任務(wù)和函數(shù)只能定義在某個(gè)模塊中,并且作用范圍也僅僅限于該模塊。另外,任務(wù)和函數(shù)只能具有局部行為描述能力,不能包含完整的always和initial控制結(jié)構(gòu),而只能在模塊的這些結(jié)構(gòu)中調(diào)用(即只能在initial或always中調(diào)用函數(shù)或者任務(wù))。(1)任務(wù)task任務(wù)以關(guān)鍵字task和endtask來聲明,任務(wù)的定義很想模塊,必須定義在調(diào)用它的模塊內(nèi),不過可以在模塊的功能描述主體之前,也可以在之后。任務(wù)調(diào)用是通過任務(wù)名后跟參數(shù)列表來進(jìn)行的,其形式參數(shù)和實(shí)參數(shù)在次序上必須相同。任務(wù)是靜態(tài)的,即任務(wù)中局部聲明項(xiàng)的地址是靜態(tài)分配的。如果某任務(wù)在模塊的多個(gè)地方被并發(fā)調(diào)用,則會(huì)對(duì)同一存儲(chǔ)區(qū)進(jìn)行操作,這樣可能會(huì)導(dǎo)致出錯(cuò)。為了避免這種情況的發(fā)生,可以在task關(guān)鍵字之后加上automatic修飾字,使任務(wù)在多次調(diào)用時(shí)地址空間多次分配,互不干涉。這樣的任務(wù)稱為自動(dòng)任務(wù)。任務(wù)可以包含時(shí)序控制,即延遲,但任務(wù)中對(duì)變量的控制作用無法通過參數(shù)傳遞,參數(shù)只能傳送任務(wù)調(diào)用結(jié)束時(shí)的結(jié)果。為了傳送變量的時(shí)序過程,只能采取全局變量的方法。(2)函數(shù)function函數(shù)使用關(guān)鍵字function和endfunction來聲明。函數(shù)的聲明與任務(wù)最大的不同是函數(shù)具有返回值范圍。如果函數(shù)聲明中沒有指定取值范圍,則缺省的返回值為1位二進(jìn)制數(shù)。函數(shù)通過在函數(shù)定義中顯示的給函數(shù)名賦值來實(shí)現(xiàn)返回值。函數(shù)調(diào)用可以在行為描述語句中,也可以在數(shù)據(jù)流描述的連續(xù)賦值語句的右邊表達(dá)式中。函數(shù)中不能包含任何延遲。8HDL邏輯設(shè)計(jì)組合邏輯的設(shè)計(jì)通常組合電路設(shè)計(jì)可以通過三種方式:第一是使用UDP真值表定義,第二是assign連續(xù)賦值語句,第三是電平敏感控制的always結(jié)構(gòu)。為了避免自動(dòng)綜合出鎖存器,要求分支語句必須寫完整所有的分支,此外敏感列表中也應(yīng)列舉齊所有的變量輸入和判斷條件中的信號(hào)。需要注意的是,為了避免自動(dòng)綜合工具產(chǎn)生不必要的鎖存器結(jié)構(gòu),在case分支語句中,應(yīng)增加默認(rèn)選項(xiàng),默認(rèn)項(xiàng)賦值為無關(guān)值(x),有利于綜合器綜和出更優(yōu)化的電路。組合電路的case最好有default,因?yàn)槿绻愕腸ase不全,就會(huì)產(chǎn)生鎖存器;即使case包含完整,還是建議加上一條default并賦值x。雖然case列舉完整,default值不可能到達(dá),顯然default也不是需要關(guān)心的。但是加上default就是告訴綜合器,別的分支情況我不關(guān)心,你想賦什么值都可以,綜合器就會(huì)根據(jù)前面的賦值情況,綜合出一個(gè)面積最小的組合邏輯出來or使綜合工具進(jìn)行更有效的邏輯化簡(jiǎn)。但是完整的case加上default也有缺點(diǎn),增加了工作的同時(shí)會(huì)降低代碼的覆蓋率(額外的default在作代碼覆蓋率檢查時(shí)是不覆蓋的)。組合電路的Verilog描述可以使用門級(jí)結(jié)構(gòu)建模的方式,基于連續(xù)賦值的數(shù)據(jù)流方式,也可以用異步周期性行為描述,以及以上幾種描述方式的組合。時(shí)序電路設(shè)計(jì)時(shí)序邏輯可分為電平控制的鎖存器類型和時(shí)鐘邊沿控制的觸發(fā)器類型。對(duì)于鎖存器類型的時(shí)序邏輯設(shè)計(jì),可用帶反饋的條件操作符的連續(xù)賦值語句實(shí)現(xiàn),例如,SRAM存儲(chǔ)器單元可建模成:Assigndataout=(CS_b==0)?(WE_b==0)?datain:dataout:1’bz;鎖存器也可以由行為描述建模,采用電平敏感建模,對(duì)于不完整的分支語句會(huì)自動(dòng)綜合出鎖存器。帶觸發(fā)器的時(shí)序邏輯僅由邊沿觸發(fā)的行為綜合而來。通常的同步時(shí)序電路是指時(shí)鐘的上升沿或者下降沿同步,一般不建議采用雙邊沿觸發(fā),因?yàn)樵谀壳皵?shù)字芯片設(shè)計(jì)內(nèi)部時(shí)鐘多由PLL產(chǎn)生,此類時(shí)鐘源一般只能使單邊沿保持很好的指標(biāo),另一邊沿會(huì)因?yàn)闀r(shí)鐘的抖動(dòng)、偏斜等影響電路的工作性能。邊沿敏感always語句的事件列表中,時(shí)鐘不是由信號(hào)的名稱確定的。對(duì)于包含多個(gè)邊沿信號(hào)的事件列表,則由譯碼的順序確定某個(gè)信號(hào)是時(shí)鐘,而其他是控制信號(hào)。復(fù)位信號(hào)時(shí)最常見的控制信號(hào)。同步時(shí)序電路由同步復(fù)位和異步復(fù)位兩種方式。異步復(fù)位是指該時(shí)序電路當(dāng)復(fù)位信號(hào)到來后即可進(jìn)入復(fù)位處理。在行為建模時(shí),復(fù)位信號(hào)作為控制信號(hào)被加入到事件列表中。對(duì)于同步復(fù)位時(shí)序電路,復(fù)位信號(hào)并不出現(xiàn)在事件列表中,復(fù)位行為只在時(shí)鐘邊沿時(shí)發(fā)生。在always語句中,所有的左端變量都需定義為reg類型,但并非所有reg類型變量都會(huì)綜合成觸發(fā)器,只有滿足下列條件的reg變量將被綜合為觸發(fā)器:▲該reg變量在always語句外被使用;▲該reg變量未被賦值前已在always語句中使用;▲該reg變量?jī)H在描述行為的某些條件分支上被賦值。復(fù)位信號(hào)的處理十分重要,為了保證系統(tǒng)在上電后或者出現(xiàn)意外故障后可以回到一個(gè)固定的初始狀態(tài),一般設(shè)計(jì)中都會(huì)有一個(gè)全局復(fù)位信號(hào)。①如果復(fù)位信號(hào)是從芯片外部輸入的,而這個(gè)信號(hào)可能由于源端或PCB走線的原因引入毛刺的話,應(yīng)該首先對(duì)輸入的復(fù)位信號(hào)用時(shí)鐘打一拍進(jìn)行同步化處理。如果引入的毛刺寬度有可能超過一個(gè)時(shí)鐘周期的話,還需要增加一個(gè)簡(jiǎn)易的延時(shí)濾波電路。如圖所示利用移位寄存器可以實(shí)現(xiàn)這一功能。由圖可知,當(dāng)輸入復(fù)位信號(hào)大于四個(gè)時(shí)鐘周期時(shí)可產(chǎn)生有效復(fù)位信號(hào)。輸入復(fù)位森陵時(shí)鐘②如果復(fù)位信號(hào)是由內(nèi)部的組合邏輯產(chǎn)生,則為了克服毛刺的影響,一定要把復(fù)位信號(hào)接到寄存器的同步復(fù)位端,而不能做異步復(fù)位,或者作為寄存器的輸入復(fù)位森陵時(shí)鐘②如果復(fù)位信號(hào)是由內(nèi)部的組合邏輯產(chǎn)生,則為了克服毛刺的影響,一定要把復(fù)位信號(hào)接到寄存器的同步復(fù)位端,而不能做異步復(fù)位,或者作為寄存器的D輸入端的組合輸入。圖中所示為兩種轉(zhuǎn)換內(nèi)部復(fù)位信號(hào)的方法。在圖中,當(dāng)計(jì)數(shù)器的QX和Q0由01翻轉(zhuǎn)到10的時(shí)候(功能冒險(xiǎn)),就可能會(huì)出現(xiàn)毛刺,轉(zhuǎn)為同步復(fù)位后,就可以利用時(shí)鐘采樣濾掉毛刺,從而避免復(fù)位信號(hào)的誤動(dòng)作。組合電路輸出出現(xiàn)毛刺這種錯(cuò)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論