




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第第5 5 5章章章第第 5章章第一節第一節 PLD的基本概念的基本概念第二節第二節 現場可編程門陣列現場可編程門陣列 FPGA第三節第三節 在系統可編程在系統可編程 ISP第四節第四節 可編程邏輯的原理圖方式設計可編程邏輯的原理圖方式設計第五節第五節 可編程邏輯的可編程邏輯的VHDL文本方式設計文本方式設計可編程邏輯可編程邏輯可編程邏輯可編程邏輯器件可編程邏輯器件 PLDPROMPLAGAL與陣列固定或與陣列固定或陣列可編程陣列可編程與陣列或陣列與陣列或陣列均可編程均可編程PAL通用邏輯陣列通用邏輯陣列與陣列可編程與陣列可編程或陣列固定或陣列固定CPLD學習指導學習指導P169FPGAFi
2、eld Programmable Gate Array復雜可編程邏復雜可編程邏輯器件輯器件Programmable Array LogicGeneric Array Logic“與或與或”兩級結構器兩級結構器件件最終邏輯結構最終邏輯結構和功能由用戶和功能由用戶編程決定。編程決定。特點特點PLD發展過程發展過程Programmable Logic Device現場可編程現場可編程門陣列門陣列數字邏輯電路中一定包含數字邏輯電路中一定包含邏輯器件邏輯器件邏輯器件邏輯器件可編程邏輯器件可編程邏輯器件固定邏輯器件固定邏輯器件可編程陣列(與)可編程陣列(與)可編程陣列(與) 一、可編程陣列一、可編程陣列由
3、與或陣列組成由與或陣列組成PLD結構特點結構特點ABX1 BAX2 BAX3 PLD輸入緩沖門輸入緩沖門三態門三態門XXX? 1、與陣列、與陣列輸出是輸入變輸出是輸入變量的與函數量的與函數可編程陣列(或)可編程陣列(或)可編程陣列(或) 2、或陣列、或陣列輸出是輸入變輸出是輸入變量的或函數量的或函數CBAX1 CBAX2 CBAX3 可編程陣列(與或)可編程陣列(與或)可編程陣列(與或) 4、可編程連接技術(自學)、可編程連接技術(自學)PLA與陣列可編程與陣列可編程或陣列可編程或陣列可編程PLDPLDPLD實現組合邏輯例題實現組合邏輯例題實現組合邏輯例題NOB3 B2 B1 B0G3 G2
4、G1 G000000000010001000120010001130011001040100011050101011160110010170111010081000110091001110110101011111110111110121100101013110110111411101001151111100033BG 23232BBBBG 12121BBBBG 01010BBBBG 例例00011110000412801151391137151110261410B3B2B1B0G311111111自然二進制碼轉換位循環二進制碼用自然二進制碼轉換位循環二進制碼用PLA與或邏輯實現。與或邏輯實現。
5、PLDPLDPLD類型類型類型 5、PLD類型類型按照容量按照容量PLD分為分為簡單可編程邏輯器件簡單可編程邏輯器件SPLD復雜可編程邏輯器件復雜可編程邏輯器件CPLDIC管腳數:管腳數:2428IC管腳數:管腳數:44160簡單可編程邏輯器件簡單可編程邏輯器件SPLD的內部結構的內部結構與陣列與陣列固定固定或陣列或陣列可編程可編程輸輸 入入輸輸 出出(a) PROM與陣列與陣列可編程可編程或陣列或陣列固定固定輸輸 入入輸輸 出出(c) PAL與陣列與陣列可編程可編程或陣列或陣列可編程可編程輸輸 入入輸輸 出出(b) PLA與陣列與陣列可編程可編程或陣列或陣列固定固定輸輸 入入輸輸 出出(d)
6、 GLA一次可編程只讀存儲器一次可編程只讀存儲器可編程陣列邏輯可編程陣列邏輯可編程邏輯陣列可編程邏輯陣列通用陣列邏輯通用陣列邏輯內部包含邏內部包含邏輯宏單元輯宏單元(觸發器)(觸發器)PLDPLDPLD類型類型類型復雜可編程邏輯器件復雜可編程邏輯器件CPLD的內部結構的內部結構I/OI/OI/OI/OI/OI/O互互 連連 總總 線線PLAPLD能做什么呢?能做什么呢? 可以毫不夸張的講,可以毫不夸張的講,PLD能完成任何數字器件的功能,能完成任何數字器件的功能,上至高性能上至高性能CPU,下至簡單的,下至簡單的74電路,都可以用電路,都可以用PLD來實現。來實現。PLD如同一張白紙或是一堆積
7、木,工程師可以通過傳統的原如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自由的設計一個數字系統。理圖輸入法,或是硬件描述語言自由的設計一個數字系統。 通過軟件仿真,可以事先驗證設計的正確性。在通過軟件仿真,可以事先驗證設計的正確性。在PCB完完成以后,還可以利用成以后,還可以利用PLD的在線修改能力,隨時修改設計而的在線修改能力,隨時修改設計而不必改動硬件電路。不必改動硬件電路。 使用使用PLD來開發數字電路,可以大大縮短設計時間,減來開發數字電路,可以大大縮短設計時間,減少少PCB面積,提高系統的可靠性。面積,提高系統的可靠性。 PLD的這些優點使得的這些優點使
8、得PLD技術在技術在90年代以后得到飛速的發展,同時也大大推動了年代以后得到飛速的發展,同時也大大推動了EDA軟件和硬件描述語言(軟件和硬件描述語言(HDL)的進步。的進步。提問提問提問已知一個組合邏輯已知一個組合邏輯可以采用幾種電路形式來實現?可以采用幾種電路形式來實現?BACAABCY 1、直接用與門、或門、非門。、直接用與門、或門、非門。2、用中規模組合邏輯電路:、用中規模組合邏輯電路:數據選擇器、譯碼器。數據選擇器、譯碼器。3、用、用PROM。CBABCACBACABABCY BAYCA0A1D1D0D2D3BA11ST0YYC0數數據據選選擇擇器器ABC0Y1Y3Y2Y4Y5Y6Y7
9、YG1G2AG2BBAC“1”3:8譯譯碼碼器器Y或陣列的容量是或陣列的容量是8。CBAY4、用、用PLA。CBAY現場可編程門陣列現場可編程門陣列現場可編程門陣列 一、一、FPGA的結構的結構FPGA -Field Programmable Gate Array特點特點不再受內部結構的限制,可以設計任何復雜的邏輯電路不再受內部結構的限制,可以設計任何復雜的邏輯電路三個基本部分組成:三個基本部分組成:(1)可組態邏輯模塊可組態邏輯模塊CLB(2) 輸入輸出模塊輸入輸出模塊I/OB(3)可編程連線可編程連線PI和由它組和由它組成的編程開關陣列成的編程開關陣列PSM。Altera EPF 10K1
10、0 dsf10k.pdfFPGAFPGAFPGA結構結構結構 1、可組態邏輯模塊、可組態邏輯模塊CLB108108個個CLB 可用門達到可用門達到25萬門以上萬門以上* 可實現組合邏輯電路和時序邏輯電路可實現組合邏輯電路和時序邏輯電路* 邏輯函數發生器邏輯函數發生器( Configurable Logic Block )CLBCLBCLB結構結構結構XC2064的的CLB結構結構FPGAFPGAFPGA結構結構結構 3、可編程連線、可編程連線PI及開關陣列及開關陣列PSM* 完成完成CLB之間邏輯連接并將信息傳遞到之間邏輯連接并將信息傳遞到I/OB* 開關陣列開關陣列PSM提供提供20種轉換方
11、式種轉換方式* 將將CLB的輸出以接力方式傳送到芯片任意位置的輸出以接力方式傳送到芯片任意位置1265784312657843 2、輸入輸出模塊、輸入輸出模塊I/OB* 提供外部封裝引腳和內部信息的接口電路提供外部封裝引腳和內部信息的接口電路* 通過編程可以分別組態為輸入引腳、通過編程可以分別組態為輸入引腳、輸出引腳和雙向引腳輸出引腳和雙向引腳* 可控制速率、降低功耗可控制速率、降低功耗( Input/Output Block )( Programmable Interconnect )( Programmable Switch Matrix )XC2064XC2064的的I/OBI/OB電路
12、電路十大十大十大PLDPLDPLD公司公司公司排名公司市場占有率1AlteraAltera30.130.12XilinxXilinx29.029.03VantisVantis11.111.14LatticeLattice11.011.05ActelActel7.07.06LuccentLuccent4.34.37CypressCypress2.22.28AtmelAtmel2.12.19PhilipsPhilips1.41.410QuicklogicQuicklogic1.21.2十大十大PLD公司公司ISPISPISP邏輯器件特點邏輯器件特點邏輯器件特點常規常規PLD開發過程開發過程邏輯設計
13、邏輯設計選擇器件選擇器件PLD編程編程(下載)(下載)PLD測試測試將器件插將器件插入印制板入印制板編編 制制JEDEC文件文件熔絲圖熔絲圖文件文件( In System Programming )在系統編程(在系統編程(ISP):):用戶在自己設計的用戶在自己設計的目標系統中或線路板上為重構邏輯而對目標系統中或線路板上為重構邏輯而對邏輯器件進行編程或反復改寫的能力。邏輯器件進行編程或反復改寫的能力。熔絲圖文件熔絲圖文件熔絲圖文件以碼點形式表示以碼點形式表示陣列的內容:陣列的內容:“0”表示該位置的可編表示該位置的可編程單元應予接通,程單元應予接通,“1”表示該位置的表示該位置的可編程連接應予
14、斷可編程連接應予斷開。開。ISPISPISP邏輯器件特點邏輯器件特點邏輯器件特點常規常規PLD開發過程開發過程邏輯設計邏輯設計選擇器件選擇器件PLD編程編程(下載)(下載)PLD測試測試將器件插將器件插入印制板入印制板編編 制制JEDEC文件文件采用采用ISP技術的技術的PLD開發過程開發過程邏輯設計及編程邏輯設計及編程選擇器件選擇器件編譯、仿真編譯、仿真下載、使用下載、使用將器件插將器件插入印制板入印制板編編 制制JEDEC文件文件編編程程器器上上進進行行( In System Programming )ABLE語言語言VHDL語言語言Verilog HDL原理圖原理圖10321032103
15、2管腳管腳管腳 定義定義定義查資料查資料ISP邏輯器件結構邏輯器件結構ispLSI1032ISPISPISP邏輯器件結構邏輯器件結構邏輯器件結構它以固定方式將所有內部邏輯聯系在一起它以固定方式將所有內部邏輯聯系在一起1、全局布線區、全局布線區GRPP131巨塊、全巨塊、全局布線區局布線區組成組成通用總線通用總線ispLSI1032巨塊巨塊巨塊巨塊通用邏輯塊通用邏輯塊GLB輸出布線輸出布線ORPI/O引腳及專用輸入引腳及專用輸入 一、一、ispLSI的體系結構的體系結構ISPISPISP的通用邏輯塊的通用邏輯塊的通用邏輯塊是是ispLSI最基本的邏輯單元最基本的邏輯單元2、通用邏輯塊、通用邏輯塊
16、GLB特點特點乘積項共享陣列乘積項共享陣列A0 A7、 B0 B7、 C0 C7、 D0 D7=32塊塊ISPISPISP的的的GLBGLBGLB標準組態標準組態標準組態GLBGLB的的5 5種組態種組態最多可將最多可將2020個乘積項集中于一個觸發器使用個乘積項集中于一個觸發器使用1 1 標準組態標準組態ISPISPISP的的的GLBGLBGLB標準組態例子標準組態例子標準組態例子ISPISPISP的的的GLBGLBGLB高速組態高速組態高速組態4 4個或門跨過乘積項共享陣列(個或門跨過乘積項共享陣列(PTSAPTSA)及異或門直接)及異或門直接與與4 4個觸發器相連,以提高速度支持高速計數
17、器。個觸發器相連,以提高速度支持高速計數器。2 2 高速直通組態高速直通組態每個或門只有每個或門只有4 4個乘積項,與個乘積項,與觸發器一一對應,不能任意觸發器一一對應,不能任意調用。調用。ISPISPISP的的的GLBGLBGLB異或組態異或組態異或組態3 3 異或邏輯組態異或邏輯組態4 4個異或門的一個輸入分別是乘積項個異或門的一個輸入分別是乘積項0 0、4 4、8 8、1313,另一個則從另一個則從4 4個或門輸出中任意組合。個或門輸出中任意組合。可實現計數器、可實現計數器、比較器和比較器和ALU。可將可將D觸發器轉換為觸發器轉換為JK、T觸發器。觸發器。ISPISPISP的的的GLBG
18、LBGLB單乘積項組態單乘積項組態單乘積項組態4 4 單乘積項組態單乘積項組態 將乘積項將乘積項0 0、4 4、1010、1313分別跨越或門、分別跨越或門、PTSAPTSA直接輸直接輸出。速度最快。出。速度最快。ISPISPISP的的的GLBGLBGLB多模式組態多模式組態多模式組態5 5 多模式組態多模式組態上述上述4 4種組態可以在同一個種組態可以在同一個GLBGLB中混合使用。中混合使用。ISPISPISP的輸出布線的輸出布線的輸出布線ORPORPORP介于通用邏輯塊介于通用邏輯塊GLB和輸入輸出單元和輸入輸出單元IOC之間之間3、輸出布線區、輸出布線區ORP可編程可編程ISPISPI
19、SP的輸出布線的輸出布線的輸出布線ORPORPORP編程編程編程對對ORP編程使編程使GLB與與I/O相連:相連:ISPISPISP的輸出布線的輸出布線的輸出布線ORPORPORP跨過跨過跨過跨過跨過ORP使使GLB與與I/O直接相連:直接相連:高速高速ISPISPISP的輸入輸出單元的輸入輸出單元的輸入輸出單元IOCIOCIOC4、輸入輸出單元、輸入輸出單元 IOC*MUX1控制控制IOC處于專用輸出組態、專用輸入組態、處于專用輸出組態、專用輸入組態、I/O組態。組態。 *MUX2和和MUX3用來選擇信號的來源和輸出極性。用來選擇信號的來源和輸出極性。 *MUX4用來選擇寄存器輸入還是緩沖器
20、輸入。用來選擇寄存器輸入還是緩沖器輸入。*MUX5和和MUX6用來選擇時鐘信號和調整時鐘信號的極性。用來選擇時鐘信號和調整時鐘信號的極性。 * IOC中的觸中的觸發器有兩種工作發器有兩種工作方式:一是鎖存方式:一是鎖存方式,觸發器在方式,觸發器在時鐘信號低電平時鐘信號低電平時鎖存;二是寄時鎖存;二是寄存器方式,在時存器方式,在時鐘信號上升沿時鐘信號上升沿時將信號打入。兩將信號打入。兩種方式通過種方式通過R/L端編程來確定。端編程來確定。ISPISPISP的輸入輸出單元的輸入輸出單元的輸入輸出單元IOCIOCIOC輸入輸出單元輸入輸出單元 IOC共有八種組態共有八種組態輸出使能的公共乘積項輸出使
21、能的公共乘積項輸出使能的公共乘積項OEOEOE用于輸出使能的公共乘積項用于輸出使能的公共乘積項OE,是本巨塊中某個,是本巨塊中某個GLB的的19號乘積號乘積項產生的。利用它作為本巨塊所有項產生的。利用它作為本巨塊所有16個個I/O單元公用的單元公用的OE信號。信號。巨塊的輸出使能控制:巨塊的輸出使能控制:IOC的的MUX1巨塊巨塊巨塊5、巨塊、巨塊 * 8個個GLB* 16個個I/O單元單元* 2個直接輸入個直接輸入* 輸出布線區輸出布線區C0時鐘分配網絡時鐘分配網絡時鐘分配網絡CDNCDNCDN6、時鐘分配網絡、時鐘分配網絡CDNY0Y1Y2Y3是外部輸入的時鐘信號是外部輸入的時鐘信號CDN
22、可以產生五個全局時鐘可以產生五個全局時鐘將將GLB”C0”的輸出作為時鐘的輸出作為時鐘輸入,以便產生內部時鐘。輸入,以便產生內部時鐘。P131 圖圖5.13 右下角右下角信號流程信號流程信號流程I/O單元單元全局布線全局布線通用邏輯單元通用邏輯單元輸出布線輸出布線I/O單元單元輸入信號輸入信號輸出信號輸出信號信號流程信號流程在系統編程原理和方法在系統編程原理和方法在系統編程原理和方法自學自學正常模式與編輯模式由誰控制?正常模式與編輯模式由誰控制?數據的寫入方式?數據的寫入方式?編程接口信號的關系?編程接口信號的關系?對某一行編程的三個步驟?對某一行編程的三個步驟?多芯片的編程方法?多芯片的編程
23、方法?ispENSDISDOMODESCLKP137 二、在系統編程原理二、在系統編程原理原理圖方式設計原理圖方式設計原理圖方式設計可編程邏輯設計可編程邏輯設計 一、可編程邏輯設計流程圖一、可編程邏輯設計流程圖 設計庫設計庫設計輸入設計輸入* 原理圖原理圖* HDL設計輸入設計輸入* 原理圖原理圖* HDL功能模擬功能模擬 綜合綜合 實現實現 時序模擬時序模擬 器件編程器件編程 (下載)(下載)編譯器編譯器所有的設計過程依賴于所有的設計過程依賴于CAD-(Computer aided design )模擬:模擬:先通過模擬器將設計進行仿真。先通過模擬器將設計進行仿真。實現:實現:將綜合后的邏輯
24、放置到一個邏輯將綜合后的邏輯放置到一個邏輯器件之中的過程,同時實現合理布線。器件之中的過程,同時實現合理布線。綜合:綜合:把高層次的描述轉換成底層電把高層次的描述轉換成底層電路,形成網表。路,形成網表。時序模擬:時序模擬:可以對設計的邏輯功能及時可以對設計的邏輯功能及時序進行驗證。序進行驗證。電子設計自動化電子設計自動化EDA-(Electronics Design Automation )下載過程下載過程原理圖輸入原理圖輸入原理圖輸入 二、原理圖輸入二、原理圖輸入CAD工具提供一系列表示不同輸入工具提供一系列表示不同輸入端數的各種類型門的圖形符號。端數的各種類型門的圖形符號。元件庫元件庫x3
25、x1x2f演示原理圖輸入過程演示原理圖輸入過程./ylt/ylt.bdf直接從元件庫中調直接從元件庫中調用器件進行設計。用器件進行設計。P156 9、10、13、14、15、16作業作業要求:提交編譯無錯誤的源代碼要求:提交編譯無錯誤的源代碼 LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY example1 IS PORT ( x1, x2, x3 : IN BIT ; f : OUT BIT ) ; END example1 ; ARCHITECTURE LogicFunc OF example1 IS BEGIN f = (x1 AN
26、D x2) OR (NOT x2 AND x3) ; END LogicFunc ; VHDLVHDLVHDL語言結構語言結構語言結構可編程邏輯的可編程邏輯的VHDL文本設計方式文本設計方式 一、一、VHDL語言結構語言結構庫庫實體實體結構體結構體每個部分通過關每個部分通過關鍵字引導出來鍵字引導出來描述邏輯功能描述邏輯功能引用庫中程序包引用庫中程序包/example ch1-1.cpp# include Void main () cout “Im a student.n” ; x3x1x2fVHDL結構結構VHDLVHDLVHDL語言結構組成語言結構組成語言結構組成庫庫程序包程序包實體實體結構
27、體結構體配置配置存放已編譯的實體、存放已編譯的實體、結構體、程序包和結構體、程序包和配置配置存放各種設計模塊存放各種設計模塊能共享的數據類型、能共享的數據類型、常數、程序等常數、程序等描述所設計硬件系描述所設計硬件系統的外部接口信號統的外部接口信號描述所設計硬描述所設計硬件系統的內部件系統的內部結構和功能結構和功能用來從庫中選取用來從庫中選取所需單元來組成所需單元來組成新系統新系統實體說明、結構體格式實體說明、結構體格式實體說明、結構體格式ENTITY IS 類屬參數說明類屬參數說明 ; 端口說明部分端口說明部分 ; 實體說明部分實體說明部分 ;END ; ARCHITECTURE OF IS
28、 結構體說明部分結構體說明部分 ;BEGIN ;END ; ;實體說明格式實體說明格式結構體格式結構體格式ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_adder IS SIGNAL tmp1,tmp2 : std_logic;BEGIN tmp1 = A OR B; tmp2 = A NAND B; Co = NOT tmp2; S = tmp1 AND tmp2;END rtl;端口
29、說明部分端口說明部分ABSCOABSCotmp1tmp2實體名一致實體名一致實體說明、結構體格式實體說明、結構體格式實體說明、結構體格式ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_adder IS BEGIN S = A XOR B; Co = A AND B; END rtl;ABSCOABSCo0000011010101101ABSCo半加器半加器半加器演示半加器演示LIBRARY
30、 ieee ;USE ieee.std_logic_1164.all ;對象及數據類型對象及數據類型對象及數據類型1、VHDL語言的三大對象語言的三大對象常量常量(constant)信號信號(signal)變量變量(variable)2、VHDL語言的數據類型語言的數據類型* 標準數據類型標準數據類型* 用戶定義的數據類型用戶定義的數據類型信號信號=表達式表達式;變量變量:=表達式表達式;數據類型數據類型含義含義備注備注例子例子整數整數(integer)整數 -(231-1) + (231-1)+136,-457實數實數(real)實數 -1038 +1038一定有小數點-1.0,+2.5e2
31、3位位(bit)邏輯0或1 1, 0位矢量位矢量(bit_vector) 位矢量雙引號括起來的一組數“00101”布爾量布爾量(boolean)邏輯假或真只有真(true)和假(false)字符字符(character)ASCII字符Character用單引號括起來a, b, c時間時間(time)整數和時間單位fs,ps,ns,us,ms,sec,min,hr20us, 32ns錯誤等級錯誤等級(SEVERITYLevel)VHDL程序在編譯、仿真、綜合過程中的工作狀態note,warning,error,failurenote,warning,可以忽略,error,failure不可以忽略
32、自然數自然數(natural)和和正整數正整數(positive)整數的子集natural,positive字符串字符串(string)字符矢量雙引號括起來的字符序列“START” 二、對象及數據類型二、對象及數據類型硬件電路中的一條硬件連接線硬件電路中的一條硬件連接線需要遵循的原則是需要遵循的原則是:先定義先定義,后使用。后使用。立即賦值立即賦值延遲賦值延遲賦值常用數據類型常用數據類型常用數據類型在在IEEE1164標準的標準的“std-logic-1164”程序包中程序包中, ,可枚舉類型可枚舉類型std - logic的定義格式如下所示的定義格式如下所示: : * IEEE標準數據類型標
33、準數據類型標準邏輯位標準邏輯位 std-logic 數據類型數據類型標準邏輯矢量標準邏輯矢量 std-logic-vector數據類型數據類型TYPE std logic IS (U, -Uninitialized X, -ForcingUnknown 0,-Forcing0 1,-Forcing1 Z,-HighImpedance W,-WeakUnknown L,-Weak0 H,-Weak1 ,-Dontcare );初始值初始值不定不定01高阻高阻弱信號不定,未知弱信號不定,未知弱信號弱信號0弱信號弱信號1不可能情況不可能情況 九值邏輯系統九值邏輯系統用戶定義的數據類型用戶定義的數據類
34、型并行描述語并行描述語并行描述語句句句- - -進程語句進程語句進程語句VHDL語言程序的結構體中既存語言程序的結構體中既存在并行語句又存在順序語句。在并行語句又存在順序語句。描述一組并發行為,它是并發執描述一組并發行為,它是并發執行的,與程序的書寫順序無關。行的,與程序的書寫順序無關。描述一組嚴格順序執行的行為。描述一組嚴格順序執行的行為。與程序的書寫順序有關。與程序的書寫順序有關。 三、并行描述語句的格式三、并行描述語句的格式 PROCESS 敏感信號表敏感信號表 進程語句說明部分進程語句說明部分 ; BEGIN ; END PROCESS 一個結構體可以包括一個或多個進程語句,進程內部的
35、語句是一個結構體可以包括一個或多個進程語句,進程內部的語句是順序語句,而結構體的各個進程語句之間是一組并發行為。順序語句,而結構體的各個進程語句之間是一組并發行為。進程進程語句語句控制控制順序語句位順序語句位于程序的那于程序的那一部分?一部分?1、進程語句、進程語句進程語句并發執行進程語句并發執行!由順序語句構成:由順序語句構成:IF語句語句CASE語句語句LOOP語句語句敏感信號的值發生改變,敏感信號的值發生改變,能夠引起進程語句執行。能夠引起進程語句執行。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY gate IS PORT (A,B :
36、IN std_logic; X,Y,Z : OUT std_logic);END gate; ARCHITECTURE behaveOF gate IS BEGIN X = A AND B; Y = A OR B; Z = A XOR B;END behave;并發信號賦值語句并發信號賦值語句并發信號賦值語句并發賦值語句在結構體中是并行執行的,并發賦值語句在結構體中是并行執行的,他們的執行與書寫順序無關。他們的執行與書寫順序無關。“ = ”2、并發信號賦值語句、并發信號賦值語句一條并發信號賦值語句一條并發信號賦值語句與一個含有信號賦值語與一個含有信號賦值語句的進程等價。句的進程等價。LIBRA
37、RY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY gate_circuits IS PORT (A,B : IN std_logic; X,Y,Z : OUT std_logic);END gate_circuits; ARCHITECTURE behaveOF gate_circuits IS BEGIN p1:PROCESS(A,B) BEGIN X = A AND B; END PROCESS p1; p2:PROCESS(A,B) BEGIN Y = A OR B; END PROCESS p2; p3:PROCESS(A,Bb) BEGIN Z =
38、 A XOR B; END PROCESS p3 END behave;Z = A XOR B;Y = A OR B; X = A AND B ;與順序與順序無關無關王振紅王振紅p25條件信號賦值語句條件信號賦值語句條件信號賦值語句根據不同條件將不同的表達式賦值給目標信號。根據不同條件將不同的表達式賦值給目標信號。3、條件信號賦值語句、條件信號賦值語句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY and_gate IS PORT (a,b : IN std_logic; x : OUT std_logic);END and_gate; ARCH
39、ITECTURE rtl OF and_gate IS BEGIN x = 0 WHEN a=0 AND b=0 ELSE 0 WHEN a=0 AND b=1 ELSE 0 WHEN a=1 AND b=0 ELSE 1;END rtl;目標信號目標信號 = 表達式表達式1 when 條件條件1 else 表達式表達式2 when 條件條件2 else 表達式表達式n-1 when 條件條件n-1 else 表達式表達式n;王振紅王振紅p26LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY andgate IS PORT (a,b : IN st
40、d_logic; x : OUT std_logic);END andgate; ARCHITECTURE rtl OF andgate IS BEGIN PROCESS (a,b) BEGIN IF (a=0 AND b=0 )THEN x = 0 ELSIF (a=0 AND b=0 )THEN x = 0 ELSIF (a=0 AND b=0 )THEN x = 0 ELSE x = 1 END IF; END PROCESSEND rtl;等價的進程語句等價的進程語句功能描述:功能描述:二輸入與門二輸入與門選擇信號賦值語句選擇信號賦值語句選擇信號賦值語句根據選擇條件的不同而將不根據選擇
41、條件的不同而將不同表達式賦給目標信號。同表達式賦給目標信號。4、選擇信號賦值語句、選擇信號賦值語句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux4 IS PORT (d0,d1,d2,d3 : IN std_logic; sel: IN std_logic_vector(1 downto 0); q : OUT std_logic);END mux4; ARCHITECTURE rtl OF mux4 IS BEGIN WITH sel SELECT q = d0 WHEN “00”, d1 WHEN “01”, d2 WHEN “10”
42、, d3 WHEN OTHER;END rtl;with 表達式表達式 select 目標信號目標信號 =表達式表達式1 when 選擇條件選擇條件1, =表達式表達式2 when 選擇條件選擇條件2, =表達式表達式n when 選擇條件選擇條件n,王振紅王振紅p28功能描述:功能描述:四選一電路。四選一電路。位矢量位矢量順序描述語句順序描述語句順序描述語句if if if 四、順序描述語句四、順序描述語句* if語句語句if 條件條件1 then 第一組順序語句;第一組順序語句;elsif 條件條件2 then 第二組順序語句第二組順序語句;elsif 條件條件n then 第第n組順序語
43、句組順序語句;else 第第n+1組順序語句組順序語句;end if;if 條件條件 then 順序語句順序語句;end if;if 條件條件 then 順序語句順序語句;else 順序語句順序語句;end if;LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux4 IS PORT (d0 : IN std_logic_vector(3 downto 0); d1 : IN std_logic_vector(3 DOWNTO 0); d2 : IN std_logic_vector(3 DOWNTO 0); d3 : IN std_logic
44、_vector(3 DOWNTO 0); sel : IN std_logic_vector(1 DOWNTO 0); q : OUT std_logic_vector(3 DOWNTO 0);END mux4;ARCHITECTURE rtl OF mux4 ISBEGIN PROCESS(d0,d1,d2,d3,sel) BEGIN IF (sel = 00) THEN q = d0; ELSIF (sel = 01) THEN q = d1; ELSIF (sel = 10) THEN q = d2; ELSE q q q q q q 一組順序語句;一組順序語句; when 條件表達式的
45、值條件表達式的值=一組順序語句;一組順序語句;end case;順序描述語句順序描述語句順序描述語句looplooploop* loop語句語句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY vector_to_int IS PORT (input : IN std_logic_vector(7 DOWNTO 0); flag : OUT boolean; q : OUT integer);END vector_to_int;ARCHITECTURE behave OF vector_to_int ISBEGIN PROCESS(input) V
46、ARIABLE tmp : integer := 0; BEGIN flag = false; FOR i IN 7 DOWNTO 0 LOOP tmp := tmp * 2; IF (input(i)= 1) THEN tmp := tmp +1; ELSIF (input(i)/= 0) THEN flag = true; END IF; END LOOP; q = tmp; END PROCESS;END behave;循環標號:循環標號:for 循環變量循環變量 in 范圍范圍 loop 順序處理語句;順序處理語句; end loop 循環標號;循環標號;* for loop語句語句功
47、能描述:功能描述:將輸入端口將輸入端口input送來的矢量轉換成整數。送來的矢量轉換成整數。假假中間變量中間變量順序描述語句順序描述語句順序描述語句looplooploopLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY logic_and IS PORT (input : IN std_logic_vector(7 DOWNTO 0); q : OUT std_logic);END logic_and;ARCHITECTURE behave OF logic_and ISBEGIN PROCESS(input) VARIABLE tmp : st
48、d_logic; VARIABLE i : integer; BEGIN tmp := 1; i := 0; WHILE (i8) LOOP tmp := tmp AND input(i); i :=i+1; END LOOP; q = tmp; END PROCESS;END behave;循環標號:循環標號:while 條件表達式條件表達式 loop 順序處理語句;順序處理語句; end loop 循環標號;循環標號; * while loop語句語句功能描述:功能描述:對輸入端口對輸入端口inputinput送來的送來的位矢量各位進行邏輯與操作,當輸入位矢量各位進行邏輯與操作,當輸入in
49、putinput位矢量有一個位矢量有一個0 0時輸出時輸出q q為為0 0,輸,輸入入inputinput位矢量全為位矢量全為1 1時輸出時輸出q q為為1 1。條件滿足時執行循條件滿足時執行循環體內的語句。環體內的語句。結構體的三種描述結構體的三種描述結構體的三種描述( ( (數據流描述數據流描述數據流描述) ) ) 五、結構體的三種描述方式五、結構體的三種描述方式數據流描述方式數據流描述方式結構描述方式結構描述方式行為描述方式行為描述方式ABCinSCo1、數據流描述方式、數據流描述方式LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY full
50、_adder IS PORT (A,B : IN std_logic; Cin : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END full_adder; ARCHITECTURE rtl OF full_adder IS SIGNAL tmp1,tmp2 : std_logic; BEGIN tmp1 = A XOR B; tmp2 = tmp1 AND Cin; S = tmp1 XOR Cin; Co = tmp2 OR (A AND B);END rtl;ABCinCOS描述從輸入到輸描述從輸入到輸出信號的走向出信號的走
51、向tmp2tmp1結構描述方式結構描述方式結構描述方式2、結構描述方式、結構描述方式ABSCO半加器半加器多層次設計中,通過調用庫中的元件或是已設多層次設計中,通過調用庫中的元件或是已設計好的模塊來完成設計實體功能的描述。計好的模塊來完成設計實體功能的描述。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_ad
52、der IS SIGNAL tmp1,tmp2 : std_logic;BEGIN tmp1 = A OR B; tmp2 = A NAND B; Co = NOT tmp2; S = tmp1 AND tmp2;END rtl;書書VHDL語言程序設計語言程序設計P44LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY or_gate IS PORT ( a,b : IN std_logic; c : OUT std_logic);END or_gate; ARCHITECTURE rtl OF or_gate ISBEGIN c A,B=B, S
53、=tmp1,Co=tmp2); U1: half_adder PORT MAP (A=tmp1,B=Cin,S=S, Co=tmp3); U2: or_gate PORT MAP (a=tmp3,b=tmp2,c=Co);END structure;ABStmp3Cintmp1tmp2COU0U1U2* SIGNAL用來描述組件間的連接信號用來描述組件間的連接信號*用組合語句用組合語句COMPONENT調用已有調用已有組件。組件。* PORT MAP語句將設計的端口名稱替語句將設計的端口名稱替換為被調用組件的端口名稱換為被調用組件的端口名稱2、結構描述方式、結構描述方式行為描述方式行為描述方式
54、行為描述方式LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY full_adder IS PORT (A,B, Cin : IN std_logic; Co, S : OUT std_logic;END full_adder; ARCHITECTURE behave OF full_adder ISBEGIN PROCESS(A,B,Cin) VARIABLE n : integer RANGE 0 TO 3; CONSTANT S_vector : std_logic_vector(0 TO 3) :=0101; CONSTANT Co_vect
55、or : std_logic_vector(0 TO 3) :=0011; BEGIN n := 0; IF (A =1) THEN n := n+1; END IF; IF (B =1) THEN n := n+1; END IF; IF (Cin =1) THEN n := n+1; END IF; S = S_vector(n); Co = Co_vector(n); END PROCESS;END behave;n是對是對A、B、Cin三個變三個變量中量中1的個數的記錄。的個數的記錄。A B Cin中中“1”的個數的個數SCO000110201311ABCinSCO0000000110
56、010100110110010101011100111111全加器真值表全加器真值表3、行為描述方式、行為描述方式常量常量組合邏輯設計組合邏輯設計組合邏輯設計- - -多輸入簡單門多輸入簡單門多輸入簡單門 六、六、VHDL的組合邏輯設計的組合邏輯設計 1、多輸入簡單門電路、多輸入簡單門電路ABCYABCY00000010010001101000101011001111LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY and3_gate IS PORT (a,b,c : IN std_logic; y : OUT std_logic);END and
57、3_gate;ARCHITECTURE behave_arc OF and3_gate ISBEGIN PROCESS(a,b,c) BEGIN y y y y y y y y y y = X; END CASE; END PROCESS;END rtl_arc;CASE語句語句組合邏輯設計組合邏輯設計組合邏輯設計_ _ _三態門三態門三態門 2、三態門電路、三態門電路DINENDOUT0Z010111DINENDOUTLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY tri_gate IS PORT (din,en : IN std_logic;
58、 dout : OUT std_logic);END tri_gate;ARCHITECTURE behave_arc OF tri_gate ISBEGIN PROCESS (din,en) BEGIN IF (en = 1) THEN dout = din; ELSE dout = Z; END IF; END PROCESS;END behave_arc;IF_THEN_ELSE語句語句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY bidir_bus_buff8 IS PORT (a,b : INOUT std_logic_vector(
59、7 DOWNTO 0); en,dr : IN std_logic;END bidir_bus_buff8;ARCHITECTURE rtl_arc OF bidir_bus_buff8 IS SIGNAL aout,bout : std_logic_vector(7 DOWNTO 0);BEGIN PROCESS (a,b,dr,en) BEGIN IF (en = 0 AND dr = 1) THEN bout = a; ELSIF (en = 0 AND dr = 0) THEN aout = b; ELSE aout = ZZZZZZZZ; bout = ZZZZZZZZ; END I
60、F; b = bout; a = aout; END PROCESS;END rtl_arc;組合邏輯設計組合邏輯設計組合邏輯設計_ _ _總線緩沖器總線緩沖器總線緩沖器 3、總線緩沖器、總線緩沖器ENDR數據傳輸數據傳輸1Z00AB01ABIF_THEN_ELSIF_ELSE語句語句AENBDR端口說明中的端口說明中的雙向模式雙向模式“SIGNAL”是用來是用來表示信號的保留字表示信號的保留字組合邏輯設計組合邏輯設計組合邏輯設計_ _ _選擇器選擇器選擇器LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux IS PORT (a,b,c,d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何看待社會暴力與政治沖突的關系試題及答案
- 未來問題西方政治制度的治理理論與實踐試題及答案
- 西方的公民權利與政治參與機會試題及答案
- 軟考網絡工程師重點考點試題及答案
- 機電工程模擬實習題目試題及答案
- 2024年獨立運行風力發電機組控制器及逆變器資金申請報告代可行性研究報告
- 西方女性在政治中的影響試題及答案
- 機電工程市場需求試題及答案
- 網絡安全問題的應對措施與試題及答案
- 軟件設計師考試研究與試題及答案
- 合作協議(國外開礦甲乙雙方合同范本)
- 2023重癥血液凈化血管通路的建立與應用中國專家共識
- 植物的植物生物技術
- 醫院檢驗科實驗室生物安全管理手冊
- 公交車司機急救培訓課件
- 慢性阻塞性肺疾病的緊急救治與護理細節
- DB53-T 1215-2023 陸生野生動物收容救護技術規范
- 第二批罕見病目錄2023版
- GB/T 15231-2023玻璃纖維增強水泥性能試驗方法
- 虛擬維護助手-使用VR技術幫助維護人員進行設備維修和保養
- 印章移交清單
評論
0/150
提交評論