2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩92頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  隨著電子技術(shù)的發(fā)展,具有防盜報(bào)警等功能的電子密碼鎖代替密碼量少、安全性差的機(jī)械式密碼鎖已是必然趨勢(shì)。電子密碼鎖與普通機(jī)械鎖相比,具有許多獨(dú)特的優(yōu)點(diǎn):保密性好,防盜性強(qiáng),可以不用鑰匙,記住密碼即可開鎖等。目前使用的電子密碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)為主要器件,其編碼器與解碼器的生成為軟件方式。在實(shí)際應(yīng)用中,由于程序容易跑

2、飛,系統(tǒng)的可靠性能較差。</p><p>  本文主要闡述了一種基于現(xiàn)場(chǎng)可編程門陣列FPGA器件的電子密碼鎖的設(shè)計(jì)方法。用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來(lái)實(shí)現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場(chǎng)可編程功能,當(dāng)設(shè)計(jì)需要更改時(shí),只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設(shè)計(jì)下載到FPGA中即可,無(wú)需更改外部電路的設(shè)計(jì),大大提高了設(shè)計(jì)的效率。因此,采用FPGA開發(fā)的數(shù)字系

3、統(tǒng),不僅具有很高的工作可靠性,而且升級(jí)也極其方便。</p><p>  本文采用EDA技術(shù),利用Quartus II工作平臺(tái)和硬件描述語(yǔ)言,設(shè)計(jì)了一種電子密碼鎖,并通過(guò)一片F(xiàn)PGA芯片實(shí)現(xiàn)。</p><p>  關(guān)鍵詞:電子密碼鎖;FPGA;硬件描述語(yǔ)言;EDA</p><p><b>  ABSTRACT</b></p><

4、;p>  With the development of electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. compared elect

5、ronic password lock with ordinary mechanical locks, it has many unique advantages : confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password locks we used

6、 now is based upon SCM technology ,SCM is its mainly device ,and the</p><p>  This paper mainly expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use

7、FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change the control and int

8、erface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enh</p><p>  Key words: electronic password lock;FPGA;hardw

9、are description language;EDA</p><p><b>  目 錄</b></p><p><b>  1 緒 論1</b></p><p>  1.1 國(guó)內(nèi)外現(xiàn)狀及其發(fā)展1</p><p>  1.2 電子密碼鎖的原理2</p><p>

10、  1.3 電子密碼鎖的系統(tǒng)簡(jiǎn)介4</p><p>  1.4 系統(tǒng)設(shè)計(jì)要求4</p><p>  1.5 本課題的研究目的和意義5</p><p>  2 現(xiàn)場(chǎng)可編程門陣列FPGA6</p><p>  2.1 FPGA的基本結(jié)構(gòu)6</p><p>  2.2 FPGA的優(yōu)點(diǎn)10</p>&

11、lt;p>  2.3 FPGA的設(shè)計(jì)流程11</p><p>  2.4 自頂向下設(shè)計(jì)法17</p><p>  2.5用模塊化設(shè)計(jì)FPGA18</p><p>  3 VHDL硬件描述語(yǔ)言20</p><p>  3.1 VHDL語(yǔ)言的基本結(jié)構(gòu)20</p><p>  3.2 結(jié)構(gòu)體的描述方式21&

12、lt;/p><p>  3.3 自上而下(TOP DOWN)的設(shè)計(jì)方法22</p><p>  4 電子密碼鎖的設(shè)計(jì)與仿真24</p><p>  4.1 硬件設(shè)備24</p><p>  4.2 幾個(gè)主要功能模塊的設(shè)計(jì)25</p><p>  4.3 計(jì)算機(jī)仿真32</p><p>&l

13、t;b>  結(jié) 束 語(yǔ)38</b></p><p><b>  參考文獻(xiàn)39</b></p><p>  附錄1英文原文41</p><p>  附錄2中文譯文50</p><p><b>  附錄3源程序57</b></p><p><b&

14、gt;  1 緒 論</b></p><p>  1.1 國(guó)內(nèi)外現(xiàn)狀及其發(fā)展</p><p>  隨著人們生活水平的提高和安全意識(shí)的加強(qiáng),對(duì)安全的要求也就越來(lái)越高。鎖自古以來(lái)就是把守護(hù)門的鐵將軍,人們對(duì)它要求甚高,既要安全可靠的防盜,又要使用方便,這也是制鎖者長(zhǎng)期以來(lái)研制的主題。隨著電子技術(shù)的發(fā)展,各類電子產(chǎn)品應(yīng)運(yùn)而生,電子密碼鎖就是其中之一。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從

15、20世紀(jì)30年代就開始了,在一些特殊場(chǎng)所早就有所應(yīng)用。這種鎖是通過(guò)鍵盤輸入一組密碼完成開鎖過(guò)程。研究這種鎖的初衷,就是為提高鎖的安全性。由于電子鎖的密鑰量(密碼量)極大,可以與機(jī)械鎖配合使用,并且可以避免因鑰匙被仿制而留下安全隱患。電子鎖只需記住一組密碼,無(wú)需攜帶金屬鑰匙,免除了人們攜帶金屬鑰匙的煩惱,而被越來(lái)越多的人所欣賞。電子鎖的種類繁多,例如數(shù)碼鎖,指紋鎖,磁卡鎖,IC卡鎖,生物鎖等。但較實(shí)用的還是按鍵式電子密碼鎖。</p&

16、gt;<p>  20世紀(jì)80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,可靠性提高,成本較高,是適合使用在安全性要求較高的場(chǎng)合,且需要有電源提供能量,使用還局限在一定范圍,難以普及,所以對(duì)它的研究一直沒(méi)有明顯進(jìn)展。</p><p>  目前,在西方發(fā)達(dá)國(guó)家,電子密碼鎖技術(shù)相對(duì)先進(jìn),種類齊全,電子密碼鎖已被廣泛應(yīng)用于智能門禁系統(tǒng)中,通過(guò)多種更加安全,更加可靠的技術(shù)實(shí)現(xiàn)大門的管理。在我國(guó)電

17、子鎖整體水平尚處于國(guó)際上70年代左右,電子密碼鎖的成本還很高,市場(chǎng)上仍以按鍵電子鎖為主,按鍵式和卡片鑰匙式電子鎖已引進(jìn)國(guó)際先進(jìn)水平,現(xiàn)國(guó)內(nèi)有幾個(gè)廠生產(chǎn)供應(yīng)市場(chǎng)。但國(guó)內(nèi)自行研制開發(fā)的電子鎖,其市場(chǎng)結(jié)構(gòu)尚未形成,應(yīng)用還不廣泛。國(guó)內(nèi)的不少企業(yè)也引進(jìn)了世界上先進(jìn)的技術(shù),發(fā)展前景非??捎^。希望通過(guò)不斷的努力,使電子密碼鎖在我國(guó)也能得到廣泛應(yīng)用[1]。</p><p>  目前使用的電子密碼鎖大部分是基于單片機(jī)技術(shù),以單片機(jī)

18、為主要器件,其編碼器與解碼器的生成為軟件方式[2]。在實(shí)際應(yīng)用中,由于程序容易跑飛,系統(tǒng)的可靠性能較差?;诂F(xiàn)場(chǎng)可編程邏輯門陣列FPGA器件的電子密碼鎖,用FPGA器件構(gòu)造系統(tǒng),所有算法完全由硬件電路來(lái)實(shí)現(xiàn),使得系統(tǒng)的工作可靠性大為提高。由于FPGA具有現(xiàn)場(chǎng)可編程功能,當(dāng)設(shè)計(jì)需要更改時(shí),只需更改FPGA中的控制和接口電路,利用EDA工具將更新后的設(shè)計(jì)下載到FPGA中即可,無(wú)需更改外部電路的設(shè)計(jì),大大提高了設(shè)計(jì)的效率。</p>

19、<p>  1.2 電子密碼鎖的原理</p><p>  1.2.1 編碼總量的確定</p><p>  電子密碼鎖隨機(jī)開鎖成功的概率定義為:</p><p><b>  P=1/NT</b></p><p>  其中P為隨機(jī)開鎖成功概率,NT為密碼編碼總量。顯然要使密碼鎖保密安全性高,NT應(yīng)盡可能大,使P

20、趨于零,但NT越大,相應(yīng)電路越復(fù)雜,密碼的記憶與操作也越麻煩。故NT應(yīng)有合理的上限和下限。</p><p>  下限NTL的選擇應(yīng)使密碼落在隨機(jī)開鎖可能成功的操作時(shí)區(qū)以外。若每一次開鎖操作時(shí)間為t,為便于做隨機(jī)試驗(yàn),將N T分為n段并期望在1/n段的1/2處開鎖成功。此時(shí)</p><p><b>  p=1/2n</b></p><p>  則

21、隨機(jī)開鎖試驗(yàn)期望成功的時(shí)間為:</p><p>  Tr=NT×t/2n</p><p>  假定系統(tǒng)設(shè)計(jì)不考慮誤碼輸入的保護(hù),密碼鎖在無(wú)保護(hù)的情況下使操作人員任意作隨機(jī)開鎖試驗(yàn)的時(shí)間為TEN,則:</p><p>  NTL=(2n×T EN t)×x,其中x為最低安全系數(shù)。即:</p><p>  TEN=(

22、N TL×t2n)x</p><p>  顯然若使NT>=NTL,則Tr>TEN,則使分段隨機(jī)試驗(yàn)不易成功。</p><p>  由此可得出數(shù)字密碼鎖的編碼總量設(shè)定是系統(tǒng)設(shè)計(jì)安全性、保密性的首要技術(shù)指標(biāo)。一般來(lái)說(shuō),當(dāng)NT選定之后,NT的上限NTH原則上是越大越安全,但一般設(shè)計(jì)時(shí)取NTH=(10~1000)NTL較為合理。</p><p>  1

23、.2.2 編碼制式的選擇</p><p>  編碼制式應(yīng)根據(jù)NT的大小選取,可分為如下三種:</p><p> ?。?)密碼的各位都可以重碼:NT1=ai;</p><p>  (2)密碼的非相鄰位可以重碼:NT2=a(a-1)i;</p><p>  (3)密碼的任何一位都不能重碼:NT3=a(a-1)……(a-i+1)。</p>

24、;<p>  其中a為基數(shù),i為位數(shù),a和i的選取應(yīng)該滿足NT≥NTL , a=2,3,4,10,12,14,16。</p><p>  現(xiàn)在以最常用的a=10,i=6為例,可以計(jì)算出NT2=0159NT 1,NT 3=0.15N T1,所以編碼制式考慮是否重碼對(duì)NT有很大影響。</p><p>  另外,相同制式下不同的基底對(duì)編碼總量NT會(huì)有影響,而且基底的選擇也會(huì)影響到硬

25、件電路的設(shè)計(jì)。</p><p>  本文設(shè)計(jì)的密碼鎖采用十進(jìn)制編碼,密碼各位允許重碼,為簡(jiǎn)化電路設(shè)計(jì),密碼鎖口令采用對(duì)串行脈沖計(jì)數(shù)的方式輸入。</p><p>  1.2.3 誤碼輸入的保護(hù)措施</p><p>  如前所述,電子密碼鎖的設(shè)計(jì)應(yīng)考慮自身的安全保密性,由于編碼和捕捉密碼的實(shí)驗(yàn)都是隨機(jī)的,若要使P=1 NT趨近于0,必須采取誤碼輸入的保護(hù)措施。假定設(shè)定的

26、誤碼輸入次數(shù)不超過(guò)三次,誤碼達(dá)到三次時(shí)系統(tǒng)應(yīng)關(guān)閉主控電路,拒絕大于三次的密碼輸入,并且系統(tǒng)進(jìn)入死鎖狀態(tài)。系統(tǒng)正常狀態(tài)的恢復(fù)也可采用以下三種方式:</p><p> ?。?)延時(shí)后輸入二級(jí)密碼管理方式,即由管理員級(jí)密碼作為正常輸入的開鎖密碼,之后重新定義新的開鎖密碼;</p><p>  (2)使用一個(gè)按鍵使系統(tǒng)重新恢復(fù)到正常狀態(tài);</p><p>  (3)系統(tǒng)掉電

27、恢復(fù)[3] [4]。</p><p>  1.3 電子密碼鎖的系統(tǒng)簡(jiǎn)介</p><p>  通用的電子密碼鎖主要由三個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。</p><p> ?。?) 密碼鎖輸入電路包括時(shí)序產(chǎn)生電路、鍵盤掃描電路、鍵盤彈跳消除電路、鍵盤譯碼電路等幾個(gè)小的功能電路。</p><p> ?。?) 密碼鎖控制

28、電路包括按鍵數(shù)據(jù)的緩沖存儲(chǔ)電路,密碼的清除、變更、存儲(chǔ)、激活電鎖電路(寄存器清除信號(hào)發(fā)生電路),密碼核對(duì)(數(shù)值比較電路),解鎖電路(開/關(guān)門鎖電路)等幾個(gè)小的功能電路。</p><p>  (3) 密碼顯示電路主要將顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成相對(duì)應(yīng)的編碼。如,若選用七段數(shù)碼管顯示電路,主要將待顯示數(shù)據(jù)的BCD碼轉(zhuǎn)換成數(shù)碼器的七段顯示驅(qū)動(dòng)編碼[4]。</p><p>  1.4 系統(tǒng)設(shè)計(jì)要求&

29、lt;/p><p>  設(shè)計(jì)一個(gè)具有較高安全性和較低成本的通用電子密碼鎖,具體功能要求如下:</p><p> ?。?)數(shù)碼輸入:每按下一個(gè)數(shù)字鍵,就輸入一個(gè)數(shù)值,并在顯示器上的顯示出該數(shù)值,同時(shí)將先前輸入的數(shù)據(jù)依序左移一個(gè)數(shù)字位置。</p><p>  (2)數(shù)碼清除:按下此鍵可清除前面所有的輸入值,清除為“0000”。</p><p> ?。?/p>

30、3)密碼更改:按下此鍵時(shí)會(huì)將目前的數(shù)字設(shè)定成新的密碼。</p><p>  (4)激活電鎖:按下此鍵可將密碼鎖上鎖。</p><p>  (5)解除電鎖:按下此鍵會(huì)檢查輸入的密碼是否正確,密碼正確即開鎖。</p><p>  1.5 本課題的研究目的和意義</p><p>  隨著人們生活水平的提高,對(duì)家庭防盜技術(shù)的要求也是越來(lái)越高,傳統(tǒng)的機(jī)

31、械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見不鮮,電子鎖由于其保密性高,使用靈活性好,安全系數(shù)高,受到了廣大用戶的歡迎?,F(xiàn)在市場(chǎng)上主要是基于單片機(jī)技術(shù)的電子密碼鎖,但可靠性較差。FPGA即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是一種超大規(guī)模集成電路,具有對(duì)電路可重配置能力。通常FPGA都有著上萬(wàn)次的重寫次數(shù),也就是說(shuō)現(xiàn)在的硬件設(shè)計(jì)和軟件設(shè)計(jì)一樣靈活、方便。相對(duì)于基于單片機(jī)技術(shù)的電子密碼鎖,用FPG

32、A器件來(lái)構(gòu)成系統(tǒng),可靠性提高,并且由于FPGA具有的現(xiàn)場(chǎng)可編程功能,使得電子密碼鎖的更改與升級(jí)更為方便簡(jiǎn)單[3]。</p><p>  通過(guò)本次設(shè)計(jì)掌握FPGA系統(tǒng)設(shè)計(jì)的方法,熟悉FPGA設(shè)計(jì)的相關(guān)軟件,以及硬件描述語(yǔ)言的使用,了解電子密碼鎖的系統(tǒng)構(gòu)成,利用FPGA實(shí)現(xiàn)電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn),可以加深自己對(duì)所學(xué)專業(yè)的認(rèn)識(shí),關(guān)聯(lián)知識(shí),增強(qiáng)自己的動(dòng)手能力,積累實(shí)踐經(jīng)驗(yàn),為以后的工作打好基礎(chǔ)。</p>&

33、lt;p>  2 現(xiàn)場(chǎng)可編程門陣列FPGA</p><p>  自1985年Xilinx公司推出第一片大規(guī)?,F(xiàn)場(chǎng)可編程邏輯器件(FPGA)至今,F(xiàn)PGA已經(jīng)歷了十幾年的歷史。在這十幾年的過(guò)程中,可編程器件有了驚人的發(fā)展:從最初的1200個(gè)可利用門,到今天的25萬(wàn)可利用門,規(guī)模增大了200多倍;FPGA供應(yīng)商也從Xilinx的一枝獨(dú)秀,到今天近20個(gè)廠商的分庭抗?fàn)帲籉PGA從單一的基于SRA結(jié)構(gòu)到今天各種結(jié)構(gòu)

34、類型的出現(xiàn),都充分體現(xiàn)了可編程器件這一巨大市場(chǎng)的吸引力。</p><p>  FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問(wèn)題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價(jià)格不斷降低。由于目前電子產(chǎn)品生命周期相對(duì)縮短,相近功能產(chǎn)品的派生設(shè)計(jì)增多等特點(diǎn),促使FPGA越來(lái)越多地取代了ASIC的市場(chǎng),特別是對(duì)國(guó)內(nèi)眾多的科研單位來(lái)說(shuō),小批量、多品種的產(chǎn)品需求,使得FPGA成為首選[5]。</p>&l

35、t;p>  2.1 FPGA的基本結(jié)構(gòu)</p><p>  FPGA的發(fā)展非常迅速,形成了各種不同的結(jié)構(gòu)。按邏輯功能塊的大小,F(xiàn)PGA可分為細(xì)粒度FPGA和粗粒度FPGA。細(xì)粒度FPGA的邏輯功能塊較小,資源可以充分利用,但連線和開關(guān)多,速度慢;粗粒度FPGA的邏輯功能塊規(guī)模大,功能強(qiáng),但資源不能充分利用。從邏輯功能塊的結(jié)構(gòu)上分類,可分為查找表結(jié)構(gòu)、多路開關(guān)結(jié)構(gòu)和多級(jí)與非門結(jié)構(gòu)。根據(jù)FPGA內(nèi)部連線的結(jié)構(gòu)不

36、同,可分為分段互聯(lián)型和連續(xù)互聯(lián)型。根據(jù)編程方式,F(xiàn)PGA可分為一次編程和可重復(fù)編程兩種。</p><p>  FPGA一般可由三種可編程電路和一個(gè)用于存放編程數(shù)據(jù)的SRAM組成,這三種可編程電路是:可編程邏輯塊(CLB)、輸入/輸出模塊(IOB)和互聯(lián)資源(IR)。CLB是FPGA的主要組成部分,是實(shí)現(xiàn)邏輯功能的基本單元。它主要是由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。IOB提供了器件引腳和內(nèi)部邏輯陣列之

37、間的連接,通常排列在芯片的四周。其主要是由輸入觸發(fā)器、輸入緩沖器、輸出觸發(fā)/鎖存器和輸出緩沖器組成。每一個(gè)IOB控制一個(gè)引腳,可被配置為輸入、輸出活雙向I/O功能。可編程互聯(lián)資源包括各種長(zhǎng)度的金屬連線和一些可編程連接開關(guān),它們將各個(gè)CLB之間和IOB之間互相連接起來(lái),構(gòu)成各種復(fù)雜功能的系統(tǒng)。圖2.1給出了Xilinx Spartan-Ⅱ芯片內(nèi)部結(jié)構(gòu)[6]。</p><p>  圖2.1 Xilinx Sparta

38、n-II芯片內(nèi)部結(jié)構(gòu)</p><p>  2.1.1可配置存儲(chǔ)器</p><p>  FPGA芯片邏輯功能的配置是由按點(diǎn)陣分布于芯片的存儲(chǔ)單元——靜態(tài)存儲(chǔ)器(SRAM)實(shí)現(xiàn)的,即通過(guò)對(duì)分布的SRAM的不同加電配置,決定各部分的邏輯定義。對(duì)于FPGA器件編程實(shí)現(xiàn),實(shí)際上就是由加載于SRAM上的配置數(shù)據(jù)決定和控制各個(gè)CLB、IOB及內(nèi)部連線PI的邏輯功能和它們之間的相互連接關(guān)系。加載不同的配置

39、數(shù)據(jù),芯片便實(shí)現(xiàn)不同的邏輯功能。配置LCA的數(shù)據(jù)文件由XACT(Xilinx Automated CAE Tools)開發(fā)系統(tǒng)產(chǎn)生,通過(guò)數(shù)據(jù)配置方式及相應(yīng)接口加載于芯片中。</p><p>  2.1.2可配置邏輯塊(CLB)</p><p>  圖2.2 CLB結(jié)構(gòu)框圖</p><p>  XC4000系列的CLB(簡(jiǎn)化框圖如圖2.2所示)具有13個(gè)輸入、4個(gè)輸

40、出。內(nèi)部由兩個(gè)獨(dú)立的四輸入邏輯函數(shù)發(fā)生器、一對(duì)觸發(fā)器和若干個(gè)由配置控制的多路轉(zhuǎn)換器組成。邏輯塊的輸入輸出可以接到外部的可編程連線資源。兩個(gè)四輸入邏輯函數(shù)發(fā)生器(輸入分別為F1~F4和G1~G4),可以獨(dú)立提供四輸入的任意定義的布爾函數(shù),它們的輸出分別為F′和G′。函數(shù)發(fā)生器的輸出由存儲(chǔ)器查找表(look up table,LUT)技術(shù)實(shí)現(xiàn),傳播延遲與所實(shí)現(xiàn)的函數(shù)無(wú)關(guān)。第三個(gè)輸出為H′的函數(shù)發(fā)生器可以實(shí)現(xiàn)三輸入(F′、G′和塊外信號(hào)H1)

41、的任意布爾函數(shù)。由函數(shù)發(fā)生器生成的信號(hào)F′或H′可以被連到X輸出端,G′或H′可以被連到y(tǒng)輸出端。從而使一個(gè)CLB可以實(shí)現(xiàn)兩個(gè)獨(dú)立的多達(dá)四變量的任意函數(shù),或單個(gè)五變量任意函數(shù),或一個(gè)任意的四變量函數(shù)連同一個(gè)五變量函數(shù),或多達(dá)九變量的一些函數(shù)。在單一邏輯塊上實(shí)現(xiàn)如此寬的邏輯函數(shù),既減少了所要求的邏輯塊數(shù)又減少了在信號(hào)通路上的時(shí)延,達(dá)到了增加密度和速度的目的。</p><p>  在CLB中有兩個(gè)邊沿觸發(fā)的D觸發(fā)器,

42、它們具有公用時(shí)鐘(K)和時(shí)鐘使能(EC)輸入,第三個(gè)公用輸入(S/R)可以分別地對(duì)它們編程為異步置位或復(fù)位信號(hào),該輸入也可定義為不被使能。另外,還有一個(gè)單獨(dú)的全局置位/復(fù)位線,在電源接通或重新配置時(shí)由專用復(fù)位網(wǎng)線對(duì)每個(gè)觸發(fā)器置位或復(fù)位。</p><p>  函數(shù)發(fā)生器F′和G′的另一種可選方式是使其中的查找存儲(chǔ)器用做16×2或32×1位的讀/寫存儲(chǔ)單元陣列使用。這種RAM的速度是很高的,讀操作

43、與邏輯延時(shí)一樣,大約5.5ns,而寫操作大約8ns。這是一個(gè)新的相當(dāng)有用的功能,在系統(tǒng)中可以設(shè)計(jì)寄存器陣列、LIFO堆?;騀IFO緩沖器等。</p><p>  2.1.3 輸入/輸出塊(IOB)</p><p>  圖2.3 輸入輸出模塊IOB</p><p>  用戶可配置的IOB(見圖2.3)為芯片外部引腳和內(nèi)部邏輯提供了一個(gè)界面,每個(gè)IOB控制一個(gè)外部引腳,

44、并可定義為輸入、輸出或雙向三種功能。當(dāng)IOB定義為輸入時(shí),輸入信號(hào)經(jīng)Pad進(jìn)入輸入緩沖器,并根據(jù)配置可以直接輸入,亦可以通過(guò)邊沿觸發(fā)器或電平敏感鎖存器輸入。當(dāng)IOB定義為輸出時(shí),輸出信號(hào)可以通過(guò)配置選擇是否反相,是直接傳輸?shù)絇ad,還是通過(guò)邊沿觸發(fā)器寄存后傳輸??梢赃x擇用輸出使能信號(hào)(OE)使輸出緩沖器是否為高阻狀態(tài),以實(shí)現(xiàn)三態(tài)輸出或雙向I/O傳輸。</p><p>  2.1.4可編程內(nèi)部連線(PI)</

45、p><p>  內(nèi)部連線由一些具有可編程開關(guān)點(diǎn)或開關(guān)矩陣的金屬線段組成,結(jié)構(gòu)對(duì)稱、規(guī)范,適合于建立自動(dòng)有效的布局布線算法。布線通道的數(shù)目由陣列規(guī)模決定。</p><p>  2.2 FPGA的優(yōu)點(diǎn)</p><p>  FPGA與CPLD(復(fù)雜可編程邏輯器件)都是可編程邏輯器件,它們是在PAL、GAL等邏輯器件的基礎(chǔ)上發(fā)展起來(lái)的。FPGA既繼承了ASIC的大規(guī)模、高集成度

46、、高可靠性的優(yōu)點(diǎn),又克服了普通ASIC設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差的缺點(diǎn),逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的理想首選。在這十幾年的發(fā)展過(guò)程中,以FPGA/CPLD為代表的數(shù)字系統(tǒng)現(xiàn)場(chǎng)集成技術(shù)取得了驚人的發(fā)展:現(xiàn)場(chǎng)可編程邏輯器件從最初的數(shù)百個(gè)門發(fā)展到現(xiàn)今的數(shù)百萬(wàn)個(gè)門。目前,國(guó)際上現(xiàn)場(chǎng)可編程邏輯器件著名廠商有Xilinx的XC系列,TI公司的TPC系列,Altera公司的FIEX系列等。同以往的PAL、GAL等相比較,F(xiàn)PGA/CPLD的規(guī)模比

47、較大,它可以替代幾十甚至幾千塊通用IC芯片。對(duì)用戶而言,CPLD與FPGA的內(nèi)部結(jié)構(gòu)只是稍有不同,但用法一樣,所以多數(shù)情況下不加以區(qū)分[7]。FPGA具有以下特點(diǎn):</p><p>  1.FPGA芯片的規(guī)模越來(lái)越大,其單片邏輯門數(shù)已達(dá)數(shù)百萬(wàn)門。所能實(shí)現(xiàn)的功能也越來(lái)越強(qiáng),用FPGA設(shè)計(jì),ASIC電路用戶不需要投片生產(chǎn)就能得到合用的芯片。</p><p>  2.FPGA可做其它全定制或半定

48、制ASIC電路的試樣片,并且它采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容,它是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。</p><p>  3.FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳,用戶可以反復(fù)地編程、擦除、使用或在外圍電路不動(dòng)的情況下用不同軟件實(shí)現(xiàn)不同的功能。既能使數(shù)字系統(tǒng)適應(yīng)柔性系統(tǒng)的需求(不同的配置實(shí)現(xiàn)不同的功能),又能隨著市場(chǎng)需求的變化和技術(shù)的發(fā)展及時(shí)擴(kuò)展,變更

49、數(shù)字系統(tǒng)的功能,提高了電子產(chǎn)品的應(yīng)變能力。</p><p>  4.FPGA的保密性好。在某些場(chǎng)合下,根據(jù)要求選用防止反向技術(shù)的FPGA能很好的保護(hù)系統(tǒng)的安全性和設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。</p><p>  5.FPGA開發(fā)工具智能化,功能強(qiáng)大,軟件包中有各種輸入工具和仿真工具以及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可以完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作

50、。可以使設(shè)計(jì)人員能集中精力進(jìn)行電路設(shè)計(jì),使產(chǎn)品快速推向市場(chǎng)。</p><p>  6.電路設(shè)計(jì)人員使用FPGA進(jìn)行電路設(shè)計(jì)時(shí),軟件易學(xué)易用[8]。</p><p>  正是如此,F(xiàn)PGA應(yīng)用前景廣闊,尤其適合于新產(chǎn)品的研制。</p><p>  2.3 FPGA的設(shè)計(jì)流程</p><p>  FPGA設(shè)計(jì)流程包括系統(tǒng)設(shè)計(jì)和設(shè)計(jì)實(shí)現(xiàn),系統(tǒng)方案完

51、成之后即進(jìn)入設(shè)計(jì)實(shí)現(xiàn)階段的工作,他以系統(tǒng)方案為輸入,進(jìn)行RTL級(jí)描述、功能仿真(RTL級(jí)仿真)、邏輯綜合、布線前門級(jí)仿真、適配(布局布線)、時(shí)序仿真(布線后門級(jí)仿真)、時(shí)序分析、器件編程、系統(tǒng)驗(yàn)證一系列流程的處理才能完成FPGA芯片的設(shè)計(jì),其設(shè)計(jì)流程如圖2.4所示。需要說(shuō)明的是,如果仿真驗(yàn)證不對(duì)或者某一步有錯(cuò),就要返回修改。有必要檢查和修改的地方有RTL級(jí)描述、系統(tǒng)方案、約束和測(cè)試激勵(lì)等。一般情況下,對(duì)RTL級(jí)的描述即原理圖或者HDL設(shè)

52、計(jì)代碼的修改最多也最有效。修改后要重新走一遍流程。有時(shí)要反復(fù)修改,經(jīng)過(guò)多次這樣的迭代才能完成最后的設(shè)計(jì)[8]。</p><p>  在理論上,把VLSI(Ultra Large Scale Integration,超大規(guī)模集成電路)的設(shè)計(jì)描述為6個(gè)層次[1,2],即系統(tǒng)級(jí)(系統(tǒng)功能、參數(shù)定義)、算法級(jí)(描述系統(tǒng)功能行為)、RTL級(jí)、門級(jí)(邏輯門)、電路級(jí)(晶體管)、版圖級(jí)(物理工藝)。每一級(jí)又都分3個(gè)側(cè)面來(lái)描述:

53、行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實(shí)際情況中往往把算法級(jí)行為域描述或者RTL級(jí)行為域描述都稱為行為級(jí)描述。</p><p>  圖2.4 系統(tǒng)設(shè)計(jì)流程</p><p>  對(duì)于FPGA的設(shè)計(jì)而言,不需要關(guān)心電路級(jí)和版圖級(jí),只考慮系統(tǒng)級(jí)、算法級(jí)、RTL級(jí)、門級(jí)4個(gè)層次的行為域描述和結(jié)構(gòu)域描述即可。上述的FPGA系統(tǒng)設(shè)計(jì)中的系統(tǒng)實(shí)際上是指系統(tǒng)級(jí)和算法級(jí),而“RTL級(jí)描述”主要是指RTL級(jí)

54、行為域的描述。在門級(jí),由綜合工具產(chǎn)生的門級(jí)網(wǎng)表來(lái)描述。</p><p>  FPGA的設(shè)計(jì)流程和相關(guān)概念說(shuō)明如下:</p><p>  庫(kù):指FPGA器件廠家提供的工藝庫(kù)和EDA工具提供的標(biāo)準(zhǔn)通用庫(kù)(如IEEE庫(kù)等)。工藝庫(kù)中有各種宏功能模塊和基本功能單元,含有他們的行為級(jí)模型、門級(jí)模型、布線模型等信息。</p><p>  需要說(shuō)明的是,系統(tǒng)行為仿真和RTL級(jí)功能

55、仿真有時(shí)要用到某種功能模塊,例如RAM模型。對(duì)于RAM模型的控制信號(hào),不同的廠家其規(guī)定不一定相同,如寫使能信號(hào),有的廠家規(guī)定高電平有效,有的廠家規(guī)定低電平有效。其實(shí),在廠家提供的工藝庫(kù)中, RAM模型有行為級(jí)模型、門級(jí)模型、版圖級(jí)模型等。而行為級(jí)模型只是規(guī)定其功能,無(wú)延時(shí)信息,跟工藝無(wú)關(guān),但門級(jí)模型和版圖級(jí)模型跟工藝密切相關(guān)。解決的方法是系統(tǒng)行為仿真時(shí)可以使用高級(jí)語(yǔ)言自己建立一個(gè)模型或者調(diào)用廠家?guī)熘刑峁┑男袨榧?jí)模型,功能仿真時(shí)調(diào)用行為級(jí)

56、模型,時(shí)序仿真時(shí)調(diào)用門級(jí)模型。</p><p>  測(cè)試激勵(lì):指測(cè)試文件,他調(diào)用FPGA設(shè)計(jì)的頂層模塊,同時(shí)產(chǎn)生頂層模塊需要的輸入信號(hào),稱之為激勵(lì)信號(hào),使用行為描述即可,不要求可綜合。仿真時(shí)他作為最頂層的文件,從而可以觀察FPGA的輸出是否正確。所有的仿真都可使用同一個(gè)測(cè)試激勵(lì)。</p><p>  約束:指對(duì)邏輯綜合和布局布線時(shí)的約束。包括器件型號(hào)、速度、面積、功耗、引腳分配、時(shí)鐘網(wǎng)絡(luò)資

57、源的分配、模塊在器件中的定位等約束。一部分在軟件中設(shè)置,一部分以約束文件的形式存在。</p><p><b> ?。?)系統(tǒng)行為描述</b></p><p>  系統(tǒng)行為描述是指使用硬件描述語(yǔ)言HDL (Hard-ware Description Language)語(yǔ)句的全集來(lái)描述算法,模擬系統(tǒng)的行為和功能,不要求所有的語(yǔ)句都能夠綜合成電路。事實(shí)上,有些語(yǔ)句是專為描述

58、行為而創(chuàng)建的,不能綜合(不能用電路來(lái)實(shí)現(xiàn)其功能)。也可以使用高級(jí)語(yǔ)言如C語(yǔ)言來(lái)進(jìn)行描述,此時(shí)往往要配合專用的系統(tǒng)設(shè)計(jì)工具來(lái)進(jìn)行描述與仿真,如SPW等。這種系統(tǒng)算法級(jí)行為域的描述可以盡量使用最簡(jiǎn)潔的語(yǔ)句而不必過(guò)多地考慮其硬件實(shí)現(xiàn)的諸因素,所以能較快建立系統(tǒng)行為模型,進(jìn)行行為仿真。</p><p><b> ?。?)系統(tǒng)行為仿真</b></p><p>  主要用來(lái)驗(yàn)證系

59、統(tǒng)方案是否正確、是否有缺陷,并可根據(jù)仿真的結(jié)果來(lái)優(yōu)化系統(tǒng)方案和算法。他使用系統(tǒng)行為描述代碼、測(cè)試激勵(lì)、行為級(jí)模型庫(kù)等為輸入,利用專用的仿真工具或者系統(tǒng)設(shè)計(jì)軟件來(lái)進(jìn)行功能仿真和優(yōu)化。</p><p><b> ?。?)RTL級(jí)描述</b></p><p>  指原理圖(結(jié)構(gòu)描述)或者使用可綜合的HDL語(yǔ)句來(lái)描述的設(shè)計(jì)(一般是行為描述)。EDA綜合軟件只能將RTL級(jí)描述綜

60、合成邏輯電路。利用綜合軟件可以檢查出所寫的代碼是否是RTL級(jí)代碼。對(duì)簡(jiǎn)單的設(shè)計(jì)而言,可以直接從RTL級(jí)開始設(shè)計(jì),但對(duì)大規(guī)模的設(shè)計(jì),最好先寫系統(tǒng)行為級(jí)代碼進(jìn)行行為仿真。如果系統(tǒng)行為仿真正確,就可以將行為級(jí)代碼轉(zhuǎn)化為RTL級(jí)代碼。這種轉(zhuǎn)化稱之為高層次綜合或者行為級(jí)綜合。轉(zhuǎn)化的方法有2種:一是使用高層次綜合工具自動(dòng)轉(zhuǎn)化,例如Synopsys公司的Behavior Compil-er;二是使用手工方法轉(zhuǎn)化。手工方法使用很普遍,原因是目前高層次綜

61、合的理論和方法還不成熟,其工具難求或者其性能沒(méi)有手工方法好。</p><p><b>  (4)功能仿真</b></p><p>  也叫RTL級(jí)仿真,是指不考慮延時(shí)信息的一種仿真,只能驗(yàn)證RTL級(jí)的行為描述是否能達(dá)到所要求的功能。功能仿真需要的輸入是RTL級(jí)代碼、測(cè)試激勵(lì)和庫(kù)(有時(shí)要調(diào)用工藝庫(kù)中宏功能單元的行為級(jí)模型)??衫脤S玫姆抡婀ぞ哌M(jìn)行仿真,如Modelsi

62、m,VCS等工具。如果仿真不對(duì),則需要檢查和修改RTL級(jí)代碼或者測(cè)試激勵(lì)甚至系統(tǒng)方案。仿真的過(guò)程是先對(duì)源代碼進(jìn)行編譯,檢查是否有語(yǔ)法錯(cuò)誤。如果沒(méi)有錯(cuò)誤,就將源代碼轉(zhuǎn)換為一種中間格式,便于仿真工具的內(nèi)部運(yùn)算。編譯的結(jié)果自動(dòng)存放在一個(gè)指定的工作目錄中,仿真的結(jié)果主要以波形文件的形式存放。</p><p><b> ?。?)邏輯綜合</b></p><p>  邏輯綜合是將

63、RTL級(jí)的行為描述轉(zhuǎn)化為使用門級(jí)單元的結(jié)構(gòu)描述。門級(jí)的結(jié)構(gòu)描述稱之為網(wǎng)表。網(wǎng)表文件主要記錄的是所用工藝庫(kù)門級(jí)單元之間的互連關(guān)系(即門級(jí)結(jié)構(gòu))。綜合的輸入需要RTL級(jí)描述、約束和工藝庫(kù)。綜合時(shí)所加的約束一般比較簡(jiǎn)單,如時(shí)鐘頻率、器件型號(hào)和其他綜合設(shè)置等。綜合的過(guò)程是translate (轉(zhuǎn)換) +map(映射) +optimize (優(yōu)化)。轉(zhuǎn)換是將RTL級(jí)行為描述轉(zhuǎn)化為RTL級(jí)結(jié)構(gòu)描述(使用與工藝無(wú)關(guān)的通用邏輯門符號(hào)表示)。映射將轉(zhuǎn)換后

64、的結(jié)果使用工藝庫(kù)門級(jí)單元的連接關(guān)系來(lái)表示,并根據(jù)需要進(jìn)行優(yōu)化,形成網(wǎng)表文件。映射是對(duì)某種目標(biāo)器件而言是一種資源分配和優(yōu)化操作。一般綜合工具能將轉(zhuǎn)換后的結(jié)果顯示為RTL級(jí)原理圖,也能將網(wǎng)表顯示為門級(jí)原理圖。網(wǎng)表文件中含門級(jí)單元的延時(shí)信息,對(duì)連線延時(shí)有預(yù)估值或者為零,不同的軟件處理的方法可能不同,暫稱之為網(wǎng)表文件。網(wǎng)表文件的格式可以表示成標(biāo)準(zhǔn)格式(edif),也可以表示成VHDL或者Verilog HDL格式(在綜合工具中設(shè)置)。綜合報(bào)告文

65、件中含所用邏輯資源、預(yù)估出的時(shí)鐘最高頻率、關(guān)鍵路徑(延時(shí)最長(zhǎng)的路徑,可在軟件中顯示)等信息。</p><p> ?。?)布線前門級(jí)仿真</p><p>  布線前門級(jí)仿真是門級(jí)功能仿真,一般不考慮延時(shí)。該仿真的輸入需要綜合后的門級(jí)網(wǎng)表、工藝庫(kù)和測(cè)試激勵(lì)。有些EDA工具不提供此仿真功能,可以不做。</p><p> ?。?)適配(布局布線)</p>&l

66、t;p>  適配就是將網(wǎng)表文件映射到目標(biāo)器件中的一種操作,是對(duì)目標(biāo)器件的第二次映射(第一次映射是綜合)。即對(duì)網(wǎng)表中的每一個(gè)門級(jí)單元在器件中定位(布局),并使用器件內(nèi)的連線資源按照網(wǎng)表中的連接關(guān)系連接起來(lái)(布線)同時(shí)要滿足引腳分配、時(shí)鐘線的分配等約束條件。適配的輸入需要網(wǎng)表文件</p><p>  1、工藝庫(kù)(要使用其中的布線模型等信息)和約束。適配所加的約束比較多,如引腳分配、時(shí)鐘樹的分配、模塊在器件中的定

67、位等。適配后產(chǎn)生的文件有網(wǎng)表文件</p><p>  2、反標(biāo)文件和編程文件等。根據(jù)適配工具和適配設(shè)置的不同,產(chǎn)生的網(wǎng)表文件2可以具有不同的格式并可以設(shè)置為包含延時(shí)信息(包括門延時(shí)和線延時(shí))。反標(biāo)文件含延時(shí)信息,使用標(biāo)準(zhǔn)格式(SDF格式)表示。編程文件用于對(duì)器件編程下載。</p><p><b> ?。?)時(shí)序仿真</b></p><p>  

68、時(shí)序仿真是最接近真實(shí)情況的一種仿真,因?yàn)樵摲抡婧械难訒r(shí)信息和約束信息(約束信息包含在網(wǎng)表文件中)。時(shí)序仿真的輸入需要測(cè)試激勵(lì)、工藝庫(kù)門級(jí)單元模型、網(wǎng)表文件和反標(biāo)文件。如果網(wǎng)表文件中含有延時(shí)信息,則不需要反標(biāo)文件。時(shí)序仿真的結(jié)果跟延時(shí)關(guān)系極大。延時(shí)跟工藝有關(guān),特別是深亞微米工藝,線延時(shí)大大超過(guò)門延時(shí),所以總延時(shí)跟布局布線關(guān)系極大。如果仿真結(jié)果不對(duì),要從約束、綜合、布局布線、RTL級(jí)代碼等環(huán)節(jié)上找原因,也可以借助時(shí)序分析工具找原因。&l

69、t;/p><p><b>  (9)時(shí)序分析</b></p><p>  使用EDA軟件的時(shí)序分析功能能夠分析所有時(shí)鐘的頻率、周期、關(guān)鍵路徑和其他所有時(shí)鐘路徑上的延時(shí)信息,進(jìn)行建立時(shí)間和保持時(shí)間分析和輸入到輸出、輸入到寄存器、寄存器到輸出的延時(shí)分析等,從而可以找出不滿足時(shí)序關(guān)系的原因所在。時(shí)序分析是一個(gè)輔助功能,有時(shí)可以不做。</p><p>&l

70、t;b>  (10)器件編程</b></p><p>  指將適配后產(chǎn)生的編程文件下載到FPGA/CPLD器件中。下載的過(guò)程就是一個(gè)改寫器件內(nèi)邏輯結(jié)構(gòu)的過(guò)程,故稱之為編程。下載使用專用的編程器或者下載電纜。器件的編程接口一般使用10針JTAG插座。習(xí)慣上,對(duì)CPLD器件的下載叫編程,對(duì)FPGA器件的下載叫配置。CPLD器件基于E2PROM工藝或者FLASH工藝,掉電后信息不丟失。而FGAP器件基

71、于SRAM查找表工藝,掉電后編程信息會(huì)丟失,在下次上電后需要重新加載編程文件。配置方式有多種模式,較常用的是PS模式(調(diào)試時(shí)用)和使用配置器件模式(產(chǎn)品中使用),他是使用一個(gè)EPROM型的配置芯片,先將編程數(shù)據(jù)燒寫到配置芯片中,配置芯片跟FPGA使用專用接口引腳相連。這樣,上電后配置芯片自動(dòng)給FPGA加載編程數(shù)據(jù)。也可使用單片機(jī)進(jìn)行配置。</p><p><b>  (11)系統(tǒng)驗(yàn)證</b>

72、</p><p>  先將FPGA芯片在測(cè)試板上進(jìn)行功能驗(yàn)證,然后再到實(shí)際系統(tǒng)中驗(yàn)證。系統(tǒng)驗(yàn)證通過(guò)后就可以在產(chǎn)品中使用。至此,F(xiàn)PGA芯片設(shè)計(jì)完成。現(xiàn)在說(shuō)明系統(tǒng)設(shè)計(jì)與模塊設(shè)計(jì)的關(guān)系。上述的FPGA設(shè)計(jì)流程是一個(gè)具體設(shè)計(jì)的通用流程,對(duì)一個(gè)系統(tǒng)適用,對(duì)一個(gè)模塊也是相同的。一個(gè)模塊可以劃分為多個(gè)子模塊,子模塊又可以再分??梢詫⒛K看成一個(gè)子系統(tǒng)單獨(dú)進(jìn)行描述與仿真,但模塊設(shè)計(jì)必須滿足系統(tǒng)對(duì)他的要求。模塊設(shè)計(jì)相對(duì)簡(jiǎn)單,所以

73、有些步驟可以省去,如系統(tǒng)行為描述與仿真等。是否可省視具體情況而定。系統(tǒng)與模塊的關(guān)系是:系統(tǒng)是頂層模塊,他調(diào)用各個(gè)模塊并將這些模塊連接起來(lái),然后作為一個(gè)整體進(jìn)行FPGA設(shè)計(jì)流程的處理[8] [9] 。</p><p>  2.4 自頂向下設(shè)計(jì)法</p><p>  所謂自頂向下設(shè)計(jì)方法,簡(jiǎn)單地說(shuō),就是采用可完全獨(dú)立于芯片廠商及其產(chǎn)品結(jié)構(gòu)的描述語(yǔ)言,在功能級(jí)對(duì)設(shè)計(jì)產(chǎn)品進(jìn)行定義,并結(jié)合功能仿真技

74、術(shù),以確保設(shè)計(jì)的正確性,在功能定義完成后,利用邏輯綜合技術(shù),把功能描述轉(zhuǎn)換成某一具體結(jié)構(gòu)芯片的網(wǎng)表文件,輸出給廠商的布局布線器進(jìn)行布布線。布局布線結(jié)果還可反標(biāo)回同一仿真器,進(jìn)行包括功能和時(shí)序的后驗(yàn)證,以保證布局布線所帶來(lái)的門延時(shí)和線延時(shí)不會(huì)影響設(shè)計(jì)的性能。</p><p>  自頂向下設(shè)計(jì)方法的優(yōu)越性是顯而易見的。首先,由于功能描述可完全獨(dú)立于芯片結(jié)構(gòu),在設(shè)計(jì)的最初階段,設(shè)計(jì)師可不受芯片結(jié)構(gòu)的約束,集中精力進(jìn)行產(chǎn)

75、品設(shè)計(jì),進(jìn)而避免了傳統(tǒng)設(shè)計(jì)方法所帶來(lái)的重新再設(shè)計(jì)風(fēng)險(xiǎn),大大縮短了設(shè)計(jì)周期。</p><p>  其次,設(shè)計(jì)的再利用得到保證。目前的電子產(chǎn)品正向模塊化發(fā)展,所謂模塊化就是對(duì)以往設(shè)計(jì)成果進(jìn)行修改,組合和再利用,產(chǎn)生全新的或派生設(shè)計(jì),而自頂向下設(shè)計(jì)方法的功能描述可與芯片結(jié)構(gòu)無(wú)關(guān)。因此可以以一種IP的方式進(jìn)行存檔,以便將來(lái)的重新利用。</p><p>  第三,設(shè)計(jì)規(guī)模大大提高。簡(jiǎn)單的語(yǔ)言描述即可

76、完成復(fù)雜的功能,而不需要手工繪圖。</p><p>  第四,芯片選擇更加靈活。設(shè)計(jì)師可在較短的時(shí)間內(nèi)采用各種結(jié)構(gòu)芯片來(lái)完成同一功能描述,從而在設(shè)計(jì)規(guī)模、速度、芯片價(jià)格及系統(tǒng)性能要求等方面進(jìn)行平衡,選擇最佳結(jié)果。目前,最為常用的功能描述方法是采用均已成為國(guó)際標(biāo)準(zhǔn)的兩種硬件描述語(yǔ)言:VHDL和Verilog[10]。</p><p>  2.5用模塊化設(shè)計(jì)FPGA</p>&l

77、t;p>  隨著可編程技術(shù)的發(fā)展,F(xiàn)PGA被廣泛應(yīng)用于電子設(shè)計(jì)的各個(gè)領(lǐng)域。越來(lái)越多復(fù)雜的系統(tǒng)的核心電路利用FPGA設(shè)計(jì)完成,這些復(fù)雜系統(tǒng)經(jīng)常需要使用百萬(wàn)門加密卡的研制與加密算法的FPGA實(shí)現(xiàn)以上的大規(guī)模FPGA來(lái)設(shè)計(jì)。另一方面,為了對(duì)市場(chǎng)需求做出最迅速的反映,就要求這些電子產(chǎn)品的設(shè)計(jì)周期盡量縮短,只有以第一時(shí)間推出成熟穩(wěn)定的產(chǎn)品,才能獲得更大的市場(chǎng)份額。于是一方面需要百萬(wàn)門以上的大規(guī)模FPGA以滿足設(shè)計(jì)需要,另一方面需要在最短的時(shí)

78、間內(nèi)高質(zhì)量的完成設(shè)計(jì)以滿足市場(chǎng)需要,這兩者出現(xiàn)了矛盾。</p><p>  解決這個(gè)矛盾的唯一出路是投入更多的人力,進(jìn)行并行工作、協(xié)同設(shè)計(jì)。并行工作、協(xié)同設(shè)計(jì)在一般的工業(yè)生產(chǎn)中比較容易實(shí)現(xiàn),例如生產(chǎn)一部汽車,可以在不同車間并行生產(chǎn)出汽車的各個(gè)配件,然后統(tǒng)一將這些配件組裝起來(lái)即可。如果每個(gè)零件的制造都能滿足圖紙的公差標(biāo)準(zhǔn),那么每個(gè)零部件的制造的關(guān)聯(lián)就不是那么緊密,完全可以并行進(jìn)行生產(chǎn)制造。使制造每個(gè)零部件之間的聯(lián)系

79、盡量小,然后運(yùn)用并行、協(xié)同工作方式相對(duì)獨(dú)立的生產(chǎn)每個(gè)零部件,最后將這些零部件組合起來(lái)的工作方法就是一種模塊化設(shè)計(jì)方法[11]。</p><p>  3 VHDL硬件描述語(yǔ)言</p><p>  VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述語(yǔ)言從高于邏輯級(jí)的抽象層次上描述硬件的功能、信號(hào)連

80、接關(guān)系及定時(shí)關(guān)系。VHDL的設(shè)計(jì)流程如下圖。</p><p>  圖3.1 VHDL的設(shè)計(jì)流程</p><p>  3.1 VHDL語(yǔ)言的基本結(jié)構(gòu)</p><p>  一個(gè)完整的VHDL語(yǔ)言程序通常包含實(shí)體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、包集合(Package)和庫(kù)(Library)五個(gè)部分。</p&g

81、t;<p><b>  1實(shí)體</b></p><p>  實(shí)體說(shuō)明部分是說(shuō)明一個(gè)器件的外觀視圖,即從器件外部看到的器件外貌,其中包括器件的端口,同時(shí)也可以定義參數(shù),并把參數(shù)從外部傳入模塊內(nèi)部,主要用于描述所設(shè)計(jì)的系統(tǒng)的外部接口。</p><p><b>  2 結(jié)構(gòu)體</b></p><p>  結(jié)構(gòu)體是描

82、述一個(gè)器件的內(nèi)部視圖,是次級(jí)設(shè)計(jì)單元。在其對(duì)應(yīng)的初級(jí)設(shè)計(jì)單元實(shí)體說(shuō)明被編譯并且被并入設(shè)計(jì)庫(kù)之后,它就可以單獨(dú)地被并入該設(shè)計(jì)庫(kù)中。結(jié)構(gòu)體描述一個(gè)設(shè)計(jì)的結(jié)構(gòu)和行為,把一個(gè)設(shè)計(jì)的輸入和輸出之間的關(guān)系建立起來(lái)。一個(gè)設(shè)計(jì)可以有多個(gè)結(jié)構(gòu),分別代表該器件的不同實(shí)現(xiàn)方案。根據(jù)對(duì)一個(gè)器件設(shè)計(jì)由抽象到具體的過(guò)程,可把結(jié)構(gòu)體的描述方式分為三個(gè)層次:行為描述方式、寄存器傳輸描述方式(RTL)和結(jié)構(gòu)描述方式。</p><p><b&

83、gt;  3 庫(kù)</b></p><p>  庫(kù)是經(jīng)編譯后的實(shí)體、結(jié)構(gòu)體、包集合和配置的集合。使用庫(kù)時(shí)總要在設(shè)計(jì)單元的前面予以說(shuō)明。一旦說(shuō)明,庫(kù)中的數(shù)據(jù)對(duì)該設(shè)計(jì)單元就是可見的,從而共享已經(jīng)編譯過(guò)的設(shè)計(jì)結(jié)果。VHDL語(yǔ)言中存在的庫(kù)大致有IEEE庫(kù)、STD庫(kù)、ASIC廠家提供的庫(kù)、用戶定義的庫(kù)和現(xiàn)行作業(yè)庫(kù)。</p><p><b>  4 包集合</b><

84、;/p><p>  包集合屬庫(kù)中的一個(gè)層次,是一種可編譯的源設(shè)計(jì)單元。它收集了VHDL語(yǔ)言中所用到的信號(hào)、常數(shù)、數(shù)據(jù)類型、函數(shù)和過(guò)程的說(shuō)明等。用戶可以構(gòu)造一個(gè)包集合,用以存放常數(shù)、數(shù)據(jù)類型、函數(shù)和過(guò)程,該包集合經(jīng)編譯后便自動(dòng)加到WORK庫(kù)中。使用庫(kù)中的包集合時(shí),在打開庫(kù)后要用USE語(yǔ)句說(shuō)明,例如:</p><p>  LIBRARY IEEE;</p><p>  US

85、E IEEE.STD-LOGIC-1164.ALL;</p><p><b>  5 配置</b></p><p>  配置語(yǔ)句從一個(gè)庫(kù)中為一個(gè)實(shí)體選擇一個(gè)特定的結(jié)構(gòu)體,是一種放在庫(kù)中的被編輯單元,并有相應(yīng)的配置名。通過(guò)配置技術(shù),可以選取多種不同的結(jié)構(gòu)體,以便對(duì)一個(gè)設(shè)計(jì)任務(wù)采用仿真工具進(jìn)行多種配置的性能實(shí)驗(yàn)。另外,配置說(shuō)明和規(guī)定的特性還可以用在多層描述中。</p

86、><p>  3.2 結(jié)構(gòu)體的描述方式</p><p>  在VHDL語(yǔ)言中,對(duì)結(jié)構(gòu)體的三種描述方式從不同角度對(duì)硬件系統(tǒng)進(jìn)行行為和功能的描述,體現(xiàn)了不同的建模方法。</p><p><b>  1 行為描述方式</b></p><p>  行為描述是對(duì)系統(tǒng)的數(shù)學(xué)模型的抽象描述,它不考慮結(jié)構(gòu)體是如何具體實(shí)現(xiàn)的。在程序中可以采用

87、算術(shù)運(yùn)算、關(guān)系運(yùn)算、慣性延時(shí)和傳輸延時(shí)等難以或不能進(jìn)行邏輯綜合的VHDL語(yǔ)句。一般說(shuō),它主要用于系統(tǒng)數(shù)學(xué)模型的仿真或系統(tǒng)工作原理的仿真。</p><p><b>  2 RTL描述方式</b></p><p>  RTL是真正可以進(jìn)行邏輯綜合的描述方式,它介于行為描述和結(jié)構(gòu)描述之間。通過(guò)對(duì)系統(tǒng)的寄存器和總線的描述來(lái)說(shuō)明數(shù)據(jù)的傳輸方向,在仿真通過(guò)后利用邏輯綜合工具產(chǎn)生門

88、級(jí)網(wǎng)表,從而完成硬件設(shè)計(jì)。</p><p><b>  3 結(jié)構(gòu)描述方式</b></p><p>  結(jié)構(gòu)描述方式是在多層次的設(shè)計(jì)中,高層次的設(shè)計(jì)模塊調(diào)用低層次的設(shè)計(jì)模塊,或直接用門電路設(shè)計(jì)單元來(lái)構(gòu)造一個(gè)復(fù)雜的邏輯電路的描述方法。它描述的是子元件及之間的連線。它所描述的端口與硬件端口之間的對(duì)應(yīng)關(guān)系要比行為描述的端口與硬件端口的對(duì)應(yīng)關(guān)系更容易明白。它能提高設(shè)計(jì)效率,可以

89、將現(xiàn)有的設(shè)計(jì)成果方便地用到新的設(shè)計(jì)中去[12]。</p><p>  3.3 自上而下(TOP DOWN)的設(shè)計(jì)方法</p><p>  自上而下的設(shè)計(jì)方法是現(xiàn)代電子系統(tǒng)的新型設(shè)計(jì)策略,它從設(shè)計(jì)的總體要求出發(fā),自上而下地逐步從系統(tǒng)數(shù)學(xué)模型的設(shè)計(jì)與仿真,到數(shù)據(jù)流級(jí)的設(shè)計(jì)與仿真,選擇系統(tǒng)設(shè)計(jì)方案,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。VHDL的自上而下的設(shè)計(jì)方法不僅體現(xiàn)在它的基本結(jié)構(gòu)由描述外視特性的實(shí)體

90、與描述內(nèi)視行為和結(jié)構(gòu)的結(jié)構(gòu)體構(gòu)成,同一實(shí)體可以有一個(gè)以上的結(jié)構(gòu)體,以便設(shè)計(jì)方案的選擇,還體現(xiàn)在系統(tǒng)硬件設(shè)計(jì)過(guò)程的三個(gè)層次:行為級(jí)描述與仿真、RTL級(jí)描述與仿真、邏輯綜合與門級(jí)仿真。邏輯綜合與所使用的邏輯綜合工具有關(guān),由邏輯綜合優(yōu)化工具生成具體的門級(jí)邏輯電路的EDIF(Electronic Design Interchange Format)網(wǎng)表。EDIF網(wǎng)表是一種標(biāo)準(zhǔn)接口,它是一個(gè)以ASCII字符為基礎(chǔ)的中間互換格式,被大多數(shù)供應(yīng)商提供

91、的CAE/CAD系統(tǒng)所支持。半導(dǎo)體制造廠基于這種網(wǎng)表生成ASIC芯片的制造工藝,F(xiàn)PGA則基于這種網(wǎng)表生成用以配置FPGA芯片的位流文件。這三種仿真貫穿系統(tǒng)硬件設(shè)計(jì)的全過(guò)程,從而可以在系統(tǒng)設(shè)計(jì)早期發(fā)現(xiàn)設(shè)計(jì)中存在的問(wèn)題,與傳統(tǒng)的自下而上的后期仿真相比大大縮短系統(tǒng)的設(shè)計(jì)周期,并且利于方案的綜合評(píng)價(jià)與選取。這是</p><p>  4 電子密碼鎖的設(shè)計(jì)與仿真</p><p>  通過(guò)第一章電子密

92、碼鎖系統(tǒng)結(jié)構(gòu)的分析,我們知道通用的電子密碼鎖主要由三個(gè)部分組成:數(shù)字密碼輸入電路、密碼鎖控制電路和密碼鎖顯示電路。也就是說(shuō),設(shè)計(jì)分為三個(gè)大的功能模塊。圖4.1為數(shù)字電子密碼鎖系統(tǒng)總體框圖[13]。</p><p>  圖4.1 數(shù)字電子密碼鎖系統(tǒng)總體框圖[14]</p><p><b>  4.1 硬件設(shè)備</b></p><p>  作為電子

93、密碼鎖的輸入電路,數(shù)字密碼輸入電路可采用一個(gè)3×4的通用數(shù)字機(jī)械鍵盤作為本設(shè)計(jì)的輸入設(shè)備。機(jī)械式鍵盤具有低成本、可靠性高、構(gòu)成電路簡(jiǎn)單、技術(shù)成熟和應(yīng)用廣泛等特點(diǎn),因此將其應(yīng)用到通用電子密碼鎖中還是比較適宜的。</p><p>  數(shù)字電子密碼鎖的顯示信息電路可采用LED數(shù)碼管顯示和液晶屏幕顯示兩種。液晶顯示具有高速顯示、高可靠性、易于擴(kuò)展和升級(jí)等優(yōu)點(diǎn),但是普通液晶顯示屏存在亮度低、對(duì)復(fù)雜環(huán)境的適應(yīng)能力差

94、等缺點(diǎn),在低亮度的環(huán)境下還需要加入其它輔助的照明設(shè)備,驅(qū)動(dòng)電路設(shè)計(jì)相對(duì)復(fù)雜,因此本設(shè)計(jì)的顯示電路使用通用的LED數(shù)碼管。</p><p>  4.2 幾個(gè)主要功能模塊的設(shè)計(jì)</p><p>  4.2.1 密碼鎖輸入電路</p><p><b>  1.時(shí)序產(chǎn)生電路</b></p><p>  本時(shí)序產(chǎn)生電路中使用了三種

95、不同頻率的工作脈沖波形:系統(tǒng)時(shí)鐘脈沖(它是系統(tǒng)內(nèi)部所有時(shí)鐘脈沖的源頭,且其頻率最高)、彈跳消除取樣信號(hào)、鍵盤掃描信號(hào)。</p><p>  當(dāng)一個(gè)系統(tǒng)中需使用多種操作頻率的脈沖波形時(shí),最方便的方法之一就是利用一計(jì)數(shù)器來(lái)產(chǎn)生各種需要的頻率。也就是先建立一個(gè)N位計(jì)數(shù)器,N的大小根據(jù)電路的需求決定,N的值越大,電路可以分頻的次數(shù)就越多,這樣就可以獲得更大的頻率變化,以便提供多種不同頻率的時(shí)鐘信號(hào)。若輸入時(shí)鐘為CLK,N

96、位計(jì)數(shù)器的輸出為Q[N-1..0],則Q(0)為CLK的2分頻脈沖信號(hào),Q(1)為CLK的4分頻脈沖信號(hào),Q(2)為CLK的8分頻脈沖信號(hào)……Q(N-1)為CLK的2N分頻脈沖信號(hào);Q(5 DOWNTO 4)取得的是一個(gè)脈沖波形序列,其值依00-01-10-11-00-01周期性變化,其變化頻率為CLK的32分頻。我們利用以上規(guī)律即可得到各種我們所需要頻率的信號(hào)或信號(hào)序列。</p><p>  SIGNAL CL

97、K: STD_LOGIC ; --電路工作時(shí)鐘脈沖</p><p>  SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p>  --鍵掃信號(hào)“00-01-10-11”寄存器</p><p>  SIGNAL C_DEBOUNCE: STD_LOGIC ; --去抖時(shí)鐘信號(hào)</p><

98、p><b>  2.鍵盤掃描電路</b></p><p>  掃描電路的作用是用來(lái)提供鍵盤掃描信號(hào)的,掃描信號(hào)變化的順序依次為1110-1101-1011-0111-1110……依序的周而復(fù)始。掃描時(shí)依序分別掃描四列按鍵,當(dāng)掃描信號(hào)為1110時(shí)掃描KY3這一排按鍵;當(dāng)掃描信號(hào)為1101室,掃描KY2這一排按鍵;當(dāng)掃描信號(hào)為1011時(shí),掃描KY1這一排按鍵;當(dāng)掃描信號(hào)為0111時(shí),掃描K

99、Y0這一排按鍵。每掃描一排按鍵就檢查一次是否有鍵被按下,如果這排沒(méi)有按鍵被按下就忽略,反之,如果出現(xiàn)被按下的鍵則立刻進(jìn)行按鍵編碼的動(dòng)作,且將編碼的結(jié)果儲(chǔ)存于寄存器中。</p><p>  --掃描信號(hào)發(fā)生器 </p><p>  COUNTER : BLOCK IS</p><p>  SIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0);

100、 </p><p>  SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0); --1110-1101-1011-0111 </p><p><b>  BEGIN</b></p><p>  PROCESS (CLK_1K) IS </p><p><b&

101、gt;  BEGIN</b></p><p>  IF CLK_1K'EVENT AND CLK_1K ='1' THEN</p><p>  Q <= Q+1; </p><p><b>  END IF; </b></p><p>  C_DEBOUNCE <= Q(2

102、) ; --去抖時(shí)鐘信號(hào), 大約125 Hz </p><p>  C_KEYBOARD <= Q(6 DOWNTO 5) ; </p><p>  -- 產(chǎn)生鍵掃信號(hào)***“00-01-10-11”, 大約16 Hz</p><p>  --C_DEBOUNCE <= Q(1) ; --仿真時(shí)用 </p><

103、p>  --C_KEYBOARD <= Q(5 DOWNTO 4) ; --仿真時(shí)用</p><p>  CLK <= Q(0) ; </p><p>  END PROCESS; </p><p><b>  3.彈跳消除電路</b></p><p>  由于設(shè)計(jì)采用的矩陣式鍵盤是機(jī)械開關(guān)結(jié)構(gòu),因

104、此在開關(guān)切換的瞬間會(huì)在接觸點(diǎn)出現(xiàn)信號(hào)來(lái)回彈跳的現(xiàn)象,對(duì)于電子密碼鎖這種靈敏度較高的電路這種彈跳將很可能會(huì)造成誤動(dòng)作輸入,從而影響到密碼鎖操作的正確性。</p><p>  彈跳現(xiàn)象產(chǎn)生的原因是,雖然每次只是按下按鍵一次然后放掉,然而實(shí)際產(chǎn)生的按鍵信號(hào)卻不知跳動(dòng)一次,經(jīng)過(guò)取樣信號(hào)的檢查后,將會(huì)造成誤判斷,以為鍵盤按了兩次。</p><p>  圖4.2 彈跳現(xiàn)象產(chǎn)生錯(cuò)誤的抽樣結(jié)果 </

105、p><p>  如果調(diào)整抽樣頻率,彈跳現(xiàn)象就可以獲得改善。</p><p>  圖4.3 調(diào)整抽樣頻率后得到的抽樣結(jié)果</p><p>  因此必須加上彈跳消除電路,避免誤操作信號(hào)的發(fā)生。特別要注意的是,彈跳消除電路所使用的脈沖信號(hào)的頻率必須比其他電路使用的脈沖信號(hào)的頻率更高;通常將掃描電路的工作頻率定在24Hz左右,而將彈跳消除電路的工作頻率定在128Hz左右,其工作

106、頻率通常是前者的4倍或者更高。</p><p>  DEBOUNUING : BLOCK IS</p><p><b>  BEGIN</b></p><p>  U1: DEBOUNCING PORT MAP (D_IN => KEY_IN(0) , D_OUT => C(0), </p><p>  CL

107、K => C_DEBOUNCE); </p><p>  U2: DEBOUNCING PORT MAP (D_IN => KEY_IN(1) , D_OUT => C(1), </p><p>  CLK => C_DEBOUNCE); </p><p>  U3: DEBOUNCING PORT MAP (D_IN => KEY_I

108、N(2) , D_OUT => C(2), </p><p>  CLK => C_DEBOUNCE ); </p><p>  4.2.2 密碼鎖控制電路</p><p>  控制鎖的控制電路是整個(gè)電路的控制中心,主要完成對(duì)數(shù)字按鍵輸入和功能按鍵輸入的相應(yīng)控制。</p><p>  1.?dāng)?shù)字按鍵輸入的響應(yīng)控制</p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論