FPGA設計與VHDL實現(xiàn) 課件 第6-8章 VHDL基本語句、VHDL設計進階、VHDL有限狀態(tài)機設計_第1頁
FPGA設計與VHDL實現(xiàn) 課件 第6-8章 VHDL基本語句、VHDL設計進階、VHDL有限狀態(tài)機設計_第2頁
FPGA設計與VHDL實現(xiàn) 課件 第6-8章 VHDL基本語句、VHDL設計進階、VHDL有限狀態(tài)機設計_第3頁
FPGA設計與VHDL實現(xiàn) 課件 第6-8章 VHDL基本語句、VHDL設計進階、VHDL有限狀態(tài)機設計_第4頁
FPGA設計與VHDL實現(xiàn) 課件 第6-8章 VHDL基本語句、VHDL設計進階、VHDL有限狀態(tài)機設計_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

FPGA設計與VHDL實現(xiàn)VHDL基本語句第六章英特爾FPGA中國創(chuàng)新中心系列叢書普通高等教育”十三五”規(guī)劃教材01順序語句順序語句賦值語句賦值語句根據其應用的場合可分為兩種類型:一種是應用于進程和子程序內部的賦值語句,這時它是一種順序語句,稱為順序賦值語句;另一種是應用于進程和子程序外部的信號賦值語句,這時它是一種并行語句,因此稱為并行信號賦值語句。每種賦值語句都由三個部分組成,即賦值目標、賦值符號和賦值源。1順序語句賦值語句賦值目標是賦值的受體,它的基本元素只能是信號或變量,但表現(xiàn)形式可以有多種,如文字、標識符、數(shù)組等。1順序語句IF語句與其他軟件編程語言(如C語言)相類似,VHDL中的IF語句也是一種具有條件控制功能的語句,它根據給出的條件來決定需要執(zhí)行程序中的哪些語句。2順序語句IF語句IF語句的格式有如下4種。1.非完整性IF語句當程序執(zhí)行到IF語句時,如果IF語句中的條件成立,程序執(zhí)行T印3-N后面的順序語句;否則程序將跳出IF語句,轉而去執(zhí)行其他語句。實際上,這種形式的IF語句是一種非完整IF語句。2順序語句IF語句2.二重選擇的IF語句首先判斷條件是否成立,如果IF語句中的條件成立,那么程序會執(zhí)行順序語句I;否則程序執(zhí)行順序語句2。3.具有多重選擇的IF語句在VHDL中,具有多重選擇的IF語句常用來描述具有多個選擇分支的邏輯功能電路。2順序語句IF語句4.IF語句的嵌套IF語句可以嵌套,多用于描述具有復雜控制功能的邏輯電路。2順序語句CASE語句在VHDL中,CASE語句是另外一種形式的條件控制語句,它與1F語句一樣可以用來描述具有控制功能的數(shù)字電路。一般來說,CASE語句是根據表達式的值從不同的順序處理語句序列中選取其中的一組語句來進行操作,它常用來描述總線、編碼器、譯碼器或者數(shù)據選擇器等數(shù)字邏輯電路。3順序語句CASE語句當執(zhí)行到CASE語句時,如果條件表達式的值等于選擇值I,程序就執(zhí)行順序語句1;如果條件表達式的值等于選擇值2,程序就執(zhí)行順序語句2;依次類推,如果條件表達式的值與前面的n-1個選擇值都不同,則程序就執(zhí)行"WHENOTHERS"語句中的“順序語句n"3順序語句LOOP語句LOOP語句與其他高級語言中的循環(huán)語句相似,它可以使所包含的一組順序語句被循環(huán)執(zhí)行,其執(zhí)行次數(shù)可由設定的循環(huán)參數(shù)決定。LOOP語句有三種格式。4順序語句LOOP語句1.簡單LOOP語句2.FORLOOP語句3.WHILELOOP語句4順序語句NEXT與EXIT語句1.NEXT語句NEXT語句主要用于在LOOP語句中進行轉向控制。其格式分以下三種。(1)無條件終止當前循環(huán),跳回到本次循環(huán)LOOP語句開始處,開始下次循環(huán)。(2)無條件終止當前1盾環(huán),跳轉到指定標號的LOOP語句開始處,重新執(zhí)行循環(huán)操作。(3)當條件表達式的值為TRUE,則執(zhí)行NEXT語句,進入跳轉操作,否則繼續(xù)向下執(zhí)行。5順序語句NEXT與EXIT語句2.EXIT語句EXIT語句與NEXT語句類似,也是一種循環(huán)控制語句,用于在LOOP語句中控制循環(huán)轉向。502并行語句并行語句并行信號賦值語句并行信號賦值語句是應用于結構體中進程和子程序之外的一種基本信號賦值語句,它與信號賦值語句的語法結構是完全相同的。作為一種并行描述語句,結構體中的多條并行信號賦值語句是并行執(zhí)行的,它們的執(zhí)行順序與書寫順序無關。1并行語句并行信號賦值語句并行信號賦值語句有3種形式:簡單信號賦值語句;條件信號賦值語句;選擇信號賦值語句。1并行語句進程語句在VHDL中,進程語句(PROCESS)是使用最為頻繁、應用最為廣泛的一種語句,因此學握進程語句對于編寫VHDL程序來說十分重要。一個結構體可以包含多個進程語句。2并行語句塊語句塊(BLOCK)是VHDL程序中又一種常用的子結構形式,可看成是結構體的子模塊。采一用塊語句描述系統(tǒng),是一種結構化的描述方法。塊語句可以使結構體層次分明,結構清晰。3并行語句塊語句塊語句具有如下特點:1.塊內的語句是并發(fā)執(zhí)行的,其綜合結果與語句的書寫順序無關。2.在結構體內,可以有多個塊結構,塊在結構體內是并發(fā)運行的。3并行語句元件例化語句在VHDL程序中可以直接將已經設計好的電路模塊,封裝為“元件”,然后在新的設計實體中調用該元件,構成層次化的設計。元件可以是設計好的VHDL源文件,也可以是用別的硬件描述語言,如Verilog設計的模塊,還可以是IP核、LPM宏功能模塊、EDA設計軟件中的嵌入式核等功能單元。元件的定義與調用必須用元件例化語句完成。元件例化語句由元件定義語句和元件例化(或元件調用)兩部分組成。4并行語句生成語句GENERATE生成語句是一種可以建立重復結構或者是在模塊的多個表示形式之間進行選擇的語句。由于生成語句可以用來產生或復制多個相同的結構,因此使用生成語句可避免重復書寫多段相同的VHDL程序。生成語句的格式有如下兩種形式:5并行語句生成語句1.FORGENERATE語句2.IFGENERATE語句IFGENERATE語句與1F語句的區(qū)別在于,IFGENERATE語句沒有類似于1F語句的ELSE或ELSIF分支語句。5并行語句并行過程調用語句當在進程內部調用過程語句時,調用語句相當于是一種順序語句;當在結構體的進程之外調用過程時,它作為并行語句的形式出現(xiàn)。作為并行過程調用語句,在結構體中它們是并行執(zhí)行的,其執(zhí)行順序與書寫順序無關。并行過程調用語句的功能等效于包含了同一個過程調用語句的進程。603屬性說明與定義語句屬性說明與定義語句數(shù)據類型屬性數(shù)據類型屬性如下:T'BASE-數(shù)據類型T的基本類型。T'LEFT-左限值。T'RIGHT-右限值。THIGH—上限值。T'LOW-下限值。1屬性說明與定義語句數(shù)組屬性數(shù)組屬性如下:A'LEFT一數(shù)組A的左邊界。A'RIGHT-—數(shù)組A的右邊界。A'HIGH上邊界。A'LOW-—下邊界。A'RANGE—范圍。2屬性說明與定義語句信號屬性signal'EVENT:如果在當前極小的一段時間間隔內,siganl上發(fā)生了一個事件,則函數(shù)返回真"(TRUE),否則就返回“假"(FALSE)。signal'STABLE[(T)]:T時間內是否發(fā)生事件(發(fā)生為FALSE,不發(fā)生為TRUE)。signal'ACTIVE:若在當前仿真周期中,信號siganl上有一個活躍(任何事務),則signal'ACTIVE返回“真“,否則返回“假“。3屬性說明與定義語句信號屬性信號類屬性中最常用的是EVENT屬性,'EVENT屬性的值為布爾型,如果有事件發(fā)生在該屬性所附著的信號上(即信號有變化),則其取值為TRUE,否則為FALSE。3屬性說明與定義語句信號屬性仿真時,如果要嚴格地表示時鐘的上升沿(即從0到1的變化),而排除x-1等狀態(tài)變化。3感謝觀看,再見!FPGA設計與VHDL實現(xiàn)英特爾FPGA中國創(chuàng)新中心系列叢書普通高等教育”十三五”規(guī)劃教材FPGA設計與VHDL實現(xiàn)VHDL設計進階第七章英特爾FPGA中國創(chuàng)新中心系列叢書普通高等教育”十三五”規(guī)劃教材01行為描述行為描述所謂行為描述,就是對設計實體的數(shù)學模型的描述,其抽象程度遠高于結構描述方式。行為描述類似于高級縮程語言,當描述一個設計實體的行為時,無須知道具體電路的結構,只需要描述清楚輸入與輸出信號的行為,而無須花費精力關注設計結構的具體實現(xiàn)。行為描述采用行為描述方式時應注意下面幾點:用行為描述方式設計電路,可以降低設計難度。行為描述只需表示輸入與輸出之間的關系,不需要包含任何結構方面的信息。設計者只需寫出源程序,而電路的實現(xiàn)由EDA軟件自動完成,實現(xiàn)電路的優(yōu)化程度,往往取決于綜合軟件的技術水平和器件的支持能力。在電路的規(guī)模較大或者需要描述復雜的邏輯關系時,應首先考慮用行為描述方式進行設計,如果設計的結果不能滿足資源占有率的要求,則應改變描述方式。02數(shù)據流描述數(shù)據流描述用數(shù)據流方式設計電路與用傳統(tǒng)的邏輯方程設計電路很相似。顯見,f=ab+cd和f<=(aANDb)OR(cANDd)是很相似的。它們的差別僅在于描述邏輯運算的邏輯符號及表達方式略有不同。數(shù)據流描述亦表示行為,但含有結構信息,如進程間的通信等,通常用并行語句進行描述。數(shù)據流描述設計中只要有了布爾代數(shù)表達式就很容易將它轉換為VHDL的數(shù)據流表達式。轉換方法是用VHDL中的邏輯運算符置換布爾邏輯運算符即可。例如,用OR置換"+",用"<="置換"="。103結構描述數(shù)據流描述用結構描述設計1位全加器首先定義兩種元件:半加器和2輸入或門,然后一通過調用這兩種元件(元件例化)構成1位全加器,再調用1位全加器進步構成4位加法器和8位加法器。1.半加器設計2.1位全加器設計104三態(tài)邏輯設計三態(tài)邏輯設計在數(shù)字系統(tǒng)中,經常要用到三態(tài)邏輯電路,如果一個I/0引腳既要作為輸入,同時要作為輸出,則必然需要用到三態(tài)門。05分頻器設計分頻器設計在實際應用中,我們經常會遇到這樣的問題,需要進行奇數(shù)次分頻,同時又要得到占空比是50%的方波波形。如果是偶數(shù)次分頻,得到占空比是50%的方波波形并不困難,比如進行2N次分頻,只需在計數(shù)到N-1C從0開始計)時,波形翻轉即可;或者在最后一級加一個2分頻器也可實現(xiàn)。如果是奇數(shù)次分頻,可采用如下方法:用兩個計數(shù)器,一個由輸入時鐘上升沿觸發(fā),另個由輸入時鐘下降沿觸發(fā),最后將兩個計數(shù)器的輸出相或,即可得到占空比為50%的方波波形。占空比為50%的奇數(shù)分頻1分頻器設計半整數(shù)分頻器的設計思想是:實現(xiàn)2.5分頻,可先設計一個模3計數(shù)器,再做一個脈沖扣除電路,加在模3計數(shù)器之后,每來3個脈沖就扣除半個脈沖,即可實現(xiàn)分頻系數(shù)為2.5的半整數(shù)分頻。半整數(shù)分頻2分頻器設計數(shù)控分頻器的功能就是當輸入端給定不同輸入數(shù)據時,對輸入的時鐘信號有不同的分頻比,數(shù)控分頻器要求信號發(fā)生器輸出的正負脈寬是可調的,用戶可以通過預置一特定數(shù)值來獲得所需要的高電平和低電平待續(xù)時間以及占空比。這種信號發(fā)生器在實際中具有很重要的用途,如PWM(PulseWidthModulation,脈寬調制)的設計等。數(shù)控分頻器306用鎖相環(huán)IP核實現(xiàn)倍頻和相移用鎖相環(huán)IP核實現(xiàn)倍頻和相移1.altpll鎖相環(huán)IP模塊多數(shù)FPGA內部都集成有鎖相環(huán)(PhaseLockedLoop,PLL),用以完成時鐘的高精度、低抖動的倍頻、分頻、占空比調整、移相等,其精度般在ps的數(shù)量級。2.altpll模塊的定制3.altpll模塊的例化4.編譯和仿真占空比為50%的奇數(shù)分頻1感謝觀看,再見!FPGA設計與VHDL實現(xiàn)英特爾FPGA中國創(chuàng)新中心系列叢書普通高等教育”十三五”規(guī)劃教材FPGA設計與VHDL實現(xiàn)VHDL有限狀態(tài)機設計第八章英特爾FPGA中國創(chuàng)新中心系列叢書普通高等教育”十三五”規(guī)劃教材01有限狀態(tài)機有限狀態(tài)機有限狀態(tài)機的描述根據輸出信號產生方法的不同,狀態(tài)機可以分為兩類:米里型(Mealy)和摩爾型(Moore)。摩爾型狀態(tài)機的輸出只是當前狀態(tài)的函數(shù),米里型狀態(tài)機的輸出則是當前狀態(tài)和當前輸入的函數(shù)。米里型狀態(tài)機的輸出是在輸入變化后立即變化的,不依賴時鐘信號的同步,摩爾型狀態(tài)機的輸入發(fā)生變化時還需要等待時鐘的到來,必須等狀態(tài)發(fā)生變化時才導致輸出的變化,因此比米里型狀態(tài)機要多等待個時鐘周期。1有限狀態(tài)機有限狀態(tài)機的描述實用的狀態(tài)機一般都設計為同步時序方式,它在時鐘信號的觸發(fā)下,完成各個狀態(tài)之間的轉換,并產生相應的輸出。狀態(tài)機有三種表示方法:狀態(tài)圖(StateDiagram)、狀態(tài)表(StateTable)和流程圖,這三種表示方法是等價的,相互之間可以轉換。1有限狀態(tài)機枚舉數(shù)據類型計數(shù)器是一種較為特殊的狀態(tài)機,其各個狀態(tài)的編碼一般是設定的,或者稱為直接編碼形式。在VHDL中,為了便于閱讀、編譯和優(yōu)化,可采用文字符號來表征狀態(tài)機中的狀態(tài),將狀態(tài)的數(shù)據類型定義為枚舉類型。202有限狀態(tài)機的描述方式有限狀態(tài)機的描述方式三進程表述方式"101"序列檢測器的狀態(tài)轉換圖,共有4個狀態(tài):s0、s1、s2、s3,分別用幾種方式對其描述。首先介紹三進程描述方式。1有限狀態(tài)機的描述方式三進程表述方式1有限狀態(tài)機的描述方式三進程表述方式1有限狀態(tài)機的描述方式三進程表述方式1有限狀態(tài)機的描述方式雙進程表述方式2有限狀態(tài)機的描述方式雙進程表述方式2有限狀態(tài)機的描述方式雙進程表述方式2有限狀態(tài)機的描述方式雙進程表述方式2有限狀態(tài)機的描述方式單進程表述方式也可以采用單進程描述方式,將有限狀態(tài)機的現(xiàn)態(tài)、次態(tài)和輸出邏輯(CS+NS+OL)放在一個進程中進行描述。3有限狀態(tài)機的描述方式單進程表述方式303狀態(tài)編碼狀態(tài)編碼常用的編碼方式常用的編碼方式有順序編碼、格雷編碼和一位熱碼編碼等。采用One-Hot編碼,雖然多用了觸發(fā)器,但可以有效節(jié)省和簡化譯碼電路。對于FPGA器件來說,采用1位熱碼編碼可以有效提高電路的速度和可靠性,也有利于提高器件資源的利用率。因此,對于FPGA器件,建議采用該編碼方式。1狀態(tài)編碼用ATTRIBUTE指定編碼方式可以采用ATTRIBUTE語句來指定編碼方式,比如下面的語句使用ATTRIBUTE語句將state信號的編碼方式定義為gray方式。采用ATTRIBUTE語句定義的編碼方式包括:2狀態(tài)編碼用ATTRIBUTE指定編碼方式多數(shù)的綜合軟件可以設置編碼方式,如在QuartusPrime軟件中,選擇菜單Assignments---Settings,在出現(xiàn)的頁面的Category欄中選CompilerSettings選項,單擊AdvancedSettings(Synthesis)..按鈕,在出現(xiàn)的對話框的StateMachineProcessing欄中選擇需要的編碼方式,可選的編碼方式有Auto、Gray、Johnson、MinimalBits、One-Hot、Sequential、User-Encoded等幾種。2狀態(tài)編碼用常量進行編碼在采用符號化的狀態(tài)定義的狀態(tài)機設計中,綜合器在綜合時,會自動為每個狀態(tài)進行編碼,為每個狀態(tài)選擇一組二進制碼字。例8.10采用One-Hot編碼方式對例8.5的"101"序列檢側器進行了改寫,程序中采用了常數(shù)定義的形式直接對sO~s3四個狀態(tài)做了One-Hot編碼。3狀態(tài)編碼用常量進行編碼3狀態(tài)編碼用常量進行編碼304有限狀態(tài)機設計要點有限狀態(tài)機設計要點起始狀態(tài)的選擇和復位1.起始狀態(tài)的選擇起始狀態(tài)是指電路復位后所處的狀態(tài),選擇一個合理的起始狀態(tài)將使整個系統(tǒng)簡潔、高效。狀態(tài)機般都應設計為同步方式,并由一個時鐘信號來觸發(fā)。實用的狀態(tài)機都應該設計為由唯一時鐘邊沿觸發(fā)的同步運行方式。時鐘信號和復

溫馨提示

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

評論

0/150

提交評論