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

正文內(nèi)容

基于cpld和fpga的簡(jiǎn)易電子琴設(shè)計(jì)-資料下載頁

2024-11-10 16:04本頁面

【導(dǎo)讀】了產(chǎn)品的推廣和適應(yīng)市場(chǎng)的能力。而且市場(chǎng)上大多電子琴靠傳統(tǒng)的硬件設(shè)計(jì)方法來實(shí)?,F(xiàn)其功能,這樣很難降低其成本。CPLD/FPGA技術(shù)的出現(xiàn)及迅速發(fā)展,為利用軟件。和邏輯單元靈活、集成度高以及適用范圍寬的特點(diǎn)。這兩種器件兼容了簡(jiǎn)單PLD和通。用門陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活。計(jì)和產(chǎn)品生產(chǎn)之中。的邏輯組成核心;輸入/輸出塊;連接邏輯塊的互連資源。連線資源是指由各種長(zhǎng)度的。CPLD/FPGA是近幾年集成電路中發(fā)展最快的產(chǎn)品。將復(fù)雜的專用芯片推向高端和超復(fù)雜應(yīng)用??删幊踢壿嬈骷廊皇羌呻娐分凶罹呋睢LD的歷史和發(fā)展,并將PLD技術(shù)和ASIC技術(shù)作了全面比較?;贓DA技術(shù)的FPGA/CPLD電路設(shè)計(jì)的基本流程及其常用的EDA工具。通過給出4×4矩陣鍵盤的原理,設(shè)計(jì)出適合電子琴特色的鍵盤。表及簡(jiǎn)譜產(chǎn)生電路的設(shè)計(jì),它對(duì)鍵盤輸出的信號(hào)進(jìn)行處理,產(chǎn)生音符的相關(guān)信息。第八章則是對(duì)整個(gè)系統(tǒng)的總匯,畫出了頂層設(shè)計(jì)文件,調(diào)試成功,便可以綜合下載到FPGA器件里了。

  

【正文】 ,輸出 keydrv[7..0]就 更新一次 狀態(tài),并且產(chǎn)生了 的輸出延時(shí),實(shí)現(xiàn)了該電路的邏輯功能。 鍵盤譯碼以及開關(guān)電路 鍵盤譯碼電路是從 K1 和 K2 和 keydrv[7...0]信號(hào)中譯碼出的按鍵值的電路,他的真值表如表 3 所示, index[3...0]是鍵值,范圍是 00001111, K3 是鍵盤的開關(guān),當(dāng) K3處于高電平時(shí),電路才能開始工作,如果處于低電平,則產(chǎn)生的頻 率為 0Hz,即不發(fā) 音,該模塊的外部接口如圖 46 所示 : 圖 46 該模塊的主要程序如下: temp=k2amp。k1amp。keydrv。 process(temp) begin if(k3=39。139。)then 當(dāng)按下鍵 K3 時(shí),查表并執(zhí)行以下動(dòng)作 case temp is when 0100000001=index=conv_std_logic_vector(0,4)。 按下‘ 1’鍵時(shí),把 0 轉(zhuǎn)化為 4 位的二進(jìn)制,并將它賦給 4 位信號(hào)總線 index[3...0] 2020 屆 電氣工程與自動(dòng)化畢業(yè)設(shè)計(jì) (論文) 19 when 0100000010=index=conv_std_logic_vector(1,4)。 when 0100000100=index=conv_std_logic_vector(2,4)。 when 0100001000=index=conv_std_logic_vector(3,4)。 when 0100010000=index=conv_std_logic_vector(4,4)。 when 0100100000=index=conv_std_logic_vector(5,4)。 when 0101000000=index=conv_std_logic_vector(6,4)。 when 0110000000=index=conv_std_logic_vector(7,4)。 when 1000000001=index=conv_std_logic_vector(8,4)。 when 1000000010=index=conv_std_logic_vector(9,4)。 when 1000000100=index=conv_std_logic_vector(10,4)。 when 1000001000=index=conv_std_logic_vector(11,4)。 when 1000010000=index=conv_std_logic_vector(12,4)。 when 1000100000=index=conv_std_logic_vector(13,4)。 when 1001000000=index=conv_std_logic_vector(14,4)。 when 1010000000=index=conv_std_logic_vector(15,4)。 when others=null。 多余態(tài)處理 end case。 else index=conv_std_logic_vector(0,4) 當(dāng) K3 鍵為未被按下時(shí),輸出 0 的 4 位二進(jìn)制數(shù) endif。 end process。 該電路的仿真結(jié)果如圖 47 所示: 圖 47 由圖 47 可知,當(dāng) K3 為高電平時(shí),且 K2 或者 K1 電平值有 變化時(shí),輸出隆?。夯?CPLD/FPGA的簡(jiǎn)易電子琴設(shè)計(jì) 20 INDEX[3..0]不停的跟 著 K2 和 K1 變化,并且產(chǎn)生了幾納秒的輸出延遲;當(dāng) K3 為低電平時(shí), K2, K1 以及 KEYDRV[7..0]輸入 無效,輸出 INDEX[3..0]始終為 0。通過對(duì)比真值表,證明該電路符合目的邏輯要求。 本章小結(jié) 本章介紹了數(shù)字電子 琴與外界通話的接口 —— 鍵盤,通過按鍵,告訴數(shù)字系統(tǒng)演奏者想彈出什么音符,于是鍵盤產(chǎn)生關(guān)于含有音階有關(guān)信息的代碼 Index[3....0],基于模塊化 ﹑ 層次化的思想,將鍵盤這個(gè)大模 塊的設(shè)計(jì)又細(xì)分為很多小模塊的設(shè)計(jì),然而各個(gè)模塊又含有很多的邏輯門,由于對(duì)于多個(gè)門電路的連接不熟悉,因此可以用一個(gè)“黑匣子”來表示,用簡(jiǎn)單的電路實(shí)現(xiàn)了復(fù)雜的 功能,體現(xiàn)了 VHDL 的優(yōu)點(diǎn),也保證了設(shè)計(jì)的正確性,將本章的幾個(gè)小模塊連起來,如圖 48 所示,組成了按鍵掃描電路設(shè)計(jì)的整個(gè)模塊。 圖 48 2020 屆 電氣工程與自動(dòng)化畢業(yè)設(shè)計(jì) (論文) 21 第五章 音符查表及簡(jiǎn)譜產(chǎn)生電路 音符查表及簡(jiǎn)譜產(chǎn)生電路的說明 音符查表以及簡(jiǎn)譜產(chǎn)生電路 tone_rom 完成音符查表和簡(jiǎn)譜碼產(chǎn)生。設(shè)計(jì)的播放器可以總共發(fā)出 16 個(gè)音(包括休止符),因此可以選擇表中任意 15 個(gè)音。為了減少發(fā)音的誤差,數(shù) 控的基準(zhǔn)頻率選擇 1MHZ 的等占空比脈沖信號(hào),數(shù)控分頻 器設(shè)計(jì)為 11 位的加法計(jì)數(shù) 器,其最大的計(jì)數(shù)值為 1607 方法,外加一個(gè) D 觸發(fā) 器以均衡其占空比,使發(fā)音更為清晰響亮,輸出 CODE 是音符的發(fā)音,輸出 HIGH 是發(fā)音 的高低指示 , 輸出 TONE 是輸出音符的分頻預(yù)置數(shù),分頻預(yù)置數(shù)公式如下:分頻預(yù)置數(shù) =2048基準(zhǔn)頻率 /( 2 音符頻率),本文中每個(gè)音符頻率是已知的,基準(zhǔn)頻率是 1MHz,這樣就可以依次算出每個(gè)音階對(duì)應(yīng)的分頻預(yù)置數(shù),例如高音 1 的音符頻率為 ,則可以計(jì)算出此時(shí)的分頻預(yù)置數(shù) =20481000000/( 2 ) ==,偏差為( ) / 100%=%,因?yàn)樾?shù)表示比較麻煩,在此設(shè)置中去整數(shù),設(shè)計(jì)中允許此偏差存在,然后將預(yù)置數(shù)用二進(jìn)制表示即可。 這樣在電路工作狀況下,當(dāng)有效的 Index[3...0]輸入時(shí),便產(chǎn)生 3 種帶有音階信息的輸出,他們的真值表見附錄程序。該模塊的接口電路如圖 51 所示: 圖 51 該模塊的主要程序如下: begin index1=conv_integer(index)。 將 index[3...0]表示的二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制并賦給 index1 tone=conv_std_logic_vector(tone1,11)。 將 tone1 轉(zhuǎn)化為 11 位的二進(jìn)制數(shù),并賦給 tone 隆健:基于 CPLD/FPGA的簡(jiǎn)易電子琴設(shè)計(jì) 22 code=conv_std_logic_vector(code1,4)。 search:process(index) begin case index1 is when 0=tone1=2047。code1=0。high=0000。 —— 0Hz( G 調(diào)標(biāo)準(zhǔn)頻率) when 1=tone1=773。code1=1。high=0000?!? when 2=tone1=912。code1=2。high=0000?!? when 3=tone1=1036。code1=3。high=0000?!? when 4=tone1=1092。code1=4。high=0000?!? when 5=tone1=1197。code1=5。high=0000?!? when 6=tone1=1290。code1=6。high=0000?!? when 7=tone1=1372。code1=7。high=0000。—— when 8=tone1=1729。code1=1。high=0010。—— 當(dāng)二進(jìn)制數(shù) index[3...0]表示的十進(jìn)制數(shù)為 8 時(shí), tone1=1729。code1=1。high=0010, when 9=tone1=1410。code1=1。high=0001?!? when 10=tone1=1480。code1=2。high=0001?!? when 11=tone1=1542。code1=3。high=0001?!? when 12=tone1=1570。code1=4。high=0001?!? when 13=tone1=1622。code1=5。high=0001?!? when 14=tone1=1699。code1=6。high=0001?!? when 15=tone1=1710。code1=7。high=0001。—— when others=null。 —— 當(dāng)輸入不變時(shí),保持以前狀態(tài) end case。 end process。 該電路的仿真結(jié)果如圖 52 所示 : 圖 52 由圖 52 可知,隨著輸入 INDEX[3..0]的變化, HIGN[3..0]和 CODE[3..0]也隨著變2020 屆 電氣工程與自動(dòng)化畢業(yè)設(shè)計(jì) (論文) 23 化,并且產(chǎn)生了分頻預(yù)置數(shù) TONE[10..0],在仿真圖中,為了方便觀察,他們的值都是以二進(jìn)制來表示的,而且該電路產(chǎn)生了 6 納秒的輸出延時(shí),通過 與附錄的真值表進(jìn)行對(duì)比,證明該電路符合目的邏輯要求。 本章小結(jié) 通過音符查表及 簡(jiǎn)譜 碼 產(chǎn)生電路,將 鍵盤的輸入信號(hào)進(jìn)行分析處理,并發(fā)出相關(guān)控制信號(hào),驅(qū)動(dòng)下級(jí)電路的工作,為驅(qū)動(dòng)揚(yáng)聲器和驅(qū)動(dòng)顯示器提供了有效的依據(jù),其中本電路輸出為 19 根數(shù)據(jù)總線,由電路圖可見,利用軟件大大的簡(jiǎn)化了電路,并達(dá)到了預(yù)期的目的, VHDL 的優(yōu)勢(shì)再次體現(xiàn)出來,為設(shè)計(jì)者提供了方便。 隆?。夯?CPLD/FPGA的簡(jiǎn)易電子琴設(shè)計(jì) 24 第六章 音符發(fā)聲器 音符查表及 簡(jiǎn)譜 碼 產(chǎn)生電路 tone_rom 完成音符查表和簡(jiǎn)譜碼產(chǎn)生。它的輸出一部分 tone[10...0]來作為音符發(fā)生器的輸入,如何設(shè)計(jì)一個(gè)電路,將送過來的不同預(yù)分頻值進(jìn)行處理,然后再產(chǎn)生音階對(duì)應(yīng)頻率成為音符發(fā)生器設(shè)計(jì)的關(guān)鍵問題,音符發(fā)生器的上一級(jí)電路里,已經(jīng)將分頻預(yù)置數(shù)轉(zhuǎn)化為了 11 位 二進(jìn)制,于是選擇數(shù)控分頻器,以tone[10...0]作為數(shù)控分頻器的輸入,這樣,就在輸入端給定 不同的 CLK 和分頻預(yù)置數(shù)時(shí),便可以得到不同的 SPKS 值。但是又一個(gè)問題產(chǎn)生了,分頻出來的信號(hào),占空比會(huì)發(fā)生很大的變化,這樣的信號(hào)送至揚(yáng)聲器,有時(shí)候揚(yáng)聲器會(huì)感應(yīng)不出來,那么就需要外加一個(gè)分頻器,所以可以經(jīng)過一個(gè) D 觸發(fā)器進(jìn)行二分頻,即將 信號(hào)的上升沿取反,兩種情況的對(duì)比圖入圖 61 所示, 圖 61 此外,由于音符發(fā)生器是時(shí)序電路,所以需要加一個(gè)時(shí)鐘脈沖,由于外部時(shí)鐘是5MHz 了,工程中規(guī)定,超過 3MHz 就已經(jīng)是高頻了,這樣高的頻率時(shí)鐘不適合電路工作,所以還要引入時(shí)鐘分頻電路,產(chǎn)生頻率合適的時(shí)鐘信號(hào),由于 FPGA 對(duì)時(shí)鐘跳變沿的判斷的精確性,故這種分頻的方法是可取的,本文的基準(zhǔn)頻率是 1MHz, 本 文需要在這里產(chǎn)生 5 分頻。 最后,通過 SPKS 輸出對(duì)應(yīng)音符的頻率去驅(qū)動(dòng)揚(yáng)聲器發(fā)出聲音。 該模塊又由分頻電路,數(shù)控分頻器,二分頻器和揚(yáng)聲器構(gòu)成,其 4 者的連接圖如圖 62 所示,由于這4 者聯(lián)系十分緊密,故可將 4 者融為一體來設(shè)計(jì),其總的模塊電路圖如 圖 63 所示。 圖 62 2020 屆 電氣工程與自動(dòng)化畢業(yè)設(shè)計(jì) (論文) 25 圖 63 該模塊的主要程序如下所示: architecture one of speaker is signal preclk:std_logic。 signal fullspks:std_logic。 signal tone1: integer range 0 to 167ff。 begin tone1=conv_integer(tone)。 divideclk:process(clk) variable count4:integer range 0 to 15。 begin preclk=39。039。 if count4=5 then preclk=39。139。 count4:=0。 elsif clk39。event and clk=39。139。 then count4:=count4+1。 end if。 end process。 genspks:process(preclk,tone1) variable count11: integer range 0 to 167ff。 begin if preclk39。event and preclk =39。139。 then if count11 =167ff then count11:=tone1。 —— 當(dāng) count11 計(jì)數(shù)器計(jì)滿時(shí),輸入數(shù)據(jù) tone1 被同步預(yù)置給count11 隆?。夯?CPLD/FPGA的簡(jiǎn)易電子琴設(shè)計(jì) 26 fu
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1