版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘 要如今鍵盤的應(yīng)用在我們的日常生活中隨處都可以見到,例如,電腦鍵盤,手機(jī),計算器等等。20世紀(jì)90年代,國際上電子和計算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索新的電子電路設(shè)計方法,并在設(shè)計方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法、設(shè)計過程和設(shè)計觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。本次設(shè)計在EDA開發(fā)平臺QUARTUS7.2上利用VHDL語言設(shè)計矩陣鍵盤控制接口電路。要求設(shè)計一個48矩陣鍵盤接口控制器,含有時序產(chǎn)生電路,鍵盤
2、掃描電路,彈跳消除電路,鍵盤譯碼電路,鍵盤碼存儲電路,顯示電路。但按一下某鍵時,在數(shù)碼管上顯示改鍵對應(yīng)的鍵值。一共有三個模塊,分別為:掃描電路模塊、時鐘產(chǎn)生模塊、鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路。掃描模塊中是為了產(chǎn)生掃描信號,來利用掃描信號來掃描鍵盤中是否有按鍵按下。鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路也是為了配合掃描模塊來掃描電路中是否有按鍵按下,而且還要求它來產(chǎn)生按鍵標(biāo)志信號,以便和外部電路握手。時鐘產(chǎn)生電路是為了產(chǎn)生不同頻率的信號,來驅(qū)動上面兩個電路的運轉(zhuǎn)。關(guān)鍵詞: FPGA/CPLD;矩陣鍵盤;VHDLAbstractNow keyboard application in our dali
3、y life can be seen everywhere ,for example,the computer keyboard,cellphone,calculator,etc.More countries which have advanced electronic and computer technology among the International field have been actively exploring new electronic circuit design method and design method. And they made some comple
4、tely reformation in the design methods and the tools, that has achieved a huge success since the 1990s. In the Electrical Technology Design field, programmable logic device such as: CPLD, FPGAs adhibition have been already popularized. All those devices made a great flexibility to the design of the
5、digital system. And also changed the traditional digital system design methods, design procedure and the design concept immensely. And it is greatly enhanced the development of the EDA. Circuit designing that QUARTUSdeveloping platform in EDA makes use of VHDL language design Matrix keyboard interfa
6、ce circuit on 7.2 originally time. Requirement is to design a matrix keyboard 49, a total of three modules, namely: scanning circuit module, clock generation module, the keyboard decoder circuit and the key flag generation circuit. Scanner module is to generate scanning signals to the scanning signa
7、l to scan the keyboard button press whether there. Keyboard decoding circuit and button flag generating circuit is connected to the scanning module to scan the circuit if there are key pressed, but also requires it to generate key signs and signals, and external circuit to shake hands. Clock generat
8、ing circuit is to generate signals of different frequency, to drive the operation of the above two circuits.Keywords:FPGA/CPLD;Matrix keyboard;VHDL目 錄1. 緒論11.1 FPGA概況11.2 本課題的研究意義21.3 設(shè)計思路2本章小結(jié)32. VHDL語言介紹與Quartus II 7.2 軟件介紹42.1 VHDL語言的介紹42.1.1 VHDL語言概述42.1.2 VHDL語言的優(yōu)點52.1.3 VHDL語言的基本結(jié)構(gòu)72.2 Quartus
9、 II 7.2 (32-Bit)軟件介紹7本章小結(jié)93. 矩陣鍵盤接口電路的原理與總體設(shè)計103.1 矩陣鍵盤接口電路的原理103.2 總體設(shè)計12本章小結(jié)124. 各模塊的設(shè)計及仿真134.1 鍵盤掃描電路134.2 鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路144.3 時鐘產(chǎn)生模塊194.4 鍵盤接口電路頂層電路實現(xiàn)22本章小結(jié)24結(jié) 論25致 謝26參考文獻(xiàn)27附錄程序281. 緒論1.1 FPGA概況早期的可編程邏輯器件只有可編程只讀存儲器(PROM)、紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(E2PROM)三種。由于結(jié)構(gòu)的限制,它們只能完成簡單的數(shù)字邏輯功能。其后出現(xiàn)了一類結(jié)構(gòu)
10、上稍復(fù)雜的可編程芯片,即可編程邏輯器件(PLD),它能夠完成各種數(shù)字邏輯功能。典型的PLD由一個“與”門和一個“或”門陣列組成,而任意一個組合邏輯都可以用“與或”表達(dá)式來描述,所以PLD能以乘積和的形式完成大量的組合邏輯功能。這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。 PAL由一個可編程的“與”平面和一個固定的“或”平面構(gòu)成,或門的輸出可以通過觸發(fā)器有選擇地被置為寄存狀態(tài)。PAL器件是現(xiàn)場可編程的,它的實現(xiàn)工藝有反熔絲技術(shù)、EPROM技術(shù)和E2PROM技術(shù)。還有一類結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個“與”平面和一個“或”平面構(gòu)成,但是這兩個
11、平面的連接關(guān)系是可編程的。PLA器件既有現(xiàn)場可編程的,也有掩膜可編程的。在PAL的基礎(chǔ)上又發(fā)展了一種通用陣列邏輯(GAL、Generic ArrayLogic),如GAL16V8、GAL22V10等。它采用了EPROM工藝,實現(xiàn)了電可擦除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設(shè)計具有很強(qiáng)的靈活性,至今仍有許多人使用。這些早期的PLD器件的一個共同特點是可以實現(xiàn)速度特性較好的邏輯功能,但其過于簡單的結(jié)構(gòu)也使它們只能實現(xiàn)規(guī)模較小的電路。為了彌補(bǔ)這一缺陷,20世紀(jì)80年代中期,Altera和Xilinx分別推出了類似于PAL結(jié)構(gòu)的擴(kuò)展型CPLD(Complex Programmable
12、 Logic Dvice)和與標(biāo)準(zhǔn)門陣列類似的FPGA(FieldProgrammable Gate Array),它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點。這兩種器件兼容了PLD和通用門陣列的優(yōu)點,可實現(xiàn)較大規(guī)模的電路,編程也很靈活。與門陣列等其他ASIC(Application Specific IC)相比,它們又具有設(shè)計開發(fā)周期短、設(shè)計制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品不需測試、質(zhì)量穩(wěn)定以及可實時在線檢驗等優(yōu)點,因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計和產(chǎn)品生產(chǎn)(一般在10 000件以下)之中。幾乎所有應(yīng)用門陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用FPGA和CPL
13、D器件。121.2 本課題的研究意義近年來EDA技術(shù)在電子領(lǐng)域引發(fā)的技術(shù)革命,推動著電子技術(shù)的迅猛發(fā)展,為世人所矚目,而FPGA為代表的可編程邏輯器件的應(yīng)用,更是受到業(yè)內(nèi)人士的普遍關(guān)注。伴隨著大規(guī)模集成電路和計算機(jī)技術(shù)的高速發(fā)展,在設(shè)計工業(yè)自動化,儀器儀表,計算機(jī)設(shè)計與應(yīng)用、通信、國防等領(lǐng)域的電子系統(tǒng)中,F(xiàn)PGA技術(shù)的含量正以驚人的速度提升。將盡可能大的完整的電子系統(tǒng)在單一FPGA芯片中實現(xiàn)已成為現(xiàn)實,電子類新技術(shù)項目的開發(fā)也更多地依賴于FPGA技術(shù)的應(yīng)用。作為FPGA研究課題之一的矩陣鍵盤控制接口電路的設(shè)計,在FPGA設(shè)計中是一個經(jīng)常被提到的話題,就像是利用PFGA設(shè)計數(shù)字中一樣,雖然簡單,
14、但是卻是一個很有研究意義的話題,涉及到怎么樣才能是FPGA資源更加充分利用,現(xiàn)在很多電子產(chǎn)品都涉及到按鍵,小的有獨立按鍵,大的有N*N的矩陣鍵盤,獨立按鍵由于案件的個數(shù)少,也就沒必要考慮資源的利用問題了。而矩陣鍵盤,由于按鍵多,對整個系統(tǒng)的影響大,所以肯定要考慮資源的利用問題,而且還要考慮一下電路里面的時序問題。本次設(shè)計要求設(shè)計一個4*8矩陣鍵盤,也就是行為4,列為8,一共可以設(shè)計32個按鍵。其中設(shè)計方法為:一般判斷鍵盤中有沒有按鍵按下是通過航線送入掃描信號,然后從列線中讀取狀態(tài)得到的,其方法是依次給行線送入低電平,檢查列線的輸入。如果列線信號趣味高電平,則代表低電平信號所在的行中無按鍵按下,
15、反之,則有,則在低電平信號所在的行和出現(xiàn)低電平的交叉處有按鍵按下。一共有三個模塊,分別為:掃描電路模塊、時鐘產(chǎn)生模塊、鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路。掃描模塊中是為了產(chǎn)生掃描信號,來利用掃描信號來掃描鍵盤中中是否有按鍵按下。鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路是為了配合掃描模塊來掃描電路中是否有按鍵按下,而且還要求它來產(chǎn)生按鍵標(biāo)志信號,以便和外部電路握手。時鐘產(chǎn)生電路是為了產(chǎn)生不同頻率的信號,來驅(qū)動上面兩個電路的運轉(zhuǎn)。1.3 設(shè)計思路矩陣鍵盤及顯示電路能夠?qū)C(jī)械式48矩陣鍵盤的按鍵值依次顯示到8個7段數(shù)碼管上,每次新的按鍵值顯示在最右端的第O號數(shù)碼管上,原有第06號數(shù)碼管顯示的數(shù)值整體左移到第1
16、7號數(shù)碼管上顯示??傮w而言,矩陣鍵盤及顯示電路的設(shè)計可分為4個部分:(1)矩陣鍵盤的行及列的掃描控制和譯碼。該設(shè)計所使用的鍵盤是通過將列掃描信號作為輸入信號,控制行掃描信號輸出,然后根據(jù)行及列的掃描結(jié)果進(jìn)行譯碼。(2)機(jī)械式按鍵的防抖設(shè)計。由于機(jī)械式按鍵在按下和彈起的過程中均有510 ms的信號抖動時間,在信號抖動時間內(nèi)無法有效判斷按鍵值,因此按鍵的防抖設(shè)計是非常關(guān)鍵的,也是該設(shè)計的一個重點。(3)按鍵數(shù)值的移位寄存。由于該設(shè)計需要在8個數(shù)碼管上依次顯示前后共8次按鍵的數(shù)值,因此對已有數(shù)據(jù)的存儲和調(diào)用也是該設(shè)計的重點所在。(4)數(shù)碼管的掃描和譯碼顯示。由于該設(shè)計使用了8個數(shù)碼管,因此需要對每個
17、數(shù)碼管進(jìn)行掃描控制,并根據(jù)按鍵值對每個數(shù)碼管進(jìn)行7段數(shù)碼管的譯碼顯示。本章小結(jié)本章首先介紹了FPGA的發(fā)展史,主要介紹了一下FPGA的發(fā)展年代,以及是怎么樣發(fā)展起來的。在第二節(jié)里面介紹了以下本文的研究意義,在研究意義里面介紹了一下矩陣鍵盤的設(shè)計方法以及本次設(shè)計的主要設(shè)計模塊。最后介紹了一下設(shè)計思路。2. VHDL語言介紹與Quartus II 7.2軟件介紹2.1 VHDL語言的介紹2.1.1 VHDL語言概述VHDL 語言的英文全名是 Very High Speed Integrated Circuit Hardware Description Language,即超高速集成電路硬件描述語言
18、。 HDL 發(fā)展的技術(shù)源頭是:在 HDL 形成發(fā)展之前,已有了許多程序設(shè)計語言,如匯編、 C 、Pascal 、Fortran 、Prolog 等。這些語言運行在不同硬件平臺和不同的操作環(huán)境中,它們適合于描述過程和算法,不適合作硬件描述。 CAD 的出現(xiàn),使人們可以利用計算機(jī)進(jìn)行建筑、服裝等行業(yè)的輔助設(shè)計,電子輔助設(shè)計也同步發(fā)展起來。在從 CAD 工具到 EDA 工具的進(jìn)化過程中,電子設(shè)計工具的人機(jī)界面能力越來越高。在利用 EDA 工具進(jìn)行電子設(shè)計時,邏輯圖、分立電子原件作為整個越來越復(fù)雜的電子系統(tǒng)的設(shè)計已不適應(yīng)。任何一種 EDA 工具,都需要一種硬件描述語言來作為 EDA 工具的工作語言。這
19、些眾多的 EDA 工具軟件開發(fā)者,各自推出了自己的HDL 語言。 HDL發(fā)展的社會根源是:美國國防部電子系統(tǒng)項目有眾多的承包公司,由于各公司技術(shù)路線不一致,許多產(chǎn)品不兼容,他們使用各自的設(shè)計語言,使得甲公司的設(shè)計不能被乙公司重復(fù)利用,造成了信息交換困難和維護(hù)困難。美國政府為了降低開發(fā)費用,避免重復(fù)設(shè)計,國防部為他們的超高速集成電路提供了一種硬件描述語言,以期望 VHDL 功能強(qiáng)大、嚴(yán)格、可讀性好。政府要求各公司的合同都用它來描述,以避免產(chǎn)生歧義。 由政府牽頭, VHDL 工作小組于1981 年 6 月成立,提出了一個滿足電子設(shè)計各種要求的能夠作為工業(yè)標(biāo)準(zhǔn)的HDL 。1983年第 3 季度,由
20、IBM 公司、 TI 公司、 Intermetrics。公司簽約,組成開發(fā)小組,工作任務(wù)是提出語言版本和開發(fā)軟件環(huán)境。1986 年 IEEE 標(biāo)準(zhǔn)化組織開始工作,討論 VHDL 語言標(biāo)準(zhǔn),歷時一年有余,于1987 年 12 月通過標(biāo)準(zhǔn)審查,并宣布實施,即 IEEE STD 1076 - 1987LRM87。1993 年 VHDL 重新修訂,形成了新的標(biāo)準(zhǔn),即 IEEE STD 1076 - 1993LRM93。 從此以后,美國國防部實施新的技術(shù)標(biāo)準(zhǔn),要求電子系統(tǒng)開發(fā)商的合同文件一律采用 VHDL 文檔。即第一個官方VHDL標(biāo)準(zhǔn)得到推廣、實施和普及。HDL 語言在國外有上百種。高等學(xué)校、科研單位
21、、EDA公司都有自己的HDL語言。現(xiàn)選擇較有影響的作簡要介紹。 Candence 公司是一家著名的EDA公司,財力雄厚。該公司的 Verilog HDL于1983 年由Gate Way Design Automatic公司的Phil Moorby首創(chuàng)。他在1984-1985年間成功設(shè)計了Verilog-XL仿真器,于1986年提出了快速門級仿真的XL 算法,使Verilog HDL 語言變得更加豐富和完善,從而受到了EDA工具設(shè)計公司的青睞。1989年Candence公司購買了GDA公司,Verilog HDL語言從此變?yōu)镃andence公司的“私有財產(chǎn)”成為 Candence公司的EDA 設(shè)
22、計環(huán)境上的硬件描述語言。經(jīng)過Candence公司的努力, Verilog HDL于1995年成為IEEE 標(biāo)準(zhǔn),也是民間公司第一個硬件描述語言標(biāo)準(zhǔn),即Verilog HDL 1364-1995。由于Verilog HDL語言從C語言發(fā)展來,所以有C語言基礎(chǔ)的設(shè)計人員能夠較快入門。 ALTERA 公司是一家半導(dǎo)體器件公司,其CPLD器件在世界市場上占主導(dǎo)地位。這家公司不僅是硬件生產(chǎn)廠商,也是EDA工具開發(fā)商,它的EDA工具M(jìn)AX+plus II、Quartus由于人機(jī)界面友好、易于使用、性能優(yōu)良,而受到FPGA、CPLD器件設(shè)計人員的歡迎。運行在MAX+plus II環(huán)境下的VHDL語言具有C語
23、言設(shè)計風(fēng)格,好學(xué)好用,因此被眾多用戶使用。 HDL語言來自不同地方,由不同語言演變而來,為了各平臺之間相互轉(zhuǎn)換,又推出了EDIF (Electronic Design Interchange Format)。它不是一種語言,而是用于不同數(shù)據(jù)格式的EDA 工具之間的交換設(shè)計數(shù)據(jù)。2.1.2 VHDL語言的優(yōu)點傳統(tǒng)的硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細(xì)編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進(jìn)行細(xì)化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進(jìn)行各功能模塊的細(xì)化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊
24、的硬件電路連接起來再進(jìn)行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計環(huán)境中使用,這給設(shè)計者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強(qiáng)大的、標(biāo)準(zhǔn)化的硬件描述語言作為可相互交流的設(shè)計環(huán)境已勢在必行。于是,
25、美國于1981年提出了一種新的、標(biāo)準(zhǔn)化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,簡稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言。設(shè)計者可以利用這種語言來描述自己的設(shè)計思想,然后利用電子設(shè)計自動化工具進(jìn)行仿真,再自動綜合到門級電路,最后用PLD實現(xiàn)其功能。綜合起來講,VHDL語言具有如下優(yōu)點:(1)VHDL 語言功能強(qiáng)大,設(shè)計方式多樣。VHDL語言具有強(qiáng)大的語言結(jié)構(gòu), 只需采用簡單明確的VHDL語言程序就可以描述十分復(fù)雜的硬件電路。同時,它還具有多層次的電
26、路設(shè)計描述功能。此外,VHDL 語言能夠同時支持同步電路、異步電路和隨機(jī)電路的設(shè)計實現(xiàn),這是其他硬件描述語言所不能比擬的。VHDL語言設(shè)計方法靈活多樣,既支持自頂向下的設(shè)計方式,也支持自底向上的設(shè)計方法;既支持模塊化設(shè)計方法,也支持層次化設(shè)計方法。(2)VHDL 語言具有強(qiáng)大的硬件描述能力。VHDL 語言具有多層次的電路設(shè)計描述功能,既可描述系統(tǒng)級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時,VHDL語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。VHDL語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VH
27、DL語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。(3)VHDL語言具有很強(qiáng)的移植能力。VHDL語言很強(qiáng)的移植能力主要體現(xiàn)在: 對于同一個硬件電路的VHDL語言描述,它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行。 (4)VHDL語言的設(shè)計描述與器件無關(guān)。采用VHDL語言描述硬件電路時, 設(shè)計人員并不需要首先考慮選擇進(jìn)行設(shè)計的器件。這樣做的好處是可以使設(shè)計人員集中精力進(jìn)行電路設(shè)計的優(yōu)化,而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計描述完成以后,VHDL語言允許采用多種不同的器件結(jié)構(gòu)
28、來實現(xiàn)。(5)VHDL語言程序易于共享和復(fù)用。VHDL語言采用基于庫(library)的設(shè)計方法。在設(shè)計過程中,設(shè)計人員可以建立各種可再次利用的模塊,一個大規(guī)模的硬件電路的設(shè)計不可能從門級電路開始一步步地進(jìn)行設(shè)計,而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計或者使用以前設(shè)計中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設(shè)計中進(jìn)行復(fù)用。32.1.3 VHDL語言的基本結(jié)構(gòu)一個完整的VHDL語言程序通常包含實體(Entity)、構(gòu)造體(Architecture)、配置(Configuration)、程序包(Package)和庫(Library)5個部分。前4個部分是可分別編譯的源設(shè)計單元。實體用于
29、描述所設(shè)計的系統(tǒng)的外接口信號;構(gòu)造體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為;程序包存放各種設(shè)計模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等;配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計的不同版本;庫存放已經(jīng)編譯的實體、構(gòu)造體、程序包和配置。庫可由用戶生成或由ASIC芯片制造商提供,以便于在設(shè)計中為大家所共享。2.2 Quartus II 7.2 (32-Bit)軟件介紹Quartus II設(shè)計軟件提供完整的多平臺設(shè)計環(huán)境,能夠直接滿足特定設(shè)計需要,為可編程芯片系統(tǒng)(SOPC)提供全面的設(shè)計環(huán)境。QuartusII 軟件含有 FPGA 和 CPLD 設(shè)計所有階段的解決方案 (圖2-1)。設(shè)計輸入功耗分析綜合仿真時序
30、分析布局布線調(diào)試工程更改管理時序逼近包括基于模塊的設(shè)計、系統(tǒng)級設(shè)計和軟件開發(fā)圖2-1 QuartusII 軟件含有 FPGA 和 CPLD 設(shè)計所有階段的解決方案此外,Quartus II 軟件為設(shè)計流程的每個階段提供 Quartus II 圖形用戶界面、EDA工具界面以及命令行界面??梢栽谡麄€流程中只使用這些界面中的一個,也可以在設(shè)計流程的不同階段使用不同界面。本章介紹適用于每個設(shè)計流程的選項。圖形用戶界面設(shè)計流程:(圖2-2 )功耗分析:l PowerPlay功耗分析器l PowerPla早期功耗估算器EDA接口:l EDA網(wǎng)表寫入綜合l 分析和綜合l VHDL、Verilog HDL和A
31、HDLl 設(shè)計助手l RTL查看器l 技術(shù)射影查看器l 漸進(jìn)式綜合基于模塊的設(shè)計:l LogicLock 窗口l 時序逼近布局l VQM寫入約束輸入l 分配編輯器l 引腳規(guī)劃器l 設(shè)置對話框l 時序逼近布局l 設(shè)計分區(qū)窗口系統(tǒng)級設(shè)計:l SOPC Builderl DSP Builder設(shè)計輸入l 文本編輯器l 模塊和符號編輯器l Megawizard插件管理器調(diào)試:l SignalTap 2l SignalProbel 在系統(tǒng)存儲內(nèi)容編輯器l RTL查看器l 芯片編輯器時序逼近:l 時序逼近布局l LogicLock窗口l 時序優(yōu)化向?qū) 設(shè)計空間管理器l 漸進(jìn)式編譯布局布線:l 適配器l
32、分配編輯器l 時序逼近布局l 漸進(jìn)式編譯l 報告窗口l 資源優(yōu)化向?qū) 設(shè)計空間管理器l 芯片編輯器時序分析l TimeQuest時序分析器l 標(biāo)準(zhǔn)時序分析器l 報告窗口l 技術(shù)映射查看器仿真:l 仿真器l 波形編輯器編程:l 匯編器l 編程器l 轉(zhuǎn)換編程文件工程更改管理:l 芯片編輯l 資源屬性編輯器l 更改管路圖2-2 圖形用戶界面設(shè)計流程Quartus II 軟件包括一個模塊化編譯器。編譯器包括以下模塊(標(biāo)有星號的模塊表示在完整編譯時,可根據(jù)設(shè)置選擇使用):u 分析和綜合u 分區(qū)合并*u 適配器u 匯編器 *u 標(biāo)準(zhǔn)時序分析器和TimeQuest時序分析器*u 設(shè)計助手*u EDA網(wǎng)表寫
33、入器*u HardCopy 網(wǎng)表寫入器 *EDA 工具與 Quartus II 軟件配合使用時的基本設(shè)計流程:(1)創(chuàng)建新工程并指定目標(biāo)器件或器件系列。(2)指定與 Quartus II 軟件一同使用的 EDA 設(shè)計輸入、綜合、仿真、時序分析、板級驗證、形式驗證以及物理綜合工具,為這些工具指定其他選項。(3)使用標(biāo)準(zhǔn)文本編輯器建立 Verilog HDL 或者 VHDL 設(shè)計文件,也可以使用MegaWizard 插件管理器建立宏功能模塊的自定義變量。(4)使用Quartus II支持的EDA綜合工具之一綜合您的設(shè)計,并生成EDIF網(wǎng)表文件(.edf)或 Verilog Quartus映射文件(
34、.vqm)。(5)(可選)使用Quartus II支持的仿真工具之一對您的設(shè)計進(jìn)行功能仿真。(6)在Quartus II軟件中對設(shè)計進(jìn)行編譯。運行 EDA網(wǎng)表寫入器,生成輸出文件,供其他 EDA工具使用。(7)(可選)使用Quartus II支持的EDA時序分析或者仿真工具之一對設(shè)計進(jìn)行時序分析和仿真。(8)(可選)使用Quartus II支持的EDA形式驗證工具之一進(jìn)行形式驗證,確保Quartus布線后網(wǎng)表與綜合網(wǎng)表一致。(9)(可選)使用Quartus II 支持的EDA板級驗證工具之一進(jìn)行板級驗證。(10)(可選)使用Quartus II 支持的EDA物理綜合工具之一進(jìn)行物理綜合。(11
35、)使用編程器和 Altera 硬件對器件進(jìn)行編程。本章小結(jié)本章開始介紹了VHDL語言的設(shè)計分格以及設(shè)計中注意的問題,然后又介紹了Quartus II軟件的使用方法。在這里我再說一下國內(nèi)發(fā)展的戰(zhàn)略選擇,由于目前IT行業(yè)快速發(fā)展,以及ASIC合了Avant!和CO-Design,Cadence合了GDA等,形成了幾大巨頭的局面。而各可編程器件廠商,像Xilinx和Altera,也積極與EDA緊密合作,針對目前硬件描述語言的發(fā)展和國家芯片制造生產(chǎn)的發(fā)展戰(zhàn)略,國內(nèi)如何在原EDA基礎(chǔ)薄弱的情況下迅速發(fā)展,使EDA成為一個合理,健康而必比可少產(chǎn)業(yè);將基礎(chǔ)研究活動與獨立產(chǎn)生的作用合理地結(jié)合,建議開展如下的工
36、作:1. 為了實現(xiàn)我國的芯片設(shè)計自主化,必須夯實基礎(chǔ),再結(jié)合VHDL的基礎(chǔ)上,推廣Verilog HDL設(shè)計語言,使硬件設(shè)計的底層單元庫可以自主研制。2. 根據(jù)目前芯片系統(tǒng)的發(fā)展趨勢,對系統(tǒng)級語言進(jìn)行比較研究,在Superlog,SystemC等語言中作出選則,并進(jìn)行相關(guān)工具的推廣,以及與相關(guān)企業(yè)進(jìn)行合作等。3. 深入HDL語言的綜合和仿真等模型的研究,努力在與國外合作的基礎(chǔ)山,建立自主知識產(chǎn)權(quán)的EDA公司。3. 矩陣鍵盤接口電路的原理與總體設(shè)計3.1 矩陣鍵盤接口電路的原理在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直
37、接連通,而是通過一個按鍵加以連接。這樣,一個端口就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(8鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,列線通過電阻接正電源,并將行線所接的FPGA的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。行
38、列式鍵盤的電路原理如圖3-1所示。(為了說明問題以4*4為例)Keyin3Keyin2Keyin1Keyin0 FPGAKeydrv0Keydrv0Keydrv0Keydrv01523467890ABCDEF+5v圖3-1 行列式鍵盤的電路原理如圖設(shè)置掃描信號為keydrv3keydrv0,列線按鍵輸入信號keyin3keyin0與按鍵位置的關(guān)系如表3-1所示。表3-1 掃描信號和列線按鍵輸入信號與按鍵之間的關(guān)系表keydrv3keydrv0keyin3keyin0對應(yīng)的按鍵111011101110121011301114110111105110161011701118101111109110
39、101011A0111B01111110C1101D1011E0111F3.2 總體設(shè)計系統(tǒng)結(jié)構(gòu)的總體設(shè)計鍵盤譯碼電路按鍵標(biāo)志產(chǎn)生電路4*8鍵盤時鐘產(chǎn)生電路掃描電路keyvaluekeypressedclkKeyin8.0Keydrv3.0圖3-2 鍵盤接口電路結(jié)構(gòu)圖由行列式鍵盤原理就可以知道,要正確的完成鍵盤輸入工作必須有按鍵掃描電路產(chǎn)生keydrv3keydrv0信號。同時還必須有按鍵譯碼電路從keydrv3keydrv0信號和keyin3keyin0信號中譯碼出按鍵的值。此外,一般還需要一個按鍵發(fā)生信號用于和其他模塊接口,通知其他模塊鍵盤上有按鍵動作發(fā)生,并可以從鍵盤上讀取按鍵的鍵值。由
40、于各個模塊需要的時鐘頻率是不一樣的,因此時鐘產(chǎn)生模塊就是用于產(chǎn)生各個模塊需要的時鐘信號。因此得到接盤接口電路的結(jié)構(gòu)如上圖所示。67本章小結(jié)本章首先介紹了一下矩陣鍵盤的設(shè)計思路,總體來說行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。最后介紹了一下4*8鍵盤的總體設(shè)計思路。4. 各模塊的設(shè)計及仿真4.1 鍵盤掃描電路鍵盤掃描電路是用于產(chǎn)生keydrv3keydrv0信號,其變化的順序依次是1110-1101-1011-0111-周而復(fù)始地掃描。其停留在某個狀態(tài)的時間大約為10ms。更短的停留時間是沒有必要的,因為人按鍵的時間大約為10ms,不
41、可能有更快的按鍵動作發(fā)生;另外,更短的停留時間還容易采集到抖動信號,會干擾判斷。而太長的停留時間則會使某些較快的按鍵東走丟失。鍵盤掃描電路的外部接口電路如圖4-1所示,其中clk_scan是周期為10ms的掃描時鐘,keydrv為輸出到鍵盤的掃描信號,寬度為4位。圖4-1 鍵盤掃描電路的外部接口電路圖其VHDL描述如下:LIBRARY ieee;USE ieee.std_logic_1164.all;- Entity DeclarationENTITY key_scan IS- ALTERA_IO_BEGIN DO NOT REMOVE THIS LINE!PORT(clk_scan : IN
42、 STD_LOGIC; -掃描時鐘,周期10mskeydrv : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) -輸出掃描信號以上程序采用一個狀態(tài)機(jī)來實現(xiàn)掃描電路。該狀態(tài)機(jī)是一個one-hot狀態(tài)機(jī),并且輸出值就是狀態(tài)機(jī)的狀態(tài),沒有通過一個邏輯電路來做輸出譯碼。這樣的好處是得到的輸出信號比較“干凈”,沒有毛刺。其仿真波形如圖4-2所示。圖4-2 鍵盤掃描電路仿真圖從圖4-2中很容易發(fā)現(xiàn)present_state的值的變化是隨著掃描信號key_scan的上升沿的到來而變化的,也就是key_scan每來一個脈沖,相應(yīng)的present_state的值就變化一次。很容易發(fā)現(xiàn)keyd
43、rv的值的變化順序為1110-1101-1011-0111,也就是每個key_scan來一個脈沖時,保證keydrv相鄰的值只有一個變化,這樣為了防止產(chǎn)生不必要的毛刺。present_state值和keydrv值是相同的,只不過一個用的二進(jìn)制,一個用的是十進(jìn)制,所以它的變化為1413117。4.2 鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路鍵盤譯碼電路是從keydrv3 keydrv0和keyin3keyin0信號中譯碼出按鍵的鍵值的電路,它的真值表就是以前行掃描信號、列掃描與按鍵位置的關(guān)系圖。按鍵標(biāo)志位產(chǎn)生電路是產(chǎn)生按鍵標(biāo)志位信號keypressed的電路。由于這兩個電路關(guān)系緊密,因此放入同一個模塊中
44、實現(xiàn)。其外部接口圖如圖4-3所示。其中clk為局信號,它是由FPGA芯片的外部晶振給出的。clk在系統(tǒng)中的頻率是最高,其他時鐘都是它的分頻產(chǎn)生。keydrv為鍵盤掃描信號,keyin為鍵盤輸入信號,keyvalue為鍵值(代表按鍵所在的位置),keypressed表示有一個按鍵被按下,每發(fā)生一次按鍵動作,keypressed就輸出一個寬度為全局時鐘周期的正脈沖。該信號用于與其他模塊握手,負(fù)責(zé)通知其他模塊鍵盤是否有按鍵發(fā)生。其他模塊在keypressed有效時,可以讀取鍵值。圖4-3 鍵盤譯碼電路的外部接口其VHDL實現(xiàn)如下:LIBRARY ieee;USE ieee.std_logic_116
45、4.all;USE ieee.std_logic_arith.all;ENTITY keydecoder ISPORT(clk : IN STD_LOGIC;-全局時鐘clk_scan : IN STD_LOGIC; -掃描時鐘 keyin : IN STD_LOGIC_VECTOR(8 DOWNTO 0);-鍵盤輸入keydrv : IN STD_LOGIC_VECTOR(3 DOWNTO 0);-掃描信號keyvalue : OUT STD_LOGIC_VECTOR(8 DOWNTO 0);-鍵值keypressed : OUT STD_LOGIC -有按鍵按下);END keydecod
46、er;temp=keyin & keydrv;-譯碼進(jìn)程參見附錄程序-按鍵標(biāo)志產(chǎn)生電路process (clk_scan)beginif (clk_scanevent and clk_scan=1) thenq1=temp_pressed;q2=q1;q3=q2;q4=q1;end if;keypressed_asy=q1 or q2 or q3 or q4 ;end process;上面程序是改進(jìn)的程序,原程序是:-同步化有鍵被按下PROCESS(clk)BEGINIF(clkevent and clk =1)THENq1=temp_pressed;q2=q1;END IF;keypress
47、ed=q1 and not(q2) ;END PROCESS;ENDkeydecoder_architecture;在這里先介紹一下沒有改進(jìn)的程序。上面程序中有兩個進(jìn)程。第一個進(jìn)程負(fù)責(zé)譯碼,值得注意的是WHEN OTHEN語句有沒有對temp_pressed和keyvalue信號賦值,這相當(dāng)于不改變temp_presed和keyvalue信號的值,即實現(xiàn)了鎖存輸出。在不需要鎖存輸出時,在WHEN O-THEN語句中,一定要對所有的case語句中出現(xiàn)的信號逐一賦值,以免產(chǎn)生意想不到的結(jié)果。第二個進(jìn)程負(fù)責(zé)把按鍵同步信號同步化與全局時鐘同步的并且脈寬為一個周期的脈沖。該電路的仿真結(jié)果如圖4-4所示。圖4-4 沒有進(jìn)行去抖動前的仿真圖粗看起來,上圖仿真結(jié)果似乎表明鍵盤接口電路的設(shè)計的要求已經(jīng)達(dá)到了。然而仔細(xì)地考慮就回發(fā)現(xiàn)還有問題存在。仿真信號keyin是由于按鍵動作引起的,實際按鍵動作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版圍欄生產(chǎn)廢水處理與排放標(biāo)準(zhǔn)合同3篇
- 二零二五版?zhèn)€人專利權(quán)抵押融資合同模板2篇
- 二零二五版股權(quán)質(zhì)押投資顧問服務(wù)合同樣本3篇
- 二零二五年藝術(shù)展廳租賃及藝術(shù)品交易服務(wù)合同3篇
- 二零二五版國際貿(mào)易實務(wù)實驗報告與國際貿(mào)易實務(wù)指導(dǎo)合同3篇
- 二零二五版電商企業(yè)內(nèi)部保密協(xié)議及商業(yè)秘密保密制度合同2篇
- 二零二五年度高校教師解聘合同3篇
- 二零二五版屋頂光伏發(fā)電與防水一體化系統(tǒng)合同3篇
- 二零二五版上市公司短期融資券發(fā)行合同3篇
- 二零二五版企業(yè)財務(wù)風(fēng)險管理體系構(gòu)建服務(wù)合同2篇
- DB-T29-74-2018天津市城市道路工程施工及驗收標(biāo)準(zhǔn)
- 小學(xué)一年級20以內(nèi)加減法混合運算3000題(已排版)
- 智慧工廠數(shù)字孿生解決方案
- 病機(jī)-基本病機(jī) 邪正盛衰講解
- 品管圈知識 課件
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護(hù)理風(fēng)險防控PPT
- 充電樁采購安裝投標(biāo)方案(技術(shù)方案)
- 醫(yī)院科室考勤表
評論
0/150
提交評論