基于VHDL語言的電子密碼鎖的設計(交)_第1頁
基于VHDL語言的電子密碼鎖的設計(交)_第2頁
基于VHDL語言的電子密碼鎖的設計(交)_第3頁
基于VHDL語言的電子密碼鎖的設計(交)_第4頁
基于VHDL語言的電子密碼鎖的設計(交)_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、摘要EDA 技術的應用引起了電子產品系統開發的革命性變革。利用先進的EDA 工具,基于硬件描述語言,可以進行系統級數字邏輯電路的設計。本文簡述了VHDL語言的功能及其特點,并以4位串行手機鍵盤電子密碼鎖設計為例,介紹了一種在Quartus6.0開發軟件下,基于VHDL 硬件描述語言的復雜可編程邏輯器件(CPLD)的新型電子密碼鎖設計方法,闡述了其工作原理和軟硬件設計方法。該密碼鎖通過掃描電路、鍵盤譯碼電路、彈跳消除電路、控制電路和七段譯碼電路等實現了密碼輸入、數碼清除、密碼激活、電鎖解除、密碼更改和誤碼報警等功能。本論文對該密碼鎖的程序進行了功能和時序仿真,結果表明該密碼鎖的功能滿足設計要求,

2、能夠實現正常開鎖、上鎖和修改密碼。該密碼鎖體積小、功耗低、易于維護和升級,有很好的市場前景。關鍵詞:EDA,VHDL,FPGA,Quartus,電子密碼鎖IIIAbstractABSTRACTElectronic product and system development are being changed revolutionarily with EDA technology. We can design all kinds of digital logical circuits with advanced EDA tools and VHDL. The paper introduces

3、the function and characteristic of programming of VHDL language briefly. Taking the design of the serial 4-bit electron coded lock for example, this paper introduces a new way to design electron coded lock with CPLD and Quartus6.0 as development software and VHDL as hardware description language. It

4、s operating principles and the designing methods of hardware and software are explained in this article. This coded lock can perform the following functions, such as code input, code clear, code activating, code releasing, code correcting and wrong code alarming by scanning circuit, keyboard decode

5、circuit, bounce eliminating circuit, control circuit. The functional and timing simulations are made. The results show that the design specification of the electronic coded lock is met and the unlock/lock and code correcting can be realized .This new electron coded lock has small size, low power. It

6、s maintenance and upgrade are very convenient. And it has a better application prospect.Keywords: EDA , VHDL , FPGA, Quartus, Electron coded lock目錄目錄第1章 引言11.1 課題背景11.2 國內外研究現狀21.3 課題主要研究工作2第2章 EDA技術與VHDL語言簡介32.1 EDA技術32.1.1 EDA技術的發展32.1.2 EDA技術的基本設計方法52.2 VHDL簡介62.2.1 VHDL語言62.2.2 VHDL語言的特點9第3章 CPL

7、D/FPGA硬件平臺103.1 可編程邏輯器件的發展歷史及概述103.2 FPGA/CPLD 概述113.3 CPLD工作原理123.4 FPGA工作原理13第4章 系統的原理設計144.1 系統設計要求144.2 系統設計方案144.2.1 密碼鎖輸入電路的設計174.2.2 密碼鎖控制電路的設計234.2.3 密碼鎖顯示電路的設計244.3 密碼鎖的整體組裝設計25第5章 系統的程序實現265.1 鍵盤輸入去抖電路的VHDL源程序265.2 密碼鎖輸入電路的VHDL源程序295.3 密碼鎖控制電路的VHDL源程序345.4 密碼鎖顯示電路的VHDL源程序38第6章 系統仿真分析及硬件驗證4

8、06.1 系統仿真分析406.1.1 鍵盤輸入去抖電路的仿真406.1.2 密碼鎖輸入電路的仿真406.1.3 密碼鎖控制電路的仿真416.1.4 密碼鎖顯示電路的仿真436.2 系統硬件驗證44第7章 小結48參考文獻49致謝50第1章 引言第1章 引言1.1 課題背景自古以來,鎖具都是人們心目中的“鐵將軍”,隨著社會物質財富的日益增長和人們生活水平的不斷提高,人們對它要求也越來越高,即要安全可靠,又要使用方便。傳統的機械鎖由于其密碼量少,構造簡單,安全性差,結構上的局限已難以滿足當前社會管理和防盜要求,特別是在人員經常變動的公共場所,如辦公室、賓館、倉庫等地方。電子密碼鎖是集計算機技術、電

9、子技術、數字密碼技術為一體的機電一體化高科技產品,由于其保密性高,使用靈活性好,安全系數高,受到了廣大用戶的親呢。而目前大部分電子密碼鎖采用單片機進行設計,電路比較復雜,性能不夠靈活,其成本高且可靠性較差。因此,密碼鎖的安全性和實用性一直是鎖具的制造者長期以來研究的主題。電子密碼鎖是在實際應用中使用得極其廣泛的一種數字電路,它的主要功能是用來對某些物品進行加密保護,目的是避免無權人員使用某些設施或者進行越權操作,例如銀行自動柜員機、自動售貨機、門卡系統或者保險柜中都含有這種數字密碼鎖。在電子技術飛速發展的今天,具有防盜報警等功能的電子密碼鎖代替彈子鎖和密碼量少、安全性差的機械式密碼鎖已是必然趨

10、勢。電子密碼鎖具有機械鎖無可比擬的優越性,它不但可以完成鎖本身的功能,還可以兼有多種功能,如記憶、識別、報警等,電子密碼鎖以其安全性高、成本低、功耗低、易操作等優點受到越來越多人的歡迎。通常不同系統中的電子密碼鎖具有不同的功能和操作過程,但基本是相同的,首先輸入密碼,然后系統進行密碼驗證,最后根據密碼驗證的結果來進行不同的操作。運用大規模、超大規模可編程邏輯器件與EDA(電子設計自動化)技術已經成為現代數字技術發展的潮流,20世紀90年代,集成電路產業銷售額增長最快的產業是現場可編程邏輯集成電路。HDL非常適用于可編程邏輯器件的應用設計。尤其在大容量CPLD和FPGA的應用設計中,若采用以往的

11、布爾方程或門級描述方式,很難快速有效地完成。VHDL 能提供高級語言結構,方便地描述大型電路,快速地完成設計。它支持設計單元庫的創建,以存儲設計中重復使用的元件。它是一種標準語言,它的設計描述可被不同的工具所支持,可用不同器件來實現。1.2 國內外研究現狀據有關資料介紹,電子密碼鎖的研究從20世紀30年代就開始了,在一些特殊場所早就有所應用。這種鎖是通過鍵盤輸入一組密碼,完成開鎖過程。研究這種鎖的初衷,就是為提高鎖具的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而

12、被越來越多的人所欣賞、電子鎖的種類繁多,例如數碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實用的還是按鍵式電子密碼鎖。20世紀80年代后,隨著電子鎖專用集成電路的出現,電子鎖的體積縮小,可靠性提高,成本較高,只適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對它的研究一直沒有明顯進展。目前,在西方發達國家,電子密碼鎖己被廣泛應用于智能門禁系統中,通過多種更加安全,更加可靠的技術實現大門的管理。在我國電子密碼鎖的成本還很高,應用還不廣泛。希望通過不斷的努力,使電子密碼鎖在我國也能得到廣泛應用。目前市場上的幾類密碼鎖都存在不同程度的缺陷:操作繁瑣;密碼輸

13、入不易;密碼量少;無法實現聲音報警功能;也無法拒絕非法用戶多次嘗試。1.3 課題主要研究工作近年來,電子密碼鎖的使用越來越廣泛,目前使用的電子密碼鎖大部分是基于單片機用分離元件實現的,其電路比較復雜、性能不夠靈活、成本較高且可靠性和安全性差。基于此,為了克服當前市面上的密碼鎖的不足以滿足用戶的不同需求,本設計采用先進的EDA技術和VHDL語言,在Quartus環境下, 采用CPLD(復雜可編程邏輯芯片)為核心器件的新型電子密碼鎖的設計方法,該電子密碼鎖具有密碼預置、誤碼報警和萬能密碼等功能、體積小、功耗底、價格便宜、安全可靠,維護和升級都十分方便;具有較好的應用前景。本課題要完成的主要任務是基

14、于VHDL語言的電子密碼鎖的設計和具體的實現,重點完成各個模塊的設計,并保證整個系統的穩定性、可靠性和擴展性,充分考慮后續階段的開發。3第2章 EDA技術與VHDL語言簡介第2章 EDA技術與VHDL語言簡介2.1 EDA技術2.1.1 EDA技術的發展EDA是電子設計自動化(Electronic Design Automation)的縮寫,在20世紀90年代初從計算機輔助設計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發展而來的。EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言VHDL完成設計文件,然后由計算機自動地完成

15、邏輯編譯、化簡、分割、綜合、優化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現,極大地提高了電路設計的效率和可靠性,減輕了設計者的勞動強度。人類社會已進入到高度發達的信息化社會,信息社會的發展離不開電子產品的進步。現代電子產品在性能提高、復雜度增大的同時,價格卻一直呈下降趨勢,而且產品更新換代的步伐也越來越快,實現這種進步的主要原因就是生產制造技術和電子設計技術的發展。前者以微細加工技術為代表,目前已進展到深亞微米階段,可以在幾平方厘米的芯片上集成數千萬個晶體管;后者的核心就是EDA技術。EDA是指以計算機為工作平臺,融合了應用電子技術、計算機技

16、術、智能化技術最新成果而研制成的電子CAD通用軟件包,主要能輔助進行三方面的設計工作:IC設計、電子電路設計以及PCB設計。沒有EDA技術的支持,想要完成上述超大規模集成電路的設計制造是不可想象的,反過來,生產制造技術的不斷進步又必將對EDA技術提出新的要求。回顧近30年電子設計技術的發展歷程,可將EDA技術分為三個階段。七十年代為CAD階段,這一階段人們開始用計算機輔助進行IC版圖編輯和PCB布局布線,取代了手工操作,產生了計算機輔助設計的概念。八十年代為CAE階段,與CAD相比,除了純粹的圖形繪制功能外,又增加了電路功能設計和結構設計,并且通過電氣連接網絡表將兩者結合在一起,以實現工程設計

17、,這就是計算機輔助工程的概念。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動布局布線,PCB后分析。九十年代為ESDA階段。盡管CAD/CAE技術取得了巨大的成功,但并沒有把人從繁重的設計工作中徹底解放出來。在整個設計過程中,自動化和智能化程度還不高,各種EDA軟件界面千差萬別,學習使用困難,并且互不兼容,直接影響到設計環節間的銜接。基于以上不足,人們開始追求貫徹整個設計過程的自動化,這就是ESDA即電子系統設計自動化。ESDA代表了當今電子設計技術的最新發展方向,它的基本特征是:設計人員按照"自頂向下"的設計方法,對整個系統進行方案設計和功能劃分,系統的關鍵電路

18、用一片或幾片專用集成電路(ASIC)實現,然后采用硬件描述語言(HDL)完成系統行為級設計,最后通過綜合器和適配器生成最終的目標器件。這樣的設計方法被稱為高層次的電子設計方法。下面介紹與ESDA基本特征有關的幾個概念。 (1) “自頂向下”的設計方法 10年前,電子設計的基本思路還是選擇標準集成電路“自底向上”(Bottom-Up)地構造出一個新的系統,這樣的設計方法就如同一磚一瓦地建造金字塔,不僅效率低、成本高而且還容易出錯。高層次設計給我們提供了一種“自頂向下”(Top-Down)的全新的設計方法,這種設計方法首先從系統設計入手,在頂層進行功能方框圖的劃分和結構設計。在方框圖一級進行仿真、

19、糾錯,并用硬件描述語言對高層次的系統行為進行描述,在系統一級進行驗證。然后用綜合優化工具生成具體門電路的網表,其對應的物理實現級可以是印刷電路板或專用集成電路。由于設計的主要仿真和調試過程是在高層次上完成的,這不僅有利于早期發現結構設計上的錯誤,避免設計工作的浪費,而且也減少了邏輯功能仿真的工作量,提高了設計的一次成功率。(2) ASIC設計現代電子產品的復雜度日益加深,一個電子系統可能由數萬個中小規模集成電路構成,這就帶來了體積大、功耗大、可靠性差的問題,解決這一問題的有效方法就是采用ASIC(Application Specific Integrated Circuits)芯片進行設計。A

20、SIC按照設計方法的不同可分為:全定制ASIC,半定制ASIC,可編程ASIC(也稱為可編程邏輯器件)。設計全定制ASIC芯片時,設計師要定義芯片上所有晶體管的幾何圖形和工藝規則,最后將設計結果交由IC廠家掩膜制造完成。優點是:芯片可以獲得最優的性能,即面積利用率高、速度快、功耗低。缺點是:開發周期長,費用高,只適合大批量產品開發。半定制ASIC芯片的版圖設計方法有所不同,分為門陣列設計法和標準單元設計法,這兩種方法都是約束性的設計方法,其主要目的就是簡化設計,以犧牲芯片性能為代價來縮短開發時間。可編程邏輯芯片與上述掩膜ASIC的不同之處在于:設計人員完成版圖設計后,在實驗室內就可以燒制出自己

21、的芯片,無須IC廠家的參與,大大縮短了開發周期。可編程邏輯器件自七十年代以來,經歷了PAL、GAL、CPLD、FPGA幾個發展階段,其中 CPLD/FPGA屬高密度可編程邏輯器件,目前集成度已高達200萬門/片,它將掩膜ASIC集成度高的優點和可編程邏輯器件設計生產方便的特點結合在一起,特別適合于樣品研制或小批量產品開發,使產品能以最快的速度上市,而當市場擴大時,它可以很容易的轉由掩膜ASIC實現,因此開發風險也大為降低。上述ASIC芯片,尤其是CPLD/FPGA器件,已成為現代高層次電子設計方法的實現載體。2.1.2 EDA技術的基本設計方法 EDA技術的每一次進步,都引起了設計層次上的一個

22、飛躍。物理級設計主要指IC版圖設計,一般由半導體廠家完成,對電子工程師并沒有太大的意義,因此本文重點介紹電路級設計和系統級設計。(1) 電路級設計電子工程師接受系統設計任務后,首先確定設計方案,同時要選擇能實現該方案的合適元器件,然后根據具體的元器件設計電路原理圖。接著進行第一次仿真,包括數字電路的邏輯模擬、故障分析、模擬電路的交直流分析、瞬態分析。系統在進行仿真時,必須要有元件模型庫的支持,計算機上模擬的輸入輸出波形代替了實際電路調試中的信號源和示波器。這一次仿真主要是檢驗設計方案在功能方面的正確性。仿真通過后,根據原理圖產生的電氣連接網絡表進行PCB板的自動布局布線。在制作PCB板之前還可

23、以進行后分析,包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并且可以將分析后的結果參數反標回電路圖,進行第二次仿真,也稱為后仿真,這一次仿真主要是檢驗PCB板在實際工作環境中的可行性。由此可見,電路級的EDA技術使電子工程師在實際的電子系統產生之前,就可以全面地了解系統的功能特性和物理特性,從而將開發過程中出現的缺陷消滅在設計階段,不僅縮短了開發時間,也降低了開發成本。(2) 系統級設計進入90年代以來,電子信息類產品的開發出現了兩個明顯的特點:一是產品的復雜程度加深,二是產品的上市時限緊迫。然而電路級設計本質上是基于門級描述的單層次設計,設計的所有工作(包括設計輸入,仿真和分析,設

24、計修改等)都是在基本邏輯門這一層次上進行的,顯然這種設計方法不能適應新的形勢,為此引入了一種高層次的電子設計方法,也稱為系統級的設計方法。高層次設計是一種“概念驅動式”設計,設計人員無須通過門級原理圖描述電路,而是針對設計目標進行功能描述,由于擺脫了電路細節的束縛,設計人員可以把精力集中于創造性的概念構思與方案上,一旦這些概念構思以高層次描述的形式輸入計算機后,EDA系統就能以規則驅動的方式自動完成整個設計。這樣,新的概念得以迅速有效的成為產品,大大縮短了產品的研制周期。不僅如此,高層次設計只是定義系統的行為特性,可以不涉及實現工藝,在廠家綜合庫的支持下,利用綜合優化工具可以將高層次描述轉換成

25、針對某種工藝優化的網表,工藝轉化變得輕松容易。EDA技術是電子設計領域的一場革命,目前正處于高速發展階段,每年都有新的EDA工具問世。2.2 VHDL簡介2.2.1 VHDL語言硬件描述語言(HDL-Hardware Description Language)是一種用于設計硬件電子系統的計算機語言,它用軟件編程的方式來描述電子系統的邏輯功能、電路結構和連接形式,與傳統的門級描述方式相比,它更適合大規模系統的設計,而且VHDL語言可讀性強,易于修改和發現錯誤。HDL是電子系統硬件行為描述、結構描述、數據流描述的語言。目前利用硬件描述語言可以進行數字電子系統的設計。隨著研究的深入,利用硬件描述語言

26、進行模擬電子系統設計或混合電子系統設計,也正在探索中。硬件描述的語言種類很多,有的從PASCAL發展而來,也有一些從C語言發展而來。有些HDL成為IEEE標準,但大部分是本企業標準。HDL發展的技術源頭是:在HDL形成發展之前,已有了許多程序設計語言,如匯編、C、PASCAL、FORTRAN、PROLOG等。這些語言運行在不同硬件平臺、不同的操作環境中,它們適合于描述過程和算法,不適合作硬件描述。在利用EDA工具進行電子設計時,邏輯圖、分立電子元件作為整個越來越復雜的電子系統的設計已不適用。任何一種EDA工具,都需要一種硬件描述語言作為EDA工具的工作語言。早期的硬件描述語言,如ABEL-HD

27、L、AHDL,是由不同的EDA廠商開發的,互相不兼容,而且不支持多層次設計,層次間翻譯工作要由人工完成。為了克服以上缺陷,1985年美國國防部正式推出了VHDL(Very High Speed IC Hardware Description Language)語言,即超高速集成電路硬件描述語言;1987年IEEE采納VHDL為硬件描述語言標準(IEEESTD-1076)。VHDL是一種全方位的硬件描述語言,包括系統行為級、寄存器傳輸級和邏輯門級多個設計層次,支持結構、數據流、行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語言的功能,整個自頂向下或自底向上的電路設計過程都可以

28、用VHDL來完成。另外,VHDL還具有以下優點:VHDL的寬范圍描述能力使它成為高層次設計的核心,將設計人員的工作重心提高到了系統功能的實現與調試,只需花較少的精力用于物理實現。VHDL可以用簡潔明確的代碼描述來進行復雜控制邏輯的設計,靈活且方便,而且也便于設計結果的交流、保存和重用。VHDL的設計不依賴于特定的器件,方便了工藝的轉換。VHDL是一個標準語言,為眾多的EDA廠商支持,因此移植性好。目前數字系統的設計可以直接面向用戶需求,根據系統的行為和功能要求 ,自上而下地逐層完成相應的描述、綜合、優化、仿真與驗證,直到生成器件,實現電子設計自動化。其中電子設計自動化EDA的關鍵技術之一就是可

29、以用硬件描述語言來描述硬件電路。VHDL是用來描述從抽象到具體級別硬件的工業標準語言,它是由美國國防部在20世紀80年代開發的HDL,現在已成為 IEEE承認的標準硬件描述語言。VHDL 支持硬件的設計、驗證、綜合和測試,以及硬件設計數據的交換、維護、修改和硬件的實現,具有描述能力強、生命周期長、支持大規模設計的分解和已有設計的再利用等優點。VHDL主要用于描述數字系統的結構、行為和功能,其程序結構特點是將一個電路模塊或一個系統分成端口和內部功能算法實現兩部分。對于一個電路模塊或者數字系統而言,定義了外部端口后,一旦內部功能算法完成后,其他系統可以直接依據外部端口調用該電路模塊或數字系統,而不

30、必知道其內部結構和算法。VHDL 的特點使得電子系統新的設計方法“自頂向下”設計方法更加容易實現。可以先對整個系統進行方案設計,按功能劃分成若干單元模塊,然后對每個單元模塊進一步細分,直到簡單實現的單元電路。VHDL語言的設計方法是一種高層次的設計方法,也稱為系統級的設計方法,其設計步驟如下: 第一步:按照“自頂向下”的設計方法進行系統劃分。第二步:輸入VHDL語言代碼,這是高層次設計中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(框圖,狀態圖等),這種輸入方式具有直觀、容易理解的優點。第三步:將以上的設計輸入編譯成標準的VHDL文件。對于大型設計,還要進行代碼級的功能仿真,主要是檢驗系統

31、功能設計的正確性,因為對于大型設計,綜合、適配要花費數小時,在綜合前對源代碼仿真,就可以大大減少設計重復的次數和時間,一般情況下,可略去這一仿真步驟。第四步:利用綜合器對VHDL源代碼進行綜合優化處理,生成門級描述的網表文件,這是將高層次描述轉化為硬件電路的關鍵步驟。綜合優化是針對ASIC芯片供應商的某一產品系列進行的,所以綜合的過程要在相應的廠家綜合庫支持下才能完成。綜合后,可利用產生的網表文件進行適配前的時序仿真,仿真過程不涉及具體器件的硬件特性,較為粗略。一般設計,這一仿真步驟也可略去。第五步:利用適配器將綜合后的網表文件針對某一具體的目標器件進行邏輯映射操作,包括底層器件配置、邏輯分割

32、、邏輯優化和布局布線。適配完成后,產生多項設計結果:(1) 適配報告,包括芯片內部資源利用情況,設計的布爾方程描述情況等;(2) 適配后的仿真模型;(3) 器件編程文件。根據適配后的仿真模型,可以進行適配后的時序仿真,因為已經得到器件的實際硬件特性(如時延特性),所以仿真結果能比較精確地預期未來芯片的實際性能。如果仿真結果達不到設計要求,就需要修改VHDL源代碼或選擇不同速度品質的器件,直至滿足設計要求。第六步:將適配器產生的器件編程文件通過編程器或下載電纜載入到目標芯片FPGA或CPLD中。如果是大批量產品開發,通過更換相應的廠家綜合庫,可以很容易轉由ASIC形式實現。2.2.2 VHDL語

33、言的特點應用VHDL進行系統設計,有以下幾方面的特點:(1) 功能強大 VHDL具有功能強大的語言結構。它可以用明確的代碼描述復雜的控制邏輯設計。并且具有多層次的設計描述功能,支持設計庫和可重復使用的元件生成。VHDL是一種設計、仿真和綜合的標準硬件描述語言。(2) 可移植性 VHDL語言是一個標準語言,其設計描述可以為不同的EDA工具支持。它可以從一個仿真工具移植到另一個仿真工具,從一個綜合工具移植到另一個綜合工具,從一個工作平臺移植到另一個工作平臺。此外,通過更換庫再重新綜合很容易移植為ASIC設計。(3) 獨立性 VHDL的硬件描述與具體的工藝技術和硬件結構無關。設計者可以不懂硬件的結構

34、,也不必管最終設計實現的目標器件是什么,而進行獨立的設計。程序設計的硬件目標器件有廣闊的選擇范圍,可以是各系列的CPLD、FPGA及各種門陣列器件。(4) 可操作性 由于VHDL具有類屬描述語句和子程序調用等功能,對于已完成的設計,在不改變源程序的條件下,只需改變端口類屬參量或函數,就能輕易地改變設計的規模和結構。(5) 靈活性 VHDL最初是作為一種仿真標準格式出現的,有著豐富的仿真語句和庫函數。使其在任何大系統的設計中,隨時可對設計進行仿真模擬。所以,即使在遠離門級的高層次(即使設計尚未完成時),設計者就能夠對整個工程設計的結構和功能的可行性進行查驗,并做出決策。9第3章 CPLD/FPG

35、A硬件平臺第3章 CPLD/FPGA硬件平臺20世紀90年代,國際上電子和計算機技術較先進的國家,一直在積極探索新的電子電路設計方法,并在設計方法、工具等方面進行了徹底的變革,取得了巨大成功。在電子技術設計領域,可編程邏輯器件(如CPLD、FPGA)的應用,已得到廣泛的普及,這些器件為數字系統的設計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結構和工作方式進行重構,從而使得硬件的設計可以如同軟件設計那樣方便快捷。這一切極大地改變了傳統的數字系統設計方法、設計過程和設計觀念,促進了EDA技術的迅速發展。 3.1 可編程邏輯器件的發展歷史及概述 當今社會是數字化的社會,是數字集

36、成電路廣泛應用的社會。數字集成電路本身在不斷地進行更新換代。它由早期的電子管、晶體管、小中規模集成電路、發展到超大規模集成電路(VLSIC,幾萬門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術的發展,設計與制造集成電路的任務已不完全由半導體廠商來獨立承擔。系統設計師們更愿意自己設計專用集成電路(ASIC)芯片,而且希望ASIC的設計周期盡可能短,最好是在實驗室里就能設計出合適的ASIC芯片,并且立即投入實際應用之中,因而出現了現場可編程邏輯器件(FPLD),其中應用最廣泛的當屬現場可編程門陣列(FPGA)和復雜可編程邏輯器件(CPLD)。早期的可編程邏輯器件只有可編程只讀存貯器

37、(PROM)、紫外線可擦除只讀存貯器(EPROM)和電可擦除只讀存貯器(EEPROM)三種。由于結構的限制,它們只能完成簡單的數字邏輯功能。 其后,出現了一類結構上稍復雜的可編程芯片,即可編程邏輯器件(PLD),它能夠完成各種數字邏輯功能。典型的PLD由一個“與”門和一個“或”門陣列組成,而任意一個組合邏輯都可以用“與一或”表達式來描述,所以,PLD能以乘積和的形式完成大量的組合邏輯功能。這一階段的產品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。PAL由一個可編程的“與”平面和一個固定的“或”平面構成,或門的輸。出可以通過觸發器有選擇地被置為寄存狀態。PAL器件是現場可編程的,它的

38、實現工藝有反熔絲技術、EPROM技術和EEPROM技術。還有一類結構更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個“與”平面和一個“或”平面構成,但是這兩個平面的連接關系是可編程的。PLA器件既有現場可編程的,也有掩膜可編程的。在PAL的基礎上,又發展了一種通用陣列邏輯GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工藝,實現了電可按除、電可改寫,其輸出結構是可編程的邏輯宏單元,因而它的設計具有很強的靈活性,至今仍有許多人使用。 這些早期的PLD器件的一個共同特點是可以實現速度特性較好的邏輯功能,但其過于簡單的結構也使它

39、們只能實現規模較小的電路。為了彌補這一缺陷,20世紀80年代中期。Altera和Xilinx分別推出了類似于PAL結構的擴展型 CPLD(Complex Programmab1e Logic Dvice)和與標準門陣列類似的FPGA(Field Programmable Gate Array),它們都具有體系結構和邏輯單元靈活、集成度高以及適用范圍寬等特點。這兩種器件兼容了PLD和通用門陣列的優點,可實現較大規模的電路,編程也很靈活。與門陣列等其它ASIC(Application Specific IC)相比,它們又具有設計開發周期短、設計制造成本低、開發工具先進、標準產品無需測試、質量穩定以

40、及可實時在線檢驗等優點,因此被廣泛應用于產品的原型設計和產品生產(一般在10,000件以下)之中。幾乎所有應用門陣列、PLD和中小規模通用數字集成電路的場合均可應用FPGA和CPLD器件。3.2 FPGA/CPLD 概述FPGA(現場可編程門陣列)與 CPLD(復雜可編程邏輯器件)都是可編程邏輯器件,它們是在PAL,GAL等邏輯器件的基礎之上發展起來的。同以往的PAL,GAL等相比較,FPGA/CPLD的規模比較大,它可以替代幾十甚至幾千塊通用IC芯片。這樣的FPGA/CPLD實際上就是一個子系統部件。這種芯片受到世界范圍內電子工程設計人員的廣泛關注和普遍歡迎。經過了十幾年的發展,許多公司都開

41、發出了多種可編程邏輯器件。比較典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它們開發較早,占用了較大的PLD市場。通常來說,在歐洲用Xilinx的人多,在日本和亞太地區用ALTERA的人多,在美國則是平分秋色。全球PLD/FPGA產品60%以上是由Altera和Xilinx提供的。可以講Altera和Xilinx共同決定了PLD技術的發展方向。當然還有許多其它類型器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。盡管FPGA,CPLD和其它類型PLD的結構各有其特點和長處,但概括起來,它們是由三大部分組成的,一個二維的

42、邏輯塊陣列,構成了PLD器件的邏輯組成核心。輸入/輸出塊:連接邏輯塊的互連資源。連線資源:由各種長度的連線線段組成,其中也有一些可編程的連接開關,它們用于邏輯塊之間、邏輯塊與輸入/輸出塊之間的連接。對用戶而言,CPLD與FPGA的內部結構稍有不同,但用法一樣,所以多數情況下,不加以區分。FPGA/CPLD芯片都是特殊的ASIC芯片,它們除了具有ASIC的特點之外,還具有以下幾個優點:(1) 隨著VlSI(Very Large Scale IC,超大規模集成電路)工藝的不斷提高單一芯片內部可以容納上百萬個晶體管,FPGA/CPLD芯片的規模也越來越大,其單片邏輯門數已達到上百萬門,它所能實現的功

43、能也越來越強,同時也可以實現系統集成。(2) FPGA/CPLD芯片在出廠之前都做過百分之百的測試,不需要設計人員承擔投片風險和費用,設計人員只需在自己的實驗室里就可以通過相關的軟硬件環境來完成芯片的最終功能設計。所以,FPGA/CPLD的資金投入小,節省了許多潛在的花費。(3) 用戶可以反復地編程、擦除、使用或者在外圍電路不動的情況下用不同軟件就可實現不同的功能。所以,用FPGA/PLD 試制樣片,能以最快的速度占領市場。FPGA/CPLD軟件包中有各種輸入工具和仿真工具,及版圖設計工具和編程器等全線產品,電路設計人員在很短的時間內就可完成電路的輸入、編譯、優化、仿真,直至最后芯片的制作。當

44、電路有少量改動時,更能顯示出FPGA/CPLD的優勢。3.3 CPLD工作原理 CPLD(Complex Programmable Logic Device),即復雜可編程邏輯器件。一種較PLD為復雜的邏輯元件。CPLD是一種用戶根據各自需要而自行構造邏輯功能的數字集成電路。其基本設計方法是借助集成開發軟件平臺,用原理圖、硬件描述語言等方法,生成相應的目標文件,通過下載電纜(“在系統”編程)將代碼傳送到目標芯片中,實現設計的數字系統。CPLD器件特點:它具有編程靈活、集成度高、設計開發周期短、適用范圍寬、開發工具先進、設計制造成本低、對設計者的硬件經驗要求低、標準產品無需測試、保密性強、價格大

45、眾化等特點,可實現較大規模的電路設計,因此被廣泛應用于產品的原型設計和產品生產(一般在10,000件以下)之中。幾乎所有應用中小規模通用數字集成電路的場合均可應用CPLD器件。CPLD器件已成為電子產品不可缺少的組成部分,它的設計和應用成為電子工程師必備的一種技能。3.4 FPGA工作原理FPGA(FieldProgrammable Gate Array),即現場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA采用了邏輯單元

46、陣列LCA(Logic Cell Array)這樣一個新概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。FPGA器件特點:(1) 采用FPGA設計ASIC電路,用戶不需要投片生產,就能得到合用的芯片。(2) FPGA可做其它全定制或半定制ASIC電路的中試樣片。(3) FPGA內部有豐富的觸發器和IO引腳。(4) FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。(5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、T

47、TL電平兼容。可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。 FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。13第4章 系統的原理設計第4章 系統的原理設計下面以4位串行電子密碼鎖設計電路為例,來說明在美國 Altera 公司的Quartus開發平臺上使用VHDL 進行數字系統設計的過程和方法。4.1 系統設計要求設計一個具有較高安全性和較低成本的通用電子密碼鎖,其具體功能要求如下:(1) 數碼輸入:每按下一個數字鍵,就輸入一個數值,并在顯示器上的最右方顯示出該數值,同時將

48、先前輸入的數據依序左移一個數字位置。(2) 數碼清除:按下此鍵可清除前面所有的輸入值,清除成為“0000”。(3) 密碼更改:按下此鍵時會將目前的數字設定成新的密碼。(4) 激活電鎖:按下此鍵可將密碼鎖上鎖。(5) 解除電鎖:按下此鍵會檢查輸入的密碼是否正確,密碼正確即開鎖。(6) 密碼預置:為管理員創建萬用密碼以備管理。(7) 系統報警:開鎖三次失敗后自動報警。4.2 系統設計方案本電路的主要控制部分和接口輸入部分都是在FPGA內部通過VHDL語言實現的,所以FPGA模塊為本設計的核心。根據系統要求的功能,以及FPGA芯片容量的分級,本論文選用ALTERA公司MAX7000S系列的EPM71

49、28SLC器件作為主控芯片,它是一種基于乘積項結構的復雜可編程邏輯器件,它的基本邏輯單元是由一些與、或陣列加上觸發器構成,其中與或陣列完成組合邏輯功能,觸發器完成時序邏輯。它的邏輯控制靈活,可反復編程,有利于系統的擴展和修改,而且其集成度高,保密性好。作為通用電子密碼鎖,主要由三個部分組成:數字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。作為電子密碼鎖的輸入電路,可供選擇的方案有數字機械式鍵盤和觸摸式數字鍵盤等多種。雖然機械式鍵盤存在一些諸如機械產生的彈跳消除問題和機械部分的接觸等問題,但是和觸摸式的4×3鍵盤相比,機械式鍵盤具有低成本、可靠性高、構成電路簡單、技術成熟和應用廣泛等

50、特點,因此將其應用到通用數字電子密碼鎖中還是比較適宜的。本設計中采用一個4×3的通用數字機械鍵盤作為該設計的輸入設備。數字電子密碼鎖的顯示信息電路可采用LED數碼管顯示和液晶屏幕顯示兩種。液晶屏幕顯示具有高速顯示、高可靠性、易于擴展和升級等優點,但是普通液晶顯示屏存在亮度低、對復雜環境的適應能力差等缺點,在低亮度的環境下還需要加入其他輔助的照明設備,驅動電路設計相對復雜,因此本設計的顯示電路仍使用通用的LED數碼管。根據以上選定的輸入設備和顯示器件,并考慮到實現各項數字密碼鎖功能的具體要求,密碼鎖結構框圖如圖4-1所示。圖4-1 密碼鎖結構框圖鍵盤:   

51、;         用戶對系統輸入密碼,采用4×3數字機械式鍵盤實現顯示器:          用來顯示輸入的密碼,采用4個LED數碼管實現時鐘脈沖器:    用來產生方波信號CPLD控制部分:核心部分,實現分頻、內部邏輯、數字比較、數據存儲、譯碼等功能整個電子密碼鎖系統的總體組成框圖如圖4-2所示。(1) 密碼鎖輸入電路包括時序產生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾

52、個小的功能電路。(2) 密碼鎖控制電路包括按鍵數據的緩沖存儲電路,密碼的清除、變更、存儲、激活電鎖電路(寄存器清除信號發生電路),密碼核對(數值比較電路),解鎖電路(開/關門鎖電路)等幾個小的功能電路。(3) 七段數碼管顯示電路主要將待顯示數據的BCD碼轉換成數碼器的七段顯示驅動編碼(數據選擇電路,BCD對七段顯示器譯碼電路,七段顯示器掃描電路)。圖4-2 電子密碼鎖系統總體框圖電子密碼鎖是由密碼鎖主體以及附加的外圍指示電路組成的,其中密碼鎖主體的主要作用是接收密碼并進行密碼的驗證操作;附加的外圍指示電路的主要作用是用來顯示輸入的密碼和根據密碼驗證的結果來給出不同的指示燈顯示或者啟動報警裝置,

53、而報警裝置則通常采用揚聲器。由于外圍電路(紅黃綠燈,報警器)較為復雜,我只能簡單的設計一些思路。電子密碼鎖的功能如圖4-3所示:數字鍵盤門禁開啟等待下次輸入內部安鍵解除報警按鍵開鎖密碼輸入密碼正確密碼錯誤報警器鳴叫指示黃亮燈指示紅亮燈指示綠亮燈3次圖4-3 電子密碼鎖功能簡圖4.2.1 密碼鎖輸入電路的設計圖4-4是電子密碼鎖的輸入電路框圖,由鍵盤掃描電路、彈跳消除電路、鍵盤譯碼電路、按鍵數據緩存器,加上外接的一個4×3矩陣式鍵盤組成。 圖4-4 密碼鎖的輸入電路框圖 1矩陣式鍵盤的工作原理矩陣式鍵盤是一種常見的輸入裝置,在日常的生活中,矩陣式鍵盤在計算機、電話、手機、微波爐等各式電

54、子產品上已經被廣泛應用。圖4-5是一個4×3矩陣式鍵盤的面板配置圖,其中數字09作為密碼數字輸入按鍵,“*”作為“上鎖”功能按鍵,“#”作為“解鎖/清除”功能按鍵(輸入數字小于4位時按下此鍵表示清除鍵,輸人數字等于4位時表示解鎖鍵)。123456789*0#KY3.0KX2.0經上拉電阻接VCC1101111010110111011101110圖4-5 4×3矩陣式鍵盤的面板配置鍵盤上的每一個按鍵其實就是一個開關電路,當某鍵被按下時,該按鍵的接點回呈現0的狀態,反之,未被按下時呈現邏輯1的狀態。掃描信號由KY3KY0進入鍵盤,變化的順序依次為1110110110110111

55、1110。每一次掃描一排,依次地周而復始,例如現在的掃描信號為1011,代表目前正在掃描7、8、9這一排的按鍵,如果這排當中沒有按鍵被按下的話,則由KX2KX0讀出的值為111;反之當7這個按鍵被按下的話,則由KX2KX0讀出的值為011。根據上面所述原理,我們可得到各按鍵的位置與數碼關系如表4-1所示。表4-1 按鍵位置與數碼關系KY3KY0111011101110110111011101101110111011011101110111KX2KX0011101110011101110011101110011101110按鍵號123456789*0#若從KX2KX0讀出的值皆為1時,代表該列沒

56、有按鍵被按下,則不進行按鍵譯碼的動作,反之,如果有按鍵被按下時,則應將KX2KX0讀出的值送至譯碼電路進行編碼。2密碼鎖輸入電路各主要功能模塊的設計 (1) 時序產生電路本時序產生電路中使用了三種不同頻率的工作脈沖波形:系統時鐘脈沖(它是系統內部所有時鐘脈沖的源頭,且其頻率最高)、彈跳消除取樣信號、鍵盤掃描信號。當一個系統中需要使用多種操作頻率的脈沖波形時,最方便的方法之一就是利用一個自由計數器來產生各種需要的頻率。也就是先建立一個N位計數器,N的大小根據電路的需求決定,N的值越大,電路可以分頻的次數就越多,這樣就可以獲得更大的頻率變化,以便提供多種不同頻率的時鐘信號。若輸入時鐘為CLK,N位

57、計數器的輸出為QN-1.0,則Q(0)為CLK的2分頻脈沖信號,Q(1)為CLK的4分頻脈沖信號,Q(2)為CLK的8分頻脈沖信號 Q(N-1)為CLK的2N分頻脈沖信號;Q(5 DOWNTO 4)取得的是一個脈沖波形序列,其值依次為000110110001周期性變化,其變化頻率為CLK的25分頻,也就是32分頻。我們利用以上規律即可得到各種我們所需要頻率的信號或信號序列。(2) 鍵盤掃描電路掃描電路的作用是用來提供鍵盤掃描信號(表1中的KY3KY0)的,掃描信號變化的順序依次為11101101101101111110依序地周而復始。掃描時依次分別掃描四列按鍵,當掃描信號為1110時掃描KY3這一排按鍵;當掃描信號為1101時,掃描KY2這一排按鍵;當掃描信號為1011時掃描KY1這一排按鍵;當掃描信號為0111時,掃描KY0這一排按鍵;每掃描一排按鍵就檢查一次是否有鍵

溫馨提示

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

評論

0/150

提交評論