九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網! | 幫助中心 裝配圖網zhuangpeitu.com!
裝配圖網
ImageVerifierCode 換一換
首頁 裝配圖網 > 資源分類 > DOC文檔下載  

[優(yōu)秀畢業(yè)論文]利用VHDL語言在FPGA上實現(xiàn)I2C總線控制器的功能

  • 資源ID:28089734       資源大?。?span id="24d9guoke414" class="font-tahoma">1.35MB        全文頁數(shù):33頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

[優(yōu)秀畢業(yè)論文]利用VHDL語言在FPGA上實現(xiàn)I2C總線控制器的功能

本科畢業(yè)設計(論文)摘 要隨著微電子技術的發(fā)展,現(xiàn)場可編程邏輯門陣列FPGA(Field Programmable Gate Array)可以實現(xiàn)數(shù)字電路系統(tǒng)設計的功能。尤其現(xiàn)場可編程邏輯門陣列FPGA具有集成度高的優(yōu)點,受到工程界高度的重視。I2C總線以接口簡單,成本底,可擴展性好在數(shù)字系統(tǒng)中得到了廣泛的應用。硬件描述語言是數(shù)字系統(tǒng)高層設計的核心,是實現(xiàn)數(shù)字系統(tǒng)設計新方法的關鍵技術之一。本課題正是利用VHDL語言在FPGA上實現(xiàn)I2C總線控制器的功能。首先研究了I2C總線的規(guī)范,又簡要介紹了Quartus設計環(huán)境以及FPGA的設計流程。在此基礎上,重點介紹了I2C控制器的總體設計方案,以及在Quartus平臺上的時序仿真。關鍵詞Quartus II;I2C總線控制器;現(xiàn)場可編程邏輯門陣列;時序仿真AbstractWith the development of micro electric and EDA(electronic design automation)technology, FPGA(field programmable gates array) can realize the function of digital circuit system design .FPGA have the merit of filed programmability and High integration rate ,therefore is highly recognized for engineering.I2C bus is widely applied in the digital system as simple interface ,expedient use ,low cost and good expansibility .VHDL is considered as a core of digital system design and a key technique of implement digital system.The design realizes the function of I2C bus interface on the FPGA .At first the thesis deeply research I2C bus specification ,then briefly introduce the Quartus II design environment and the design method ,as well as FPGA design flow .In this foundation,I2C bus controller design scheme and the timing simulation under Quartus II is particularly introduced.Key words Quartus II;I2C bus controller ;FPGA ;timing simulation目 錄摘 要IAbstractII第1章 緒論51.1 課題背景51.2 I2C總線的產生及發(fā)展61.3 FPGA的現(xiàn)狀與展望61.4 相關工作6第2章 I2C總線技術的研究82.1 I2C總線的概念82.2 I2C總線的傳輸92.2.1 數(shù)據的有效性92.2.2 I2C總線數(shù)據傳送的開始和停止條件92.2.3 I2C總線傳輸過程中的應答信號102.2.4 I2C總線數(shù)據傳送的重復開始條件112.2.5 I2C總線的傳輸過程中的字節(jié)格式112.2.6 I2C總線的器件子地址112.2.7 I2C總線傳輸信號的時序122.3 本章小結14第3章 VHDL語言的基礎知識153.1 VHDL語言的概述153.2 VHDL語言的特點153.3 VHDL語言的程序結構163.3.1 VHDL程序的庫163.3.2 包集合163.3.3 實體說明173.3.4 構造體183.3.5 配置183.4 本章小結18第4章 設計工具和設計方法194.1 設計工具194.2 基于FPGA的數(shù)字電路的設計流程204.3 本章小結21第5章 I2C總線的功能設計225.1 I2C總線完成的功能225.2 用VHDL語言實現(xiàn)寫操作時的串行轉并行235.3 用VHDL語言實現(xiàn)順序讀操作時的并行轉串行235.4 I2C總線控制器的頂層設計245.5 本章小結25第6章 I2C總線的硬件時序仿真266.1 器件的選擇266.2 硬件仿真276.2.1 用VHDL語言實現(xiàn)寫字節(jié)周期286.2.1 用VHDL語言實現(xiàn)順序讀字節(jié)周期296.2.3 用VHDL語言實現(xiàn)選擇性讀字節(jié)周期296.3 本章小結30結 論31致 謝32參考文獻33千萬不要刪除行尾的分節(jié)符,此行不會被打印。在目錄上點右鍵“更新域”,然后“更新整個目錄”。打印前,不要忘記把上面“Abstract”這一行后加一空行- 33 -哈爾濱工業(yè)大學(威海)本科畢業(yè)設計(論文)第1章 緒論1.1 課題背景近年來,隨著社會的發(fā)展,電子產品越來越多的進入人們的生活和工作中,成為了我們生活中必不可少的一部分,隨著計算機的普及,以及電子設備之間相互溝通的更加頻繁,為了更方便的實現(xiàn)器件與器件之間的通信,研發(fā)人員從消費者電子、電訊和工業(yè)電子中許多看上去不相關的設計中尋找到了他們的相似之處,例如幾乎每個系統(tǒng)都包括:(1) 一些智能控制,通常是一個單片的微控制器。(2) 通用電路,例如LCD驅動器、遠程I/O口、RAM、EEPROM或者數(shù)據轉換器。(3) 面向應用的電路,譬如收音機和視頻系統(tǒng)的數(shù)字調諧和信號處理電路。為了使這些相似之處對系統(tǒng)設計者和器件廠商都得益,而且使硬件效率最大電路最簡單,Philips開發(fā)了一個簡單的雙向兩線總線,實現(xiàn)有效的IC 之間控制,這個總線就稱為I2C總線?,F(xiàn)在Philips包括超過150種CMOS和雙極性兼容I2C總線的IC,可以執(zhí)行前面提到的三種類型的功能。所有符合I2C總線的器件組合了一個片上接口,使器件之間直接通過I2C總線通訊,這個設計概念解決了很多在設計數(shù)字控制電路時遇到的接口問題。I2C總線具有以下優(yōu)點:(1) 極低的電流消耗、抗高噪聲干擾、電源電壓范圍寬以及較廣的工作溫度范圍、簡單性和有效性(2) I2C總線占用的空間非常?。ń涌谥苯釉诮M件之上),減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本(3) 支持主控,其中任何能夠進行發(fā)送和接收的設備都可以成為總線,一個主控能夠控制信號的傳輸和時鐘頻率(任何時間點只能有一個主控)1.2 I2C總線的產生及發(fā)展I2C總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備。I2C總線產生于在80年代,最初為音頻和視頻設備開發(fā),如今主要在服務器管理中使用,其中包括單個組件狀態(tài)的通信。例如管理員可對各個組件進行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風扇??呻S時監(jiān)控內存、硬盤、網絡、系統(tǒng)溫度等多個參數(shù),增加了系統(tǒng)的安全性,方便了管理。1.3 FPGA的現(xiàn)狀與展望FPGA是英文FieldProgrammable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產物。FPGA經過70年的不斷發(fā)展,由當初的1200門發(fā)展成為今天的百萬門級。通過不斷更新優(yōu)化產品架構和生產工藝,實現(xiàn)了更高的性能、更短的開發(fā)周期、更低的單位成本和功耗。從前的“定論”是:FPGA可編程,靈活性高,一直依賴都是用作建模的平臺,而不適合進行量產,但是經過多年的研發(fā),大大縮短了FPGA開發(fā)時間,降低了驗證成本。高集成度和靈活度從消費電子的發(fā)展來看,客戶要求產品的更新?lián)Q代的周期越來越短,并要求不段的繼承更多的,層出不窮的,新的技術和應用,而且又要嚴格控制成本。因此,F(xiàn)PGA在靈活性上就具備了天然的優(yōu)勢,且通過多年的努力,在高性能和低功耗方面也取得了顯著地改進,現(xiàn)在的FPGA性能已經能夠滿足大多數(shù)應用的的需要。1.4 相關工作為了設計基于FPGA的I2C總線控制器,包括數(shù)據傳輸時序、傳輸命令、傳輸格式。首先要深入研究I2C總線的協(xié)議規(guī)范,在Quartus平臺上,對設計進行分析、綜合,功能和時序仿真,最后深入研究FPGA芯片的設計流程,并根據以上結果選擇芯片,并配置到FPGA上,驗證設計結果。本文的章節(jié)安排如下;1 緒論,主要介紹課題研究的背景,I2C總線和FPGA的產生現(xiàn)狀和發(fā)展2 I2C總線技術的研究,介紹I2C總線的特點以及工作原理3 VHDL語言的基礎知識,簡單的介紹了VHDL語言的特點和結構4 設計工具與設計方法,介紹了一種新的設計軟件Quartus II,以及基于FPGA的數(shù)字電路的設計流程5 I2C總線的功能設計6 I2C總線的硬件時序仿真7 結論,對本文進行總結,在設計中遇到的問題以及從此次設計中學到的東西雙擊上一行的“1”“2”試試,J(本行不會被打印,請自行刪除)第2章 I2C總線技術的研究2.1 I2C總線的概念I2C總線是一種比較流行的總線,它的接受和發(fā)送在同一條數(shù)據線上。I2C由串行數(shù)據(SDA)和串行時鐘(SCL)兩根線構成的??偩€上允許連接的設備數(shù)主要決定于總線上的電容量,一般設定為400pf以下。SDA和SCL都是雙向總線,它們都通過上拉電阻連接到電源上。當總線處于停止(IDLE)狀態(tài),兩根線都是高電平。對于I2C總線來說,總線上連接的設備,例如LCD驅動器、存儲器等都是有一個唯一的地址識別,而且都可以作為一個發(fā)送器或接收器。至于是作為發(fā)送器還是接收器,主要取決于連接設備的具體功能。例如LCD驅動只是一個接收器,而存儲器則既可以接受又可以發(fā)送數(shù)據。除了發(fā)送器和接收器外,設備在執(zhí)行數(shù)據傳輸時也可以被看作是主機或從機。主機是初始化總線的數(shù)據傳輸,并產生允許傳輸?shù)臅r鐘信號的設備,這時任何被尋址的期間都被認為是從機。由于I2C總線使用兩線的硬件接口簡單,I2C總線的應用越來越廣泛1。下面,將I2C總線的通用術語進行介紹,如表 2-1所示;I2C總線的典型接法如圖 2-1所示。表 2-1 I2C總線的通用術語術語描述發(fā)送器發(fā)送數(shù)據到總線的器件接收器從總線接收數(shù)據的期間主機初始化發(fā)送、產生時鐘信號和終止發(fā)送的器件從機被主機尋址的器件多主機同時有多于一個主機嘗試控制總線,但不破壞報文仲裁是一個在有多個主機同時嘗試控制總線,但只允許其中一個控制總線并使報文不被破壞的過程同步兩個或多個器件同步時鐘信號的過程圖 2-1 I2C總線信號連接示意圖2.2 I2C總線的傳輸由于I2C總線的器件有不同種類的工藝(CMOS、NMOS、雙極性),邏輯0(低)和1(高)的電平不是固定的。在I2C總線每傳輸一位數(shù)據就有一個時鐘脈沖相對應,其邏輯“0”或“1”的信號電平取決于該節(jié)點的正端電源Vdd的電壓。2.2.1 數(shù)據的有效性在工作過程中,數(shù)據有效要求串行數(shù)據(SDA)線上的數(shù)據必須要在串行時鐘(SCL)的高電平時鐘周期期間保持穩(wěn)定。而只有在串行時鐘(SCL)線的時鐘信號是低電平的時候串行數(shù)據(SDA)上的數(shù)據才能發(fā)生變化(如圖2-2所示)2.2.2 I2C總線數(shù)據傳送的開始和停止條件在I2C總線數(shù)據傳送的整個過程中,需要先有開始條件引發(fā),并由停止信號結束,這兩個條件在數(shù)據線上的表示如圖 2-3所示。開始條件:當串行時鐘(SCL)線上的時鐘信號是高電平的時候串行數(shù)據(SDA)上的數(shù)據由高電平變?yōu)榈碗娖?,產生了一個下降沿,表示數(shù)據傳輸開始。停止信號:當串行時鐘(SCL)線上的始終信號是高電平的時候串行數(shù)據(SDA)上的數(shù)據由低電平變?yōu)楦唠娖剑a生了一個上升沿,表示數(shù)據傳輸停止。開始和停止條件一般由主機產生??偩€在開始條件后被認為處于忙的狀態(tài)。在停止條件的某段時間后,總線被認為再次處于空閑狀態(tài)。 圖 2-2 I2C總線的數(shù)據位傳輸 圖 2-3 開始和停止條件2.2.3 I2C總線傳輸過程中的應答信號數(shù)據傳輸必須帶應答。相應的時鐘脈沖又主機產生。在應答的時鐘脈沖器件,發(fā)送機SDA輸入端保持高電平,接收機將SDA輸出端拉低,使它在這個時鐘脈沖的高電平器件保持穩(wěn)定的低電平。當從機不能應答從機地址時,從機必須使數(shù)據線保持高電平,主機產生一個停止條件,終止傳輸或者產生重復起始條件開始新的傳輸。如果執(zhí)行寫操作過程中,從機應答了從機地址,但是在傳輸了一段時間后不能接收更多數(shù)據字節(jié),主機必須終止傳輸。這個情況用從機在第一個字節(jié)后沒有產生應答來表示,從機使數(shù)據線保持高電平,主機產生一個停止或重復起始條件。如果執(zhí)行讀操作過程中,主機必須在從機傳輸最后一個字節(jié)之后產生一個不應答信號,之后產生停止條件,而從機必須將數(shù)據線保持高電平,允許主機產生一個停止或重復起始條件。2.2.4 I2C總線數(shù)據傳送的重復開始條件主機與從機進行通信時,有時需要切換數(shù)據的收發(fā)方向。例如,訪問某一具有I2C總線接口的存儲器時,主機先向存儲器輸入存儲單元的地址信息(發(fā)送數(shù)據),然后再讀取其中的存儲內容(接收數(shù)據)。在切換數(shù)據的傳輸方向時,可以不必先產生停止條件再開始下次傳輸,而是直接再一次產生開始條件。I2C總線在已經處于忙的狀態(tài)下,再一次直接產生起始條件的情況被稱為重復起始條件。正常的起始條件和重復起始條件在物理波形上并沒有什么不同,區(qū)別僅僅是在邏輯方面。在進行多字節(jié)數(shù)據傳輸過程中,只要數(shù)據的收發(fā)方向發(fā)生了切換,就要用到重復起始條件。2.2.5 I2C總線的傳輸過程中的字節(jié)格式總線傳輸時要按照規(guī)定的數(shù)據格式,發(fā)送到SDA線上的每個字節(jié)必須為8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制,每個字節(jié)后必須跟一個應答信號。首先傳輸?shù)氖菙?shù)據的最高位(MSB)。在開始條件發(fā)出之后,SDA輸入端發(fā)送一個7位的從機地址,然后第8位為數(shù)據方向位(讀/寫位),數(shù)據方向表明主機和從機的數(shù)據傳輸方向。“0”表示主機發(fā)送數(shù)據(寫),“1”表示從機發(fā)送數(shù)據(讀)。如果從機要完成一些其他功能后才能接受或者發(fā)送下一個完整的數(shù)據字節(jié),可以使時鐘SCL保持低電平迫使主機進入等待狀態(tài)。當從機準備好接受下一個數(shù)據字節(jié)并釋放時鐘SCL后,數(shù)據傳輸繼續(xù)。數(shù)據傳輸由主機產生停止條件結束。2.2.6 I2C總線的器件子地址帶有I2C總線的器件除了有從機地址(Slave Address)外,還可能有子地址。從機地址是指該器件在I2C總線上被主機尋址的地址,而子地址是指該器件內部不同部件或存儲單元的編址。某些器件(只占少數(shù))內部結構比較簡單,可能沒有子地址,只有必須的從機地址,子地址與從機地址一樣,子地址實際上也是像普通數(shù)據那樣進行傳輸?shù)模瑐鬏敻袷饺匀皇桥c數(shù)據相統(tǒng)一的,區(qū)分傳輸?shù)牡降资堑刂愤€是數(shù)據要靠收發(fā)雙方具體的邏輯約定。子地址的長度必須由整數(shù)個字節(jié)組成,可能是單字節(jié)(8位子地址),也可能是雙字節(jié)(16位子地址),還可能是3字節(jié)以上,這要看具體器件的規(guī)定。2.2.7 I2C總線傳輸信號的時序I2C總線數(shù)據傳送分為讀操作和寫操作(圖 2-4),而讀操作還分為按照當前位置進行讀操作(圖 2-6)以及隨即性讀操作(圖 2-8),時序圖如下圖 2-4 主機向從機發(fā)送了一個字節(jié)的時序圖 2-5 主機向從機連續(xù)發(fā)送多個字節(jié)的時序圖2-5所表示的是一個最簡單的寫操作的時序,主機向從機傳送一個7位的地址數(shù)據,然后第8位為讀/寫位,在這個表示地址的字節(jié)傳輸結束之后,在串行時鐘(SCL)的第9個時鐘,由從機發(fā)送一個應答信號(此時串行數(shù)據SDA輸入端在SCL為高電平期間內保持高電平,而SDA輸入端輸出為低電平,表示一個應答信號),接著主機繼續(xù)向從機傳輸8位數(shù)據,之后再次由從近發(fā)送一個應答信號,這個時候如果還需要發(fā)送數(shù)據字節(jié),可以繼續(xù)發(fā)送(圖 2-5),每發(fā)送8位數(shù)據后都要由從機發(fā)送一個應答信號,當數(shù)據發(fā)送完畢后,在最后一個應答信號之后的那個SCL處于高電平的時鐘周期內,將串行數(shù)據SDA輸入端從低電平拉為高電平,表示數(shù)據傳輸停止。圖 2-6 主機向從機接收1個字節(jié)數(shù)據的時序圖 2-7 主機向從機連續(xù)接收多個字節(jié)數(shù)據的時序圖 2-6所表示的是一個最簡單的按照當前位置進行的讀操作,前9個周期的時序與寫操作的時序一致,不同的是當從機發(fā)送一個應答信號之后,由從機向主機傳輸8位數(shù)據,這個時候如果還需要發(fā)送數(shù)據字節(jié),可以繼續(xù)發(fā)送(圖 2-7),每發(fā)送8位數(shù)據后都要由主機發(fā)送一個應答信號,當數(shù)據發(fā)送完畢后,在最后一個數(shù)據字節(jié)傳送結束之后的那個SCL處于高電平的時鐘周期內SDA的輸入端保持高電平,而SDA輸入端輸出也為高電平,表示一個不應答信號(圖中Nack(Not acknowledge)表示),之后的一個時鐘周期內產生停止條件,表示數(shù)據傳輸停止。圖 2-8 主機向從機隨即接收多個字節(jié)數(shù)據的時序圖 2-8所表示的是一個多字節(jié)的隨機性讀操作,選擇性讀操作允許主器件對寄存器的任意字節(jié)進行讀操作,主機首先通過發(fā)送起始信號、從機地址和它想要讀取的字節(jié)數(shù)據的地址執(zhí)行一個偽寫操作。在從機應答之后,主機重新發(fā)送起始信號和從機地址,此時讀/寫位為“1”進行讀操作,從機響應并發(fā)送應答信號,然后輸出所要求的一個8位字節(jié)數(shù)據,主器件發(fā)送應答信號,這個時候如果還需要發(fā)送數(shù)據字節(jié),可以繼續(xù)發(fā)送,每發(fā)送8位數(shù)據后都要由主機發(fā)送一個應答信號,當數(shù)據發(fā)送完畢后,在最后一個數(shù)據字節(jié)傳送結束之后的那個SCL處于高電平的時鐘周期內SDA的輸入端保持高電平,而SDA輸入端輸出也為高電平,表示一個不應答信號(圖中Nack(Not acknowledge)表示),之后的一個時鐘周期內產生停止條件,表示數(shù)據傳輸停止。2.3 本章小結本章主要介紹了I2C的有關知識,從I2C總線的概念開始,介紹了I2C總線的開始和停止條件以及如何傳輸數(shù)據才有效,然后介紹了I2C總線傳輸過程中應答信號的產生和作用,以及位傳輸和字節(jié)傳輸需要注意的每個時鐘周期代表的意義,最后,介紹了I2C總線工作的各種狀態(tài)的時序,以便下面用語言對I2C總線進行設計與實現(xiàn)。第3章 VHDL語言的基礎知識3.1 VHDL語言的概述VHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用于提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言。VHDL語言主要用于描述數(shù)字系統(tǒng)的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統(tǒng)設計的基本點。3.2 VHDL語言的特點與其他的硬件描述語言相比,VHDL具有更強的行為描述能力,從而決定了它成為系統(tǒng)設計領域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規(guī)模電子系統(tǒng)的重要保證。VHDL最初是作為一種仿真標準格式出現(xiàn)的,因此VHDL既是一種硬件電路描述和設計語言,也是一種標準的網表格式,還是一種仿真語言,其豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設計早期,就能用于查驗設計系統(tǒng)的功能可行性,隨時可對設計進行仿真模擬。即在遠離門級的高層次上進行模擬,使設計者對整個工程設計的結構和功能的可行性做出決策。VHDL語言的行為描述能力和程序結構決定了它具有支持大規(guī)模設計的分解和已有設計的再利用功能,符合市場所需求的,大規(guī)模系統(tǒng)高效、高速的完成必須由多人甚至多個開發(fā)組共同并行工作才能實現(xiàn)的特點。VHDL中設計實體的概念、程序包的概念、設計庫的概念為設計的分解和并行工作提供了有力的支持。VHDL對設計的描述具有相對獨立性,設計者可以不懂硬件的結構,也不必管最終設計實現(xiàn)的目標器件是什么,而進行獨立的設計。由于VHDL具有類屬描述語句和子程序調用等功能,對于已完成的設計,在不改變源程序的條件下,只需改變端口類屬參量或函數(shù),就能輕易地改變設計的規(guī)模和結構2。3.3 VHDL語言的程序結構一個完整的VHDL語言程序通常包括實體、構造體、配置、包集合和庫5個部分。3.3.1 VHDL程序的庫庫是經編譯后的數(shù)據的集合,它存放包集合定義、實體定義、構造體定義和配置定義。在VHDL語言中,庫的說明總是放在設計單元的最前面:LIBRARY 庫名;這樣,在設計單元內的語句就可以使用庫中的數(shù)據。由此可見,庫的好處就在于使設計者可以共享已經編譯過的設計結果。在VHDL語言中可以存在多個不同的庫,但是庫和庫之間是獨立的,不能互相嵌套。3.3.2 包集合包集合是用來羅列VHDL語言中所要用到的信號定義、常數(shù)定義、數(shù)據類型、元件語言、函數(shù)定義和過程定義等,它是一個可編譯的設計單元,也是庫結構的一個層次,要使用包集合時可以用USE語句說明。例如:use ieee.std_logic_unsigned.all;該語句表示在VHDL程序中要使用名為std_logic_unsigned的包集合中的所有定義或者說明項。包集合的結構如下所示:PACKAGE 包集合名 IS說明語句END 包集合名; 包集合標題PACKAGE BODY 包集合名 IS說明語句END BODY; 包集合體一個包集合由兩大部分組成:包集合標題和包集合體、包集合體可以省略不寫。一般包集合標題列出所有項的名稱,而包集合體具體給出各項的細節(jié)。3.3.3 實體說明任何一個基本設計單元的實體說明都具有如下結構:ENTITY 實體名 IS類屬參數(shù)說明端口說明END 實體名;其中類屬參數(shù)說明必須放在端口說明之前,用于指定參數(shù)。端口說明是對基本設計實體與外部接口的描述,也可以說是對外部引腳信號的名稱,數(shù)據類型和輸入、輸出方向的描述。其一般書寫格式如下:PORT(端口名:方向 數(shù)據類型名; . 端口名:方向 數(shù)據類型名);端口名是定義每個外部引腳的名稱。端口方向用來定義外部引腳的信號方向是輸入還是輸出,分為5種:IN(輸入),OUT(輸出而且構造體內部不能再使用),INOUT(雙向),BUFFER(輸出而且構造體內部可以再次使用),LINKAGE(不指定方向,無論出入都可以連接)。數(shù)據類型在邏輯電路設計中只用到兩種:BIT和BIT_VECTOR。當端口被說明為BIT數(shù)據類型時,該端口的信號取值只可能是“0”或者“1”。這里的“0”和“1”是指邏輯值。當端口被說明為BIT_VECTOR數(shù)據類型時,該端口的取值可能是一組二進制位的值。3.3.4 構造體構造體定義了設計單元具體的功能。構造體對其基本設計單元的輸入輸出關系可以用3種方式進行描述,即行為描述、寄存描述和結構描述。由于構造體是對實體功能的具體描述,因此它一定要跟在實體的后面。一個構造體的具體結構描述如下:ARCHITECTURE 構造體名 OF 實體名 IS定義語句BEGIN并行處理語句END 構造體名;構造體名是對本構造體的命名,是該構造體的唯一名稱。OF后面緊跟的實體名表明了該構造體所對應的是哪一個實體。定義語句用來對構造體內部所使用的信號、常數(shù)、數(shù)據類型和函數(shù)進行定義,格式和端口說明的語句一樣,但因為它是內部連接的信號,故沒有也不需要有方向的說明。并行處理語句具體的描述了構造體的行為3。3.3.5 配置一個實體可以包含多個結構體,配置的作用就是根據需要選擇實體的結構體。配置語句描述層與層之間的連接關系以及實體與結構之間的連接關系,設計者可以利用這種配置語句來選擇不同的構造體,使其與要設計的實體相對應。在仿真某一實體時,可以利用配置來選擇不同的結構體,進行性能對比試驗以得到性能最佳的結構體。配置語句的基本書寫格式如下:CONFIGURATION 配置名 OF 實體名 IS語句說明END 配置名;經常使用的配置有以下三類:默認配置、元件配置和結構配置4。3.4 本章小結本章主要介紹了VHDL的有關知識,主要介紹了VHDL特點以及如何用VHDL語言編寫程序,首先定義庫函數(shù),然后引入包集合,定義實體,構造體,注意構造體內可以包括子程序,最后定義配置。第4章 設計工具和設計方法4.1 設計工具本次設計使用的是Altera公司的設計軟件Quartus II ,用VHDL語言編程實現(xiàn)的。Quartus II軟件是Altera提供的綜合性開發(fā)軟件,可以輕易地滿足特定地設計需求。它支持原理圖、VHDL、VerilogHDL等多種設計輸入形式,內有綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整設計流程。Quartus II軟件允許用戶在設計流程的每個階段使用軟件提供的軟件圖形用戶界面、EDA工具界面或命令行方式。其圖形用戶界面的功能分為:設計輸入、綜合、布局布線、時序分析、仿真、編程、系統(tǒng)設計、軟件開發(fā)、基于塊的設計、EDA界面、時序收斂、調試、工程更改管理等5。在本次設計中主要用到前面幾個功能,下面坐下簡單的介紹:設計輸入是使用Quartus II軟件的模塊輸入方式、文本輸入方式、Core輸入方式和EDA設計輸入工具等表達用戶的電路構思,同時使用分配編輯器(Assignment Editor)設定初始設計約束條件。綜合是將HDL語言、原理圖等設計輸入翻譯成由與、或、非門,RAM,觸發(fā)器等基本邏輯單元組成的邏輯鏈接(網表),并根據目標與要求(約束條件優(yōu)化所生成的邏輯連接,輸出edf或vqm等標準格式的網表文件,供布局布線器進行實現(xiàn)。除了可以用QuartusII軟件的綜合工具外,也可以使用第三方綜合工具,生成與QuartusII軟件配合使用的edf網表文件或vqm文件。布局布線的輸入文件是綜合后的網表文件,QuartusII軟件中布局布線包含分析布局布線結果、優(yōu)化布局布線、增量布局布線和通過反標保留分配等6。時序分析是允許用戶分析設計中所有邏輯的時序性能,并協(xié)助引導布局布線滿足設計中的時序分析要求。它觀察和報告時序信息,如建立時間、保持時間、時鐘至輸出延時、最大時鐘頻率以及設計的其他時序特性,可以使用時序分析生成的信息來分析、調試、和驗證設計的時序性能。仿真分為功能仿真和時序仿真。功能仿真主要是驗證電路功能是否符合設計要求,它可以在不同的層次進行,它可以對基本單元仿真也可以對幾個基本單元構成的單元進行仿真,直至系統(tǒng)級的仿真;時序仿真包含了延時信息,它能較好的反映芯片的設計工作情況。可以使用QuartusII集成的仿真工具仿真,也可以使用第三方工具對設計進行仿真,如Modelsim。編程和配置是在全編譯成功后,對Altera器件進行編程或配置,它包括Assemble(生成編程文件)、Programmer(建立包含設計所用器件名稱和選項的鏈式文件)、轉換編程文件等。EDA界面中的EDA Netlist Writer是生成時序仿真所需要的包含延遲信息的文件。除了上述工具外,QuartusII軟件還提供第三方工具的連接。如綜合工具Synplify、Synplifypro、Leonardo,仿真工具Modelsim、Aldec HDL等這些業(yè)內公認的專業(yè)綜合、仿真工具。4.2 基于FPGA的數(shù)字電路的設計流程隨著FPGA容量,功能及其可靠性的提高,在現(xiàn)代數(shù)字通信系統(tǒng)的中使用率越來越高,采用FPGA設計數(shù)字電路已經成為數(shù)字電路系統(tǒng)領域的主要方式之一7。在信號的處理以及整個系統(tǒng)的控制中,F(xiàn)PGA不但能大大縮減電路的體積,提高電路的穩(wěn)定性,而且其先進的開發(fā)工具使整個系統(tǒng)的設計周期大大縮短8。主要的設計流程圖如下9:設計準備:在進行設計之前,必須了解項目設計的需求,首先要根據任務書要確定方案,選擇使用說明設備等準備工作。設計輸入:將設計的系統(tǒng)或電路以某種形式表現(xiàn)出來,輸入到計算機上,包括狀態(tài)圖輸入、圖形輸入和HDL語言輸入,常用的是后兩種。HDL語言在描述狀態(tài)機,控制邏輯,總線功能方面比較強;原理圖輸入比較適合頂層設計、數(shù)據通路邏輯;在本文的設計中,使用的VHDL語言輸入。功能仿真:功能仿真也稱前仿真或行為仿真。它是在沒有考慮器件延時和布線延時的理想情況下,對源代碼進行邏輯上的功能驗證,以便及時地進行修改。設計處理:包括了邏輯分析、綜合和優(yōu)化三個步驟。邏輯分析是對HDL源文件進行分析并糾正語法錯誤。綜合就是給定的電路實現(xiàn)功能和實現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計算機進行優(yōu)化處理,獲得一個能滿足上述要求的電路設計方案,該方案必須同時滿足預期的功能和約束條件;優(yōu)化則是根據用戶的設計約束,對速度和面積進行邏輯優(yōu)化。設計實現(xiàn)利用實現(xiàn)工具把邏輯映射到目標器件結構的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進行連線,并產生相應的文件,供后續(xù)的時序仿真和下載。時序仿真時序仿真是FPGA設計的重要步驟之一,又稱后仿真,在做完布局布線后進行,仿真中包含布局布線產生的器件延時,連線延時信息。它與特定的器件有關,主要驗證程序在目標器件上的時序關系,是接近器件真實工作情況的仿真,仿真精度比較高。下載驗證下載又稱配置,是在功能仿真和時序仿真正確的前提下,將綜合后形成的文件下載到具體的FPGA芯片中。然后再進行實際器件的物理測試即為電路驗證。這是最終驗證設計項目在目標系統(tǒng)上的實際工作情況,以排除錯誤,改正設計。4.3 本章小結本章首先介紹了這次設計需要用到的設計軟件Quartus II的特點和功能。然后介紹了居于FPGA的數(shù)字電路的設計流程,從開始的準備到數(shù)據的輸入與功能運行,然后到中間的調試再進行功能運行,最后確認無誤了帶入時序信號然后進行時序仿真,最后下載具體的FPGA芯片中進行電路驗證,調試程序,最后得到正確結果。第5章 I2C總線的功能設計5.1 I2C總線完成的功能I2C總線中,數(shù)據信號的傳輸是由串行數(shù)據線SDA和串行時鐘線SCL完成的,可發(fā)送和接收數(shù)據。I2C總線是為了實現(xiàn)主機和從機之間的數(shù)據傳輸,當從主機向從機發(fā)送數(shù)據時,實現(xiàn)的是I2C總線的寫操作功能,主機先發(fā)送一個開始條件,之后主機先向SDA線發(fā)送從機的7位地址數(shù)據以及第8位寫位,數(shù)據經過SDA線時,開始在與SDA線連接的器件中搜索對應的地址,找到后,從機反饋一個應答信號,這個時候主機開始通過SDA線向從機發(fā)送數(shù)據,每一個字節(jié)8位數(shù)據傳輸結束,從機都要反饋一個應答信號。得到從機的最后一個應答信號后,主機發(fā)送一個停止信號。當主機接收從機發(fā)送的數(shù)據時,實現(xiàn)的是I2C總線的讀操作功能,這個時候主機先向SDA線發(fā)送從機的7位地址數(shù)據以及第8位讀位,數(shù)據經過SDA線時,開始在與SDA線連接的期間中搜索對應的地址,找到后從機反饋一個應答信號,這個時候從機開始通過SDA線向主機發(fā)送數(shù)據,每個字節(jié)8位數(shù)據傳輸結束,主機要向從機反饋個應答信號(如果從機發(fā)送完最后一個字節(jié)的時候,主機不用發(fā)送應答信號,而發(fā)送一個停止信號)。如果主機有選擇的接收從機發(fā)送的數(shù)據,實現(xiàn)的是I2C總線的選擇性讀操作功能,這個時候主機先向SDA線發(fā)送從機的7位地址數(shù)據以及第8位寫位,數(shù)據經過SDA線時,開始在與SDA線連接的器件中搜索對應的地址,找到后,從機反饋一個應答信號,這個時候主機通過SDA線向從機發(fā)送字節(jié)8位的地址位,從機收到后反饋一個應答信號。之前完成了一次偽寫操作。這個時候主機發(fā)送一個重新開始信號,重新向SDA發(fā)送從機的7位地址數(shù)據以及第8位讀位,找到相應的從機后,從機反饋一個應答信號,然后從機將該字節(jié)位開始的數(shù)據通過SDA線向主機發(fā)送,每個字節(jié)8位數(shù)據傳輸結束,主機要向從機反饋個應答信號(如果從機發(fā)送完最后一個字節(jié)的時候,主機不用發(fā)送應答信號,而發(fā)送一個停止信號)。這兩線都是由CPU引出,其它受控電路均掛接SDA和SCL線上,只有CPU具有控制權,在其控制下,CPU即可以向數(shù)據總線發(fā)送信息,又能讀取被控器件反饋的響應信息。總線上的受控電路和模塊都有唯一的地址,按類型對他們進行分配。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨立,互不相關。I2C總線控制器是微處理器與I2C器件之間的接口,它可以使性能各異、速度不同,功能不一的外設與微處理器之間方便快捷地進行通信。即要接收處理器的控制信號,命令與數(shù)據;還要發(fā)送I2C器件的數(shù)據和狀態(tài)響應到處理器實現(xiàn)處理器與I2C器件之間的通信機制。鑒于I2C總線的規(guī)范,其接口主要完成的功能如下:1寫操作(串行轉并行)2順序讀操作(并行轉串行)3開始/停止/重啟/響應各種觸發(fā)狀態(tài)4讀寫控制位和啟動位5隨機讀取總線數(shù)據和狀態(tài)5.2 用VHDL語言實現(xiàn)寫操作時的串行轉并行寫操作時,輸入SDA上的串行數(shù)據,輸出從機上的并行數(shù)據,用VHDL語言實現(xiàn)如圖 5-1和圖 5-2 圖5-1 串行轉并行模塊圖 圖5-2 串行轉并行仿真圖5.3 用VHDL語言實現(xiàn)順序讀操作時的并行轉串行順序讀操作時,輸入從機上的并行數(shù)據,輸出SDA的串行數(shù)據,用VHDL語言實現(xiàn)如圖 5-3和圖 5-4 圖 5-3 并行轉串行模塊圖 圖 5-4 并行轉串行仿真圖5.4 I2C總線控制器的頂層設計I2C總線控制器就是將主機和從機連接起來,它一方面要通過數(shù)據總線與主機交換數(shù)據,另一方面通過I2C總線與從機交換數(shù)據,使他們之間能夠進行通訊。根據據總線控制器要完成的功能,需要2條8位數(shù)據線,1條8位地址線,1條串行時鐘線,1條串行數(shù)據線,1條讀寫控制線,1條啟動線,1條清零線,1條應答信號線。其詳細的輸入輸出接口信號及其功能如表 5-1所示,其中kongzhi是芯片的控制信號,只有當它啟動之后,其它的地址、復位和命令信號才能啟動。表 5-1 I2C總線接口信號表端口名方向描述kongzhi輸入啟動信號scl輸入時鐘輸入clr輸入清零位dizhi輸入地址信號輸入shuru輸入讀操作中從機發(fā)送的數(shù)據duxie輸入讀寫控制信號shuchu輸出寫操作中主機接收的數(shù)據ack輸出從機的應答信號sda輸入/輸出數(shù)據輸入輸出信號它的外圍接口設備如圖 5-5 圖5-6 圖5-7所示: 圖 5-5 I2C總線頂層設計模塊圖 圖 5-6 I2C總線控制器的外圍接口功能框圖 圖 5-7 I2C總線控制器的端口圖5.5 本章小結本章首先介紹了I2C總線的功能,分為三種寫操作,順序讀操作和選擇性讀操作,然后根據這3種操作用VHDL語言做了其中比較核心的串行與并行之間的轉換,附有仿真圖,最后完成了I2C總線的頂層設計,為完成下章的I2C總線的時序實現(xiàn)做了鋪墊。第6章 I2C總線的硬件時序仿真本文在Quartus 7.1環(huán)境下對I2C總線控制其時序進行仿真,上一章中已經對部分模塊進行了功能仿真。而時序仿真是在FPGA布局布線完成之后進行的仿真,這一級別的仿真可以真實地模擬真實電路的工作情況。為了確認I2C總線控制器是否能夠正確運行,我們建立一個模擬的仿真環(huán)境,主器件為微控制器,從器件是EEPROM。I2C總線規(guī)范規(guī)定,每個從器件都擁有一個唯一的7位從器件地址,讓主機來進行選擇,通常7位中四個較重要的位(MSBthe MostSignificant Bit)為固定的,并依器件本身性質的分類區(qū)分,如1010即代表串行EEPROM,而其他三個較不重要的位(LSB),即A2、A1與A0則可以通過硬件電子引腳設定,并取得8個不同的I2C地址組合,因此在同一個I2C總線上可以有8個相同類型的器件10。6.1 器件的選擇在Quartus平臺上,對FPGA進行仿真之前,要選擇一個器件。FPGA器件的選用同其它通用邏輯器件不同,除考慮器件本身的性能外,軟件工具也很重要11。如何選用合適的FPGA器件,不只是一件一次性的工作,還涉及到設計軟件的選用以及今后進一步工作的開展。首先,用戶應該根據自身的技術環(huán)境、技術條件、使用習慣等選擇一種合適的軟件工具,同時要兼顧EDA技術的發(fā)展。占據優(yōu)勢的軟件供應商同大多數(shù)芯片制造商建立了良好的合作伙伴關系,所以,擁有一種設計軟件,再進一步選擇不同的工具庫,或增加部分配置,即可對不同廠家的不同種類的FPGA產品進行設計。其次,用戶可根據設計的需要確定選擇哪一類FPGA器件。如果用于航天、軍事領域,反熔絲技術的一次編程型FPGA是首選;如果要完成多種算術運算,或是要求工作在較高速度下,EPLD/CPLD是較好的選擇;而對于功能復雜的時序邏輯電路而言,標準門陣列單元型的FPGA具有集成度高、保持靈活和功耗低的優(yōu)點。第三,選定某一廠家的產品,生產同類器件的廠家很多,一般依據以下準則進行選擇。(1)選擇有設計軟件支持的廠家的芯片,這樣可減少資本投入,降低成本。(2)選擇產品設計性能改進有余量的。如果所選擇的芯片是某一廠家產品中容量最大,或是速度最高的,那么,一旦設計需要改進,則有可能在該廠家的芯片中再選不出合適的來了。(3)設計應用的延續(xù)性和可擴展性。如果所選廠家的產品具有很大的局限性,則有可能僅僅適用于很少一部分設計,從而造成設計軟件投入上的浪費。(4)選擇性能價格比最優(yōu)的。盡管象Xilinx、Altera這樣的器件生產廠家都在通過降價來作市場宣傳,大多數(shù)FPGA芯片的價格還是比較高的,所有在滿足上述準則的情況下適當考慮價格也是有必要的。參考產品說明書,了解芯片容量、外引腳個數(shù)、封裝形式、速度級別以及溫度范圍等等。選擇合適芯片的前提是對設計要求的全面分析和了解。設計人員應結合芯片的內部結構適當調整設計以盡可能充分地利用芯片資源12。根據以上原則,在本設計中,選擇了Altera公司的cyclone II系列的EP2C35器件,它采用90nm技術,就有較大的容量和速度,具有強大的系統(tǒng)級功能以及重要的改進和新特性,是同類產品中成本最低密度最大的FPGA。6.2 硬件仿真本課題設計的控制器主要是針對8位的微處理,為了更充分地體現(xiàn)它在系統(tǒng)中的應用,在對設計進行仿真的時候,建立一個仿真環(huán)境,但是并不將它們具體的模塊體現(xiàn)在論文中。微處理器為控制器提供輸入信號,控制器的輸出信號連接到EEPROM上。在Quartus平臺上,根據器件的data sheet,進行管腳分配,然后對項目進行語法分析,編譯,EDA工具可以生成一個RTL級的連接圖,影射到工藝庫,項目會生成一個工藝庫影射瀏覽圖,生成的圖形見附錄,之后進行綜合,時序分析。為了驗證系統(tǒng)的功能性,在時序仿真之前,首先進行功能級的仿真,各個模塊的仿真波形見附錄。然后進行布局布線,創(chuàng)建波形圖,進行時序仿真,也就是后級仿真,它能夠真實地反映系統(tǒng)的工作情況。下面具體分析幾個仿真圖形6.2.1 用VHDL語言實現(xiàn)寫字節(jié)周期首先控制端口先發(fā)送一個啟動信號(本設計中用一個下降沿作為啟動信號),系統(tǒng)接到啟動信號后,所有的器件開始工作。寫操作中,由主機先向SDA串行數(shù)據線發(fā)送一個開始信號,之后發(fā)送一個7位的從機地址以及第8位的寫位(“0”),為尋找此次操作的目標器件,因為所有的從機都已經于SDA線相連,然后開始根據這個地址搜索所尋找的從機,這個過程I2C總線將自行完成,找到后,從機會發(fā)送一個應答信號,接到應答信號后主機開始向從機發(fā)送數(shù)據,因為SDA為串行線,而從機位并行輸出,這個時候完成的工作就是上一章的做的寫操作的時候的串行轉并行,每傳輸完畢一個字節(jié)(8位)從機就會發(fā)送一個應答信號,當最后一個字節(jié)發(fā)送完畢后,主機在接受到最后一個應答信號的時候就會發(fā)送一個停止信號,標志這次寫操作的結束。圖 6-1 寫字節(jié)操作仿真圖6.2.1 用VHDL語言實現(xiàn)順序讀字節(jié)周期首先控制端口發(fā)送一個啟動信號,系統(tǒng)接到啟動信號后,所有的器件開始工作。順序讀字節(jié)操作中,由主機先向SDA串行數(shù)據線發(fā)送一個開始信號,之后發(fā)送一個7位的從機地址以及第8位讀位“1”,為尋找此次操作的目標器件,因為所有的從機都已經于SDA線相連,然后開始根據這個地址搜索所尋找的從機,這個過程I2C總線將自行完成,找到后,從機會發(fā)送一個應答信號,本次操作要求是接收從機的數(shù)據,并沒有選擇接受哪個子地址的字節(jié)的信號,所以,按照順序操作下面就可以從從器件接收數(shù)據了,發(fā)送了應答信號后的一個周期,從機開始向SDA線發(fā)送數(shù)據,因為SDA為串行線,而從機位并行,這個時候完成的工作就是上一章的做的讀操作的時候的串行轉并行,每傳輸完畢一個字節(jié)(8位)主機就會發(fā)送一個應答信號(此次操作反應在SDA線上,最后一個字節(jié)除外),當最后一個字節(jié)發(fā)送完畢后,主機將發(fā)送不應答信號而直接發(fā)送一個停止信號,標志這次順序讀操作的結束。圖 6-2 順序讀操作仿真圖6.2.3 用VHDL語言實現(xiàn)選擇性讀字節(jié)周期首先控制端口先發(fā)送一個啟動信號,系統(tǒng)接到啟動信號后,所有的器件開始工作。順序讀操作首先要進行一次偽寫操作,前9個時鐘周期都是和寫操作一樣,包括第8位的讀寫位也輸入的是寫位“0”,由主機先向SDA串行數(shù)據線發(fā)送一個開始信號,之后發(fā)送一個7位的從機地址以及第8位的寫位(“0”),為尋找此次操作的目標器件,因為所有的從機都已經于SDA線相連,然后開始根據這個地址搜索所尋找的從機,這個過程I2C總線將自行完成,找到后,從機會發(fā)送一個應答信號,接到應答信號后主機開始向從機發(fā)送所選擇的那個8位的字節(jié)地址,當從機收到這8位字節(jié)地址后發(fā)送一個應答信號,主機收到這個應答信號后發(fā)送一個重復因開始條件,之后主機再次向從機發(fā)送7位從機地址和第8位的讀位“1”,從機收到后發(fā)送一個應答信號,主機收到應答信號后開始向從機發(fā)送數(shù)據,每傳輸完畢一個字節(jié)(8位)主機就會發(fā)送一個應答信號(此次操作反應在SDA線上,最后一個字節(jié)除外),當最后一個字節(jié)發(fā)送完畢后,主機將發(fā)送不應答信號而直接發(fā)送一個停止信號,標志這次選擇性讀操作的結束。圖 6-3 選擇性讀操作仿真圖6.3 本章小結本章先介紹了如何選擇FPGA等器件,以及如何連接I2C總線器件和主從器件,這個多數(shù)是參考了資料,大部分操作還是在軟件上實現(xiàn)的,在本章介紹了對I2C的3種操作進行了時序仿真,檢驗了上章最后做的頂層設計。結 論本次設計的題目是基于FPGA的I2C總線的設計與實現(xiàn),設計中涉及到了I2C的有關知識,VHDL語言的編寫,Quartus II軟件的使用方法,以及FPGA的有關知識。其中主要任務就是運用VDHL語言編寫I2C總線的功能和時序功能。論文中將幾個比較重要的模塊進行了功能仿真,并且對頂層設計也進行了詳細的功能仿真和時序仿真,仿真結果表明,各個模塊均基本完成了相應的邏輯功能。本次設計的I2C總線控制器非常適合于內含F(xiàn)PGA的系統(tǒng)中,因為I2C總線需要控制器,使用獨立的控制器占用了多余的空間,用FPGA實現(xiàn)對I2C總線器件的控制成為最理想的選擇,本設計能夠實現(xiàn)FPGA模擬I2C總線來控制其讀寫操作,由于FPGA的快速發(fā)展,其容量可以將各種外圍器件的接口集成到FPGA內部,這樣可以實現(xiàn)設計的小型化,低功耗,并且降低了設計的復雜度,而且利用了FPGA在線可編程特點,可以增加系統(tǒng)設計的靈活度,提高了設計效率。著眼于VHDL語言的效率和可移植性以及不依賴器件的特性,設計者更能在不同系統(tǒng)中把握和描述系統(tǒng)結構和功能特性,使設計更具靈活性。本設計可以在本系統(tǒng)中使用,也可以移植到其他系統(tǒng)等。在設計期間,通過不斷的學習、思考和實踐,主要掌握了VHDL語言的基本編寫技術,Quartus II的基本使用方法,提高了學習能力和操作能力,以及創(chuàng)新能力。為以后的學習打下了一定的基礎,對以后學習別的語言等,積累的一定的經驗。致 謝在論文即將完成之際,謹向所有關心我的老師、同學和朋友表示衷心的感謝!本課題是在導師周志權老師和趙占峰老師親切關懷和悉心指導下完成的,導師以淵博的學識和嚴謹?shù)闹螌W態(tài)度,為學生開拓了研究視野,豐富了專業(yè)知識。先生謙遜無私的高尚品質、樸實真誠的做人原則和一絲不茍的敬業(yè)精神,對學生將永遠的鞭策。在我畢業(yè)設計期間,周志權老師和趙占峰老師在學習、生活上都給予了我極大的關懷和鼓勵。從論文選題、實驗仿真到最后論文的撰寫,周志權老師和趙占峰老師都做了悉心的指導,并提出了許多寶貴的建議。藉此完成之際,借此機會謹向尊敬的周志權老師和趙占峰老師致以最衷心的感謝!感謝論文中參考的參考文獻的作者;對于提供論文中隱含的上述提及的支持者以及研究思想和設想的支持者表示感謝。特別感謝研究所實驗室老師和師兄、師姐為我論文的完成提供了許多幫助。感謝我的同學和朋友的支持和幫助!在求學期間,我的親屬和朋友對我給予了無微不至的關懷,對此,我也表示深深的感謝!不要自己寫,要利用word來自動生成。詳情請看最后一頁參考文獻1 姜雪松,王鷹等.VHDL設計實例與仿真.機械工業(yè)出版社,2007:164-1662 潘松,王國棟.VHDL實用教程.第二版.電子科技大學出版社,2001:3-43 侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設計.西安電子科技大學出版社,1997:12-334 劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設計與開發(fā)實例導航.人民郵電出版社,2005:15-175 李洪偉.基于Quartus II的FPGA/CPLD設計,電子工業(yè)出版社,2006: 12-206 Altera.Quartus簡介.Quartus官方入門手冊,2003:11-1537 王毓銀.數(shù)字電路邏輯設計高等教育出版社,19998 勞有蘭,曾文波,吳其琦.基于FPGA的TDMA數(shù)字通信系統(tǒng)的設計.廣西工學院學報,2004:249 鄭儉鋒,I2C總線控制器的VHDL設計和實現(xiàn).電子設計應用,2004: 65-6710 Bruce,J.W,Gray,M.A,Follett,R.F.Personal digital assistant(PDA)based I2C bus analysis.2003:4911 易克初,田斌,李剛強.FPGA設計中關鍵問題的研究.電子技術應用,2003:68-71.12 李文,于偉.如何選擇FPGA器件.電子技術應用,1998:59.

注意事項

本文([優(yōu)秀畢業(yè)論文]利用VHDL語言在FPGA上實現(xiàn)I2C總線控制器的功能)為本站會員(仙***)主動上傳,裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!