




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、硬件描述語言概述 4選1數據選擇器vhdl描述 vhdl設計基本語法結構 寄存器描述及其vhdl語言現象 全加器vhdl設計 vhdl文本設計方法初步 quartusii工具軟件使用l原理圖輸入與原理圖輸入與 hdl 文本輸入設計的區別文本輸入設計的區別 “ tell me what hardware you want and i will give it to you”2. hdl is what you write is what functional you get“ tell me how your circuit should behave and the hdl compiler
2、will give you the hardware that does the job” but the designer can not control how the circuit implementlhdl的種類的種類vhdl的含義的含義vhsic (very high speed integrated circuit)hardwaredescriptionlanguagevhdl發展歷史發展歷史l1981年年, 誕生于美國國防部贊助的研究計劃,目的誕生于美國國防部贊助的研究計劃,目的是為了把電子電路的設計以電子文檔的方式保存下是為了把電子電路的設計以電子文檔的方式保存下來;來;l1
3、9831985年年, ibm、ti等公司對其進行了細致開等公司對其進行了細致開發;發; l1987年底年底,vhdl被被ieee和美國國防部確認為標準和美國國防部確認為標準硬件描述語言硬件描述語言 ,即,即ieee-1076(簡稱(簡稱87版版) l1993年年,ieee對對vhdl進行了修訂,公布了新版本進行了修訂,公布了新版本的的vhdl,即,即ieee標準的標準的1076-1993(1164)版本)版本 l1996年年,ieee又推出又推出ieee-1076.3和和ieee-1076.4,以解決可綜合以解決可綜合vhdl描述在描述在 不同不同eda廠商之間的移廠商之間的移植問題,以及植問
4、題,以及asic/fpga的門級庫描述問題。的門級庫描述問題。vhdl特點特點l與其他的硬件描述語言相比,與其他的硬件描述語言相比,vhdl具有更強的行為具有更強的行為描述能力描述能力 lvhdl豐富的仿真語句和庫函數,使得在設計的早期豐富的仿真語句和庫函數,使得在設計的早期就能查驗設計系統的功能可行性,隨時可對設計進行就能查驗設計系統的功能可行性,隨時可對設計進行仿真模擬仿真模擬 lvhdl語句的行為描述能力和程序結構決定了他具有語句的行為描述能力和程序結構決定了他具有支持大規模設計的分解和已有設計的再利用功能支持大規模設計的分解和已有設計的再利用功能l對于用對于用vhdl完成的一個確定的設
5、計,可以利用完成的一個確定的設計,可以利用eda工具進行邏輯綜合和優化,并自動的把工具進行邏輯綜合和優化,并自動的把vhdl描述設描述設計轉變成門級網表計轉變成門級網表lvhdl對設計的描述具有相對獨立性,設計者可以不對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管理最終設計實現的目標器件懂硬件的結構,也不必管理最終設計實現的目標器件是什么,而進行獨立的設計是什么,而進行獨立的設計 一、一、4例例3library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_uns
6、igned.all;entity mux4 isport(sel: in std_logic_vector(1 downto 0); a, b, c, d:in std_logic; mux_out: out std_logic);end mux4;architecture example0 of mux4 isbegin process (sel, a, b, c, d) begin case sel is when 00 = mux_out mux_out mux_out mux_out mux_out = z; end case; end process;end example0; 1.
7、 vhdl程序有結構的,由三部分組成。程序有結構的,由三部分組成。2. 同一種功能模塊可以由不同的語句來描述,同一種功能模塊可以由不同的語句來描述,而且描述的模塊功能可大可小(可編程期間而且描述的模塊功能可大可小(可編程期間的優勢所在)。的優勢所在)。3. 程序中有些字詞可以自行修改,有些是固定程序中有些字詞可以自行修改,有些是固定不變的。不變的。 用一個用一個vhdl程序來描程序來描述一個模塊電路。述一個模塊電路。電路電路模型模型in1inmoutnout11. vhdl程序的基本結構程序的基本結構luse library(庫)(庫) 用來說明電路模型需要使用的標準庫用來說明電路模型需要使用
8、的標準庫lentity(實體實體)用來說明電路模型的端口構成和信號屬性用來說明電路模型的端口構成和信號屬性larchitecture(構造體構造體)用一些語句來描述電路模型的功能用一些語句來描述電路模型的功能引用庫引用庫實體實體結構體結構體architecture logic of mux4_1 isbegin with s select x =a when “00”, b when “01”, c when “10”, d when others;end logic;l類似一個類似一個“黑盒黑盒”,實,實體描述了體描述了“黑盒黑盒”的輸的輸入輸出口構成和信號屬入輸出口構成和信號屬性性enti
9、ty mux4_1 isport(s: in std_logic_vector(1 downto 0); a, b, c, d:in std_logic; x: out std_logic);end mux4_1;包含三條語句。包含三條語句。entity mux4_1 is entity、is是關鍵字。是關鍵字。mux4_1為實體名,由設為實體名,由設計者自定,表達電路模計者自定,表達電路模型的名字,型的名字,port()端口說明語句端口說明語句port(s: in. ); 描述電路模型端口及端口信號。描述電路模型端口及端口信號。 port信息一般有信息一般有 name(端口信號名)(端口信號
10、名),mode(端(端口模式)口模式)和和type(端口信號數據類型)(端口信號數據類型)。entity mux4_1 isport(s: in std_logic_vector(1 downto 0); a, b, c, d:in std_logic; x: out std_logic);end mux4_1; port(name1:mode type ; name2:mode type; ); mode(端口模式)(端口模式)in:數據只能從端口流入實體數據只能從端口流入實體out:數據只能從端口流出實體數據只能從端口流出實體inout:數據從端口流入或流出實體數據從端口流入或流出實體bu
11、ffer:數據從端口流出實體,同時可被內部反饋數據從端口流出實體,同時可被內部反饋entity port(name1:mode type ; name2:mode type; );type(端口信號數據類型)(端口信號數據類型)lvhdl規定:任何數據對象必須嚴格限定其取值范圍。即規定:任何數據對象必須嚴格限定其取值范圍。即對其傳輸的信號或存儲的數據的類型做明確界定。對其傳輸的信號或存儲的數據的類型做明確界定。l有有bit :位類型;:位類型; boolean:布爾類型;:布爾類型; integer:整型;整型; std_logic:標準邏輯位,:標準邏輯位,std_logic_vector:
12、標準邏輯矢量等。:標準邏輯矢量等。 port(name1:mode type ; name2:mode type; );實體結束語句:實體結束語句: end mux4_1;entity mux4_1 isport(s: in std_logic_vector(1 downto 0); a, b, c, d:in std_logic; x: out std_logic);end mux4_1;my_designd11:0oeclkad11:0a11:0intas編寫編寫 包含以下內容的實體代碼包含以下內容的實體代碼端口端口 d 為為12位輸入總線位輸入總線 端口端口 oe 和和 clk 都是都是
13、1位輸入位輸入端口端口 ad 為為 12位雙向總線位雙向總線端口端口 a 為為12位輸出總線位輸出總線端口端口 int 是是1位輸出位輸出端口端口 as 是一位輸出同時被用作內部是一位輸出同時被用作內部反饋反饋entity my_design is port (d: in std_logic_vector(11 downto 0);oe,clk:in std_logic;ad: inout std_logic_vector(11 downto 0);a: out std_logic_vector(11 downto 0);int: out std_logic;as: buffer std_lo
14、gic);end my_design;my_designd11:0oeclkad11:0a11:0intasl用來描述實體的內部結構和邏輯功能用來描述實體的內部結構和邏輯功能l每一個構造體必須有一個實體(每一個構造體必須有一個實體(entity)與它相)與它相對應,所以兩者一般成對出現對應,所以兩者一般成對出現l一個實體(一個實體(entity)可以有多個構造體)可以有多個構造體l構造體的運行是并發的構造體的運行是并發的architecture logic of mux4_1 isbegin with s select x =a when “00”, b when “01”, c when “
15、10”, d when others;end logic; 結構體名結構體名實體名實體名說明語句說明語句 功能描述語句功能描述語句結構體名結構體名;architecture logic of mux4_1 isbegin with s select x =a when “00”, b when “01”, c when “10”, d when others;end logic;v 用來存儲預先完成的程序包和數據集合體的倉庫用來存儲預先完成的程序包和數據集合體的倉庫 v 在在vhdl設計中若使用庫中內容,必須在該設計的設計中若使用庫中內容,必須在該設計的實體前使用庫語句和實體前使用庫語句和us
16、e語句語句v : library 庫名;庫名; use 庫名庫名.程序包名程序包名. all; use 庫名庫名.程序包名程序包名. 項目名項目名;l ieee庫是庫是vhdl設計中最常見的庫,設計中最常見的庫,包含包含ieee標準程序標準程序包和一些支持工業包和一些支持工業標準的程序包標準的程序包例例1:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity test isport( a,b,c : in bit; d,e: out
17、 bit );end test;abcdearchitecture a of test isbegind = a and b;e = not c;end a;abcde bit :位類型,其值只能為:位類型,其值只能為 0或或 1例:例:signal a: bit;(;( a = 1 ) bit_vector :位矢量類型,包含一組位類型:位矢量類型,包含一組位類型例:例:signal a: bit_vector (7 downto 0) ( a = “00000001” 、 a = a + 1)std_logic:標準邏輯:標準邏輯std_logic_vector:標準邏輯矢量:標準邏輯矢量
18、他們是數字電路設計的工業標準邏輯類型,有他們是數字電路設計的工業標準邏輯類型,有9種取值。種取值。若電路中有三態邏輯若電路中有三態邏輯(z) 必須用必須用std_logic 和和 std_logic _vector。要使用這種類型代碼中必須申要使用這種類型代碼中必須申明庫和程序包說明語句明庫和程序包說明語句library ieee; use ieee.std_logic_1164.all;x = d0 when (s = “00”) else d1 when (s = “01”) else d2 when (s = “10”) else d3 ;x = d0表示輸入端口表示輸入端口d0的數據向
19、輸出端口的數據向輸出端口x傳輸,傳輸,也叫也叫d0向向 x賦值。表示電路內部連線或端口,有傳賦值。表示電路內部連線或端口,有傳輸延遲。輸延遲。when (s = “00”)判斷的條件,通過測定判斷的條件,通過測定s = “00”的比的比較結果確定信號的流向較結果確定信號的流向 ,“ =”為數據比較符號。為數據比較符號。比較運算符還有比較運算符還有“/=”、“=”、“”。 architecture a of test isbegind = a and b;e = not c;end a;abcdeand、 not是邏輯是邏輯操作符號。操作符號。vhdl提供提供7種邏種邏輯操作符。輯操作符。例例1
20、 :architecture a of test isbegind = a and b;e = not(c and a);end a;and, or, not, xor, xnor, nand例例2:architecture a of test isbegin x = d0 when (s =“00”) else d1 when (s =“01”) else d2 when (s =“10”) else d3 ;end a; x = d0 when (s =“00”) else d1 when (s =“01”) else d2 when (s =“10”) else d3 ;v根據指定條件對
21、信號賦值,條件可以為任意邏根據指定條件對信號賦值,條件可以為任意邏輯表達式。輯表達式。v根據條件出現的先后次序,根據條件出現的先后次序,else子句有優先子句有優先權權(按優先順序逐條測試條件按優先順序逐條測試條件)v最后一個最后一個 else子句隱含了所有未列出的條件子句隱含了所有未列出的條件v每一子句結尾沒有標點,只有最后一句有每一子句結尾沒有標點,只有最后一句有“;”例例3:architecture logic of mux4_1 isbegin with s select x = a when “00”, b when “01”, c when “10”, d when others;
22、end logic;v 所有的所有的“when”子句必須是互斥的子句必須是互斥的v 一般用一般用“when others”來處理未考慮到的情況來處理未考慮到的情況v 每一子句結尾是逗號,最后一句是分號每一子句結尾是逗號,最后一句是分號withwith s s selectselect x = a x = a whenwhen ”000” ”000” “001” “001” “010”, “010”, b b whenwhen “101” “101” “111”, “111”, c c when otherswhen others; ;en a2 a1 a0y7 y6 y5 y4 y3 y2 y
23、1 y00 x x x 0 0 0 0 0 0 0 01 0 0 00 0 0 0 0 0 0 11 0 0 10 0 0 0 0 0 1 01 0 1 00 0 0 0 0 1 0 01 0 1 10 0 0 0 1 0 0 01 1 0 00 0 0 1 0 0 0 0 “”sel為內部連接信號,必須在結為內部連接信號,必須在結構體說明區域先說明后才能在結構體中使用。構體說明區域先說明后才能在結構體中使用。( begin ) sel = en & a; with sel select yz z z z z = 0; end case;end process case_label; x= (
24、e and y) or (f and z)end logic;v進程內部輸入信號的改變,都將啟動進程,執行進進程內部輸入信號的改變,都將啟動進程,執行進程內相應順序語句。程內相應順序語句。v一些一些vhdlvhdl綜合器,綜合后,對應進程的硬件系統對綜合器,綜合后,對應進程的硬件系統對進程中的所有輸入的信號都是敏感的,不論在源程進程中的所有輸入的信號都是敏感的,不論在源程序的進程中是否把所有的輸入信號都列入敏感表。序的進程中是否把所有的輸入信號都列入敏感表。v為了使軟件仿真與綜合后的硬件仿真對應起來,應為了使軟件仿真與綜合后的硬件仿真對應起來,應當將進程中的所有輸人信號都列入敏感表中。當將進程
25、中的所有輸人信號都列入敏感表中。v每一條順序語句的執行每一條順序語句的執行( (指仿真執行指仿真執行) )順序是與它順序是與它們的書寫順序基本一致的。反映了信號操作的優們的書寫順序基本一致的。反映了信號操作的優先級。先級。v順序語句包括:順序賦值語句、順序語句包括:順序賦值語句、流程控制語句流程控制語句、等待語句、子程序調用語句、返回語句、空操作等待語句、子程序調用語句、返回語句、空操作語句語句條件式條件式順序語句順序語句v根據條件式產生的判斷結果根據條件式產生的判斷結果truetrue或或falsefalse,有條件,有條件地選擇執行其后的順序語句。地選擇執行其后的順序語句。v如果如果clk
26、clk沒有發生變化,則跳過該沒有發生變化,則跳過該ifif語句。語句。那么那么q ?q ?dclkqdq高電平敏感的高電平敏感的d鎖存器;鎖存器;低電平敏感:低電平敏感:clk=0一輸入值輸入值半加器(半加器(a+ba+b)半減器(半減器(a ab b)a ab bsumsumcarrycarrydifferencedifferenceborrowborrow0 00 00 00 00 00 00 01 11 10 01 11 11 10 01 10 01 10 01 11 10 01 10 00 0entity test isport(a,b: in std_logic;carry,sum
27、: out std_logic;borrow :out std_logic;difference :out std_logic);end test;architecture a of test isbeginhalf_adder : blockbeginsum = a xor b; carry = a and b;end block half_adder;half_subtractor: blockbegindifference = a xor b;borrow = not a and b;end block half_subtractor;end a;v用于實現用于實現vhdlvhdl中的模
28、塊化設計的又一個方式中的模塊化設計的又一個方式v可以把多個并行語句打包,形成構造體中的一可以把多個并行語句打包,形成構造體中的一個子模塊個子模塊塊標號塊標號: block begin end block 塊標號塊標號 ;entity isportend architecture of is signal x : begina ab bsumsumcarrycarry0 00 00 00 00 01 11 10 01 10 01 10 01 11 10 01 1選擇信號選擇信號不同選擇值不同選擇值不同流向不同流向a bscycentityentity adder_4adder_4 isispor
29、tport( a ,b: in std_logic_vector(3 downto 0);( a ,b: in std_logic_vector(3 downto 0); s s: out std_logic_vector(3 downto 0);: out std_logic_vector(3 downto 0); c : c : inoutinoutstd_logic_vector(4 downto 0) );std_logic_vector(4 downto 0) );endend adder_4; adder_4;fulladderfulladderfulladderfulladder
30、s(3)s(2)s(1)s(0)c(4)c(3)c(2)c(1)c(0)a(3) b(3)a(2) b(2)a(1) b(1)a(0) b(0)abcscyabcscyabcscyabcscyarchitecturearchitecture a a ofof adder_4 adder_4 isis componentcomponent fulladder fulladder portport ( a ( a : in : instd_logic;std_logic; b b : in : instd_logic;std_logic; c c : in : instd_logic;std_lo
31、gic; cy : out cy : out std_logic;std_logic; s s : out : out std_logic );std_logic ); end component end component ; ;beginbegin元件說明部分元件說明部分保留字保留字元件名稱元件名稱端口端口說明說明a bscyc例化名例化名元件映射部分元件映射部分元件名元件名保留字保留字fulladderfulladderfulladderfulladders(3)s(2)s(1)s(0)c(4)c(3)c(2)c(1)c(0)a(3) b(3)a(2) b(2)a(1) b(1)a(0)
32、 b(0)abcscyabcscyabcscyabcscyfulladderfulladderfulladderfulladders(3)s(2)s(1)s(0)c(4)c(3)c(2)c(1)c(0)a(3) b(3)a(2) b(2)a(1) b(1)a(0) b(0)abcscyabcscyabcscyabcscy名字關聯名字關聯位置關聯位置關聯v元件例化語句元件例化語句是在是在vhdlvhdl設計設計中實現中實現層次化層次化設計設計的重要途的重要途徑。徑。v可以在當前的可以在當前的vhdlvhdl模塊設計模塊設計中將現成的硬中將現成的硬件描述語言設件描述語言設計的實體作為計的實體作為元件引用。元件引用。entityentity eqcomp4 is eqcomp4 is portpor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省湘西州2025屆化學高二下期末檢測試題含解析
- 美容培訓面部課件
- 共享出行新模式在2025年城市公共交通服務提升中的可行性研究評估報告
- 社區文明建設述職報告范文-1
- 受災情況報告的范文
- 山東省淄博市名校2024-2025學年九上化學期末經典模擬試題含解析
- 綏化市重點中學2024年七上數學期末聯考模擬試題含解析
- 眉山市重點中學2024-2025學年化學九上期末復習檢測試題含解析
- 天津交通職業學院《建筑工程招投標與合同管理》2023-2024學年第一學期期末試卷
- 浙江理工大學科技與藝術學院《美術簡史及鑒賞》2023-2024學年第一學期期末試卷
- 國家開放大學《監督學》形考任務( 1-4)試題和答案解析
- 婚前協議書(完整版)-婚前協議書模板
- 完工付款最終付款申請表
- 人工動靜脈內瘺
- 新版(七步法案例)PFMEA
- 2022年重慶優秀中考作文經典范例合集-2022中考作文
- 采暖管道安裝工程標準規范
- 慢阻肺隨訪記錄表正式版
- 廣西大學數學建模競賽選拔賽題目
- 受戒申請表(共3頁)
- 低鈉血癥的護理
評論
0/150
提交評論