電氣信息技術FPGA實驗講稿_第1頁
電氣信息技術FPGA實驗講稿_第2頁
電氣信息技術FPGA實驗講稿_第3頁
電氣信息技術FPGA實驗講稿_第4頁
電氣信息技術FPGA實驗講稿_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022/7/211 電氣信息技術FPGA實驗講稿2022/7/212電氣信息技術實踐基礎FPGA實驗的目的一、熟悉一款實驗設備KH31001二、學習一種硬件描述語言VHDL三、掌握一款FPGACyclone 1C6Q四、熟悉一種集成開發(fā)環(huán)境QuartusII-5.0 2022/7/213數(shù)字器件的種類2022/7/2142022/7/215FPGA應用實例2022/7/216FPGA的概述 什么是FPGA? 現(xiàn)場可編程門陣列(FPGA)是由可編程邏輯快組成的數(shù)字集成電路,這些邏輯塊之間用可編程的互連資源。設計者可以對器件進行編程來完成各種各樣的任務。 FPGA的應用領域: 1 ASIC和定制

2、硅 2 數(shù)字信號處理 高速DSP傳統(tǒng)上是用數(shù)字信號處理器來實現(xiàn)的,現(xiàn)在的FPGA可以 包含內(nèi)嵌的的乘法器、專用計算歷程和大量的片上RAM,加上FPGA提供的并行 性,其結果比最快的DSP還快500倍。 3 嵌入式處理器 嵌入式處理器由CPU、定時器和I/O 組成。現(xiàn)在的FPGA足以實現(xiàn) 一個集成有可選定制I/O功能的軟核處理器,于是FPGA實現(xiàn)了嵌入式處理器的功 能。 4 物理層通信 FPGA長期以來用于實現(xiàn)物理層通信芯片和網(wǎng)絡協(xié)議層互聯(lián)的粘合 邏輯。今天的高端FPGA擁有了多種高速收發(fā)器,這意味著通信和網(wǎng)絡功能可以 合并到同一設備中。 5 可重配置計算技術 這是指由FPGA 提供的固有的并行

3、性和可重構性來實現(xiàn)軟 件算法的硬件加速。許多公司正在建立大型的以FPGA 為基礎的可重配置計算引 擎。2022/7/217簡單的可編程功能2022/7/218幾種半導體芯片發(fā)明的時間2022/7/219幾個名詞PLD 可編程邏輯器件(1967)PAL 可編程陣列邏輯(上世紀70年代末期 與可編程)PLA 可編程邏輯陣列(1975年 與、或都可編程)GAL 通用陣列邏輯CPLD 復雜可編程邏輯器件(上世紀70年代末期)FPGA 現(xiàn)場可編程門陣列(1984)ASIC 專用集成電路 (上世紀70年代末期)HDL 硬件描述語言(1982年,1987年IEEE標準)EDA 電子設計自動化ISP 系統(tǒng)在線

4、編程(Lattice公司發(fā)明,在線 高壓)2022/7/2110主要PLD廠商ALTERA 是最大可編程邏輯器件供應商之一。開發(fā)軟件為MaxplusII和QuartusII。 XILINX FPGA的發(fā)明者。開發(fā)軟件為Foundition和ISE。全球PLD/FPGA產(chǎn)品60%以上是由Altera和Xilinx提供的??梢灾vAltera和Xilinx共同決定了PLD技術的發(fā)展方向。Lattice Lattice是ISP技術的發(fā)明者,ISP技術極大的促進了PLD產(chǎn)品的發(fā)展,與ALTERA和XILINX相比。中小規(guī)模PLD比較有特色。ACTEL 反熔絲(一次性燒寫)PLD的領導者,由于反熔絲PLD

5、抗輻射,耐高低溫,功耗低,速度快,所以在軍品和宇航級上有較大優(yōu)勢。2022/7/2111硬件描述語言硬件描述語言(Hardware Description Language)。硬件描述語言的作用:描述硬件的邏輯結構。硬件描述語言的種類:VHDL,Verilog等2022/7/2112實驗箱結構框圖 2022/7/2113實驗箱實物圖 2022/7/2114LED 32 2022/7/21157 段(獨立/掃描)顯示器 8 2022/7/2116VHDL 工程設計流程圖2022/7/2117VHDL 程序設計基本結構和程序設計例子a、b:輸入端端口名s:通道選擇控制信號輸入端端口名y:輸出端端口

6、名功能描述:若s=0則y=a;若s=1則y=bIEEE庫使用說明實體:器件mux21的外部信號接口說明,PORT相當于器件的引腳結構體:器件mux21的內(nèi)部工作邏輯描述,即為實體描述的器件功能結構2022/7/2118進程進程語句結構 進程標號: PROCESS (敏感信號參數(shù)表) 實體名 IS 進程說明部分 BEGIN 順序描述語句 END PROCESS進程標號; 進程的例子 ARCHITECURE s_mode OF start IS BEGIN p1: PROCESS BEGIN WAIT UNTIL clock ;-等待clock 激活進程 IF(driver1)THEN CASE

7、output IS WHEN s1 output s2 WHEN s2 output s3 WHEN s3 output s4 WHEN s4 output s1 END CASE END IF; END PROCESS p1; END ARCHITECURE s_mode;2022/7/2119CASE語句結構CASE 表達式 ISWhen 選擇值 = 順序語句;(“ = ”相當于then)When 選擇值 = 順序語句;END CASE;使用CASE語句需注意:1 條件語句中的選擇值必須在表達式的取值范圍之內(nèi)。2 CASE語句的每個選擇值只能出現(xiàn)一次。3 CASE語句執(zhí)行中必須選中且只能選

8、中所列條件語句中的一條。這表明CASE語句至少包含一個條件語句。4 除非條件語句的選擇值能夠覆蓋CASE語句中表達式的值,否則最末一個條件句中的選擇必須用“OTHERS”,它表明所有條件句中未能列出其他可能的取值。2022/7/21202022/7/2121CASE 語句常見錯誤SIGNAL value :INTEGER RANGE 0 TO 15 SIGNAL out1: STD_LOGIC;CASE value IS 缺少以when引導的條件句END CASE;CASE value IS WHEN 0= out1 out1 out1 out1連接端口名,。);例如:程序1LIBRARY I

9、EEE;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY nd2 ISPORT(a,b:IN STD_LOGIC;c: OUT STD_LOGIC);END nd2;ARCHITECTURE nd2behv OF nd2 ISBEGIN C= a NAND b; END nd2behv;2022/7/2123程序22022/7/2124綜合后的結果 2022/7/2125選擇信號賦值語句 選擇信號賦值語句的語句格式如下:WITH 選擇表達式 SELECT 賦值目標信號=表達式 WHEN 選擇值表達式 WHEN 選擇值 。表達式 WHEN 選擇值選擇信號賦值語句本身不能在進

10、程中應用,其功能卻與進程中的CASE語句的功能相似。CASE語句的執(zhí)行依賴于進程中敏感信號的改變而啟動進程,而且要求CASE語句中各子句的條件不能有重疊,必須包含所有的條件。選擇信號語句中也有敏感量,即關鍵詞WHEN旁的選擇表達式,每當選擇表達式的值發(fā)生變化時,就將啟動此語句對各子句的選擇值進行測試對比,當發(fā)現(xiàn)有滿足條件的子句時,就將此子句表達式中的值賦給賦值目標信號。與CASE語句相類似,選擇賦值語句對子句條件選擇值的測試具有同期性,不像以上條件信號賦值語句那樣是按照子句的書寫順序從上至下逐條測試的。因此,選擇賦值語句不允許有條件重疊現(xiàn)象,也不允許存在條件涵蓋不全的情況。例如2022/7/2

11、126。WITH selt SELECTMuxout = a WHEN 0 | 1 , b WHEN 2 TO 5, c WHEN 6, d WHEN 7, Z WHEN OTHERS; 。 上例是一個列出選擇條件為不同取值范圍的4選1多路選擇器,當不滿足條件時,輸出呈高阻態(tài)。2022/7/2127VHDL中狀態(tài)機的實現(xiàn)數(shù)字電子學中許多過程遵循由一系列時鐘脈沖所發(fā)起的預先確定的步序。這些過程可由一個單獨的時鐘輸入驅(qū)動,在每一個時鐘脈沖輸入時有一個或多個輸出以一種特殊的順序進行響應。除了時鐘觸發(fā)器,這些過程常常還有其他外部激勵對輸出狀態(tài)進行影響。這種可在邏輯系統(tǒng)中執(zhí)行的事件序列稱為狀態(tài)機。狀態(tài)機

12、的輸出跟隨可以預測的時序,受時鐘和其他輸入激勵信號觸發(fā)。2022/7/2128跑馬燈實驗2022/7/2129實驗連線和實驗操作輸入信號:時鐘clk 接10Hz 輸入(SW7);復位rst 接撥動開關I01(撥碼開關SW3 左1);輸出信號:8 位輸出信號接LED 模塊O25O32。下載程序,將SW7 撥至第二段(10Hz),撥碼開關SW3 的IO1 撥至ON 的位置,此時,LED 燈的前8 位會有規(guī)律的閃爍。2022/7/2130跑馬燈設計2022/7/2131if(rst=0)then - 系統(tǒng)初始化 present=s0; q10);elsif(clkevent and clk=1)th

13、en case present is when s0 = if(q1=00000000)then -S0模式:從左到右逐個點亮LED q1=10000000; else if(count=0111)then count0); q1=00000001; present=s1; else q1=q1(0) & q1(7 downto 1); count=count+1; present=s0; end if; end if;2022/7/2132q1 if(count=0111)then -S1模式:從右到左逐個點亮LED count0); q1=10000001; present=s2; els

14、e q1=q1(6 downto 0) & q1(7); count=count+1; present if(count=“0011”)then-S2模式:從兩邊到中間 逐個點亮LED count0); q1=00011000; present=s3; else q1(7 downto 4)=q1(4) & q1(7 downto 5); q1(3 downto 0)=q1(2 downto 0) & q1(3); count=count+1; present=s2; end if;2022/7/2135向中間移動初值10000001q1(7 downto 4)=q1(4) & q1(7 do

15、wnto 5);前四位右移q1(3 downto 0) if(count=0011)then -S3模式:從中間到兩邊逐個點亮LED count0); q1=10000000; present=s0; else q1(7 downto 4)=q1(6 downto 4) & q1(7); q1(3 downto 0)=q1(0) & q1(3 downto 1); count=count+1; present=s3; end if; end case;end if;end process;q=q1;end;2022/7/21371 格雷碼序列器的狀態(tài)機狀態(tài)格雷碼 S0 000 S1 001 S

16、2 011 S3 010 S4 110 S5 111 S6 101 S7 1002022/7/21382022/7/2139VHDL 編程注意事項1 在VHDL中,共有3種常用對象類型:常量、變量和信號。2 應注意端口信號的方向。Out方向只能被賦值;in方向可以賦值:buffer可以賦值和被賦值;由于inout就是輸入/輸出端口,因此可以賦值和被賦值。特別需要注意的是,當輸出信號要反饋回去時,必須定義為inout。3 信號使用信號賦值符“=”。4 變量使用變量賦值符“:=”。5 std_logic和std_logic_vector是可綜合VHDL描述中常見的數(shù)據(jù)類型6 在ieee.std_l

17、ogic_unsigned.all包的支持下,可進行std_logic和std_logic_vector的加減運算。7 在同一個進程中,信號可以被多次賦值,但是只有最后一個賦值有效。在進程中,因為語句的執(zhí)行是順序的,雖然對一個信號有多次賦值,但是仍然認為該信號具有具有一次驅(qū)動。在進程中,可以對一個信號進行多次賦值。 但是,變量確不然,在一個進程內(nèi),對變量的多次賦值完全可以按照設計的邏輯進行。8 在結構體中,不能對一個信號賦值多次,因為各個信號賦值語句之間是并發(fā)關系。9 被賦值信號的位數(shù)與賦予它的數(shù)值位數(shù)必須相等,否則出錯。例如,將2位八進制賦予4位邏輯矢量是錯誤的。解決這一問題的辦法是:把位數(shù)

18、湊齊。例如3 bit 的std_logic_vector和1位的std_logic可以通過以下的方法鏈接addtemp:=0&A1&A0+0&B1&B0+”00”&CYI;2022/7/2140VHDL 編程注意事項(續(xù))10 為使賦值和被賦值情況下不出現(xiàn)錯誤,可以在結構體內(nèi)聲明與輸入、輸出端口相同數(shù)據(jù)類型的信號。在結構體中,先將輸入端口賦予信號,然后在對信號進行邏輯處理后,再用賦值語句將信號賦予輸出端口。11 定義整形數(shù)范圍的時候,計數(shù)器計數(shù)的范圍實際上是2的n次冪減1。例如integer rang 0128,實際上會計數(shù)到255,因為128需要8位二進制表示。12 Case語句需要時鐘觸發(fā)的。13 信號量不可以在進程內(nèi)定義。14 VHDL文件不能放在根目錄下,需要建一個文件夾。否則編譯不能通過。15 對含有元件例化的文件,器件必須在另一個文件里。頂層實體和工程名必須和總文件相同。16 器件例化語句不能放在

溫馨提示

  • 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

提交評論