[工學(xué)]VHDL設(shè)計方法ppt課件_第1頁
[工學(xué)]VHDL設(shè)計方法ppt課件_第2頁
[工學(xué)]VHDL設(shè)計方法ppt課件_第3頁
[工學(xué)]VHDL設(shè)計方法ppt課件_第4頁
[工學(xué)]VHDL設(shè)計方法ppt課件_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 VHDL設(shè)計中的一些問題設(shè)計中的一些問題一、一、 VHDL源代碼的綜合源代碼的綜合n功能一樣但是編寫不同的代碼會產(chǎn)生不同功能一樣但是編寫不同的代碼會產(chǎn)生不同的綜合效果;的綜合效果;n不能夠依賴軟件工具去綜合一個編寫很差不能夠依賴軟件工具去綜合一個編寫很差的源代碼;的源代碼;n假設(shè)能很好了解所作設(shè)計的硬件構(gòu)造,那假設(shè)能很好了解所作設(shè)計的硬件構(gòu)造,那么會使設(shè)計有一個良好的開端。么會使設(shè)計有一個良好的開端。三個重要的方面三個重要的方面1. 思索硬件構(gòu)造思索硬件構(gòu)造編寫可以描畫硬件拓?fù)錁?gòu)造的代碼;編寫可以描畫硬件拓?fù)錁?gòu)造的代碼;不要編寫仿真模型;不要編寫仿真模型;2. 思索同步邏輯思索同步邏輯n同步

2、邏輯在綜合、測試、仿真和布線中同步邏輯在綜合、測試、仿真和布線中都比較方便;都比較方便;n異步邏輯需求人為操作及一些擴(kuò)展的仿異步邏輯需求人為操作及一些擴(kuò)展的仿真功能才干進(jìn)展驗(yàn)證。將異步邏輯劃真功能才干進(jìn)展驗(yàn)證。將異步邏輯劃分成獨(dú)立的塊單元來編譯。分成獨(dú)立的塊單元來編譯。?3. 思索思索RTL級描畫級描畫n用用RTL級的描畫意味著描畫:級的描畫意味著描畫:n 存放器的構(gòu)造;存放器的構(gòu)造;n 電路構(gòu)造;電路構(gòu)造;n 存放器之間的功能。存放器之間的功能。n由編譯器優(yōu)化存放器之間的邏輯,但不優(yōu)化存由編譯器優(yōu)化存放器之間的邏輯,但不優(yōu)化存放器的規(guī)劃。放器的規(guī)劃。IF語句的綜合語句的綜合nIF-ELSE語

3、句隱含了一個多路選擇器的硬件構(gòu)造。語句隱含了一個多路選擇器的硬件構(gòu)造。n例:例: IF (Aflag = 1) THENn OutData = A + B;n ELSEn OutDate = C + D;n END IF;多路選擇器的位置取決于多路選擇器的位置取決于IF-ELSE語句的構(gòu)造語句的構(gòu)造 IF (Aflag = 1) THEN Op1 = A; Op2 = B; ELSE Op1 = C; Op2 = D; END IF; OutData = Op1+Op2;假設(shè)假設(shè)IF語句不帶語句不帶ELSE,可以表示鎖存,可以表示鎖存nVHDL言語的定義要求信號在沒有被賦予新值言語的定義要求信

4、號在沒有被賦予新值前堅(jiān)持原來的值。前堅(jiān)持原來的值。n鎖存功能在硬件上實(shí)現(xiàn)了以上要求。鎖存功能在硬件上實(shí)現(xiàn)了以上要求。n例:例:LS373: PROCESS (ALE, ADBUS)n BEGINn IF (ALE =1) THENn ABUS = ADBUS;n END IF;n END PROCESS LS373;一個二輸入與門的設(shè)計一個二輸入與門的設(shè)計由于沒有由于沒有ELSE,綜合時會被默以為其他情況,綜合時會被默以為其他情況時:時:c = c; PROCESS (a, b) BEGIN IF (a =1 and b =1) THEN c = 1; END IF;END PROCESS;I

5、F-THEN-ELSIF語句語句nIF-THEN-ELSIF語句隱含了優(yōu)先級的關(guān)系,語句隱含了優(yōu)先級的關(guān)系,因此在電路設(shè)計中假設(shè)有優(yōu)先級的要求才運(yùn)用因此在電路設(shè)計中假設(shè)有優(yōu)先級的要求才運(yùn)用該語句;該語句;n假設(shè)在沒有優(yōu)先級設(shè)計要求的情況下運(yùn)用該語假設(shè)在沒有優(yōu)先級設(shè)計要求的情況下運(yùn)用該語句,那么綜合后的邏輯電路會比較復(fù)雜,速度句,那么綜合后的邏輯電路會比較復(fù)雜,速度較慢;較慢;n例:中斷優(yōu)先級控制器,例:中斷優(yōu)先級控制器,int0優(yōu)先級最高優(yōu)先級最高中斷優(yōu)先級控制器的實(shí)現(xiàn)中斷優(yōu)先級控制器的實(shí)現(xiàn) IF (int0 = 1) THEN active(0) = 1; ELSIF (int1 = 1)

6、THEN active(1) = 1; ELSIF (int2 = 1) THEN active(2) = 1; ELSE active(3) = 1; END IF;FOR-LOOP語句的綜合語句的綜合nFOR-LOOP語句首先進(jìn)展語句首先進(jìn)展“翻譯,然后再進(jìn)翻譯,然后再進(jìn)展綜合。展綜合。PROCESS (a, b) BEGIN FOR i IN 0 to 3 LOOP out(i) = a(i) AND b(3-i); END LOOP; END PROCESS; out(0) = a(0) AND b(3); out(1) = a(1) AND b(2); out(2) = a(2) A

7、ND b(1); out(3) = a(3) AND b(0);實(shí)現(xiàn)奇偶校驗(yàn)的例子實(shí)現(xiàn)奇偶校驗(yàn)的例子 PROCESS (data) VARIABLE sum: INTEGER; BEGIN sum := 0; FOR I IN 0 to 7 LOOP -數(shù)1的個數(shù) sum := data(i) + sum; END LOOP; odd_parity = sum mod 2; -校驗(yàn)奇偶性 END PROCESS;綜合后綜合后操作符對綜合結(jié)果的影響操作符對綜合結(jié)果的影響nVHDL編譯器對表達(dá)式從左至右進(jìn)展語法編譯器對表達(dá)式從左至右進(jìn)展語法分析;分析;n圓括號可以改動編譯的順序;圓括號可以改動編譯

8、的順序;n例例1:n ADD = A + B + C + D ; (1)n ADD = (A + B) + (C + D) ; (2) + A0 A1 A2 A3 B0 B1 B2 B3 + C0 C1 C2 C3 + D0 D1 D2 D3 綜合后結(jié)果:綜合后結(jié)果: ADD = A+B + C+D ;綜合后結(jié)果:綜合后結(jié)果: ADD = (A+B) + (C+D) ; + A0 A1 A2 A3 B0 B1 B2 B3 + + C0 C1 C2 C3 D0 D1 D2 D3 例例2: SUM = A*B + C*D + E + F + G; 綜合后結(jié)果:綜合后結(jié)果:改動順序或加括號來改動構(gòu)造

9、改動順序或加括號來改動構(gòu)造nSUM = E + F + G + C*D + A*B;nSUM = (A*B) +( C*D) +( E + F) + G);二、可綜合代碼的設(shè)計特點(diǎn)二、可綜合代碼的設(shè)計特點(diǎn)1. 比較綜合和仿真的結(jié)果比較綜合和仿真的結(jié)果VHDL言語是一種硬件描畫和仿真言語;言語是一種硬件描畫和仿真言語;一些仿真構(gòu)造在綜合器中不被支持;一些仿真構(gòu)造在綜合器中不被支持;2. 防止運(yùn)用防止運(yùn)用nWAIT FOR xx ns 語句;語句;nAFTER xx ns 語句;語句;n信號和變量的賦初值語句信號和變量的賦初值語句;3. 運(yùn)用運(yùn)用CASE和和IF_ELSE語句語句nIF_ELSE描

10、畫一個優(yōu)先級編碼的邏輯;描畫一個優(yōu)先級編碼的邏輯;nCASE語句描畫一種對稱平衡的行為;語句描畫一種對稱平衡的行為;n仿真結(jié)果一致仿真結(jié)果一致;n綜合出來的設(shè)計速度會有不同。綜合出來的設(shè)計速度會有不同。4. 遵照一定的編代碼規(guī)那么遵照一定的編代碼規(guī)那么n選擇運(yùn)用大小寫字母的規(guī)那么;選擇運(yùn)用大小寫字母的規(guī)那么;n文件名與實(shí)體名匹配;文件名與實(shí)體名匹配;n給程序添加標(biāo)號、注釋給程序添加標(biāo)號、注釋;n運(yùn)用代碼縮進(jìn)、空行、空格等;運(yùn)用代碼縮進(jìn)、空行、空格等;n建議運(yùn)用建議運(yùn)用std_logic類型;類型;5. 例子例子n設(shè)計實(shí)現(xiàn)一個設(shè)計實(shí)現(xiàn)一個2-4譯碼器譯碼器 led(3) led(2) led(1

11、) led(0) bcd(1) bcd(0) bcd (1) bcd(0)Led(3) led(2) led(1) led(0)0 00 0 0 10 1 0 0 1 01 00 1 0 01 1 1 0 0 0方法一方法一: 構(gòu)造描畫法構(gòu)造描畫法n基于元件例化和基于元件例化和GENERATE語句;語句;n建立層次構(gòu)造;建立層次構(gòu)造;n可用簡單的邏輯門和復(fù)雜的元件來描畫可用簡單的邏輯門和復(fù)雜的元件來描畫系統(tǒng);系統(tǒng);n互連經(jīng)過端口實(shí)現(xiàn)。互連經(jīng)過端口實(shí)現(xiàn)。 a b bcd1.0 d b a Inverter:Inv1 Inverter:Inv2 ANDGate:A1 ANDGate:A2 ANDG

12、ate:A3 ANDGate:A4 led30 a b d b a d b a d b a n調(diào)用兩個元件調(diào)用兩個元件: 與門與門ANDGate (調(diào)用調(diào)用4次次)n 非門非門Inverter (調(diào)用調(diào)用2次次)方法二方法二: 數(shù)據(jù)流描畫數(shù)據(jù)流描畫n采用并發(fā)代入語句實(shí)現(xiàn);采用并發(fā)代入語句實(shí)現(xiàn);n經(jīng)過輸入信號值的改動來激活代入語經(jīng)過輸入信號值的改動來激活代入語句。句。n采用并發(fā)代入語句;采用并發(fā)代入語句; bcd1.0 led3.0 led0 led1 led2 led3 方法三:行為描畫法方法三:行為描畫法n描畫的是電路的功能,而不是電路的構(gòu)描畫的是電路的功能,而不是電路的構(gòu)造;造;n采用采用

13、PROCESS和和CASE語句;語句; SEL1.0 DATA3.0 OUT MUX Mux0 bcd1.0 led3.0 Mux1 Mux2 Mux3 MUX MUX MUX SEL1.0 DATA3.0 OUT SEL1.0 DATA3.0 OUT SEL1.0 DATA3.0 OUT 三、三、FPGA中的一些設(shè)計方法中的一些設(shè)計方法n競爭和冒險景象競爭和冒險景象n去除和置位信號去除和置位信號n觸發(fā)器和鎖存器觸發(fā)器和鎖存器n同步設(shè)計同步設(shè)計n延時電路的產(chǎn)生延時電路的產(chǎn)生n多時鐘系統(tǒng)多時鐘系統(tǒng)1. 競爭和冒險競爭和冒險n信號在信號在FPGA中傳送會有不一樣延遲;中傳送會有不一樣延遲;n當(dāng)多個

14、輸入信號同時發(fā)生變化時,其組當(dāng)多個輸入信號同時發(fā)生變化時,其組合邏輯就能夠發(fā)生合邏輯就能夠發(fā)生“毛刺;毛刺;n毛刺會向下一級傳送;毛刺會向下一級傳送;n毛刺會影響電路的穩(wěn)定性。毛刺會影響電路的穩(wěn)定性?!懊痰睦用痰睦犹幚砻虇栴}的方法處理毛刺問題的方法n改動設(shè)計:比如采用格雷碼計數(shù)器替代改動設(shè)計:比如采用格雷碼計數(shù)器替代普通的二進(jìn)制計數(shù)器,由于格雷碼計數(shù)普通的二進(jìn)制計數(shù)器,由于格雷碼計數(shù)器的輸出每次只需一位跳變;器的輸出每次只需一位跳變;n采用同步電路:毛刺在時鐘的上升沿不采用同步電路:毛刺在時鐘的上升沿不能構(gòu)成有效的操作;能構(gòu)成有效的操作;n采用對毛刺不敏感的采用對毛刺不敏感的D觸發(fā)器

15、輸出信號;觸發(fā)器輸出信號;2. 去除和置位信號去除和置位信號n去除和置位信號對毛刺很敏感;去除和置位信號對毛刺很敏感;n有時可以運(yùn)用同步置位的方法來替代異有時可以運(yùn)用同步置位的方法來替代異步清零。步清零。3. 觸發(fā)器和鎖存器觸發(fā)器和鎖存器n觸發(fā)器在時鐘沿鎖存數(shù)據(jù);觸發(fā)器在時鐘沿鎖存數(shù)據(jù);n鎖存器是用電平來鎖存數(shù)據(jù);鎖存器是用電平來鎖存數(shù)據(jù);n建議盡量運(yùn)用觸發(fā)器。建議盡量運(yùn)用觸發(fā)器。鎖存器4. 同步設(shè)計同步設(shè)計n異步設(shè)計不是總能滿足建立和堅(jiān)持時間的異步設(shè)計不是總能滿足建立和堅(jiān)持時間的要求;要求;n異步設(shè)計經(jīng)常會將錯誤的數(shù)據(jù)鎖存到觸發(fā)異步設(shè)計經(jīng)常會將錯誤的數(shù)據(jù)鎖存到觸發(fā)器中;器中;n導(dǎo)致觸發(fā)器出現(xiàn)

16、亞穩(wěn)態(tài),不能識別導(dǎo)致觸發(fā)器出現(xiàn)亞穩(wěn)態(tài),不能識別1或或0;n盡量采用同步設(shè)計,以全局時鐘為基準(zhǔn)。盡量采用同步設(shè)計,以全局時鐘為基準(zhǔn)。FPGA中的時鐘樹中的時鐘樹FPGA中的時鐘樹中的時鐘樹n全局時鐘為規(guī)劃布線的延時參數(shù)提取、全局時鐘為規(guī)劃布線的延時參數(shù)提取、分析提供了基準(zhǔn);分析提供了基準(zhǔn);n假設(shè)不運(yùn)用時鐘樹的時鐘,那么延時數(shù)假設(shè)不運(yùn)用時鐘樹的時鐘,那么延時數(shù)據(jù)將不準(zhǔn)確;據(jù)將不準(zhǔn)確;n設(shè)計中應(yīng)留意以全局時鐘為參考。設(shè)計中應(yīng)留意以全局時鐘為參考。分頻器的例子不規(guī)范分頻器的例子不規(guī)范分頻器的例子正確分頻器的例子正確clkShift_reg5. 延時電路的產(chǎn)生延時電路的產(chǎn)生n有時候需求對信號進(jìn)展延時處置來順應(yīng)有時候需求對信號進(jìn)展延時處置來順應(yīng)外接端口的時序關(guān)系;外接端口的時序關(guān)系;n可綜合的延時方法有:可綜合的延時方法有:n 使信號經(jīng)過邏輯門如

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論