freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的鍵盤接口設(shè)計(jì)正文-在線瀏覽

2025-08-07 12:31本頁面
  

【正文】 e,硬件描述語言)的一種。由于VHDL電路描述語言所能涵蓋的范圍很廣,從ASIC(Application Specific Integrated Circuit,專用集成電路)的設(shè)計(jì)到PCB(Printed Circuit Board,印刷電路板)系統(tǒng)的設(shè)計(jì),VHDL電路描述語言都能派上用場(chǎng),所以VHDL語言毫無疑問地成為硬件設(shè)計(jì)工程師的必備工具[4]。除了含有許多方面具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級(jí)語言。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其它的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體[5]。具體特點(diǎn)如下:1) 與其它的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。2) VHDL豐富的仿真語言和庫函數(shù),使得在大規(guī)模集成電路設(shè)計(jì)的早期就能查驗(yàn)出設(shè)計(jì)系統(tǒng)的功能可行性,可隨時(shí)對(duì)設(shè)計(jì)進(jìn)行功能仿真、時(shí)序仿真,使設(shè)計(jì)者在設(shè)計(jì)初期就可以對(duì)整個(gè)工程設(shè)計(jì)的可行性作出決策,從而縮短了設(shè)計(jì)周期,減少了研發(fā)成本。重復(fù)利用他人的IP (Intelligence Property core,知識(shí)產(chǎn)權(quán)核,一種正式注冊(cè)產(chǎn)權(quán)的電路設(shè)計(jì))模塊和軟核(soft core)是VHDL的特色,設(shè)計(jì)不必各個(gè)都從頭再來,只要在更高的層次上把IP模塊利用起來,能達(dá)到事半功倍的效果。這種設(shè)計(jì)方式突破了傳統(tǒng)門級(jí)設(shè)計(jì)中的瓶頸,極大地減少了電路設(shè)計(jì)的時(shí)間和錯(cuò)誤發(fā)生率,降低了開發(fā)成本,縮短了設(shè)計(jì)周期。正因?yàn)閂HDL的硬件描述與具體的工藝和硬件結(jié)構(gòu)無關(guān),VHDL設(shè)計(jì)程序的硬件實(shí)現(xiàn)目標(biāo)器件有廣闊的選擇范圍。 VHDL的描述風(fēng)格在VHDL結(jié)構(gòu)體中,可以用不同的描述方式或者說是建模方法來表達(dá),通??蓺w納為行為描述、寄存器傳輸RTL(Registers Transfer Language)描述和結(jié)構(gòu)描述[7]。行為描述主要指順序語句描述,即通常是指含有進(jìn)程的非結(jié)構(gòu)化的邏輯描述。RTL描述是建立在用并行信號(hào)賦值語句(進(jìn)程)基礎(chǔ)上的,RTL描述能比較直觀地表達(dá)底層邏輯行為。結(jié)構(gòu)描述:結(jié)構(gòu)描述是基于元件例化或生成語句的應(yīng)用,表示元件間的互連,其風(fēng)格最接近實(shí)際的硬件結(jié)構(gòu)。1)實(shí)體實(shí)體(ENTITY)是VHDL設(shè)計(jì)中最基本的一個(gè)組成部分,VHDL表達(dá)的所有設(shè)計(jì)均與實(shí)體有關(guān)。實(shí)體的語法格式如下:ENTITY實(shí)體名IS [GENERIC (常數(shù)名:數(shù)據(jù)類型[:設(shè)定值])]; []表示可選項(xiàng); PORT (列出設(shè)計(jì)的所有輸入與輸出); END 實(shí)體名;2)結(jié)構(gòu)體所有能被仿真的實(shí)體都有結(jié)構(gòu)體(ARCHITECTURE)描述,它描述了實(shí)體的結(jié)構(gòu)或行為。在實(shí)際應(yīng)用中,為了兼顧整個(gè)設(shè)計(jì)的功能、資源、性能幾方面的因素,通?;旌鲜褂眠@三種描述方式。所謂現(xiàn)場(chǎng)可編程,是指用戶在自己的實(shí)驗(yàn)室內(nèi)編程[10]。它通常包含三類可編程資源:可編程邏輯功能塊,可編程I/O塊和可編程互聯(lián)網(wǎng)絡(luò)。不同廠家生產(chǎn)的FPGA在可編程邏輯塊的規(guī)模、內(nèi)部互連線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異,因而實(shí)現(xiàn)邏輯塊的規(guī)模、內(nèi)部互連線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異,因而實(shí)現(xiàn)邏輯功能的能力也不同。FPGA一般用于邏輯仿真。然后隨著電路規(guī)模的不斷增大,工作頻率的不斷提高,將會(huì)給電路引入許多分布參數(shù)的影響,而這些影響用軟件模擬的方法較難直接反映出來,所以有必要做硬件仿真。將軟件模擬后的線路經(jīng)一定處理后下載到FPGA,就可很容易地得到一個(gè)模型機(jī),根據(jù)這個(gè)模型機(jī),設(shè)計(jì)師就可很直觀地測(cè)試其邏輯功能及性能指標(biāo)。FPGA門陣列中的每個(gè)節(jié)點(diǎn)不像CPLD是單獨(dú)的門,而是用門、觸發(fā)器等做成的邏輯單元,并在各個(gè)單元之間預(yù)先制作了許多連線,所謂編程,就是安排邏輯單元與這些連線之間的關(guān)系,依靠連接點(diǎn)的合適配置,實(shí)現(xiàn)各邏輯單元之間的互聯(lián)[11]。但是互連復(fù)雜。它也有自身的局限性,其一就是器件規(guī)模的限制,其二就是單元延遲比較大。這樣就增加了設(shè)計(jì)的難度。在了解FPGA結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,就可以利用VHDL語言描寫出高效的電路描述實(shí)現(xiàn)性能優(yōu)化的電路[12]。設(shè)計(jì)輸入通常采用圖形輸入和VHDL文本輸入方式。描述器件總功能的模塊放在最上層,稱頂層設(shè)計(jì);描述器件最基本功能的模塊放在最低層,稱低層設(shè)計(jì);一般在頂層設(shè)計(jì)中采用圖形輸入法來描述模塊連接關(guān)系;在低層設(shè)計(jì)中采用HDL文本輸入法描述模塊的邏輯功能。在編譯過程中生成一系列標(biāo)準(zhǔn)文件可進(jìn)行時(shí)序模擬、適配等。3)項(xiàng)目校驗(yàn)完成對(duì)設(shè)計(jì)的功能、時(shí)序仿真及進(jìn)行時(shí)序分析、寄存器性能分析。由FPGA的設(shè)計(jì)流程可知,采用VHDL語言進(jìn)行FPGA設(shè)計(jì)或利用FPGA進(jìn)行ASIC前端設(shè)計(jì)的功能驗(yàn)證,主要工作是系統(tǒng)模塊的劃分、對(duì)各個(gè)模塊RTL(Registers Transfer Language)級(jí)可綜合VHDL語言的描述、功能及時(shí)序的仿真,至此僅完成了系統(tǒng)軟件上的仿真。2 行列式鍵盤介紹為了減少鍵盤與單片機(jī)接口時(shí)所占用I/O口線的數(shù)目,在鍵數(shù)較多時(shí),通常都將鍵盤排列成行列矩陣式,行列式鍵盤又叫矩陣式鍵盤。例如用2*2的行列結(jié)構(gòu)可以構(gòu)成4個(gè)鍵的鍵盤,4*4的行列結(jié)構(gòu)可以構(gòu)成有16個(gè)鍵的鍵盤。行列式鍵盤的電路原理圖如圖3所示 圖3 行列式鍵盤電路原理圖按鍵設(shè)置在行列線交叉點(diǎn),行、列線分別連接到按鍵開關(guān)的兩端。行線與按鍵的一個(gè)引腳相連,列線與按鍵的另一個(gè)引腳相連。其方法是依次給行線送低電平,檢查列線的輸入。設(shè)行掃描信號(hào)為keydrv3~keydrv0,列線按鍵輸入信號(hào)keyin3~keyin0與按鍵位置的關(guān)系如表1所示。同時(shí)還必須有按鍵譯碼電路從keydrv3~keydrv0信號(hào)和keyin3~keyin0信號(hào)中譯碼出按鍵的鍵值。由于各個(gè)模塊需要的時(shí)鐘頻率是不一樣的,因此時(shí)鐘產(chǎn)生模塊就是用于產(chǎn)生各個(gè)模塊需要的時(shí)鐘信號(hào)。行列式鍵盤電路的FPGA實(shí)現(xiàn)主要解決三個(gè)問題,一是如何檢測(cè)是否有按鍵按下并防止采集到干擾信號(hào);二是在按鍵閉合時(shí)如何防止抖動(dòng);三是如何判斷為哪一個(gè)按鍵位動(dòng)作,并對(duì)其進(jìn)行譯碼。圖5 行列式鍵盤接口程序流程圖鍵盤掃描電路是用于產(chǎn)生keydrv3~keydrv0信號(hào),其變化的順序依次為1110→1101→1011→0111→……周而復(fù)始地掃描。更短的停留時(shí)間是沒有必要的,因?yàn)槿税存I的時(shí)間大約為10ms,不可能有更快的按鍵動(dòng)作發(fā)生;另外,更短的停留時(shí)間還容易采集到抖動(dòng)信號(hào),會(huì)干擾判斷。 圖6 鍵盤掃描電路外部接口 2鍵盤掃描電路的語言描述及仿真鍵盤掃描電路的VHDL語言描述見附錄1。該狀態(tài)機(jī)是一個(gè)onehot狀態(tài)機(jī),并且輸出值就是狀態(tài)機(jī)的狀態(tài),沒有通過一個(gè)邏輯電路來做輸出譯碼。其仿真波形如圖7所示。按鍵標(biāo)志產(chǎn)生電路是產(chǎn)生按鍵標(biāo)志信號(hào)keypressed的電路。其外部接口如圖8所示。clk在系統(tǒng)中的頻率是最高的,其它時(shí)鐘都由有它分頻產(chǎn)生;clk_scan是用于產(chǎn)生掃描信號(hào)的時(shí)鐘信號(hào)的,周期為10ms。該信號(hào)用于與其它模塊握手,負(fù)責(zé)通知其它模塊鍵盤上有按鍵發(fā)生。functionkey信號(hào)是表明按鍵是否為功能鍵(鍵A、B、C、D、E和F為功能鍵)的。當(dāng)按鍵是功能鍵時(shí),functionkey為高電平,否則為低電平。該程序中有三個(gè)進(jìn)程,第一個(gè)進(jìn)程負(fù)責(zé)譯碼,值得注意的是WHEN OTHER語句中有沒有對(duì)temp_pressed和keyvalue信號(hào)賦值,這相當(dāng)于不改變temp_pressed和keyvalue信號(hào)的值,即實(shí)現(xiàn)了鎖存輸出。第二個(gè)進(jìn)程是負(fù)責(zé)按鍵標(biāo)志產(chǎn)生電路模塊,其敏感信號(hào)clk_scan是用于產(chǎn)生掃描信號(hào)的時(shí)鐘,周期為10ms。通過采樣后,抖動(dòng)噪聲被消除。這樣,一個(gè)長(zhǎng)時(shí)間的按鍵過程有可能被認(rèn)為是多次按鍵,通過這種方法使得一個(gè)長(zhǎng)時(shí)間的按鍵仍然被認(rèn)為是一次按鍵。該電路的仿真結(jié)果如圖9所示。時(shí)鐘產(chǎn)生模塊是用于產(chǎn)生掃描時(shí)鐘的,它的輸出提供給鍵盤掃描模塊和按鍵標(biāo)志產(chǎn)生模塊,其外部接口如圖10所示。它的輸出是周期為100ms的掃描時(shí)鐘。該程序主要包含有一個(gè)計(jì)數(shù)器模塊和一個(gè)譯碼輸出模塊,該程序是通過計(jì)數(shù)器模塊實(shí)現(xiàn)分頻的。這么大的分頻需要仿真時(shí)間太久。等到真正下載到電路上時(shí),就需要采用1200000分頻了。多輸入的組合邏輯電路中,某些輸入信號(hào)在理想情況下應(yīng)該同時(shí)發(fā)生變化,但由于延遲路徑不同造成這些輸入信號(hào)發(fā)生變化的時(shí)間有微小差別(門延遲時(shí)間量級(jí)),這時(shí)得到的輸出信號(hào)就會(huì)有毛刺,這些毛刺有可能會(huì)給下一級(jí)電路帶來問題,使得整個(gè)系統(tǒng)運(yùn)行不穩(wěn)定。在本程序中,譯碼器的輸入是計(jì)數(shù)器的輸出,計(jì)數(shù)器各級(jí)輸出延遲是不一樣的,因此譯碼器輸出clk_scan信號(hào)波形就會(huì)有毛刺。在本例中就是把計(jì)數(shù)器從二進(jìn)制碼改為格雷碼(Gray Code)計(jì)數(shù)器。這一特點(diǎn)就可以保證沒有毛刺產(chǎn)生[15]。本例中就是使用這種方法。在本例中這種延遲是允許的,然而在有些電路中延遲是不允許的。圖11 時(shí)鐘產(chǎn)生模塊仿真波形圖鍵盤接口電路的頂層電路比較簡(jiǎn)單,基本上只是把鍵盤掃描模塊、鍵盤譯碼且按鍵標(biāo)志產(chǎn)生模塊和時(shí)鐘產(chǎn)生模塊連接起來,其結(jié)構(gòu)如圖12所示。仿真波形如下圖13所示:圖13 鍵盤接口電路仿真波形4 結(jié)束語經(jīng)過幾個(gè)月的努力,我終于完成了對(duì)本論文的編寫。本文論述了基于FPGA的鍵盤接口設(shè)計(jì),先介紹VHDL和FPGA的相關(guān)知識(shí),然后以行列式鍵盤為例,介紹了行列式鍵盤的基本原理及其電路模塊的劃分,并詳細(xì)敘述了鍵盤掃描電路、鍵盤譯碼電路、按鍵標(biāo)志產(chǎn)生電路、時(shí)鐘模塊以及鍵盤頂層電路等四個(gè)模塊的原理及實(shí)現(xiàn)過程。由于本人的理論水平和實(shí)踐經(jīng)驗(yàn)有限,錯(cuò)誤在所難免,敬請(qǐng)給予批評(píng)和指正。首先在這里我要感謝我的指導(dǎo)老師劉強(qiáng),他不但給我論文思路上的提示,而且?guī)椭宜鸭舜罅康馁Y料,使我論文的原材料豐富而不復(fù)雜,同時(shí)他耐心的指導(dǎo)我們?cè)谟布蛙浖矫娴闹R(shí),才使我的論文比較順利的完成,他淵
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1