版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章緒論1.1什么是EDA技術(shù) 1.2為什么要用硬件描述語言1.3可編程邏輯器件的結(jié)構(gòu)與原理1.4IP核 1.5JTAG邊界掃描測試技術(shù) 1.6習(xí)題
1.1
什么是EDA技術(shù)
EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上用硬件描述語言進(jìn)行電路設(shè)計(jì),然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、綜合、分割、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和配置下載等工作。
EDA技術(shù)融合了電子技術(shù)、計(jì)算機(jī)技術(shù)、信息技術(shù)和智能化技術(shù)的最新成果,極大地提高了電子電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)人員的工作強(qiáng)度。這類軟件目前已有很多種,其主要功能是輔助進(jìn)行三方面的設(shè)計(jì)工作:芯片設(shè)計(jì)、電子電路設(shè)計(jì)、PCB設(shè)計(jì)。沒有EDA技術(shù)的支持,想要完成上述超大規(guī)模集成電路的設(shè)計(jì)制造是不可想象的。反過來,生產(chǎn)制造技術(shù)的不斷進(jìn)步又必將對EDA技術(shù)提出新的要求?;仡橢DA技術(shù)的發(fā)展歷程,可將電子設(shè)計(jì)技術(shù)分為三個(gè)階段。
EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是使用硬件描述語言(HardwareDescriptionLanguage,HDL)進(jìn)行電子設(shè)計(jì)。設(shè)計(jì)人員按照“自頂向下”(Top-Down)的設(shè)計(jì)方法,首先對整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,然后采用硬件描述語言對系統(tǒng)的功能進(jìn)行描述,并對系統(tǒng)的行為進(jìn)行仿真和驗(yàn)證,再通過綜合優(yōu)化工具生成門級網(wǎng)表(表示低層電路連接方式的文件),最后在可編程邏輯器件或?qū)S眉呻娐?ApplicationSpecificIntegratedCircuit,ASIC)芯片上完成物理實(shí)現(xiàn)。這樣的設(shè)計(jì)方法稱為高層次的電子設(shè)計(jì)方法。
電子設(shè)計(jì)大致可分為物理級設(shè)計(jì)、電路級設(shè)計(jì)和系統(tǒng)級設(shè)計(jì)三個(gè)層次。
電路級設(shè)計(jì)工作流程如圖1-1所示。電子工程師接受系統(tǒng)設(shè)計(jì)任務(wù)后,首先確定設(shè)計(jì)方案,同時(shí)要選擇能實(shí)現(xiàn)該方案的合適元件,然后根據(jù)具體的元件設(shè)計(jì)電路原理圖。接著進(jìn)行第一次仿真,包括數(shù)字電路的邏輯模擬、故障分析,模擬電路的交直流分析、瞬態(tài)分析。系統(tǒng)在進(jìn)行仿真時(shí),必須要有元件模型庫的支持,計(jì)算機(jī)上模擬的輸入輸出波形代替了實(shí)際電路調(diào)試中的信號(hào)源和示波器。這一次仿真主要是檢驗(yàn)設(shè)計(jì)方案在功能方面的正確性。
圖1-1電路級設(shè)計(jì)工作流程
仿真通過后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡(luò)表進(jìn)行PCB的自動(dòng)布局布線。在制作PCB之前還可以進(jìn)行后分析,包括熱分析、噪聲及串?dāng)_分析、電磁兼容分析、可靠性分析等,并且可以將分析后的結(jié)果參數(shù)反標(biāo)回電路圖,進(jìn)行第二次仿真,也稱為后仿真。這一次仿真主要是檢驗(yàn)PCB在實(shí)際工作環(huán)境中的可行性。
由此可見,電路級的設(shè)計(jì)技術(shù)使電子工程師在實(shí)際的電子系統(tǒng)產(chǎn)生前,就可以全面地了解系統(tǒng)的功能特性和物理特性,從而將開發(fā)風(fēng)險(xiǎn)消滅在設(shè)計(jì)階段,縮短了開發(fā)時(shí)間,降低了開發(fā)成本。
進(jìn)入20世紀(jì)90年代以來,電子信息類產(chǎn)品的開發(fā)明顯出現(xiàn)兩個(gè)特點(diǎn):
一是產(chǎn)品的復(fù)雜程度加深;
二是產(chǎn)品的上市時(shí)限緊迫。然而電路級設(shè)計(jì)本質(zhì)上是基于門級描述的單層次設(shè)計(jì),設(shè)計(jì)的所有工作(包括設(shè)計(jì)輸入、仿真和分析、設(shè)計(jì)修改等)都是在基本邏輯門這一層次上進(jìn)行的,顯然這種設(shè)計(jì)方法不能適應(yīng)新的形勢,而EDA技術(shù)則引入了一種高層次的電子設(shè)計(jì)方法,也稱為系統(tǒng)級的設(shè)計(jì)方法。
高層次設(shè)計(jì)是一種“概念驅(qū)動(dòng)式”設(shè)計(jì),設(shè)計(jì)人員無需通過門級原理圖描述電路,而是針對設(shè)計(jì)目標(biāo)進(jìn)行功能描述。由于擺脫了電路細(xì)節(jié)的束縛,設(shè)計(jì)人員可以把精力集中于創(chuàng)造性的方案與概念構(gòu)思上,一旦這些概念構(gòu)思以高層次描述的形式輸入計(jì)算機(jī),EDA系統(tǒng)就能以規(guī)則驅(qū)動(dòng)的方式自動(dòng)完成整個(gè)設(shè)計(jì)。這樣,新的概念得以迅速有效地成為產(chǎn)品,大大縮短了產(chǎn)品的研制周期。不僅如此,高層次設(shè)計(jì)只是定義系統(tǒng)的行為特性,可以不涉及實(shí)現(xiàn)工藝,在廠家綜合庫的支持下,利用綜合優(yōu)化工具可以將高層次描述轉(zhuǎn)換成針對某種工藝優(yōu)化的網(wǎng)表,使工藝轉(zhuǎn)化變得輕松容易。具體的系統(tǒng)級設(shè)計(jì)工作流程如圖1-2所示。
圖1-2系統(tǒng)級設(shè)計(jì)工作流程
高層次設(shè)計(jì)步驟如下:
第一步:確定設(shè)計(jì)方案。
按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)規(guī)劃。
第二步:設(shè)計(jì)輸入。
輸入HDL代碼,這是高層次設(shè)計(jì)中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(原理圖、狀態(tài)圖、波形圖等),此方式具有直觀、容易理解的優(yōu)點(diǎn)。
第三步:源代碼仿真。
對于大型設(shè)計(jì),還要進(jìn)行代碼級的功能仿真,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性,因?yàn)閷τ诖笮驮O(shè)計(jì),綜合、適配要花費(fèi)數(shù)小時(shí),在綜合前對源代碼仿真,就可以大大減少設(shè)計(jì)重復(fù)的次數(shù)和時(shí)間。
第四步:綜合(Synthesize)。
利用綜合器對HDL源代碼進(jìn)行綜合優(yōu)化處理,生成門級描述的網(wǎng)表文件,這是將高層次的語言描述轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合優(yōu)化是針對ASIC芯片供應(yīng)商的某一產(chǎn)品系列進(jìn)行的,所以綜合的過程要在相應(yīng)的廠家綜合庫的支持下才能完成。綜合后,可利用產(chǎn)生的網(wǎng)表文件進(jìn)行適配前的仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。
第五步:適配(Fit)。
利用適配器將綜合后的網(wǎng)表文件針對某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。適配完成后,產(chǎn)生多項(xiàng)設(shè)計(jì)結(jié)果:①適配報(bào)告,包括芯片內(nèi)部資源利用情況,設(shè)計(jì)的布爾方程描述情況等;②適配后的仿真模型;③器件編程文件。根據(jù)適配后的仿真模型,可以進(jìn)行適配后的時(shí)序仿真,因?yàn)橐呀?jīng)得到器件的實(shí)際硬件特性(如時(shí)延特性)及結(jié)構(gòu)細(xì)節(jié),所以仿真結(jié)果能比較精確地預(yù)測未來芯片的實(shí)際性能。如果仿真結(jié)果達(dá)不到設(shè)計(jì)要求,就需要修改HDL源代碼或選擇不同速度品質(zhì)的器件,直至滿足設(shè)計(jì)要求。
第六步:器件編程(Program)或配置(Configure)。
器件編程或配置即設(shè)計(jì)的實(shí)現(xiàn)。將適配器產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標(biāo)芯片F(xiàn)PGA或CPLD中,即對FPGA或CPLD芯片進(jìn)行編程或配置,使它們實(shí)現(xiàn)設(shè)計(jì)的功能。通常將對CPLD的下載稱為編程,對FPGA的下載稱為配置。如果是大批量產(chǎn)品開發(fā),通過更換相應(yīng)的廠家綜合庫,可以很容易轉(zhuǎn)由ASIC形式來實(shí)現(xiàn)。
此外,各大半導(dǎo)體器件生產(chǎn)商也推出了一些EDA軟件,如Lattice公司的ispDesignExpert、Altera公司的QuartusⅡ、Xilinx公司的Fundation等。這類軟件除了可以進(jìn)行電路設(shè)計(jì)和仿真外,還可以直接對相應(yīng)的器件進(jìn)行編程和配置,在實(shí)際中得到了廣泛的應(yīng)用。
1.2 為什么要用硬件描述語言
隨著電子技術(shù)的發(fā)展,電子電路的設(shè)計(jì)變得越來越復(fù)雜,使用硬件描述語言進(jìn)行電子電路的設(shè)計(jì)已成為一種趨勢。所謂硬件描述語言,就是可以描述硬件電路功能、信號(hào)連接關(guān)系以及延時(shí)關(guān)系的語言。與電路原理圖比較,硬件描述語言能更有效地表示硬件電路的特性。利用硬件描述語言來表示邏輯部件及系統(tǒng)硬件的功能和行為,是EDA設(shè)計(jì)方法的一個(gè)重要特征。
下面通過一個(gè)簡單的例子來初步了解使用硬件描述語言進(jìn)行電路設(shè)計(jì)的優(yōu)勢。假設(shè)要設(shè)計(jì)一個(gè)一位半加器,輸入是A和B,輸出是S0和C0,其中S0是和,C0是進(jìn)位。根據(jù)加法器的功能,可以列出如表1-1所示的真值表。
按照傳統(tǒng)的設(shè)計(jì)方法,我們首先要畫出電路原理圖,這需要具備一定的專業(yè)知識(shí)和經(jīng)驗(yàn)才能完成。根據(jù)真值表,可以列出一位半加器的邏輯表達(dá)式為
C0=A·B
根據(jù)邏輯表達(dá)式可以得出如圖1-3所示的電路原理圖。
圖1-3一位半加器原理圖
然后要選擇標(biāo)準(zhǔn)集成電路元件,如與門選用74LS08、異或門選用74LS86等,再根據(jù)電路原理圖設(shè)計(jì)出印制電路板圖,最后對電路進(jìn)行組裝與調(diào)試。
可見,傳統(tǒng)的設(shè)計(jì)方法要求設(shè)計(jì)人員具有豐富的硬件知識(shí),當(dāng)電路比較復(fù)雜時(shí),設(shè)計(jì)、調(diào)試、修改都將變得十分困難,這顯然不符合現(xiàn)代電子技術(shù)高速發(fā)展的需要。
使用硬件描述語言進(jìn)行設(shè)計(jì)時(shí),加法器的功能只需要一條語句,比如A
+
B
=
C,即可實(shí)現(xiàn),設(shè)計(jì)者不必了解具體的硬件結(jié)構(gòu),設(shè)計(jì)完成后,可以在計(jì)算機(jī)上進(jìn)行仿真和驗(yàn)證,以保證設(shè)計(jì)的正確性。另外,硬件描述語言是文檔型語言,便于保存和管理,且又是標(biāo)準(zhǔn)化的語言,開發(fā)工具也是規(guī)范化的,因此設(shè)計(jì)成果是通用的、可移植的,從而可以大大提高設(shè)計(jì)效率,縮短設(shè)計(jì)周期,降低設(shè)計(jì)成本。
VHDL是VeryhighspeedintegratedcircuitHardwareDescriptionLanguage(超高速集成電路硬件描述語言)的簡稱,誕生于1982年。1987年底,VHDL被IEEE(InstituteofElectricalandElectronicEngineer,電氣和電子工程師協(xié)會(huì))和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。
VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是非常類似于一般的計(jì)算機(jī)高級語言的。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,即端口)和內(nèi)部(或稱不可視部分),即涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部端口后,一旦其內(nèi)部開發(fā)完成,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。
在應(yīng)用VHDL描述數(shù)字系統(tǒng)時(shí),采用Entity-Architecture(實(shí)體-結(jié)構(gòu)體)結(jié)構(gòu)。Entity描述數(shù)字系統(tǒng)的輸入輸出接口,同時(shí)Architecture中定義一些全局信號(hào)、變量、常量以及其他電路(程序模塊或邏輯圖模塊)之間必要連接的拓?fù)浣Y(jié)構(gòu)。但Entity并不對電路的功能做任何的描述,可將其看成一個(gè)“黑盒子”。很明顯,VHDL遵循EDA解決方案中自頂向下的設(shè)計(jì)原則,并能夠保持良好的接口兼容性。Entity和Architecture總是成對出現(xiàn),它們是VHDL描述電路時(shí)的主要結(jié)構(gòu)。
從整個(gè)利用VHDL設(shè)計(jì)數(shù)字邏輯硬件系統(tǒng)上可以看到,VHDL具有很多方面的優(yōu)點(diǎn)。
首先,VHDL可以用來描述邏輯設(shè)計(jì)的結(jié)構(gòu),比如邏輯設(shè)計(jì)中有多少個(gè)子邏輯,而這些子邏輯是如何連接的。除此之外,VHDL并不十分關(guān)心一個(gè)具體邏輯是靠何種電路實(shí)現(xiàn)的,設(shè)計(jì)者可以把精力集中到電路所實(shí)現(xiàn)的功能上。VHDL采用類似高級語言的語句格式完成對硬件行為的描述,這就是為什么稱VHDL為行為描述語言的原因。VHDL所給出的邏輯的模擬與調(diào)試為設(shè)計(jì)者提供了最大的空間,用戶甚至不必編寫任何測試向量便可以進(jìn)行源代碼級的調(diào)試。
設(shè)計(jì)者可以非常方便地比較各種方案的可行性和優(yōu)劣,從而大大地降低了設(shè)計(jì)的難度。VHDL描述能力強(qiáng),覆蓋了邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,并支持眾多的硬件模型。設(shè)計(jì)者的原始描述是非常簡練的硬件描述,經(jīng)過EDA工具處理最終生成付諸生產(chǎn)的電路描述或版圖參數(shù)描述的工藝文件。VHDL具有良好的可讀性,而且它所包含的設(shè)計(jì)實(shí)體(DesignEntity)、程序包(Package)、設(shè)計(jì)庫(Library)為設(shè)計(jì)人員重復(fù)利用別人的設(shè)計(jì)成果提供了技術(shù)手段。
邏輯功能仿真即Pre-RouteSimulation,是在適配下載前的功能模擬,它僅僅驗(yàn)證邏輯的正確性。在早期的EDA解決方案中,一般采用編寫向量或加激勵(lì)波形的方法來描述,但這只能對邏輯的輸出信號(hào)進(jìn)行模擬,而對于一些重要的內(nèi)部信號(hào)則無能為力。采用VHDL后可以借助HDLSynthesis生成的VHDL格式的內(nèi)部網(wǎng)單,使用一些特殊的調(diào)試器,對VHDL源程序進(jìn)行類似于高級語言調(diào)試的單步跟蹤調(diào)試。這樣,不僅可以觀察重要的內(nèi)部信號(hào),而且可以清楚看到程序執(zhí)行的流程。
接下來就是適配Fitter(Place&Route),這里要用各個(gè)芯片廠商提供的編譯器(TargetCompiler)來生成配置文件,用于下載(Download)和邏輯編程。在生成了JEDEC格式文件后,一般還要經(jīng)過時(shí)序模擬(TimingSimulation),即對電路的工作頻率、工作延時(shí)做一定的模擬,雖然這仍會(huì)與實(shí)際情況有一定的誤差,但這一步模擬是必需的。
另一方面必須注意,硬件描述語言雖然在形式上和一般的軟件編程語言很相似,但本質(zhì)上是完全不同的。我們知道,普通的軟件語言是在CPU的控制下按時(shí)鐘的節(jié)拍逐條順序運(yùn)行的,而硬件描述語言最終是在目標(biāo)芯片中轉(zhuǎn)換成具體的硬件電路的。
硬件描述語言(HDL)和傳統(tǒng)的原理圖設(shè)計(jì)方法的關(guān)系就好比是高級語言和匯編語言的關(guān)系。HDL的可移植性好,使用方便,但效率不如原理圖;原理圖設(shè)計(jì)的可控性好,效率高,比較直觀,但設(shè)計(jì)大規(guī)模電路時(shí)顯得比較困難。在真正的電子設(shè)計(jì)中,通常建議采用原理圖和HDL相結(jié)合的方法來設(shè)計(jì),適合用原理圖的地方就用原理圖,適合用HDL的地方就用HDL,并沒有強(qiáng)制的規(guī)定。在最短的時(shí)間內(nèi),用自己最熟悉的工具設(shè)計(jì)出高效、穩(wěn)定、符合設(shè)計(jì)要求的電路才是我們的最終目的。
硬件電路和軟件相比有許多優(yōu)勢,最突出的是高速和高可靠性。硬件電路的延遲時(shí)間可以達(dá)到納秒級,且電路中的各個(gè)部分是可以并行(同時(shí))工作的,這顯然比軟件的運(yùn)行方式快得多。只要設(shè)計(jì)得當(dāng),硬件電路的可靠性也比軟件好得多,不會(huì)出現(xiàn)軟件運(yùn)行時(shí)可能出現(xiàn)的程序跑飛或陷入非法循環(huán)等問題。事實(shí)上,在超高速應(yīng)用領(lǐng)域和對實(shí)時(shí)性要求很高的情況下,用軟件來實(shí)現(xiàn)往往是不可能的。此外,隨著大規(guī)模集成電路技術(shù)的發(fā)展,現(xiàn)在已可以將整個(gè)系統(tǒng)制造在一個(gè)芯片中,實(shí)現(xiàn)所謂的單片系統(tǒng)SOC(SystemOnaChip),這不僅縮小了系統(tǒng)的體積,也大大提高了系統(tǒng)工作的可靠性。
1.3 可編程邏輯器件的結(jié)構(gòu)與原理
1.3.1CPLD的結(jié)構(gòu)和原理由邏輯代數(shù)可知,任何一種邏輯關(guān)系都可以用與或表達(dá)式來表示,即表示為若干個(gè)乘積項(xiàng)(與項(xiàng))相或的形式。CPLD正是利用這一結(jié)論,通過與或陣列和存儲(chǔ)元件(觸發(fā)器)來實(shí)現(xiàn)各種邏輯電路功能的。因此,CPLD也稱為基于乘積項(xiàng)(Product-Term)的PLD。
如圖1-4所示,這種PLD可分為三塊結(jié)構(gòu):邏輯陣列塊(LAB)、可編程連線陣列(PIA)和I/O控制塊。每個(gè)邏輯陣列塊由16個(gè)宏單元(Macrocell)組成(因?yàn)楹陠卧^多,故圖中沒有一一畫出)。宏單元是PLD的基本結(jié)構(gòu),由它來實(shí)現(xiàn)基本的邏輯功能??删幊踢B線陣列負(fù)責(zé)各個(gè)LAB之間的連接,所有專用輸入、I/O引腳和宏單元的輸出都送到PIA,PIA可以把這些信號(hào)傳送到器件內(nèi)的各個(gè)地方。I/O控制塊負(fù)責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定I/O引腳為輸入、輸出或雙向工作方式,也可設(shè)定為三態(tài)輸出、漏極開路輸出等。
圖1-4基于乘積項(xiàng)的PLD內(nèi)部結(jié)構(gòu)
圖1-4左上角所示的INPUT/GCLK1、INPUT/GCLRn、INPUT/OE1、INPUT/OE2分別是全局時(shí)鐘、清零和輸出使能信號(hào),這幾個(gè)信號(hào)由專用連線與PLD中的每個(gè)宏單元相連,信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。宏單元的具體結(jié)構(gòu)如圖1-5所示。
圖1-5宏單元結(jié)構(gòu)
圖1-5中左側(cè)所示的乘積項(xiàng)邏輯陣列就是一個(gè)與或陣列,它可以給每個(gè)宏單元提供5個(gè)乘積項(xiàng),乘積項(xiàng)選擇矩陣用于把這些乘積項(xiàng)分配到后面的或門和異或門,以實(shí)現(xiàn)組合邏輯。每個(gè)乘積項(xiàng)可以反相后回送到邏輯陣列,這些可共享的乘積項(xiàng)能夠連到同一個(gè)LAB中的任何一個(gè)乘積項(xiàng)的輸入上。EDA軟件可以自動(dòng)優(yōu)化乘積項(xiàng)的分配。圖1-5右側(cè)所示的是一個(gè)可編程D觸發(fā)器,它的時(shí)鐘、清零信號(hào)都可以通過編程來選擇,可以使用專用的全局清零和全局時(shí)鐘,也可以使用內(nèi)部邏輯(乘積項(xiàng)邏輯陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I/O引腳。
下面以一個(gè)簡單的電路為例,具體說明CPLD是如何利用以上結(jié)構(gòu)實(shí)現(xiàn)邏輯功能的。我們?nèi)砸陨厦嫣岬降囊晃话爰悠鳛槔斎胧茿和B,輸出是S0和C0,其中S0是和,C0是進(jìn)位。
根據(jù)真值表(見表1-1),可以寫出一位半加器的與或表達(dá)式:
C0=A?B
圖1-6所示為陣列中連接關(guān)系的表示方法。十字交叉線表示兩根線未連接;交點(diǎn)上打黑點(diǎn)表示兩根線是固定連接,即PLD出廠時(shí)已連接;交點(diǎn)上打叉表示該點(diǎn)可編程,即連接與否可通過用戶編程來改變。
圖1-6與或陣列線連接表示法
圖1-7所示為多輸入與門、或門的簡化畫法,通過編程,可以在陣列的多個(gè)輸入中選擇任一組或全部輸入與門和或門。
圖1-7
PLD中與或陣列的表示法
圖1-8所示為一個(gè)簡化的與或陣列,由4個(gè)與陣列和2個(gè)或陣列組成。兩個(gè)輸入信號(hào)(A、B)經(jīng)過緩沖互補(bǔ)輸出進(jìn)入與陣列,每個(gè)與陣列輸出一個(gè)乘積項(xiàng),與陣列的輸出進(jìn)入或陣列,最終結(jié)果從或陣列輸出。圖1-8顯示了一位半加器在與或陣列中的實(shí)現(xiàn)方式,圖中的連接點(diǎn)是由EDA工具軟件根據(jù)設(shè)計(jì)文件自動(dòng)生成的。讀者可自行寫出S0、C0的輸出表達(dá)式。
圖1-8在與或陣列中實(shí)現(xiàn)半加器
1.3.2FPGA的結(jié)構(gòu)和原理
FPGA采用查找表結(jié)構(gòu)。查找表(Look-Up-Table,LUT)本質(zhì)上就是一個(gè)RAM。目前,F(xiàn)PGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16×1位的RAM。當(dāng)用戶通過原理圖或HDL描述了一個(gè)邏輯電路以后,EDA工具軟件就會(huì)自動(dòng)計(jì)算邏輯電路所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。表1-2所示為一個(gè)用查找表實(shí)現(xiàn)邏輯電路功能的例子。
下面以Altera公司的FLEX/ACEX系列為例,介紹一下FPGA的內(nèi)部結(jié)構(gòu)。
如圖1-9所示,F(xiàn)PGA的內(nèi)部結(jié)構(gòu)主要包括邏輯陣列塊(LAB)、I/O單元(IOE)和可編程行/列連線。LAB按行和列排成一個(gè)矩陣,每一行中還放置了一個(gè)嵌入式陣列塊(EAB)(圖中未表示)。
嵌入式陣列塊(EAB)是一種輸入輸出端帶有寄存器的非常靈活的RAM,它既可以配置為存儲(chǔ)器使用,也可以實(shí)現(xiàn)邏輯功能。
圖1-9
FPGA的內(nèi)部結(jié)構(gòu)
在FLEX/ACEX中,一個(gè)LAB包括8個(gè)邏輯單元(LE),每個(gè)LE包括一個(gè)LUT、一個(gè)觸發(fā)器和相關(guān)的控制邏輯。LE是FPGA實(shí)現(xiàn)邏輯功能的最基本結(jié)構(gòu),如圖1-10所示。
圖1-10邏輯單元(LE)內(nèi)部結(jié)構(gòu)
圖1-10中所示的進(jìn)位鏈提供了LE之間非??斓南蚯斑M(jìn)位功能。利用進(jìn)位鏈能實(shí)現(xiàn)高速計(jì)數(shù)和任意位數(shù)的加法;利用級連鏈,可以實(shí)現(xiàn)輸入量很多的邏輯函數(shù),相鄰的LE并行地計(jì)算函數(shù)的各個(gè)部分,然后用級連鏈把中間結(jié)果串連起來。
快速通道是一系列水平和垂直的連續(xù)式布線通道,采用這種布線結(jié)構(gòu),即使對于復(fù)雜的設(shè)計(jì)也可預(yù)測其性能。IOE由一個(gè)雙向I/O緩沖器和一個(gè)輸入輸出寄存器組成。I/O緩沖器可設(shè)定電壓擺率(SlewRate),配置成低噪聲或高速模式,而且每個(gè)引腳還可設(shè)置為集電極開路輸出方式。
綜上所述,可編程邏輯器件的兩種主要類型是現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。在這兩類可編程邏輯器件中,F(xiàn)PGA提供了更高的邏輯密度、更豐富的特性和更高的性能。進(jìn)入21世紀(jì)以來,可編程邏輯器件取得了巨大的技術(shù)進(jìn)步,現(xiàn)在最新的FPGA器件提供的“邏輯門”(相對邏輯密度)已達(dá)千萬門以上,被廣泛應(yīng)用于從數(shù)據(jù)處理與存儲(chǔ)到儀器儀表、電信和數(shù)字信號(hào)處理等各個(gè)領(lǐng)域,已成為數(shù)字系統(tǒng)解決方案的當(dāng)然之選。
IP核有三種不同的形式:HDL語言形式、網(wǎng)表形式、版圖形式,分別對應(yīng)于通常所說的三類IP核:軟核、固核和硬核。這種分類主要依據(jù)產(chǎn)品交付的方式,而這三種IP核的實(shí)現(xiàn)方法也各具特色(見圖1-11)。
1.4 IP核
圖1-11知識(shí)產(chǎn)權(quán)核
軟核(SoftCore)是用VHDL等硬件描述語言描述的功能塊,通常與工藝無關(guān),具有寄存器傳輸級硬件描述語言描述的設(shè)計(jì)代碼,但是并不涉及用什么具體器件實(shí)現(xiàn)這些功能。由于不涉及物理實(shí)現(xiàn),因此軟核為后續(xù)設(shè)計(jì)留有很大的發(fā)揮空間,增加了靈活性和適應(yīng)性,但性能上也不可能獲得全面的優(yōu)化。軟核通過邏輯綜合、時(shí)序仿真等過程就形成了固核(FirmCore)。固核指定了制造工藝,通常以門級網(wǎng)表的形式呈現(xiàn)。硬核(HardCore)則是設(shè)計(jì)階段的最終產(chǎn)品,對應(yīng)于特定的工藝形式、物理實(shí)現(xiàn)方式,并對功秏、尺寸和性能進(jìn)行了優(yōu)化,通常以完成布局布線的網(wǎng)表、特定工藝庫或全定制物理版圖形式呈現(xiàn)。
1.5 JTAG邊界掃描測試技術(shù)
邊界掃描的基本思想是在芯片的輸入輸出引腳旁增加一個(gè)移位寄存單元,用于對芯片進(jìn)行檢測和控制。JTAG標(biāo)準(zhǔn)定義了一個(gè)串行移位寄存器,寄存器的每個(gè)單元分配給芯片的各個(gè)引腳,由于它們分布于芯片四周,故稱為邊界掃描單元(Boundary-ScanCell,BSC)。BSC在芯片內(nèi)部串聯(lián)在一起,構(gòu)成一個(gè)串行移位寄存器,稱為邊界掃描寄存器(Boundary-ScanRegister,BSR)。
當(dāng)芯片處于測試狀態(tài)時(shí),邊界掃描寄存器被JTAG測試激活,通過邊界掃描單元和一些附加的邏輯控制,就可以實(shí)現(xiàn)對芯片內(nèi)部的檢測和控制。在平時(shí)狀態(tài)下,邊界掃描寄存器對芯片來說是透明的,對芯片的正常運(yùn)行沒有任何影響(見圖1-12)。圖1-12
JTAG測試示意圖
JTAG測試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,形成一個(gè)JTAG鏈,能實(shí)現(xiàn)對各個(gè)器件的分別測試以及對器件之間的連接的測試。
JTAG邊界掃描測試是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE1149.1—1990),主要用于芯片內(nèi)部測試及對系統(tǒng)進(jìn)行仿真、調(diào)試。JTAG測試是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部加入了專門的測試電路TAP(TestAccessPort,測試訪問端口),JTAG測試信號(hào)通過TAP控制邊界掃描寄存器的工作,對器件內(nèi)部節(jié)點(diǎn)進(jìn)行掃描測試。如今,大多數(shù)的復(fù)雜器件都支持JTAG協(xié)議,如FPGA/CPLD器件、微處理器、DSP等。
標(biāo)準(zhǔn)的JTAG接口有4線和5線之分:TMS、TCK、TDI、TDO,分別為測試模式選擇、測試時(shí)鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出(見表1-3),支持JTAG協(xié)議的器件都有這些引腳;而TRST(測試復(fù)位輸入)在IEEE1149.1標(biāo)準(zhǔn)里是可選的,并不是強(qiáng)制要求的。
JTAG接口還可用于對器件進(jìn)行編程和配置,實(shí)現(xiàn)在系統(tǒng)編程(In-SystemProgrammer,ISP)。傳統(tǒng)生產(chǎn)流程中,要先對芯片進(jìn)行編程和配置,然后再將其安裝到印制電路板上;而采用ISP方式則可以先將芯片安裝到電路板上,再通過JTAG接口進(jìn)行編程,從而簡化了工藝流程,大大加快了工程進(jìn)度。
1.6習(xí)題
一、名詞解釋
1.
EDA2.
HDL3.
IEEE4.
PLD5.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東貨運(yùn)從業(yè)資格證哪里考
- 企業(yè)內(nèi)部安全監(jiān)督體系的建立與實(shí)施
- 2025年莆田道路客貨運(yùn)輸從業(yè)資格證b2考試題庫
- 2025年烏魯木齊貨運(yùn)從業(yè)資格考試試題及答案詳解
- 創(chuàng)新思維在小學(xué)科學(xué)教育中的跨學(xué)科應(yīng)用
- 燒烤作文300字6篇
- 內(nèi)河通航橋的通航能力評估與優(yōu)化方案
- 長春速達(dá)軟件3000PRO單機(jī)版
- 習(xí)慣養(yǎng)成與小學(xué)生心理健康的關(guān)系
- 產(chǎn)品設(shè)計(jì)中的材料與工藝的創(chuàng)新應(yīng)用
- 醫(yī)學(xué)免疫學(xué)-醫(yī)學(xué)檢驗(yàn)專業(yè)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 獨(dú)立基礎(chǔ)土方開挖施工方案
- 【基于單片機(jī)的電子密碼鎖設(shè)計(jì)(論文)10000字】
- 腫瘤病人常見癥狀護(hù)理
- 瑜伽基礎(chǔ)知識(shí)題庫單選題100道及答案解析
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 2024年資格考試-注冊質(zhì)量經(jīng)理考試近5年真題附答案
- 浙江省臺(tái)州市2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 2024年秋季國家開放大學(xué)《形勢與政策》大作業(yè)及答案
- 2024年上海寶山普陀中考英語一模作文集
- 2024年秋新人教版地理七年級上冊課件 第一章 地球 1.3.1 地球的自轉(zhuǎn)
評論
0/150
提交評論