【正文】
NTO 0 ))。039。039。)THEN IF(COUNT0 =31)THEN COUNT=0。 3 WHEN 1=INDEX0=00000100。 8 WHEN 9=INDEX0=10000000。 5 WHEN 17=INDEX0=00010000。 5 WHEN 25=INDEX0=00010000。 ELSE INDEX0=INDEX2。ENTITY TONE IS PORT(INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0)。139。139。039。039。039。ENTITY FENPIN IS PORT( CLK1: IN STD_LOGIC。EVENT AND CLK1=39。 END IF。FULLSPKS=39。 PROCESS(FULLSPKS) VARIABLE COUNT2:STD_LOGIC:=39。THEN SPKS=39。END ART。 INDEX1: IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 END COMPONENT。 SPKS: OUT STD_LOGIC)。U2:FENPIN PORT MAP(CLK1=CLK32MHZ,TONE1=TONE2,SPKS=SPKOUT)。 COMPONENT FENPIN PORT(CLK1: IN STD_LOGIC。 INDEX2:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 HANDTOAUTO: IN STD_LOGIC。 END PROCESS。 IF COUNT2=39。 END IF。139。039。 BEGINPROCESS(CLK1) VARIABLE COUNT:INTEGER RANGE 0 TO 8。USE 。CODE=0000001。CODE=0001111。CODE=0100100。CODE=0000110。CODE=1001111。USE 。 2 WHEN 31=INDEX0=00000010。 2 WHEN 23=INDEX0=00000010。 1 WHEN 15=INDEX0=00000001。 5 WHEN 7=INDEX0=00100000。039。EVENT AND CLK2=39。139。 THEN COUNT: = 0。 CLK2: BUFFER STD_LOGIC。在課程設(shè)計(jì)的整個(gè)過程中,得到了肖曉麗老師的大力支持,在此感謝肖老師的精心指點(diǎn)。 SPKS: OUT STD_LOGIC)。 END COMPONENT。039。 BEGIN IF(PRECLK39。139。 數(shù)控分頻模塊在對(duì)計(jì)算機(jī)組成原理的學(xué)習(xí)中,我們知道數(shù)控分頻器的功能是在輸入端輸入不同數(shù)據(jù)時(shí),對(duì)輸入時(shí)鐘產(chǎn)生不同的分頻比,輸出不同頻率的時(shí)鐘,以改變輸出信號(hào)的頻率。HIGH=39。HIGH=39。HIGH=39。HIGH=39。 音調(diào)發(fā)生模塊音調(diào)發(fā)生模塊的作用是產(chǎn)生音階的分頻預(yù)置值。 3 WHEN 3=INDEX0=00000100。 圖 簡易電子琴的工作原理圖 簡易電子琴的工作流程圖 開始按鍵按下是否成功TO 初始化并開中斷允放 TO 中斷識(shí)別按鍵功能根據(jù)按鍵功能,裝入音符 T 到 TO 中啟動(dòng) TO 工作按鍵釋放是否成功?停止 TO 工作TO 中斷入口重裝 THO,TLO 初值 取反中斷返回圖 簡易電子琴的工作流程圖 簡易電子琴中各模塊的設(shè)計(jì)為了更清楚的了解電子琴的工作過程,我們利用 EDA 工具(本課程設(shè)計(jì)Max+plus)對(duì)各個(gè)模塊實(shí)施時(shí)序仿真(Timing Simulation),由自頂向下的設(shè)計(jì)方式,最后將三個(gè)模塊進(jìn)行整合,做出簡易電子琴整個(gè)系統(tǒng)的時(shí)序仿真圖。在這一步,將用到第(4)步生成的網(wǎng)表并根據(jù) CPLD/FPG 廠商的器件容量,結(jié)構(gòu)等進(jìn)行布局、布線。對(duì)于某些人而言,仿真這一步似乎是可有可無的。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分?,F(xiàn)在對(duì) EDA 的概念或范疇用得很寬。本系統(tǒng)功能比較齊全,有一定的使用價(jià)值。 。(2)通過課題設(shè)計(jì),掌握計(jì)算機(jī)組成原理的分析方法和設(shè)計(jì)方法。系統(tǒng)實(shí)現(xiàn)是用硬件描述語言 VHDL 按模塊化方式進(jìn)行設(shè)計(jì),然后進(jìn)行編程、時(shí)序仿真、整合。 利用 EDA 工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出 IC 版圖或 PCB 版圖的整個(gè)過程的計(jì)算機(jī)上自動(dòng)處理完成。除了含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語言。(2)VHDL 語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。(3)功能仿真。這一步的目的是生成用于燒寫的編程文件。本次設(shè)計(jì)中單片機(jī)晶振為 12MHZ,那么定時(shí)器的計(jì)數(shù)周期為 1MHZ,假如選擇工作方式 1,那 T 值便為 T= 2165﹡105/相應(yīng)的頻率 ,那么根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)數(shù)值,電子琴的具體工作原理圖如圖 所示。 3 WHEN 2=INDEX0=00000100。 END PROCESS。CODE=0010010。CODE=1001100。CODE=0100000。CODE=0000000。 END PROCESS。 IF COUNT=2 THEN PRECLK=39。PROCESS(PRECLK,TONE1) VARIABLE COUNT11:INTEGER RANGE 0 TO 2047。FULLSPKS=39。 INDEX0:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 TONE1: IN INTEGER RANGE 0 TO 2047。此課程設(shè)計(jì)也使我了解了VHDL 設(shè)計(jì)的方便靈活性,這是我們跨入計(jì)算機(jī)硬件行業(yè)很好的一次鍛煉。系統(tǒng)時(shí)鐘控制信號(hào) AUTO: INSTD_LOGIC。139。