




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 數字電路課程設計報告基于FPGA的點陣顯示控制器的設計 學 院 名 稱: 電氣信息工程學院 專 業: 測控技術與儀器 班 級: 08測控1W 姓 名: 學 號: 合作者姓名: 指導教師姓名: 逸 2010 年 12 月 目 錄序言 2第1章 課題要求 21.1 技術要求 21.1.1 EDA技術 21.1.2 VHDL語言 31.1.3 層次化設計 41.2功能要求. 51.3本人的工作. 5 第2章 設計方案 6第3章 單元電路設計和仿真結果分析 6第4章 頂層電路設計 14(第三、四章借鑒袁佳)第5章 硬
2、件電路設計與安裝圖 15第6章 硬件電路安裝與調試 18第7章 調試結果 19第8章 收獲與體會 20參考文獻 21序言隨著我國經濟的高速發展,對公共場合發布信息的需求日益增長,利用LED點陣顯示漢字的出現正好適應了這一市場需求,已經成為信息傳播的一種重要的手段。采用傳統方式設計的漢字顯示器,通常需要使用單片機、存儲器和制約邏輯電路來進行PCB半的系統集成。盡管這種方案有單片機軟件的支持較為靈活,但是由于受硬件資源的限制,未來對設計的變更和升級,總是難以避免要付出較多的研發經費和較長投放市場周期的代價。隨著電子設計自動化(EDA)技術的進展,基于可編程FPGA器件進行系統芯片集成的新設計方法,
3、也正在快速地取代基于PCB板的傳統設計方式。因此,本文闡述了基于FPGA和VHDL語言實現在8*8點陣上顯示漢字的問題。第一章 課題要求1.1 技術要求1.1.1 EDA技術20世紀90年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結構和工作方式進行重構,從而使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設
4、計過程和設計觀念,促進了EDA技術的迅速發展。 EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現,極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。 利用EDA工具,電子設計師可以從概念、算法、協議等開始設計電子系統,大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程的計算機上自動處理完成。 現在對EDA的概念或范疇用得很寬。包括在機械、電子、
5、通信、航空航天、化工、礦產、生物、醫學、軍事等各個領域,都有EDA的應用。目前EDA技術已在各大公司、企事業單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術。EDA在教學、科研、產品設計與制造等各方面都發揮著巨大的作用。在教學方面,幾乎所有理工科(特別是電子信息)類的高校都開設了EDA課程。主要是讓學生了解EDA的基本概念和基本原理、掌握用HDL語言編寫規范、掌握邏輯綜合的理論和算法、使用EDA工具進行電子電路課程的實驗驗證并從事簡單系統的設計。一般學習電路仿真工具(如multiSIM、PSPICE)和PLD開發工具(如Alter
6、a/Xilinx的器件結構及開發系統),為今后工作打下基礎。 科研方面主要利用電路仿真工具(multiSIM或PSPICE)進行電路設計與仿真;利用虛擬儀器進行產品測試;將CPLD/FPGA器件實際應用到儀器設備中;從事PCB設計和ASIC設計等。 在產品設計與制造方面,包括計算機仿真,產品開發中的EDA工具應用、系統級模擬及測試環境的仿真,生產流水線的EDA技術應用、產品測試等各個環節。如PCB的制作、電子設備的研制與生產、電路板的焊接、ASIC的制作過程等。 從應用領域來看,EDA技術已經滲透到各行各業,如上文所說,包括在機械、電子、通信、航空航航天、化工、礦產、生物、醫學、軍事等各個領域
7、,都有EDA應用。另外,EDA軟件的功能日益強大,原來功能比較單一的軟件,現在增加了很多新用途。如AutoCAD軟件可用于機械及建筑設計,也擴展到建筑裝璜及各類效果圖、汽車和飛機的模型、電影特技等領域。1.1.2 VHDL語言VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國國防部確認為標準硬件描述語言。 VHDL主要用于描述數字系統的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法
8、是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可視部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。VHDL 語言能夠成為標準化的硬件描述語言并獲得廣泛應用 , 它自身必然具有很多其他硬件描述語言所不具備的優點。歸納起來 ,VHDL 語言主要具有以下優點: (1) VHDL 語言功能強大 , 設計方式多樣 VHDL 語言具有強
9、大的語言結構, 只需采用簡單明確的VHDL語言程序就可以描述十分復雜的硬件電路。同時, 它還具有多層次的電路設計描述功能。此外 ,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設計實現, 這是其他硬件描述語言所不能比擬的。VHDL 語言設計方法靈活多樣 , 既支持自頂向下的設計方式, 也支持自底向上的設計方法; 既支持模塊化設計方法, 也支持層次化設計方法。 (2) VHDL 語言具有強大的硬件描述能力 VHDL 語言具有多層次的電路設計描述功能,既可描述系統級電路 , 也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結構描述,也可以采用三者的混合描述方式。同時,V
10、HDL 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。VHDL 語言的強大描述能力還體現在它具有豐富的數據類型。VHDL 語言既支持標準定義的數據類型,也支持用戶定義的數據類型,這樣便會給硬件描述帶來較大的自由度。 (3) VHDL 語言具有很強的移植能力 VHDL 語言很強的移植能力主要體現在: 對于同一個硬件電路的 VHDL 語言描述 , 它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執行。 (4) VHDL 語言的設計描述與器件無關 采用 VHDL 語言描述硬件電路時, 設計人員并不需要首先考慮選擇進行
11、設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優化, 而不需要考慮其他的問題。當硬件電路的設計描述完成以后 ,VHDL 語言允許采用多種不同的器件結構來實現。 (5) VHDL 語言程序易于共享和復用 VHDL 語言采用基于庫 ( library) 的設計方法。在設計過程中 , 設計人員可以建立各種可再次利用的模塊 , 一個大規模的硬件電路的設計不可能從門級電路開始一步步地進行設計 , 而是一些模塊的累加。這些模塊可以預先設計或者使用以前設計中的存檔模塊, 將這些模塊存放在庫中 , 就可以在以后的設計中進行復用。 由于 VHDL 語言是一種描述、模擬、綜合、優化和布線的標準硬件
12、描述語言 , 因此它可以使設計成果在設計人員之間方便地進行交流和共享, 從而減小硬件電路設計的工作量, 縮短開發周期。1.1.3 層次化設計我們在設計時為了提高最后結果的正確性和修改的方便性,往往采用層次化的設計,硬件描述語言設計可以描述(合成)為一個大的模塊,或多個小的模塊。每種方法都有其優點和不利之處。隨著更高密度的FPGA器件的產生,使得層次化設計的優點遠超過其不利之處。下面是分層設計的一些優點:(1)提供更簡單快捷的驗證與仿真(2)允許多個工程師同時進行設計(3)加快設計編輯(4)產品設計更易于理解(5)高效的管理設計流程分層設計也有其一定的缺點:通過分層約束,FPGA中的映射設計可能
13、不是最佳,這可能會降低設備利用率和設計性能。對此加強注意,可使影響減少到最小。 1.2 功能要求(1)基本功能基于FPGA設計一個8*8的點陣顯示控制器,基本要求為能夠靜態顯示一個漢字。(2)擴展功能但在此基礎上,我們組做了一定的擴展功能,點陣顯示可顯示一個靜態的“王”字,一屏一屏的“亞運會”,和一個滾動的“王”字,顯示方式可由開關K1,K2,K3控制,K1為靜態的“王”字,K2為顯示一屏一屏的“亞運會”,K3為顯示一個滾動的“王“字,滾動的方向為向左。1.3 本人的工作本人負責硬件的設計,安裝和調試,主要進行如下工作:(1)根據模塊化的思想進行設計,畫出設計原理圖(2)確定每個元器件的參數(
14、3)按照設計的硬件原理圖進行排版布局(4)焊接元器件(5)進行硬件的調試(6)與下載好程序的FPGA板連接,與軟件結合后進行再一次的調試第二章 設計方案本文設計的LED點陣模塊,共由8*8=64個LED發光二極管組成。如何在該點陣模塊上顯示漢字是本文設計的關鍵技術。本文的系統設計是采用一種動態分時掃描技術來實現的。由于顯示器為行共陽、列用陰的結構,因此不可能在同一時刻顯示整個漢字。為了顯示出整個漢字,首先分布好漢字排列,以行給漢字信息;然后以1Hz頻率的時序逐一點亮每一列,即每列逐一加高電平,同時行給漢字信息,根據人眼的視覺殘留特性,使之形成整個漢字的顯示。本次設計采用模塊化的設計方式,原理如
15、圖:列控制掃描電路分頻電路時鐘輸入8*8矩陣顯示屏行控制掃描電路第三章 單元電路設計(參照袁佳)下面的程序是實現靜態顯示“王”字。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_Unsigned.all;use ieee.std_logic_ARITH.all;ENTITY peng isport(clk,en:in std_logic; lie:out std_logic_vector(7 downto 0); -列 com:out std_logic_vector(7 downto 0);-行End peng;Arch
16、itecture a of peng issignal st1:std_logic_vector(7 downto 0);signal osc:std_logic;signal osd:std_logic;signal d_ff:std_logic_vector(27 downto 0);signal data:std_logic_vector(7 downto 0);signal d0,d1,d2,d3,d4,d5,d6,d7:std_logic_vector(7 downto 0);signal lie0:std_logic_vector(6 downto 0);Begincom=data
17、;lie=st1;d0=;d1=;d2=;d3=;d4=;d5=;d6=;d7=2e8)then d_ff(27 downto 0)=;else d_ff(27 downto 0)=d_ff+1;end if;osc=not d_ff(10);end process first;second:process(osc)begin if(osc=1 and oscevent and en=0)then if st1(7 downto 0)=or st1(7 downto 0)=then st1(7 downto 0)=;data=d0;-逐列掃描方式 elsif st1(7 downto 0)=t
18、hen st1(7 downto 0)=;data=d1; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d2; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d3; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d4; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d5; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d6; elsif
19、 st1(7 downto 0)=then st1(7 downto 0)=;data=d7; end if;end if;end process second;end a;以下程序是實現一屏一屏顯示“亞運會”Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arith.all;Entity weng isPort( Clk,en:in std_logic; lie:out std_logic_vector(7 downto 0);-列 Com:out std_
20、logic_vector(7 downto 0);-行End weng;Architecture a of weng issignal st1:std_logic_vector(7 downto 0);signal osc:std_logic;signal osd:std_logic;signal d_ff:std_logic_vector(27 downto 0);signal data:std_logic_vector(7 downto 0);signal d0,d1,d2,d3,d4,d5,d6,d7:std_logic_vector(7 downto 0);signal lie0:st
21、d_logic_vector(6 downto 0);begincom=data;lie=st1;D0=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D1=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D2=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D3=wh
22、en lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D4=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D5=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen lie0(6 downto 0)=else;D6=when lie0(6 downto 0)=elsewhen lie0(6 downto 0)=elsewhen
23、 lie0(6 downto 0)=else;D7=2e8)thend_ff(27 downto 0)=;elsed_ff(27 downto 0)=d_ff+1;end if;osc=not d_ff(10);osd=not d_ff(26);end process first;second:process(osc)beginif(osc=1 and oscevent)then if st1(7 downto 0)=or st1(7 downto 0)=then st1(7 downto 0)=;data=d0; -逐列掃描方式 elsif st1(7 downto 0)=then st1(
24、7 downto 0)=;data=d1; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d2; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d3; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d4; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d5; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d6; elsif st1(7 d
25、ownto 0)=then st1(7 downto 0)=;data=d7; end if;end if;end process second;third:process(osd)beginif(osd=1 and osdevent and en=0)thenif lie0(6 downto 0)=then lie0(6 downto 0)=;else lie0(6 downto 0)=lie0+1;end if;end if;end process third;end a;以下程序實現滾動顯示“王”LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE I
26、EEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;entity gun isPORT( clk,en:IN STD_LOGIC; lie:out STD_LOGIC_VECTOR(7 DOWNTO 0);-列 com:out STD_LOGIC_VECTOR(7 DOWNTO 0);-行END gun;ARCHITECTURE a OF gun ISSIGNAL st1,st2:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL osc:STD_LOGIC;SIGNAL osd:STD_LOGIC;SIGNAL
27、d_ff:STD_LOGIC_VECTOR(27 DOWNTO 0);SIGNAL data:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL d0,d1,d2,d3,d4,d5,d6,d7:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL lie0,lie1,lie2,lie3,lie4,lie5,lie6,lie7:STD_LOGIC_VECTOR(6 DOWNTO 0);BeginCom=data;lie=st1;D0= when lie0=else-王字第0列 when lie0=else-王字第1列 when lie0=else-王字第2列
28、 when lie0=else-王字第3列 when lie0=else-王字第4列 when lie0=else-王字第5列 when lie0=else-王字第6列 when lie0=else-王字第7列 ; -以上為字庫0 D1=when lie0=else-王字第1列when lie0=else-王字第2列when lie0=else-王字第3列when lie0=else-王字第4列when lie0=else-王字第5列when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列;-以上為字庫1D2=when lie0=
29、else-王字第2列when lie0=else-王字第3列when lie0=else-王字第4列when lie0=else-王字第5列when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列when lie0=else-王字第1列;-以上為字庫2D3=when lie0=else-王字第3列when lie0=else-王字第4列when lie0=else-王字第5列when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列when lie0=else-王字第1
30、列when lie0=else-王字第2列;-以上為字庫3D4=when lie0=else-王字第4列when lie0=else-王字第5列when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列when lie0=else-王字第1列when lie0=else-王字第2列when lie0=else-王字第3列;-以上為字庫4D5=when lie0=else-王字第5列when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列when lie0=else-王字
31、第1列when lie0=else-王字第2列when lie0=else-王字第3列when lie0=else-王字第4列;-以上是字庫5D6=when lie0=else-王字第6列when lie0=else-王字第7列when lie0=else-王字第0列when lie0=else-王字第1列when lie0=else-王字第2列when lie0=else-王字第3列when lie0=else-王字第4列when lie0=else-王字第5列;-以上是字庫6D7=2e8 thend_ff(27 downto 0)=;elsed_ff(27 downto 0)=d_ff+1
32、;end if;osc=not d_ff(10);osd=not d_ff(26);end process first;second:process(osc)begin if(osc=1and oscevent)then if st1(7 downto 0)=or st1(7 downto 0)=then st1(7 downto 0)=;data=d0; -逐列掃描方式 elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d1; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d2; elsif
33、st1(7 downto 0)=then st1(7 downto 0)=;data=d3; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d4; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d5; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d6; elsif st1(7 downto 0)=then st1(7 downto 0)=;data=d7; end if;end if;end process second;third:pr
34、ocess(osd)beginif(osd=1 and osdevent and en=0)then if lie0(6 downto 0)=then lie0(6 downto 0)=; else lie0clk,en=a(2),com=h1,lie=l1);u2:weng port map(clk=clk,en=a(1),com=h2,lie=l2);u3:gun port map(clk=clk,en=a(0),com=h3,lie=l3);hang=h1 or h2 or h3;lie=l1 or l2 or l3;end architecture one;第五章 硬件電路設計與安裝圖(一) 系統硬件的設計(1) LED的發光原理本次試驗采用的是行共陽、列共陰的LED顯示器,其連接方式如圖:要使點陣上Aa二極管發亮,則A為高電平,a為低電平。本文的系統設計是采用一種動態分時掃描技術來實現的。由于顯示器為行共陽、列用陰的結構,因此不可能在同一時刻顯示整個漢字。為了顯示出整個漢字,首先分布好漢字排列,以行給漢字信息;然后以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備設施包保管理制度
- 設計公司內控管理制度
- 設計單位現場管理制度
- 設計項目人員管理制度
- 診所醫療器械管理制度
- 診斷試劑風險管理制度
- 試驗示范基地管理制度
- 財務資金收支管理制度
- 貨倉搬運安全管理制度
- 貨物海關代理管理制度
- 高端私人定制服務方案
- 2025年保密知識競賽考試題庫300題(含答案)
- 部編版2024-2025學年四年級下冊語文期末測試卷(含答案)
- 2025年醫保政策考試題庫及答案:基礎解讀與醫保政策法規試題試卷
- 腫瘤日間化療規范化管理
- 2025至2030年中國液化設備行業投資前景及策略咨詢研究報告
- 湖北省武漢市部分重點中學2022-2023學年高一下學期期末聯考數學 含解析
- 行政-接機流程及禮儀(定稿)
- DB44-T 2579-2024 嶺南傳統天灸技術操作規范
- 房地產市場報告 -2025年第一季度西安寫字樓和零售物業市場報告
- 中國成人呼吸系統疾病家庭氧療指南(2024年)解讀課件
評論
0/150
提交評論