可編程邏輯器件(EDA):第3章 VHDL設計初步-ST_第1頁
可編程邏輯器件(EDA):第3章 VHDL設計初步-ST_第2頁
可編程邏輯器件(EDA):第3章 VHDL設計初步-ST_第3頁
可編程邏輯器件(EDA):第3章 VHDL設計初步-ST_第4頁
可編程邏輯器件(EDA):第3章 VHDL設計初步-ST_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、EDA技術實用教程技術實用教程第3章 VHDL設計初步 13 VHDL3 VHDL設計初步設計初步 本章內(nèi)容:本章內(nèi)容:典型的電路實例典型的電路實例 VHDL語言描述語言描述 熟悉電路與熟悉電路與VHDL之間的映射關系之間的映射關系 了解了解VHDL的基本結構、特點及設計方法的基本結構、特點及設計方法23.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.1 2選選1多路選擇器及其多路選擇器及其VHDL描述描述1 33.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.1 2選選1多路選擇器及其多路選擇器及其VHDL描述描述1 43.1 3.1 組合電路的組合電

2、路的VHDLVHDL描述描述 3.1.1 2選選1多路選擇器及其多路選擇器及其VHDL描述描述1 53.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 典型的典型的VHDL語言描述組成:語言描述組成:1.實體描述:實體描述:ENTITY END ENTITY描述電路器件外部情況及端口性質(信號方向及數(shù)據(jù)類型)描述電路器件外部情況及端口性質(信號方向及數(shù)據(jù)類型)2. 結構體描述:結構體描述:ARCHITECTURE END ARCHITECTURE 描述電路器件的內(nèi)部邏輯功能與電路結構描述電路器件的內(nèi)部邏輯功能與電路結構6既定的電路功能既定的電路功能 對應的電路結構不具有唯一性對應的電

3、路結構不具有唯一性VHDL結構體語句分為順序語句和并行語句,其中并行語結構體語句分為順序語句和并行語句,其中并行語句是同時執(zhí)行的句是同時執(zhí)行的3.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.1 2選選1多路選擇器及其多路選擇器及其VHDL描述描述1 1. 實體表達實體表達ENTITY、IS、PORT、END ENTITY都是實體關鍵詞,都是實體關鍵詞,不可缺少,關鍵詞不區(qū)分大小不可缺少,關鍵詞不區(qū)分大小73.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 2. 實體名實體名 e_name是實體名(標識符),由設計者自定,一般是實體名(標識符),由設計者自定,一般

4、根據(jù)相應電路功能來確定根據(jù)相應電路功能來確定counter4b 4位二進制計數(shù)器位二進制計數(shù)器83.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3. 端口語句和端口信號名端口語句和端口信號名4. 端口模式端口模式(1) IN:輸入端口:輸入端口(2) OUT:輸出端口:輸出端口(3) INOUT:雙向端口:雙向端口(4) BUFFER:緩沖端口:緩沖端口PORT()引導,語句結尾加分號()引導,語句結尾加分號9端口模式符號圖端口模式符號圖 INOUTBUFFERINOUT10INOUT 和 BUFFER 的區(qū)別: BUFFER回讀的信號不是由外部輸入的,而是由內(nèi)部產(chǎn)生向外輸出的(

5、不可更改);而INOUT讀取的信號是外部的。 (BUFFER可以用做一個數(shù)據(jù)緩存器,不做I/O輸出端口)113.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 5. 數(shù)據(jù)類型數(shù)據(jù)類型 VHDL規(guī)定:任何一種數(shù)據(jù)對象的應用都必須嚴格限定其規(guī)定:任何一種數(shù)據(jù)對象的應用都必須嚴格限定其取值范圍與數(shù)值類型,因此必須先定義要使用的數(shù)據(jù)類型取值范圍與數(shù)值類型,因此必須先定義要使用的數(shù)據(jù)類型數(shù)據(jù)類型包括:數(shù)據(jù)類型包括:INTEGER、BOOLEAN、STD_LOGIC和和BIT注意:注意:type BOOLEAN is (FALSE, TRUE);type BIT is (0, 1),必須加單引號

6、必須加單引號,否則按照,否則按照INTEGER處理;處理;BIT是一個邏輯型的數(shù)據(jù)類型,只可能是是一個邏輯型的數(shù)據(jù)類型,只可能是(0, 1)兩兩種狀態(tài),可參與邏輯運算種狀態(tài),可參與邏輯運算123.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 5. 數(shù)據(jù)類型數(shù)據(jù)類型 注意(續(xù)):注意(續(xù)):STD_LOGIC符合標準符合標準IEEE STD1164,具有,具有9種不同的種不同的值:值:00;11;Z高阻;高阻;W弱信號不定;弱信號不定;L弱信號弱信號0;H弱信號弱信號1;在使用該數(shù)據(jù)類型時,在程序中必須寫出庫說明語句和使在使用該數(shù)據(jù)類型時,在程序中必須寫出庫說明語句和使用包集合的說明

7、語句用包集合的說明語句133.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 6. 結構體表達結構體表達 arch_name是結構體名(標識符),是結構體名(標識符), ARCHITECTURE、OF、IS、BEGIN、END ARCHITECTURE都是結構關鍵詞都是結構關鍵詞說明語句非必需,用以定義數(shù)據(jù)對象、類型及元件調(diào)用說明語句非必需,用以定義數(shù)據(jù)對象、類型及元件調(diào)用功能描述語句用以描述電路功能,是必需部分功能描述語句用以描述電路功能,是必需部分143.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 7. 賦值符號和數(shù)據(jù)比較符號賦值符號和數(shù)據(jù)比較符號 8. WHEN_

8、ELSE條件信號賦值語句條件信號賦值語句 賦值符賦值符“=”兩邊信號數(shù)據(jù)類型要一致兩邊信號數(shù)據(jù)類型要一致條件賦值語句在結構體中(進程之外)是一種并行語句條件賦值語句在結構體中(進程之外)是一種并行語句條件賦值語句的第一子句具有最高優(yōu)先級條件賦值語句的第一子句具有最高優(yōu)先級153.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 9關鍵字(詞)關鍵字(詞) 10標識符(端口名、實體名、結構體名等)標識符(端口名、實體名、結構體名等) 11規(guī)范的程序書寫格式規(guī)范的程序書寫格式 12文件取名和存盤文件取名和存盤關鍵字不用用來作標識符,不區(qū)分大小寫關鍵字不用用來作標識符,不區(qū)分大小寫注意標識符

9、的命名規(guī)則:注意標識符的命名規(guī)則:不能用數(shù)字、數(shù)字起頭的文不能用數(shù)字、數(shù)字起頭的文字或者中文表述字或者中文表述分層、對齊分層、對齊文件擴展名:文件擴展名:.vhd,需要存放于建立的工作文件夾中,需要存放于建立的工作文件夾中Quartus II規(guī)定程序名須與該程序的實體(模塊)名一規(guī)定程序名須與該程序的實體(模塊)名一致致16標識符命名的具體規(guī)則:標識符命名的具體規(guī)則:1)有效字符:包括)有效字符:包括26個大小寫英文字母、數(shù)字個大小寫英文字母、數(shù)字09以及以及下劃線下劃線”_”2)第一個字符必需是英文字母)第一個字符必需是英文字母3)最后一個字符不能是下劃線)最后一個字符不能是下劃線”_”(不

10、能以下劃線結尾),(不能以下劃線結尾),標識符中不允許有兩個連續(xù)的下劃線標識符中不允許有兩個連續(xù)的下劃線”_”4)標識符中的英語字母不分大小寫。例如:信號)標識符中的英語字母不分大小寫。例如:信號AB、ab表示同一個信號表示同一個信號5)標識符不能與)標識符不能與VHDL中的保留字同名,如中的保留字同名,如return、entity、begin等等17my_counter Decoder_1 FFT Sig_N Not_Ack State0 entity1_Decoder_1 2FFT Sig_#N Not-Ack ALL_RST_ data_BUS Return entity合法標識符合法標

11、識符不合法標識符不合法標識符183.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.2 2選選1多路選多路選擇器及其擇器及其VHDL描述描述2 193.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.2 2選選1多路選擇器及其多路選擇器及其VHDL描述描述2 1. 邏輯操作符邏輯操作符 VHDL直接用對應的英文來表達邏輯操作符號,支持直接用對應的英文來表達邏輯操作符號,支持BIT、BOOLEAN和和STD_LOGIC三種數(shù)據(jù)類型三種數(shù)據(jù)類型20TYPE std_logic IS ( U,-Uninitialized X,-Forcing Unknown 0,

12、-Forcing 0 1,-Forcing 1 Z,-High Impedance W,-Weak Unknown L,-Weak 0 H,-Weak l -,-Dont care );TYPE BOOLEAN IS(FALSE,TRUE);TYPE BIT IS (0,1);2. 標準邏輯位數(shù)據(jù)類型標準邏輯位數(shù)據(jù)類型STD_LOGIC 21 一般而言在設計中會使用到的仍是0與1兩種狀態(tài),而在雙向的bus上會使用到Z 在某些設計中為減少邏輯門的使用,可能會用到- U及X,大多出現(xiàn)在simulation的輸出中 W、L及H則很少使用到,且很少出現(xiàn)注意:在std_logic的定義中,所有英文字母構

13、成的數(shù)據(jù)類型,例如X、U或Z等都是用大寫的英文字母223.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3. 設計庫和標準程序包設計庫和標準程序包 LIBRARY、USE和和ALL是關鍵詞是關鍵詞VHDL默認標準庫默認標準庫STD和工作庫和工作庫WORK是打開的是打開的234. 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 數(shù)據(jù)對象包括三類:信號、變量和常量數(shù)據(jù)對象包括三類:信號、變量和常量Signal是定義某標識符為信號的關鍵詞是定義某標識符為信號的關鍵詞所有端口的數(shù)據(jù)對象默認為信號所有端口的數(shù)據(jù)對象默認為信號signal243.1 3.1 組合電路的組合電路的VHDLVHDL描述描述

14、3.1.3 2選選1多路選擇器及其多路選擇器及其VHDL描述描述3 253.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.3 2選選1多路選擇器及其多路選擇器及其VHDL描述描述3 1. 條件語句條件語句 IF語句必須以語句語句必須以語句“END IF;”結束結束IF語句屬于順序語句,根據(jù)語句排列順序執(zhí)行語句屬于順序語句,根據(jù)語句排列順序執(zhí)行IF 條件條件 THEN ;ELSE ;END IF;263.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.3 2選選1多路選擇器及其多路選擇器及其VHDL描述描述3 2. 進程語句和順序語句進程語句和順序語句 格式

15、:格式:PROCESSEND PROCESS由由PROCESS 引導的語句成為進程語句引導的語句成為進程語句PROCESS是進程的關鍵詞是進程的關鍵詞PROCESS旁括號中的是進程的敏感信號表旁括號中的是進程的敏感信號表PROCESS進程在敏感信號發(fā)生變化時被激活進程在敏感信號發(fā)生變化時被激活一個結構體中可以包含任意個進程語句;進程語句之間是并行語句,其內(nèi)部均為順序語句 VHDL中所有順序描述語句都必須放在進程語句中273.1 3.1 組合電路的組合電路的VHDLVHDL描述描述 3.1.4 半加器及其半加器及其VHDL的描述的描述3.1.5 1位二進制全加器及其位二進制全加器及其VHDL描述

16、描述3.1.6 例化語句例化語句使用新課件使用新課件 283.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述描述 293.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述之描述之VHDL語言知識語言知識 1. 上升沿檢測表達式和信號屬性函數(shù)上升沿檢測表達式和信號屬性函數(shù) EVENT CLKEVENT AND CLK=1 CLK標識符在一個極小的時間段內(nèi)狀態(tài)發(fā)生改變,標識符在一個極小的時間段內(nèi)狀態(tài)發(fā)生改變,并且改變后的狀態(tài)為高電平并且改變后的狀態(tài)為高電平1 一般作為上升沿測試

17、語句使用一般作為上升沿測試語句使用 CLK上升沿觸發(fā)事件上升沿觸發(fā)事件303.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述之描述之VHDL語言知識語言知識 2. 不完整條件語句與時序電路不完整條件語句與時序電路 31在在VHDL綜合器中:綜合器中:1)進程)進程PROCESS將被綜合為真實電路,不論是否被激活將被綜合為真實電路,不論是否被激活2)在當前實例中,如果)在當前實例中,如果IF語句的條件表達式為語句的條件表達式為TRUE,則執(zhí)行,則執(zhí)行Q1 = D語句,否則跳過該賦值語句,即使輸入語句,否則跳過該賦值語句,即使輸入D發(fā)生

18、變化發(fā)生變化3)因此,該電路必須存在存儲元件)因此,該電路必須存在存儲元件/時序元件來保存時序元件來保存Q1數(shù)值數(shù)值3.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.1 D觸發(fā)器的觸發(fā)器的VHDL描述之描述之VHDL語言知識語言知識 2. 不完整條件語句與時序電路不完整條件語句與時序電路 完整的條件語句只能構成組合邏輯電路完整的條件語句只能構成組合邏輯電路不完整的條件語句是不完整的條件語句是VHDL描述時序電路的重要途徑描述時序電路的重要途徑323.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 33不必要的(時不必要的(時序)元件浪費序)元件浪費

19、了邏輯資源,了邏輯資源,降低了電路的降低了電路的工作速度,影工作速度,影響了電路的可響了電路的可靠性靠性3.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.2 VHDL實現(xiàn)時序電路的不同表述實現(xiàn)時序電路的不同表述 STD_LOGIC有有9種狀態(tài)種狀態(tài) 理論上,上述語句不能完全保證理論上,上述語句不能完全保證CLK是上升沿跳變是上升沿跳變?nèi)欢?,然而,對于大多?shù)綜合器,并不關注信號的對于大多數(shù)綜合器,并不關注信號的STD_LOGIC數(shù)數(shù)據(jù)類型據(jù)類型34LAST_VALUE屬于信號屬性函數(shù),表示最近一次事件發(fā)屬于信號屬性函數(shù),表示最近一次事件發(fā)生前的值生前的值3.2 3.2

20、 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.2 VHDL實現(xiàn)時序電路的不同表述實現(xiàn)時序電路的不同表述 353.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.2 VHDL實現(xiàn)時序電路的不同表述實現(xiàn)時序電路的不同表述 36 VHDL要求,當進程語句中使用要求,當進程語句中使用WAIT語句后,不必列語句后,不必列出敏感信號出敏感信號 D觸發(fā)器可以不使用觸發(fā)器可以不使用IF語句實現(xiàn)語句實現(xiàn) 引入時序電路結構不局限于引入時序電路結構不局限于IF語句語句3.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.2 VHDL實現(xiàn)時序電路的不

21、同表述實現(xiàn)時序電路的不同表述 37原則上,進程的敏感信號原則上,進程的敏感信號表中必須列出所有可能導表中必須列出所有可能導致本進程啟動的輸入信號致本進程啟動的輸入信號3.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.3 異步時序電路設計異步時序電路設計 38構成時序電路的進程稱為時鐘進程(構成時序電路的進程稱為時鐘進程(PRO1、PRO2)PRO1的賦值信號的賦值信號Q1是是PRO2的敏感信號及時鐘信號的敏感信號及時鐘信號PRO1總是先于總是先于PRO2被啟動被啟動異步時序電路異步時序電路3.2 3.2 基本時序電路的基本時序電路的VHDLVHDL描述描述 3.2.

22、3 異步時序電路設計異步時序電路設計 39沒有單一主控時鐘的時序電路,或系統(tǒng)中所有的時序部件沒有單一主控時鐘的時序電路,或系統(tǒng)中所有的時序部件不隨某個主控時鐘同步接收時鐘信號達到狀態(tài)同步變化的不隨某個主控時鐘同步接收時鐘信號達到狀態(tài)同步變化的電路都屬于電路都屬于異步時序電路異步時序電路系統(tǒng)工作狀態(tài)不穩(wěn)定,不能組建高速工作模塊(溫度系統(tǒng)工作狀態(tài)不穩(wěn)定,不能組建高速工作模塊(溫度/壓壓力力/電壓的變化,冒險競爭,高頻)電壓的變化,冒險競爭,高頻)在現(xiàn)代數(shù)字系統(tǒng)設計中,極少應用異步時序邏輯在現(xiàn)代數(shù)字系統(tǒng)設計中,極少應用異步時序邏輯3.3 3.3 計數(shù)器的計數(shù)器的VHDLVHDL設計設計 3.3.1

23、4位二進制加法計數(shù)器設計位二進制加法計數(shù)器設計 403.3 3.3 計數(shù)器的計數(shù)器的VHDLVHDL設計設計 3.3.1 4位二進制加法計數(shù)器設計位二進制加法計數(shù)器設計 Q = Q + 1 Q定義為定義為BUFFER模式模式 Q具有輸出和回讀功能具有輸出和回讀功能本例(例本例(例3-18)描述與)描述與D觸發(fā)器(例觸發(fā)器(例3-8)描述基本一致)描述基本一致 使用不完整的(使用不完整的(IF)條件語句來組建時序電路)條件語句來組建時序電路注意:注意: Q = Q + 1中中 Q(輸出)和(輸出)和Q+1(回讀)的區(qū)別(回讀)的區(qū)別413.3 3.3 計數(shù)器的計數(shù)器的VHDLVHDL設計設計 3.3.2 整數(shù)類型整數(shù)類型 整數(shù)類型INTEGER包括正整數(shù)、負整數(shù)和零自然數(shù)類型NATURAL包括正整數(shù)和零正整數(shù)類型POSITIVE只包括正整數(shù) INTEGER取值范圍可使用32位有符號的二進制數(shù)表示 在使用時必需range (down)to語句限制整數(shù)取值范圍 423.3 3.3 計數(shù)器的計數(shù)器的VHDLVHDL設計設計 3.3.3 計數(shù)器的其他計數(shù)器的其他VHDL表達方式表達方式 signal Q1沒有方向,可以出沒有方向,可以出現(xiàn)在賦值符現(xiàn)在賦值符X)463.4 3.4 實用計數(shù)器的實用計數(shù)器的VHDLVHDL設計設計 1. 十進制計數(shù)器相關語法十進制計數(shù)器相關語法 信號具有全局性

溫馨提示

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

評論

0/150

提交評論