畢業(yè)設計論文基于FPGA與色敏傳感器的顏色識別系統(tǒng)數(shù)字部分_第1頁
畢業(yè)設計論文基于FPGA與色敏傳感器的顏色識別系統(tǒng)數(shù)字部分_第2頁
畢業(yè)設計論文基于FPGA與色敏傳感器的顏色識別系統(tǒng)數(shù)字部分_第3頁
畢業(yè)設計論文基于FPGA與色敏傳感器的顏色識別系統(tǒng)數(shù)字部分_第4頁
畢業(yè)設計論文基于FPGA與色敏傳感器的顏色識別系統(tǒng)數(shù)字部分_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)論文(設計)題 目 基于 fpga 與色敏傳感器的顏色識別系統(tǒng)(數(shù)字部分)指導教師 職稱 學生姓名 學號 專 業(yè) 自動化 班級 (1) 院 (系)電子信息工程學院電子工程系完成時間 基于 fpga 與色敏傳感器的顏色識別系統(tǒng)(數(shù)字部分)摘要本論文主要介紹了顏色識別系統(tǒng), 本顏色識別系統(tǒng)主要實現(xiàn)對幾種典型顏色的自動識別.本設計基于 fpga 與色敏傳感器來實現(xiàn),包括模擬和數(shù)字兩個主要部分.模擬部分主要負責顏色信號的采集、放大,采集信號使用 cls9032 單晶硅雙結型色敏傳感器;數(shù)字部分主要負責顏色信號的處理和識別,也是本設計的核心部分,硬件使用 altera 公司的 niosii 處理

2、器 fpga 系統(tǒng)組建,軟件使用vhdl 語言編程。數(shù)字部分用到的核心部件是 fpga,不同于單片機。單片機(如 8051 系統(tǒng))每條指令都需要 12 個振蕩周期,fpga 只需要 2 個振蕩周期,所以同樣條件下,fpga 有更快的運行速度,這也是本設計的創(chuàng)新之處。關鍵詞關鍵詞:顏色傳感器;fpga;vhdl 語言;sensitive sensors based on fpga with color color identification system (digital part)abstract this paper introduces color identification syst

3、em, the primary color identification system to realize the automatic recognition of typical color. the design is based on sopc technology, the use niosii soft-core processor, including analog and digital two main parts. simulate some of the major responsible for the color signal acquisition, amplifi

4、cation, signal acquisition using cls9032 silicon color sensor with double-junction sensor; digital part is mainly responsible for the color signal processing and identification, the hardware using alteras niosii processor system formed, the software programming using vhdl language. digital part of t

5、he core component is used in fpga, different from the mcu. microcontroller (such as the 8051 system) each instruction requires 12 oscillation period, fpga only two oscillation period, so the same conditions, fpga with a faster speed, which is also the design innovations. keywords:color sensor ; fpga

6、; vhdl language;目 錄摘要iabstractii第 1 章 緒 論1第 2 章 eda 技術與 vhdl12.1 eda 技術1 2.1.1 eda 技術的含義1 2.1.2 eda 技術的發(fā)展歷史2 2.1.3 eda 技術的基本特征2 2.1.4 eda 技術的主要內容3 2.1.5 eda 技術的設計流程5 2.2 vhdl 硬件描述語言72.2.1 vhdl 的特點72.2.2 vhdl 語言基礎知識8第 3 章 色敏傳感器與 fpga 的簡單介紹143.1 色敏傳感器143.2 fpga15 3.3 a/d16第四章 基于 fpga 與色敏傳感器的顏色識別系統(tǒng)(數(shù)字部

7、分)164.1 設計原理及工作要求164.2 模擬部分174.3 數(shù)字部分(重要)174.4 altera quartus ii 壞境下的仿真19結束語20致謝21參考文獻22(附 錄)23第 1 章 緒 論(稍增加一些內容,緒論中主要寫論文的設計背景,意義,設計內容及預期目標)在當今的社會生活中,顏色識別得到越來越廣泛的應用。各個領域的廣泛應用需求使顏色識別技術有了長足的發(fā)展,結合其他技術,可為工業(yè)控制、產品制造等多個行業(yè)更好地服務。目前,顏色識別技術主要是通過結構簡單、使用方便的單片機來實現(xiàn),而本設計選用 fpga 來實現(xiàn),該系統(tǒng)可應用于印染、油漆、汽車等行業(yè),也可以裝在自動生產線上對產品

8、的顏色進行監(jiān)測。這樣選擇的好處有以下幾點:fpga 芯片是并行運算的,每個振蕩周期都可以執(zhí)行任務,而單片機(如 8051 系列)的每條指令都需要 12 個振蕩周期。例如,單片機 io 端口的變化最快也需要 24 個振蕩周期,而 fpga 只需要 2 個振蕩周期,所以同樣的振蕩周期下,fpga 速度更快。fpga 有豐富的 io 資源(一般有數(shù)百個 io 口),容易實現(xiàn)大規(guī)模系統(tǒng),可以方便地連接外設(比如多路 ad、da 等)。而單片機的 io 口有限,要進行仔細的資源分配、總線隔離。fpga 可以進行硬件重構,在功能擴展或性能改善方面也非常容易。本設計選用了 altera 公司的:niosli

9、 軟核,使用 sopc 的軟硬件綜合解決方案。與傳統(tǒng)的設計方法完全不同,從硬件和軟件整體設計上進行了極大的改進,使硬件電路更加簡單、有效、易于理解,軟件設計更輕松、可移植性更強。第 2 章 eda 技術與 vhdl(刪減第二章的內容,篇幅不能超過 4 頁,且第二章不能只介紹 eda 相關的內容,你論文中用到的傳感器類的相關知識也可以稍微描述一下,總體篇幅要不超過 4 頁)2.1 eda 技術2.1.1 eda 技術的含義eda 即電子設計自動化,是 electronic design automation 的英文縮寫。其發(fā)展歷程可分為:(1)手工設計階段(2)早期電子 cad 技術(3)電子設

10、計自動化(eda)技術(4)soc、esda 設計技術。 (其中 soc:system on a chip,esda:electronic system design automation) 它有廣義和狹義兩種定義方式,其廣義定義范圍包括:半導體工藝設計自動化、可編程器件設計自動化、電子系統(tǒng)設計自動化、印刷電路板設計自動化、仿真與測試、故障診斷自動化、形式驗證自動化,這些都通稱為 eda 工程。 eda 技術的狹義定義為以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)??删幊唐骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,自動完成用軟件方式描述的電子系統(tǒng)到硬

11、件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、布局布線、邏輯仿真,直至完成對于特定目標芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或專用集成芯片的一門多學科融合的新技術。 2.1.2 eda 技術的發(fā)展歷史 20 世紀 90 年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如 cpld、fpga)的應用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結構和工作方式進行重構,從而使得硬件的設計可以如

12、同軟件設計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設計方法、設計過程和設計觀念,促進了 eda 技術的迅速發(fā)展。 eda 是電子設計自動化(electronic design automation)的縮寫,在 20世紀 90 年代初從計算機輔助設計(cad)、計算機輔助制造(cam)、計算機輔助測試(cat)和計算機輔助工程(cae)的概念發(fā)展而來的。eda 技術就是以計算機為工具,設計者在 eda 軟件平臺上,用硬件描述語言 hdl 完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。eda

13、技術的出現(xiàn),極大地提高了電路設計的效率和可*性,減輕了設計者的勞動強度。2.1.3 eda 技術的基本特征eda 代表了當今電子設計技術的最新發(fā)展方向,它的基本特征是:設計人員按照“自頂向下”的設計方法,對整個系統(tǒng)進行方案設計和功能劃分,系統(tǒng)的關鍵電路用一片或幾片專用集成電路(asic)實現(xiàn),然后采用硬件描述語言(hdl)完成系統(tǒng)行為級設計,最后通過綜合器和適配器生成最終的目標器件,這樣的設計方法被稱為高層次的電子設計方法。下面介紹與 eda 基本特征有關的幾個概念。 1“自頂向下”的設計方法。10 年前,電子設計的基本思路還是選用標準集成電路“自底向上”地構造出一個新的系統(tǒng),這樣的設計方法就

14、如同一磚一瓦建造金字塔,不僅效率低、成本高而且容易出錯。 高層次設計是一種“自頂向下”的全新設計方法,這種設計方法首先從系統(tǒng)設計人手,在頂層進行功能方框圖的劃分和結構設計。在方框圖一級進行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,在系統(tǒng)一級進行驗證。然后,用綜合優(yōu)化工具生成具體門電路的網(wǎng)絡表,其對應的物理實現(xiàn)級可以是印刷電路板或專用集成電路。由于設計的主要仿真和調試過程是在高層次上完成的,這既有利于早期發(fā)現(xiàn)結構設計上的錯誤,避燃計工作的浪費,又減少了邏輯功能仿真的工作量,提高了設計的一次成功率。 2asic 設計?,F(xiàn)代電子產品的復雜度日益提高,一個電子系統(tǒng)可能由數(shù)萬個中小規(guī)模集成

15、電路構成,這就帶來了體積大、功耗大、可靠性差的問題。解決這一問題的有效方法就是采用 asic 芯片進行設計。asic 按照設計方法的不同可分為全定制 asic、半定制 asc 和可紀程 asic(也稱為可編程邏輯器件)。 設計全定制 asic 芯片時,設計師要定義芯片上所有晶體管的幾何圖形和工藝規(guī)則,最后將設計結果交由 m 廠家去進行格模制造,做出產品。這種設計方法的優(yōu)點是芯片可以獲得最優(yōu)的性能,即面積利用率高、速度快、功耗低,而缺點是開發(fā)周期長,費用高,只適合大批量產品開發(fā)。 半定制 asic 芯片的版圖設計方法分為門陣列設計法和標準單元設計法,這兩種方法都是約束性的設計方法,其主要目的就是

16、簡化設計,以犧牲芯片性能為代價來縮短開發(fā)時間。2.1.4 eda 技術的主要內容eda 技術涉及面廣,內容豐富,從教學和實用的角度看,主要應掌握如下四個方面的內容:(1)大規(guī)??删幊踢壿嬈骷?;(2)硬件描述語言;(3)軟件開發(fā)工具;(4)實驗開發(fā)系統(tǒng)。其中,大規(guī)模可編程邏輯器件是利用eda 技術進行電子系統(tǒng)設計的載體,硬件描述語言是利用 eda 技術進行電子系統(tǒng)設計的主要表達手段,軟件開發(fā)工具是利用 eda 技術進行電子系統(tǒng)設計的智能化的自動設計工具,實驗開發(fā)系統(tǒng)則是利用 eda 技術進行電子系統(tǒng)設計的下載工具及硬件驗證工具。(1) 大規(guī)??删幊踢壿嬈骷删幊踢壿嬈骷ê喎Q pld)是一種由用

17、戶編程以實現(xiàn)某種邏輯功能的新型邏輯器件。fpga 和 cpld 分別是現(xiàn)場可編程門陣列和復雜可編程邏輯器件的簡稱,現(xiàn)在,fpga 和 cpld 器件的應用已十分廣泛,它們將隨著 eda 技術的發(fā)展而成為電子設計領域的重要角色。國際上生產 fpga/cpld 的主流公司,并且在國內占有市場份額較大的主要是 xilinx, altera, lattice 三家公司。xilinx 公司的 fpga 器件有 xc2000,xc3000,xc4000,xc4000e,xc4000xla, xc5200 系列等,可用門數(shù)為 120018000;altera 公司的 cpld 器件有flex600,flex

18、8000,flex10k,flex10ke 系列等,提供門數(shù)為500025000;lattice 公司的 isp-pld 器件有 isplsi1000, isplsi2000, isplsi3000, isplsi6000 系列等,集成度多達 25000 個 pld 等效門。fpga 在結構上主要分為三個部分,即可編程邏輯單元,可編程輸入/輸出單元和可編程連線三個部分。cpld 在結構上主要包括三個部分,即可編程宏單元,可編程輸入/輸出單元和可編程內部連線。高集成度、高速度和高可靠性是 fpga/cpld 最明顯的特點,其時鐘延時可小至 ns 級,結合其并行工作方式,在超高速應用領域和實時測控

19、方面有著非常廣闊的應用前景。在高可靠應用領域,如果設計得當,將不會存在類似于mcu 的復位不可靠和 pc 可能跑飛等問題。fpga/cpld 的高可靠性還表現(xiàn)在幾乎可將整個系統(tǒng)下載于同一芯片中,實現(xiàn)所謂片上系統(tǒng),從而大大縮小了體積,易于管理和屏蔽。由于 fpga/cpld 的集成規(guī)模非常大,可利用先進的 eda 工具進行電子系統(tǒng)設計和產品開發(fā)。由于開發(fā)工具的通用性、設計語言的標準化以及設計過程幾乎與所用器件的硬件結構沒有關系,因而設計開發(fā)成功的各類邏輯功能塊軟件有很好的兼容性和可移植性。它幾乎可用于任何型號和規(guī)模 fpga/cpld中,從而使得產品設計效率大幅度提高??梢栽诤芏虝r間內完成十分復

20、雜的系統(tǒng)設計,這正是產品快速進入市場最寶貴的特征。美國 it 公司認為,一個asic80%的功能可用于 ip 核等現(xiàn)成邏輯合成。而未來大系統(tǒng)的 fpga/cpld 設計僅僅各類再應用邏輯與 ip 核(core)的拼裝,其設計周期將更短。與 asic 設計相比,fpga/cpld 顯著的優(yōu)勢是開發(fā)周期短、投資風險小、產品上市速度快、市場適應能力強核硬件升級回旋余地大,而且當產品定型核產量擴大后,可將在生產中達到充分檢驗的 vhdl 設計迅速實現(xiàn) asic 投產。對于一個開發(fā)項目,究竟是選擇 fpga 還是選擇 cpld 呢?主要看開發(fā)項目本身的需要。對于普通規(guī)模,且產量不是很大的產品項目,通常使

21、用cpld 比較好。對于大規(guī)模的邏輯設計 asic 設計,或單片系統(tǒng)設計,則多采用fpga。另外,fpga 掉電后將丟失原有的邏輯信息,所以在使用中需要為fpga 芯片配置一個專用 rom。(2)硬件描述語言(hdl) 常用的硬件描述語言有 vhdl、verilog、abel。vhdl:作為 ieee 的工業(yè)標準硬件描述語言,在電子工程領域,已成為事實上的通用硬件描述語言。verilog:支持的 eda 工具較多,適用于 rtl 級核門電路級的描述,其綜合過程較 vhdl 稍簡單,但其在高級描述方面不如 vhdl。 abel:一種支持各種不同輸入方式的 hdl,被廣泛于各種可編程邏輯器件的邏輯

22、功能設計,由于其語言描述的獨立性,因而適用于各種不同規(guī)模的可編程器件的設計。有專家認為,在新世紀中,vhdl 與 verilog 語言將承擔幾乎全部的數(shù)字系統(tǒng)設計任務。(3)軟件開發(fā)工具目前比較流行的、主流廠家的 eda 的軟件工具有 altera 的 max+plus ii 、lattice 的 ispexpert、xilinx 的 foundation series。max+plus ii:支持原理圖、vhdl 和 verilog 語言文本文件,以及以波形與 edif 等格式的文件作為設計輸入,并支持這些文件的任意混合設計。它具有門級仿真器,可以進行功能仿真和時序仿真,能夠產生精確的仿真結

23、果。在適配之后,max+plus ii 生成供時序仿真用的 edif、vhdl 和 verilog 這三種不同格式的網(wǎng)表文件,它界面友好,使用便捷,被譽為業(yè)界最易學易用的 eda軟件,并支持主流的第三方 eda 工具,支持除 apex20k 系列之外的所有altera 公司的 fpga/cpld 大規(guī)模邏輯器件。ispexpert:ispexpert system 是 ispexpert 的主要集成環(huán)境。通過它可以進行 vhdl、verilog 及 abel 語言的設計輸入、綜合、適配、仿真和在系統(tǒng)下載。ispexpert system 是目前流行的 eda 軟件中最容易掌握的設計工具之一,它

24、界面友好,操作方便,功能強大,并與第三方 eda 工具兼容良好。foundation series:xilinx 公司最新集成開發(fā)的 eda 工具。它采用自動化的、完整的集成設計環(huán)境。foundation 項目管理器集成了 xilinx 實現(xiàn)工具,并包含了強大的 synopsys fpga express 綜合系統(tǒng),是業(yè)界最強大的 eda 設計工具之一。(4)實驗開發(fā)系統(tǒng)提供芯片下載電路及 eda 實驗/開發(fā)的外圍資源(類似于用于單片機開發(fā)的仿真器) ,供硬件驗證用。一般包括:a)實驗或開發(fā)所需的各類基本信號發(fā)生模塊,包括時鐘、脈沖、高低電平等;b)fpga/cpld 輸出信息顯示模塊,包括數(shù)

25、據(jù)顯示、發(fā)光管顯示、聲響指示等;c)監(jiān)控程序模塊,提供“電路重構軟配置”;d)目標芯片適配座以及上面的 fpga/cpld 目標芯片和編程下載電路。2.1.5 eda 技術的設計流程可以從傳統(tǒng)設計方法和 eda 設計方法的區(qū)別說明eda 設計方法的優(yōu)勢:(1 1)設設計計思思想想不不同同:(2)eda 是采用自上而下(top - down)的設計方法。 自上而下是指將數(shù)字系統(tǒng)的整體逐步分解為各個子系統(tǒng)和模塊,若子系統(tǒng)規(guī)模較大,則還需將子系統(tǒng)進一步分解為更小的子系統(tǒng)和模快,層層分解,直至整個系統(tǒng)中各個子系統(tǒng)關系合理,并便于邏輯電路級的設計和實現(xiàn)為止。自上而下設計中可逐層描述,逐層仿真,保證滿足系

26、統(tǒng)指標。 傳統(tǒng)設計方法是采用自下而上(bottom up)的設計方法。 (2 2)與與傳傳統(tǒng)統(tǒng)的的基基于于電電路路板板的的設設計計方方法法不不同同,e ed da a 技技術術是是基基于于芯芯片片的的設設計計方方法法。(3 3)描描述述方方式式不不同同: 傳統(tǒng)設計方法采用電路圖為主; eda 設計方法以硬件描述語言(hdl_ hard description language)為主。( 4 4)設設計計手手段段不不同同: 傳統(tǒng)設計方法以手工設計為主;eda 設計方法其方案驗證與設計、系統(tǒng)邏輯綜合、布局布線、性能仿真、器件編程等均由 eda 工具一體化完成。2.2 vhdl 硬件描述語言2.2.

27、1 vhdl 的特點vhdl 是一種用普通文本形式設計數(shù)字系統(tǒng)的硬件描述語言,主要用于描述數(shù)字系統(tǒng)的結構、行為、功能和接口,可以在任何文字處理軟件環(huán)境中編輯。除了含有許多具有硬件特征的語句外,其形式、描述風格及語法十分類似于計算機高級語言。vhdl 程序將一項工程設計項目(或稱設計實體)分成描述外部端口信號的可視部分和描述端口信號之間邏輯關系的內部不可視部分,這種將設計項目分成內、外兩個部分的概念是硬件描述語言(hdl)的基本特征。當一個設計項目定義了外部界面(端口) ,在其內部設計完成后,其他的設計就可以利用外部端口直接調用這個項目。vhdl 的主要特點如下:(1)作為 hdl 的第一個國際

28、標準,vhdl 具有很強的可移植性。(2)具有豐富的模擬仿真語句和庫函數(shù),隨時可對設計進行仿真模擬,因而能將設計中的錯誤消除在電路系統(tǒng)裝配之前,在設計早期就能檢查設計系統(tǒng)功能的可行性,有很強的預測能力。(3)vhdl 有良好的可讀性,接近高級語言,容易理解。(4)系統(tǒng)設計與硬件結構無關,方便了工藝的轉換,也不會因工藝變化而使描述過時。(5)支持模塊化設計,可將大規(guī)模設計項目分解成若干個小項目,還可以把已有的設計項目作為一個模塊調用。(6)對于用 vhdl 完成的一個確定設計,可以利用 eda 工具進行邏輯綜合和優(yōu)化,并能自動地把 vhdl 描述轉變成門電路級網(wǎng)表文件。(7)設計靈活,修改方便,

29、同時也便于設計結果的交流、保存和重用,產品開發(fā)速度快,成本低。vhdl 是一種快速的電路設計工具,其功能涵蓋了電路描述、電路合成、電路仿真等設計工作。vhdl 具有極強的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門電路級三個不同層次的設計,能夠完成從上層到下層(從抽象到具體)逐層描述的結構化設計思想。用 vhdl 設計電路主要的工作過程是:1)編輯。用文本編輯器輸入設計的源文件(為了提高輸入效率,可用某些專用編輯器) 。2)編譯。用編譯工具將文本文件編譯成代碼文件,并檢查語法錯誤。3)功能仿真(前仿真) 。在編譯前進行邏輯功能驗證,此時的仿真沒有延時,對于初步的功能檢測非常方便。4)綜合。

30、將設計的源文件用自動綜合工具由語言轉換為實際的電路圖(門電路級網(wǎng)表) ,但此時還沒有在芯片中形成真正的電路,就好像是把設計者腦海中的電路畫成了原理圖。5)布局、布線。用已生成的網(wǎng)表文件,再根據(jù) cpld(或 fpga)器件的容量和結構,用自動布局布線工具進行電路設計。首先根據(jù)網(wǎng)表文件內容和器件結構確定邏輯門的位置,然后再根據(jù)網(wǎng)表提供的門連接關系,把各個門的輸入輸出連接起來,類似于設計 pcb(印刷電路板)時的布局布線工作。最后生成一個供器件編程(或配置)的文件,同時還會在設計項目中增加一些時序信息,以便于后仿真。6)后仿真(時序仿真) 。這是與實際器件工作情況基本相同的仿真,用來確定設計在經(jīng)過

31、布局、布線之后,是否仍能滿足設計要求。如果設計的電路時延滿足要求,則可以進行器件編程(或配置) 。2.2.2 vhdl 語言基礎知識1.vhdl 的基本結構一個 vhdl 程序必須包括實體(entity)和結構體(architecture) 。一個設計實體可看成一個盒子,通過它只能了解其外部輸入及輸出端口,無法知道盒子里的東西,而結構體則用來描述盒子內部的詳細內容。至于完整的vhdl 程序是什么樣,實際上并沒有統(tǒng)一的標準,因為不同的程序設計目的可以有不同的程序結構。除實體和結構體外,多數(shù)程序還要包含庫和程序包部分。實體中定義了一個設計模塊的外部輸入和輸出端口,即模塊(或元件)的外部特征,描述了

32、一個元件或一個模塊與其他部分(模塊)之間的連接關系,可以看作是輸入輸出信號和芯片管腳信息。一個設計可以有多個實體,只有處于最高層的實體稱為頂層實體,eda 工具的編譯和仿真都是對頂層實體進行的。處于低層的各個實體都可作為單個元件,被高層實體調用。結構體主要用來說明元件內部的具體結構,即對元件內部的邏輯功能進行說明,是程序設計的核心部分。庫是程序包的集合,不同的庫有不同類型的程序包。程序包用來定義結構體和實體中要用到的數(shù)據(jù)類型、元件和子程序等。【例 6-1】用 vhdl 設計一個非門(反向器) 。非門即 y = a,設反相器的 vhdl 的文件名是 not1.vhd,其中的.vhd 是 vhdl

33、程序文件的擴展名。程序結構如下:-庫和程序包部分library ieee; -打開 ieee 庫use ieee.std_logic_1164.all; -調用庫中 std_logic_1164 程序包 -實體部分entity not1 is -實體名為 not1port ( -端口說明a:in std_logic; -定義端口類型和數(shù)據(jù)類型y:out std_logic) ;end not1; -實體結束-結構體部分architecture inv of not1 is -結構體名為 invbeginy = not a; -將 a 取反后賦值給輸出端口 yend inv; -結構體結束這是一

34、個完整的 vhdl 源程序實例。其中的第一部分是庫和程序包,是用vhdl 編寫的共享文件,定義結構體和實體中要用到的數(shù)據(jù)類型、元件、子程序等,放在名為 ieee 的庫中。第二部分是實體,相當于定義電路單元的管腳信息。實體名是自己任意取的,但要注意要與項目名和文件名相同,并符合標識符規(guī)則。實體以 entity 開頭,以 end 結束。第三部分是結構體,用來描述電路的內部結構和邏輯功能。結構體名也是任意取的,結構體以 architecture 開頭,以 end 結束。begin 是開始描述實體端口邏輯關系的標志,有行為描述、數(shù)據(jù)流(也稱寄存器)描述和結構描述三種描述方式,這里采用的是數(shù)據(jù)流描述方式

35、。符號=是信號賦值運算符,從電路角度看就是表示信號傳輸;not 是關鍵字,表示取反(對后面的信號 a 操作) ,結構體實現(xiàn)了將 a 取反后傳送到輸出端 y 的功能。兩條短劃線是注釋標識符,其右側內容是對程序的具體注釋,并不執(zhí)行。所有語句都是以分號結束,另外程序中不區(qū)分字母的大小寫?!纠?6-2】用 vhdl 設計一個將輸入端信號直接送到輸出端輸出的程序。entity mybody is -mybody 是實體名port ( -定義端口in1 :in bit; output1 :out bit ); end mybody; -實體結束 architecture myprog of mybody

36、is -結構體名 myprog begin -結構體開始output1 = in1; -輸入狀態(tài)直接送到輸出end myprog; -結構體結束程序的 15 行構成實體部分,mybody 是實體名。port 是關鍵字(或保留字) ,定義了實體(元件)的端口(相當于管腳)信息。in1 是一個管腳(位信號)名稱,自己定義,in 表示信號傳輸方向是輸入,bit 是數(shù)據(jù)類型名稱,其取值范圍是0 、 1 。output1 也是一個管腳名稱,out 表示輸出。end 是結束標志,只有一個實體時其右邊的實體名稱 mybody 可以省略。程序的 69 行構成結構體部分,of mybody 說明結構體是屬于實體

37、mybody,of 右邊的實體名稱必須與實體部分的實體名稱相同。begin 是結構體開始的標志,該關鍵字是必須的。end myprog 是結構體結束標志,只有一個結構體時結構體名 myprog 可省略。由于例 6-2 實體中信號使用的數(shù)據(jù)類型(bit)和結構體中的運算符(=)都是默認類型,所以程序文件可省略庫和程序包。2.vhdl 的庫和程序包一庫庫是專門用于存放預先編譯好的程序包的地方,對應一個文件目錄,程序包的文件就放在此目錄中,其功能相當于共享資源的倉庫,所有已完成的設計資源只有存入某個“庫”內才可以被其他實體共享。庫的說明總是放在設計單元的最前面,表示該庫資源對以下的設計單元開放。庫語

38、句格式如下:library 庫名 ;常用的庫有 ieee 庫、std 庫和 work 庫。(1)ieee 庫:是 vhdl 設計中最常用的資源庫,包含 ieee 標準的std_logic_1164、numeric_bit、numeric_std 以及其他一些支持工業(yè)標準的程序包。其中最重要和最常用的是 std_logic_1164 程序包,大部分程序都是以此程序包中設定的標準為設計基礎。(2)std 庫:是 vhdl 的標準庫,vhdl 在編譯過程中會自動調用這個庫,所以使用時不需要用語句另外說明。(3)work 庫:是用戶在進行 vhdl 設計時的現(xiàn)行工作庫,用戶的設計成果將自動保存在這個庫

39、中,是用戶自己的倉庫,同 std 庫一樣,使用該庫不需要任何說明。二程序包程序包是用 vhdl 語言編寫的一段程序,可以供其他設計單元調用和共享,相當于公用的“工具箱” ,各種數(shù)據(jù)類型、子程序等一旦放入了程序包,就成為共享的“工具” ,類似于 c 語言的頭文件,使用它可以減少代碼的輸入量,使程序結構清晰。在一個設計中,實體部分所定義的數(shù)據(jù)類型、常量和子程序可以在相應的結構體中使用,但在一個實體的聲明部分和結構體部分中定義的數(shù)據(jù)類型、常量及子程序卻不能被其他設計單元使用。因此,程序包的作用是可以使一組數(shù)據(jù)類型、常量和子程序能夠被多個設計單元使用。程序包分為包頭和包體兩部分。包頭(也稱程序包說明)

40、是對包中使用的數(shù)據(jù)類型、元件、函數(shù)和子程序進行定義,其形式與實體定義類似。包體規(guī)定了程序包的實際功能,存放函數(shù)和過程的程序體,而且還允許建立內部的子程序、內部變量和數(shù)據(jù)類型。包頭、包體均以關鍵字 package 開頭。程序包格式如下。包頭格式:package 程序包名 is包頭說明語句end 程序包名;包體格式:package body 程序包名 is包體說明語句end 程序包名;調用程序包的通用模式為:use 庫名.程序包名.all;常用預定義程序包有以下四個:(1)std_logic_1164 程序包std_logic_1164 程序包定義了一些數(shù)據(jù)類型、子類型和函數(shù)。數(shù)據(jù)類型包括:std

41、_ulogic、std_ulogic _vector、std_logic 和 std_logic _vector,用的最多最廣的是 std_logic 和 std_logic_vector 數(shù)據(jù)類型。調用 std_logic_1164 程序包中的項目需要使用以下語句:library ieee;use ieee.std_logic_1164.all;該程序包預先在 ieee 庫中編譯,是 ieee 庫中最常用的標準程序包,其數(shù)據(jù)類型能夠滿足工業(yè)標準,非常適合 cpld(或 fpga)器件的多值邏輯設計結構。(2)std_logic_arith 程序包該程序包是美國 synopsys 公司的程序包

42、,預先編譯在 ieee 庫中。主要是在std_logic_1164 程序包的基礎上擴展了 unsigned(無符號) 、signed(符號)和 small_int(短整型)三個數(shù)據(jù)類型,并定義了相關的算術運算符和轉換函數(shù)。(3)std_logic_signed 程序包該程序包預先編譯在 ieee 庫中,也是 synopsys 公司的程序包。主要定義有符號數(shù)的運算,重載后可用于 integer(整數(shù)) 、std_logic(標準邏輯位)和std_logic _vector(標準邏輯位向量)之間的混合運算,并且定義了std_logic _vector 到 integer 的轉換函數(shù)。(4)std_

43、logic_unsigned 程序包該程序包用來定義無符號數(shù)的運算,其他功能與 std_logic_signed 相似。3.vhdl 的實體vhdl 描述的對象稱為實體,是設計中最基本的模塊。實體提供一個設計單元的公共信息(相當于方框圖) 。實體具體代表什么幾乎沒有限制,可以是任意復雜的系統(tǒng)、一塊電路板、一個芯片、一個單元電路等等。如果對系統(tǒng)自頂向下分層來劃分模塊,則各層的設計模塊都可作為實體。實體的格式如下:entity 實體名 isgeneric(類屬說明)port(端口說明) end 實體名;實體名代表該電路的元件名稱,所以最好根據(jù)電路功能來定義。例如:對于 4位二進制計數(shù)器,實體名可以

44、定義為 counter4b,這樣容易分析程序。一類屬說明類屬說明是實體說明的一個可選項(可選項用表示) ,主要為設計實體指定參數(shù),可以用來定義端口寬度、實體中元件的數(shù)目、器件延遲時間等。使用類屬說明可以使設計具有通用性。例如,在設計中有一些參數(shù)事先不能確定,為了簡化設計和減少 vhdl 源代碼的書寫量,通常編寫通用的 vhdl 源代碼,源代碼中這些參數(shù)是待定的,在仿真時只要用 generic 語句將待定參數(shù)初始化即可。下面是一個使用類屬說明的例子?!纠?6-3】設計一個二輸入與門,兩個信號相與后,經(jīng)過指定的延遲時間才送到輸出端。其實體與結構體如下:entity gand2 is -實體名為 a

45、ndgeneric (delay:time) ; -類屬說明,delay 是常數(shù)名,為時間類型 port ( a,b :in bit;c :out bit) ;end gand2;architecture behave of gand2 isbeginc = a and b after ( delay ); -a 和 b 與運算后,延遲 delay 輸出end behave;實際器件從輸入到輸出必然存在延時,但不同型號器件的延遲時間不同,因此可以在源代碼中用類屬說明語句指定待定參數(shù)。after 是關鍵字,表示延遲。當調用這個二輸入與門元件時,可以使用 generic 語句將參數(shù)初始化為不同的值

46、。類屬說明一定放在端口說明的前面。類屬說明語句的格式如下:generic(常數(shù)名 1:數(shù)據(jù)類型 1:= 設定值 1;常數(shù)名 n:數(shù)據(jù)類型 n:= 設定值 n) ;如上例改寫成:generic(delay:time:= 10 ns) ;表示 a 和 b 與運算后經(jīng) 10 ns 延時才輸出。二端口說明端口說明也是實體說明的一個可選項,負責對實體中輸入和輸出端口進行描述。實體與外界交流的信息必須通過端口輸入或輸出,端口的功能相當于元件的一個管腳。實體中的每一個輸入、輸出信號都被稱為一個端口,一個端口就是一個數(shù)據(jù)對象。端口可以被賦值,也可以作為信號用在邏輯表達式中。端口說明語句格式如下:port(端口

47、信號名 1:端口模式 1 數(shù)據(jù)類型 1;端口信號名 n:端口模式 n 數(shù)據(jù)類型 n) ;端口信號名是設計者為實體的每一個對外通道所取的名字;端口模式是指這些通道上的信號傳輸方向,共有四種傳輸方向,如表 6-1 所示。表 6-1 端口信號傳輸方向方向定義說明in單向輸入模式,將變量或信號信息通過該端口讀入實體out單向輸出模式,信號通過該端口從實體輸出inout雙向輸入輸出模式,既可以輸入端口,還可以輸出端口buffer緩沖輸出模式,具有回讀功能的輸出模式,可以輸入端口,也可以輸出端口其中,in 相當于電路中的只允許輸入的管腳;out 相當于只允許輸出的管腳;inout 相當于雙向管腳,是在普通

48、輸出端口基礎上增加了一個三態(tài)輸出緩沖器和一個輸入緩沖器構成的,既可以作輸入端口,也可以作輸出端口;buffer是帶有輸出緩沖器并可以回讀的管腳,是 inout 的子集,buffer 作輸入端口使用時,信號不是由外部輸入,而是從輸出端口反饋得到,即 buffer 類的信號在輸出到外部電路的同時,也可以被實體本身的結構體讀入,這種類型的信號常用來描述帶反饋的邏輯電路,如計數(shù)器等。數(shù)據(jù)類型指的是端口信號的類型,常用數(shù)據(jù)類型如表 6-2 所示。表 6-2 常用端口數(shù)據(jù)類型4.vhdl 的結構體一個實體中可以有一個結構體,也可以有多個結構體,但各個結構體不應有重名,結構體之間沒有順序上的差別。結構體用來

49、描述設計實體的內部結構或行為,是實體的一個重要組成部分,定義了實體的具體功能,規(guī)定了實體中的信號數(shù)據(jù)流程,確定了實體中內部元件的連接關系。結構體用三種方式對設計實體進行描述,分別是行為描述、寄存器傳輸描述和結構描述。其格式如下:關鍵字說明boolean布爾類型,取值有 false、true 兩種,只用于關系運算,不能用于計算bit二進制位類型,取值只能是 0、1,由 standard程序包定義bit_vector位向量類型,表示一組二進制數(shù),常用來描述地址總線、數(shù)據(jù)總線等端口std_logic工業(yè)標準的邏輯類型,取值 0、1、x、z 等,由std_logic_1164 程序包定義std_log

50、ic_vector工業(yè)標準的邏輯向量類型,是 std_logic 的組合integer整數(shù)類型,可用作循環(huán)的指針或常數(shù),通常不用作 i/o 信號architecture 結構體名 of 實體名 is結構體說明部分;begin功能描述語句;end 結構體名;結構體說明部分是一個可選項,位于關鍵字 architecture 和 begin 之間,用來對結構體內部所使用的信號、常數(shù)、元件、函數(shù)和過程加以說明。要注意的是,所說明的內容只能用于這個結構體,若要使這些說明也能被其他實體或結構體所引用,則需要先把它們放入程序包。在結構體中也不要把常量、變量或信號定義成與實體端口相同的名稱。位于 begin

51、和 end 之間的結構體功能描述語句是必需的,具體描述結構體(電路)的行為(功能)及其連接關系,主要使用信號賦值、塊(block) 、進程(process) 、元件例化(component map)及子程序調用等 5 類語句。【例 6-4】通過中間信號 m 實現(xiàn)輸入端到輸出端的數(shù)據(jù)傳輸。entity mybody is -實體名為 mybodyport( in1 :in bit; -定義端口output1 :out bit );end mybody;architecture myprog of mybody is -結構體名為 myprogsignal m:bit; -定義中間信號 mbegi

52、nm = in1; -輸入信號傳送給中間信號output1 = m; -中間信號送給輸出信號end myprog;第 3 章 色敏傳感器與 fpga 的簡單介紹(移至第二章)3.1 色敏傳感器本設計中采用的色敏傳感器是 cls9032。該傳感器有 2 個垂直連接的 pn結,其厚度可以給色敏傳感器起到一個光學濾波器的作用。波長較短的光在硅的表面就被吸收了,而波長較長的光到達深一些的位置才會被吸收?;谶@種光譜的敏感性,根據(jù)光的波長來選擇信號(顏色)。使用 2 個光電二極管之間的對數(shù)電流比作為信號處理的方法。不同顏色的光照射時,該色敏傳感器紅、綠、藍區(qū) 3 個引腳都會輸出電流信號,但是相應顏色的引

53、腳輸出的電流信號會比其他引腳輸出的電流信號強。利用這種原理能夠有效地避免外界環(huán)境造成的輸出電流的起伏,因此這種器件具有較高的可靠性。 在距離色敏傳感器 15 cm 處,分別用紅、綠、藍 3 種顏色的光源直接照射,檢測經(jīng)過模擬部分處理后的輸出電壓信號。實際測試數(shù)據(jù)如表 1 所列。3.2 fpgafpga 采用了邏輯單元陣列 lca(logic cell array)這樣一個概念,內部包括可配置邏輯模塊 clb(configurable logic block) 、輸出輸入模塊 iob(input output block)和內部連線(interconnect)三個部分。fpga 的基本特點主要有

54、: 1)采用 fpga 設計 asic 電路,用戶不需要投片生產,就能得到合用的芯片。 2)fpga 可做其它全定制或半定制 asic 電路的中試樣片。 3)fpga 內部有豐富的觸發(fā)器和 io 引腳。 4)fpga 是 asic 電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。 5) fpga 采用高速 chmos 工藝,功耗低,可以與 cmos、ttl 電平兼容。 可以說,fpga 芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 fpga 是由存放在片內 ram 中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內的 ram 進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程

55、方式。 加電時,fpga 芯片將 eprom 中數(shù)據(jù)讀入片內編程 ram 中,配置完成后,fpga 進入工作狀態(tài)。掉電后,fpga 恢復成白片,內部邏輯關系消失,因此,fpga 能夠反復使用。fpga 的編程無須專用的 fpga 編程器,只須用通用的 eprom、prom 編程器即可。當需要修改 fpga 功能時,只需換一片 eprom 即可。這樣,同一片 fpga,不同的編程數(shù)據(jù),可以產生不同的電路功能。因此,fpga 的使用非常靈活。 fpga 芯片是并行運算的,每個振蕩周期都可以執(zhí)行任務,而單片機(如 8051 系列)的每條指令都需要 12 個振蕩周期。例如,單片機 io 端口的變化最快

56、也需要 24 個振蕩周期,而 fpga 只需要 2 個振蕩周期,所以同樣的振蕩周期下,fpga 速度更快。 fpga 有豐富的 io 資源(一般有數(shù)百個 io 口),容易實現(xiàn)大規(guī)模系統(tǒng),可以方便地連接外設(比如多路 ad、da 等)。而單片機的 io 口有限,要進行仔細的資源分配、總線隔離。 fpga 可以進行硬件重構,在功能擴展或性能改善方面也非常容易。 本設計選用了 altera 公司的:niosli 軟核,使用 sopc 的軟硬件綜合解決方案。與傳統(tǒng)的設計方法完全不同,從硬件和軟件整體設計上進行了極大的改進,使硬件電路更加簡單、有效、易于理解,軟件設計更輕松、可移植性更強。3.3 a/d

57、a/d 轉換器是數(shù)字化測量和顯示儀表的重要組成部分,其轉換速度、精度和分辨率,直接影響著測量結果和顯示的質量指標。本設計采用的 a/d 轉換器是 adc0809,adc0809 是 cmos 的 8 位 a/d 轉換器,片內有 8 路模擬開關,可控制 8 個模擬量中的一個進入轉換器中。adc0809 的分辨率為 8 位,轉換時間約含鎖存器控制的 8 路多路開關,輸出有三態(tài)緩沖控制,單 5v 電源供電。adc0809 以其易于集成,分辨率較高、轉換速度較快的特點而得到了廣泛的應用。在實際使用中通常采用微處理器或單片機實現(xiàn)對 a/d 器件的采樣控制。 第四章 基于 fpga 與色敏傳感器的顏色識別

58、系統(tǒng)(數(shù)字部分)的設計(本章主要介紹系統(tǒng)的整體功能設計及各部分的具體程序實現(xiàn),(本章主要介紹系統(tǒng)的整體功能設計及各部分的具體程序實現(xiàn),是論文的重點,請重點修改?。┦钦撐牡闹攸c,請重點修改?。?.1 設計原理及工作要求設計原理 圖,表都要按照章節(jié)排序!如圖 1 所示,顏色識別系統(tǒng)主要由模擬和數(shù)字兩部分組成。模擬部分主要用來轉換光電信號、放大信號和濾除噪聲。數(shù)字部分主要用來對 ad 采樣進來的數(shù)字信號 實現(xiàn)中值濾波、查對數(shù)表、求對數(shù)比,以及顯示等操作。 圖自己重新畫!先介紹整體!整體系統(tǒng)流程的介紹要清晰,系統(tǒng)如何工作,如何實現(xiàn),用什么樣的器件,器件之間如何連接,都需要介紹!在介紹完整體的基礎上說明

59、哪些屬于數(shù)字部分,哪些屬于模擬部分,你負責哪些部分的工作!4.2 模擬部分(略)去掉,不是你的工作不需要介紹!4.3 數(shù)字部分(重要)1.本次設計的核心地方是數(shù)字部分,系統(tǒng)的搭建是基于 altera 公司的niosii 處理器。電壓信號經(jīng)過濾波處理,被傳送到 ad 轉換器,經(jīng)過 ad 轉換得到數(shù)字信號,為數(shù)字部分對信號的識別處理作準備。根據(jù)所選用的色敏傳感器的工作原理,用 sopc 系統(tǒng)進行控制,對 3 路模擬電路信號進行同步的 ad 轉換以增強系統(tǒng)準確性。在保證可靠性和精度的前提下,為降低系統(tǒng)成本,滿足對輸入數(shù)字信號倍數(shù) 的要求,ad 轉換器選用 8 位串行輸出的 adc0809 轉換器。采

60、用 niosii 軟核搭建的 fpga 系統(tǒng)處理數(shù)字信號,主要經(jīng)過以下操作: 中值濾波,進一步去除干擾信號; 查對數(shù)表,查數(shù)據(jù)所對應的對數(shù)值; 求對數(shù)比,對分別采集到的 2 個數(shù)據(jù)求對數(shù)比,為判斷是哪種顏色提供依據(jù); 顯示顏色識別結果,亮不同的燈來表明所識別出來的不同顏色。 2.硬件設計硬件設計(用你現(xiàn)在的系統(tǒng)介紹!不要拿別人的東西過(用你現(xiàn)在的系統(tǒng)介紹!不要拿別人的東西過來直接寫?。┓植浇榻B,來直接寫?。┓植浇榻B,a/d 怎么做,怎么做,fpga 中做哪些工作,中做哪些工作,顯示怎么做,多清晰的一個系統(tǒng),被你搞得這么亂!這部分才顯示怎么做,多清晰的一個系統(tǒng),被你搞得這么亂!這部分才是論文的重

溫馨提示

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

最新文檔

評論

0/150

提交評論