VHDL設(shè)計(jì)深入剖析_第1頁(yè)
VHDL設(shè)計(jì)深入剖析_第2頁(yè)
VHDL設(shè)計(jì)深入剖析_第3頁(yè)
VHDL設(shè)計(jì)深入剖析_第4頁(yè)
VHDL設(shè)計(jì)深入剖析_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1VHDL設(shè)計(jì)深入剖析7.1進(jìn)程中的信號(hào)賦值與變量賦值對(duì)進(jìn)程中的賦值行為要注意三點(diǎn):1、信號(hào)的賦值需要一個(gè)δ延時(shí)。2、進(jìn)程中賦值特點(diǎn)是,所有賦值語(yǔ)句,包括信號(hào)賦值和變量賦值,都必須在一個(gè)δ延時(shí)內(nèi)完成(變量在δ延時(shí)前即已經(jīng)完成賦值),在進(jìn)程中的順序賦值是以并行的方式“同時(shí)”完成的,因此是在執(zhí)行到ENDPROCESS語(yǔ)句時(shí)才發(fā)生的,執(zhí)行賦值操作和完成賦值是兩個(gè)不同的概念。3、當(dāng)在進(jìn)程中存在同一信號(hào)有多個(gè)賦值源(即對(duì)同一信號(hào)發(fā)生多次賦值)時(shí),實(shí)際完成賦值,即賦值對(duì)象的值發(fā)生更新的信號(hào)是最接近ENDPROCESS語(yǔ)句信號(hào)。第1頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值第2頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值第3頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值第4頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值e1執(zhí)行賦值在前,c1執(zhí)行賦值在后,但完成賦值時(shí),變量c1獲得0011值的時(shí)刻比e1獲得1010值的時(shí)間早一個(gè)δ第5頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值muxval<=0和muxval<=muxval+1沒(méi)有得到賦值,只有muxval<=muxval+2得到賦值,因此muxval始終是一個(gè)未知值,結(jié)果只能被綜合成隨a和b變動(dòng)的時(shí)序電路,導(dǎo)致muxval成為一個(gè)不確定的信號(hào)。第6頁(yè)/共51頁(yè)7.1進(jìn)程中的信號(hào)賦值與變量賦值首先執(zhí)行muxval:=0(muxval即刻被更新)從而使if語(yǔ)句的muxval都能得到確定的初始值。盡管if語(yǔ)句從表面上看很像不完整的條件語(yǔ)句,但都不可綜合時(shí)序電路,而綜合成為純組合電路。第7頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

三態(tài)電路是一種重要的總線接口電路。三態(tài),是指它的輸出既可以是一般二值邏輯電路的正常的“0”狀態(tài)和“1”狀態(tài),又可以保持特有的高阻抗?fàn)顟B(tài),第三種狀態(tài)——高阻狀態(tài)的門(mén)電路。處于高阻抗?fàn)顟B(tài)時(shí),其輸出相當(dāng)于斷開(kāi)狀態(tài),沒(méi)有任何邏輯控制功能。三態(tài)門(mén)是一種擴(kuò)展邏輯功能的輸出級(jí),也是一種控制開(kāi)關(guān)。主要是用于總線的連接,因?yàn)榭偩€只允許同時(shí)只有一個(gè)使用者。通常在數(shù)據(jù)總線上接有多個(gè)器件,每個(gè)器件通過(guò)OE/CE之類的信號(hào)選通。如器件沒(méi)有選通的話它就處于高阻態(tài),相當(dāng)于沒(méi)有接在總線上,不影響其它器件的工作。在VHDL中,設(shè)計(jì)三態(tài)門(mén)時(shí),用std_logic數(shù)據(jù)類型對(duì)'Z'變量賦值,即引入三態(tài)門(mén),在控制下使其輸出呈高阻狀態(tài),就等效于禁止輸出。第8頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.1三態(tài)門(mén)設(shè)計(jì)

要注意的是,Z在綜合中是一個(gè)不確定的值,不同的綜合器會(huì)給出不同的結(jié)果。對(duì)于關(guān)鍵詞VHDL不區(qū)分大小寫(xiě),但是高阻‘Z’需要大寫(xiě)。

在設(shè)計(jì)中,如果使用std_logic數(shù)據(jù)類型的‘Z’對(duì)一個(gè)變量賦值,即會(huì)引入三態(tài)門(mén),并在控制下可使其輸出呈現(xiàn)高阻態(tài),這等效于使三態(tài)門(mén)禁止輸出。第9頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.2雙向端口的設(shè)計(jì)方法

用inout端口模式設(shè)計(jì)雙向端口也必須考慮三態(tài)的使用,因?yàn)殡p向端口的設(shè)計(jì)與三態(tài)端口的設(shè)計(jì)十分相似,都必須考慮端口的三態(tài)控制。這是由于雙向端口在完成輸入功能時(shí),必須使原來(lái)呈輸出模式的端口呈高阻態(tài),否則,待輸入的外部數(shù)據(jù)勢(shì)必會(huì)于端口處原電平發(fā)生“線與”,導(dǎo)致無(wú)法將外部數(shù)據(jù)正確地讀入以實(shí)現(xiàn)“雙向”功能,第10頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.2雙向端口的設(shè)計(jì)方法

把x定義為三態(tài)門(mén)輸出口,圖7-6顯示,盡管在程序的實(shí)體部分已經(jīng)明確地定義了q為雙向端口,但在顯示電路中的綜合結(jié)果卻只有一個(gè)輸出端口,而且在電路中還插入了一個(gè)鎖存器。利用q的輸入功能將q端口的數(shù)據(jù)讀入并傳輸給x(即執(zhí)行x<=q)時(shí),沒(méi)有將q的端口設(shè)置成高阻態(tài),從而導(dǎo)致這樣一個(gè)錯(cuò)誤的邏輯電路。第11頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.2雙向端口的設(shè)計(jì)方法

三態(tài)門(mén)在雙向端口中運(yùn)用時(shí),設(shè)置Z為控制項(xiàng),當(dāng)Z=1時(shí),上面的管子開(kāi)通,此時(shí)數(shù)據(jù)可以從上面的短腳輸出,這時(shí)雙向端口就作為輸出口;當(dāng)Z=0時(shí),上面的三態(tài)門(mén)被置為高阻態(tài),數(shù)據(jù)不能從上面的短腳輸出,此時(shí)數(shù)據(jù)只可以從下面的短腳由外部向內(nèi)輸入,這時(shí)的雙向端口是輸入口。(1)使q在IF語(yǔ)句中有了完整的條件描述,從而解決了時(shí)序元件的引入。(2)在q履行輸入功能時(shí),將其設(shè)定為高阻態(tài)輸出,使q成為真正的雙向端口。圖7-7中未見(jiàn)時(shí)序模塊,control對(duì)兩個(gè)三態(tài)門(mén)進(jìn)行反相控制,q是雙向端口,而x呈三態(tài)輸出。第12頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.3三態(tài)總線電路設(shè)計(jì)

輸出信號(hào)output在任何條件下都有四個(gè)激勵(lì)源,即賦值源。他們不可能都被順序賦值更新。這是因?yàn)樵谶M(jìn)程中,順序等價(jià)的語(yǔ)句,包括賦值語(yǔ)句和if語(yǔ)句等,當(dāng)他們列于同一進(jìn)程敏感表中的輸入信號(hào)同時(shí)變化時(shí),只可能對(duì)進(jìn)程結(jié)束前的那一條賦值語(yǔ)句(含if語(yǔ)句等)進(jìn)行賦值操作,而忽略了其上所有的等價(jià)語(yǔ)句,也就是說(shuō)7-11雖然語(yǔ)法正確,卻不能實(shí)現(xiàn)原有的設(shè)計(jì)意圖第13頁(yè)/共51頁(yè)7.2含高阻輸出的電路設(shè)計(jì)

7.2.3三態(tài)總線電路設(shè)計(jì)

7-12表明,設(shè)計(jì)出能產(chǎn)生獨(dú)立控制的多通道的電路結(jié)構(gòu),使用并行語(yǔ)句結(jié)構(gòu)更加方便,直觀,正確。注意,此例中,在else后使用了高阻態(tài)賦值(others=>’Z’)、高阻態(tài)“線與”是沒(méi)有關(guān)系的,但如果將(others=>’Z’)改成(others=>’0’)或其它,綜合必定無(wú)法通過(guò)。第14頁(yè)/共51頁(yè)7.3資源優(yōu)化FPGA/CPLD資源的優(yōu)化具有一定的實(shí)用意義:1、通過(guò)優(yōu)化,可以使用規(guī)模更小的可編程器件,從而降低系統(tǒng)成本,提升性價(jià)比。2、對(duì)于某些PLD器件,當(dāng)耗用資源過(guò)多時(shí)嚴(yán)重影響優(yōu)化的實(shí)現(xiàn)。3、為以后的技術(shù)升級(jí),留下更多的可編程資源,方便添加產(chǎn)品的功能。4、對(duì)于多數(shù)可編程邏輯器件,資源耗用太多會(huì)使器件功耗顯著上升。面積優(yōu)化的實(shí)現(xiàn)有多種方法,其中比較典型的是資源共享優(yōu)化。第15頁(yè)/共51頁(yè)7.3資源優(yōu)化7.3.1資源共享對(duì)于多位乘法器、快速進(jìn)位加法器等算術(shù)模塊,使用資源共享技術(shù)往往能大大優(yōu)化資源,現(xiàn)在某些高級(jí)的HDL綜合器,比如Quartus的SynplifyPro等,通過(guò)設(shè)置就能自動(dòng)識(shí)別設(shè)計(jì)中需要資源共享的邏輯結(jié)構(gòu),自動(dòng)進(jìn)行資源共享。對(duì)數(shù)據(jù)通路中耗費(fèi)邏輯資源比較多的模塊,通過(guò)選擇、復(fù)用的方式共享使用該模塊,以減少該模塊的使用個(gè)數(shù),達(dá)到減少資源利用,優(yōu)化面積的目的這也對(duì)應(yīng)HDL特定目標(biāo)的編碼風(fēng)格。第16頁(yè)/共51頁(yè)7.3資源優(yōu)化7.3.1資源共享并不是在任何情況下都能實(shí)現(xiàn)資源優(yōu)化的,圖中使用與門(mén)之類的模塊使用資源共享共享,通常是毫無(wú)意義的,有時(shí)會(huì)增加資源的使用(多路選擇器的面積顯然要大于與門(mén))第17頁(yè)/共51頁(yè)7.3資源優(yōu)化7.3.2邏輯優(yōu)化

使用優(yōu)化后的邏輯進(jìn)行設(shè)計(jì),可以明顯減少資源的占用。定義信號(hào)量,存在延時(shí)特性,因此,7-15相比7-16要耗費(fèi)更多的邏輯資源第18頁(yè)/共51頁(yè)串行優(yōu)化是指把原來(lái)耗用資源巨大、單時(shí)鐘周期內(nèi)完成的并行執(zhí)行的邏輯塊分割開(kāi)來(lái),提出相同的邏輯模塊(一般為組合邏輯塊),在時(shí)間上復(fù)用該邏輯塊,用多個(gè)時(shí)鐘周期完成相同的功能,其代價(jià)是工作速度大為降低。7.3資源優(yōu)化7.3.3串行化乘法累加器第19頁(yè)/共51頁(yè)7.3資源優(yōu)化7.3.3串行化乘法累加器第20頁(yè)/共51頁(yè)7.3.3串行化7.3資源優(yōu)化第21頁(yè)/共51頁(yè)7.4速度優(yōu)化

7.4.1流水線設(shè)計(jì)

工作原理:一個(gè)信號(hào)從輸入到輸出需要經(jīng)兩個(gè)寄存器(不考慮輸入寄存器),共需時(shí)間位T1+T2+2Treg(Treg為寄存器延時(shí)),時(shí)間約為T(mén)a。但是每隔T1時(shí)間,輸出寄存器就輸出一個(gè)結(jié)果,輸入寄存器輸入一個(gè)新的數(shù)據(jù)。這時(shí)兩個(gè)邏輯塊處理的不是一個(gè)信號(hào),資源被優(yōu)化利用了,而寄存器對(duì)信號(hào)數(shù)據(jù)做了暫存。對(duì)大多數(shù)設(shè)計(jì)來(lái)說(shuō),速度優(yōu)化比資源優(yōu)化更重要,需要優(yōu)先考慮。在設(shè)計(jì)中加入流水線,并不會(huì)減少原設(shè)計(jì)中的總延時(shí),有時(shí)甚至還會(huì)增加插入的寄存器的延時(shí)即信號(hào)同步的時(shí)間差,但卻可以提高總體的運(yùn)行速度??偤臅r(shí)Ta總耗時(shí)約T1,T1=Ta/2第22頁(yè)/共51頁(yè)7.4速度優(yōu)化

7.4.1流水線設(shè)計(jì)

第23頁(yè)/共51頁(yè)7.4速度優(yōu)化

7.4.1流水線設(shè)計(jì)

第24頁(yè)/共51頁(yè)7.4速度優(yōu)化

7.4.1流水線設(shè)計(jì)

第25頁(yè)/共51頁(yè)第26頁(yè)/共51頁(yè)7.4速度優(yōu)化

7.4.2關(guān)鍵路徑法關(guān)鍵路徑法:是指設(shè)計(jì)從輸入到輸出經(jīng)過(guò)的延時(shí)最長(zhǎng)的邏輯路徑優(yōu)化關(guān)鍵路徑是一種提高設(shè)計(jì)工作速度的有效方法。一般地,從輸入到輸出延時(shí)取決于信號(hào)所經(jīng)過(guò)的延時(shí)最大(或稱最長(zhǎng))路徑,而與其它延時(shí)小的路徑無(wú)關(guān)。減少該模塊的延時(shí),從輸入到輸出的總延時(shí)就能得到改善,在優(yōu)化設(shè)計(jì)的過(guò)程中關(guān)鍵路徑法可以反復(fù)使用直到不可能減少關(guān)鍵路徑延時(shí)為止,HDL綜合器及設(shè)計(jì)分析器通常都提供關(guān)鍵路徑的信息以便設(shè)計(jì)者改進(jìn)設(shè)計(jì),提高速度。圖中,Td1>Td2,Td1>Td3,所以關(guān)鍵路徑為延時(shí)Td1的模塊。第27頁(yè)/共51頁(yè)7.5仿真延時(shí)

在行為仿真中的兩類延時(shí)模型:固有延時(shí)和傳輸延時(shí)。功能仿真或行為仿真中的δ延時(shí)。時(shí)序仿真中的延時(shí)信息是對(duì)選定的FPGA或CPLD進(jìn)行適配后所得的時(shí)序仿真文件的信息。延時(shí)是VHDL仿真需要的重要特性設(shè)置,為設(shè)計(jì)而建立精確的延時(shí)模型,可以使用VHDL仿真器得到接近實(shí)際的精確結(jié)果,在FPGA開(kāi)發(fā)過(guò)程中,源文件一般不需要建立延時(shí)模型,因?yàn)镋DA軟件可以使用門(mén)級(jí)仿真器對(duì)選定的FPGA適配器所得的時(shí)序仿真文件進(jìn)行精確仿真。第28頁(yè)/共51頁(yè)7.5仿真延時(shí)7.5.1固有延時(shí)

固有延時(shí)模型的賦值語(yǔ)句中A的維持時(shí)間小于20ns

固有延時(shí)(InertialDelay)也稱為慣性延時(shí),是任何電子器件都存在的一種延時(shí)特性,固有延時(shí)的主要物理機(jī)制是分布電容效應(yīng)。在慣性延時(shí)模型中,器件的輸出都有一個(gè)固有的延時(shí),為了使器件對(duì)輸入信號(hào)的變化產(chǎn)生響應(yīng),就必須使信號(hào)變化后的維持時(shí)間足夠長(zhǎng),即信號(hào)的脈沖寬度必須大于器件的固有延時(shí)。例:z<=xXORy;表示xXORy的值在δ時(shí)間后才賦給z。例:z<=xXORyAFTER5ns;

表示此賦值電路的慣性延時(shí)為5ns,當(dāng)xXORy的值發(fā)生變化,經(jīng)過(guò)5ns后才賦給z,要求xXORy變化后的穩(wěn)定時(shí)間不能少于5ns。當(dāng)沒(méi)有指明固有延時(shí)量,在VHDL仿真器中,有一個(gè)默認(rèn)的固有延時(shí)量δ(仿真器的最小分辨時(shí)間),被稱為δ延時(shí)。大多數(shù)情況下,這一固有延時(shí)量近似地反映了實(shí)際器件的行為。第29頁(yè)/共51頁(yè)7.5仿真延時(shí)7.5.2傳輸延時(shí)

傳輸延時(shí)是信號(hào)傳輸時(shí)在器件和連線上的延時(shí)。傳輸延時(shí)與固有延時(shí)相比,其不同之處在于傳輸延時(shí)表達(dá)的是輸入與輸出之間的一種絕對(duì)延時(shí),不必考慮信號(hào)的持續(xù)時(shí)間,僅表示信號(hào)傳輸推遲一個(gè)時(shí)間段。注意:

雖然傳輸延時(shí)和固有延時(shí)的物理機(jī)制不一樣,但在行為仿真中,傳輸延時(shí)與固有延時(shí)造成的延時(shí)效應(yīng)是一樣的。在綜合過(guò)程中,綜合器將忽略AFTER后的所有延時(shí)設(shè)置,而對(duì)TRANSPORT語(yǔ)句也僅作普通賦值語(yǔ)句處理。例:B<=AAFTER20ns;例:B<=TRANSPORTAAFTER20ns;第30頁(yè)/共51頁(yè)7.5仿真延時(shí)7.5.3仿真

綜合器不支持延時(shí)語(yǔ)句,在綜合后的功能仿真中,仿真器好像僅對(duì)系統(tǒng)的邏輯行為進(jìn)行了模擬測(cè)定,而沒(méi)有把器件的延時(shí)特性考慮進(jìn)去,仿真器給出的結(jié)果僅是邏輯功能。按理說(shuō),功能仿真就是假設(shè)器件間的延遲時(shí)間為零的仿真,然而事實(shí)并非如此,由于無(wú)論是行為仿真還是功能仿真,都是利用計(jì)算機(jī)進(jìn)行軟件仿真,即使在并行語(yǔ)句的仿真執(zhí)行上也是有先后的,在零延時(shí)條件下,當(dāng)作為敏感量的輸入信號(hào)發(fā)生變化,并行語(yǔ)句執(zhí)行的次序無(wú)法確定,而不同的執(zhí)行次序會(huì)得出不同的結(jié)果,最后將導(dǎo)致錯(cuò)誤的仿真結(jié)果,這種錯(cuò)誤仿真的根本原因在零延時(shí)假設(shè)在客觀世界是不存在的。VHDL仿真器和綜合器將自動(dòng)為系統(tǒng)中的信號(hào)賦值配置一足夠小而又能滿足邏輯排序的延時(shí)量,即仿真軟件的最小分辯時(shí)間,這個(gè)延時(shí)量就稱為仿真(SimulationDelta),或稱延時(shí),從而使并行語(yǔ)句和順序語(yǔ)句中的并列賦值邏輯得以正確執(zhí)行。

1、在行為仿真、功能仿真乃至綜合中,引入延時(shí)是必需的。

2、仿真中,延時(shí)的引入由EDA工具自動(dòng)完成,無(wú)需設(shè)計(jì)者介入。第31頁(yè)/共51頁(yè)習(xí)題

第32頁(yè)/共51頁(yè)習(xí)題

第33頁(yè)/共51頁(yè)實(shí)驗(yàn)與設(shè)計(jì)7-14X4

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論