




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、福建农林大学金山学院信息工程类实验报告课程名称:EDA技术姓 名:系:信息与机电工程系专 业:电子信息工程年 级:学 号:指导教师:职 称:年 月 日 实验项目列表序号实验项目名称成绩指导教师1实验一Quartus II 9.0软件的使用2实验二 用文本输入法设计2选1多路选择器3实验三 用文本输入法设计7段数码显示译码器4实验四 用原理图输入法设计8位全加器5实验五 乐曲硬件演奏电路的设计67891011121314151617181920实验一 Quartus II 9.0软件的使用1实验目的和要求 本实验为验证性实验,其目的是熟悉Quartus II 9.0软件的使用,学会利用Quart
2、us II 9.0软件来完成整个EDA开发的流程。2实验原理利用VHDL完成电路设计后,必须借助EDA工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理后,才能使此项设计在FPGA上完成硬件实现,并得到硬件测试,从而使VHDL设计得到最终的验证。Quartus II是Altera提供的FPGA/CPLD开发集成环境,包括模块化的编译器,能满足各种特定设计的需要,同时也支持第三方的仿真工具。3主要仪器设备(实验用的软硬件环境)实验的硬件环境是:微机一台GW48 EDA实验开发系统一套电源线一根十芯JTAG口线一根USB下载线一根USB下载器一个实验的软件环境是:Quartus II
3、9.0软件4操作方法与实验步骤利用Quartus II 9.0软件实现EDA的基本设计流程:创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真。利用Quartus II 9.0软件实现引脚锁定和编译文件下载。利用Quartus II 9.0软件实现原理图输入设计文件的编辑和产生相应的原理图符号元件。5实验内容及实验数据记录1)新建工程(文本输入法)2)新建工程(原理图输入法)3)编译工程选择如上菜单栏中的选项或者可通过Processing->Start Complacation进行编译工程。4)时序仿真选择如上菜单栏中的选项或者可通过Processing->Start
4、Complacation进行编译工程。5)下载程序Tools-Programmer6实验数据处理与分析1)任何一项设计都是一项工程(实验三中半加器、一位全加器以及8位全加器的设计都应该新建工程,不可在同一个工程中进行设计),不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。2)新建一个文件夹时应特别注意文件夹名不能用中文,最好也不要用数字。2)编译工程结果将提示是否有错误或是警告,错误需要修改,警告则根据具体情况进行修改。(常见警告一个是未定义的引脚模式-改为输入高电阻模式,另一个则是引脚未锁定,可在下载程序前再进行锁定)3)时序仿真时候步骤:A、File-ne
5、w file->vector waveform file:新建波形文件B、在波形文件下,右键单击选择Insert node or bus.进行节点的添加C、Assignments-Setting-Simulator Setting:选择功能仿真functionalD、电击仿真按钮进行仿真分析。时序仿真时候注意点:l 设置仿真时间区域。对于时序仿真来说,将仿真时间轴设置在一个合理的短时间区域上十分重要。(由后续试验验证了此结论)通常设置的时间范围在数十微妙之间:选择Edit->End Timel 文件后缀名:.vwf4)下载程序前应连接好下载线,开启电源,确保连线可用(我的电脑-)管
6、理-设备管理器-串行通信端口);其次在打开窗口中单击Hardware Setup,选择对应项;最后单击START进行下载,右上角有相关的下载进度提示,当提示为100%时候表示下载成功。7质疑、建议、问题讨论通过本次实验,对Quartus II 9.0软件有了初步的认识,在实验的基础上基本掌握了利用Quartus II 9.0软件实现EDA的基本设计流程:创建工程、编辑文本输入设计文件、编译前设置、全程编译、功能仿真等。实验二 用文本输入法设计2选1多路选择器1实验目的和要求本实验为综合性实验,综合了简单组合电路逻辑、QuartusII的使用方法、多层次电
7、路设计、仿真和硬件测试等内容。其目的是熟悉QuartusII的VHDL文本设计流程全过程。2实验原理2选1多路选择器真值表sabyLL×LLH×HH×LLH×HH3主要仪器设备(实验用的软硬件环境)实验的硬件环境是:微机一台GW48 EDA实验开发系统一套电源线一根十芯JTAG口线一根USB下载线一根USB下载器一个实验的软件环境是:Quartus II 9.0软件4操作方法与实验步骤首先利用QuartusII完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测试等步骤,然后进行仿真。最后在实验系统上进行硬件测试,实际验证本项实验的功能。将
8、设计好的2选1多路多路选择器看成是一个元件mux21a,利用元件例化语句描述下图,并将此文件放在同一目录E:muxfile中。5实验内容及实验数据记录(1)程序设计ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; ELSE y <= b ;END IF; END PROCESS;END ARCHITECTUR
9、E one ;(2)软件编译(3)仿真波形图(4)硬件测试结果将程序下载到实验板,按下K1键可以得到不同的鸣叫效果。改变频率的选择,可以改变蜂鸣器的鸣叫效果。6实验数据处理与分析(1)程序分析1、一般的,可综合的,即能将VHDL程序编译成可实现的电路端口模式有如下四种:IN(输入端口),OUT(输出端口),INOUT(双向端口),BUFFER(缓冲端口),本二选一实验的实体中定义三个输入引脚分别为:a、b、s和一个输出引脚y,四个引脚的数据类型均为bit.2、使用VHDL描述语句实现功能当s=0时候选择输入a,当s=1时候选择输入b,即实现二选一的功能。(2)仿真分析从时序仿真结果中观察可以发
10、现,实验结果符合预期结果,但是有一定的延时。(3) 硬件测试分析引脚锁定:选择模式5ABSYPin93161129由实验结果可发现实验结果符合预期结果。7质疑、建议、问题讨论 在仿真时,通过设定a、b不同的输入,是在输出到扬声器时会有声音的不同以区别,从而通过键1对S的控制测试实验结果。实验中应注意a、b所接引脚的选择,另在实验中clock0及clock5的频率是可以自由选择的,但注意要正确选择频率以保障在输出时频率在人耳课接受的范围内。 实验三 用文本输入法设计7段数码显示译码器1实验目的和要求本实验为综合性实验,综合了简单组合电路逻辑,QuartusII的使用方法,多层次电路设计、仿真和硬
11、件测试等内容。其目的是熟悉QuartusII的VHDL文本设计流程全过程。2实验原理7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。7段数码显示译码器的输出信号LED7S的7位分别接共阴7段数码管的7个段,高位在左,低位在右。例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。注意
12、,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,此时实体说明中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)应改为(7 DOWNTO 0)。3主要仪器设备(实验用的软硬件环境)实验的硬件环境是:微机一台GW48 EDA实验开发系统一套电源线一根十芯JTAG口线一根USB下载线一根USB下载器一个实验的软件环境是:Quartus II 9.0软件4操作方法与实验步骤利用QuartusII完成7段数码显示译码器的文本编辑输入(decl7s.vhd)和仿真测试等步骤,最后在实验系统上进行硬件测试,实际验证本项实验的功能。5实验内容及实验数据记录(1)程序设
13、计LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DECL7S IS PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ; ARCHITECTURE one OF DECL7S IS BEGIN PROCESS( A ) BEGIN CASE A IS WHEN "0000" => LED7S <= "0111111" ; WHEN "0001&
14、quot; => LED7S <= "0000110" ; WHEN "0010" => LED7S <= "1011011" ; WHEN "0011" => LED7S <= "1001111" ; WHEN "0100" => LED7S <= "1100110" ; WHEN "0101" => LED7S <= "1101101" ; WHEN &
15、quot;0110" => LED7S <= "1111101" ; WHEN "0111" => LED7S <= "0000111" ; WHEN "1000" => LED7S <= "1111111" ; WHEN "1001" => LED7S <= "1101111" ; WHEN "1010" => LED7S <= "1110111"
16、; ; WHEN "1011" => LED7S <= "1111100" ; WHEN "1100" => LED7S <= "0111001" ; WHEN "1101" => LED7S <= "1011110" ; WHEN "1110" => LED7S <= "1111001" ; WHEN "1111" => LED7S <= "11
17、10001" ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ;(2)时序编译1)时序编译出错2)修改后正确(3)仿真波形图(4)硬件测试流程及其结果1)显示出现乱码 2)正确显示07 6实验数据处理与分析(1)程序分析1)程序定义74位的输入端口A和7位的输出端口LED7S。2)输入和输出的对应关系如下:INPUTOUTPUT000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F(2)仿真分析由时序仿真的结果可以观
18、察发现符合预期结果。(3)硬件测试分析引脚锁定:选择模式6NODE PinALED7S键8(A3)键7(A2)键6(A1)键5(A0)LED7S(0-7)Pin36353433105、103、99、98、97、96、85硬件显示不规则数字原因:LED7S数码管引脚锁定反向,改正后可正常显示07如上所示,其中引脚8无法控制实现最终结果。修改为其他引脚仍不可显示正常结果(目前原因未知)7质疑、建议、问题讨论1)不管是工程的建立或者是时序仿真以及下载调试中的每一个步骤都要完成,本次实验中就由于少了一个步骤而提示编译出错。2)硬件测试过程中键8为什么无法控制显示?是硬件问题还是软件问题?根据检查结果,
19、软件引脚配置没有问题,猜测可能是硬件上出现一些问题。实验四 用原理图输入方法设计8位全加器1实验目的和要求 本实验为综合性实验,综合了简单组合电路逻辑、QuartusII的原理图输入方法、 层次化设计的方法等内容。其目的是通过一个8位全加器的设计熟悉EDA软件进行电子线路设计的详细流程。学会对实验板上的FPGA/CPLD进行编程下载,硬件验证自己的设计项目。2实验原理1位全加器可以用两个半加器及一个或门连接而成,半加器原理图的设计方法很多,我们用一个与门、一个非门和同或门(xnor为同或符合,相同为1,不同为0)来实现。先设计底层文件:半加器,再设计顶层文件全加器。(1) 半加器的设计: 半加
20、器表达式:进位:co=a and b 和:so=a xnor ( not b ) 半加器原理图如下:(2) 全加器的设计:全加器原理图如下:(3) 8位全加器的设计:8位全加器原理图如下:3主要仪器设备(实验用的软硬件环境)实验的硬件环境是:微机一台GW48 EDA实验开发系统一套电源线一根十芯JTAG口线一根USB下载线一根USB下载器一个实验的软件环境是:Quartus II 9.0软件4操作方法与实验步骤按照以上介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设置成一个硬件符号入库。建立一个更高的原理图设计层次,利用
21、以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真、硬件测试。5实验内容及实验数据记录1)半加法器原理图及生成的器件 2)全加法器原理图 3)8位加法器原理图4)半加器时序仿真5)全加器时序仿真6)8bit加法器仿真7)编译结果8) 硬件测试结果6实验数据处理与分析(1)原理分析l 半加器表达式:进位:co=a and b 和:so=a xnor ( not b )l 8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,实验用VHDL先设计一个半加器,由半加器组成一位全加器,然后再利用一位全加器采用元件例化的方式实现加法器。l 半加器可以有多种表达方式,实验
22、使用逻辑门元件(电路原理图)构建了半加器电路实现了半加器。l 由电路设计可见一位全加器可以由两个半加器和一个或门连接而成。(2) 仿真分析由仿真结果可以观察得到如下结果:l 半加器仿真结果INPUTOUTPUTABCSum0000010110011110由分析结果可以得到sum是有a,b相加后得到的,但未有进位。当ain,bin都为0时,so为0;当ain,bin中有一个为1时,so为1,而这之前co都是为0,表明未进位。当ain,bin都为1时,此时so为0,co为1,表明已进位。l 全加器仿真结果INPUTOUTPUTABCinSumCout000000101010010110010010
23、0011101010111111当cin=0的情况下和半加器的结果是一样的,当cin=1时,若ain=0时,count=0;若ain=1时,count=1;由此可见半加器和全加器的设计是正确的。l 8bit仿真结果由仿真结果可以观察发现符合预期结果。(3) 硬件测试分析引脚锁定:选择电路模式1Node NameIN(a)IN(b)OUT-SumOUT-C键1键2键3键4D6D5D8Pin4、3、2、110、7、6、534、33、32、1138、37、36、3550、49、48、4742、41、40、3984由上图可以观察发现当输入为11和22时候输出得到33,输入为10和1时候得到输出11,同
24、样可以验证其他运算结果。7质疑、建议、问题讨论该实验在结果测试中出现了一些问题,如图中所示结果正确。而当两位加数的任意一个的低位为1时,会出现和的结果少加1的情况。如21+14即会出现和为34,而当使21变为22时结果便会正确显示。该问题未得到解决。在测试时还应当注意结果溢出的问题,因此要选择合适的测试数据。 实验五 乐曲硬件演奏电路的设计1实验目的和要求本实验为设计性实验。将VHDL硬件描述语言,简单组合电路逻辑QuartusII的使用等知识应用到实际硬件电路设计中。其目的是学会在EDA软件平台中利用VHDL硬件描述语言设计电路.设计要求利用数控分频器设计乐曲硬件演奏电路。2实验原理与利用微
25、处理器(CPU或MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。本实验设计项目是“梁祝”乐曲演奏电路的实现。我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。乐曲硬件演奏电路的顶层文件原理图如图5-1所示,主系统由3个模块组成: NoteTabs.vhd、ToneTaba.vhd和Speakera.vhd。其中,模块U1(NoteTa
26、bs)类似于弹琴的人的手指;模块U2(ToneTaba)类似于琴键;模块U3(Speakera)类似于琴弦或音调发声器。图5-1 乐曲硬件演奏电路的顶层文件原理图下面介绍图5-1的工作原理: 1、音符的频率可以由图4-1中的Speakera获得,这是一个数控分频器。由其clk端输入一具有较高频率(这里是12MHz)的信号,通过Speakera分频后由SPKOUT输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。Speakera对clk输入信号的分频比由11位预置数Tone10.0决定。SPKO
27、UT的输出频率将决定每一音符的音调,这样,分频计数器的预置值Tone10.0 与SPKOUT的输出频率,就有了对应关系。例如在TONETABA模块中若取Tone10.0=1036,将发音符为"3"音的信号频率。 2、音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定,图5-1中模块ToneTaba 的功能首先是为Speakera提供决定所发音符的分频预置数,而此数在Speakera输入口停留的时间即为此音符的节拍值。模块ToneTaba 是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发
28、生器模块NoteTabs的clk的输入频率决定,在此为4Hz。这13个值的输出由对应于ToneTaba 的4位输入值Index3.0确定,而Index3.0 最多有16种可选值。输向ToneTaba中Index3.0的值ToneIndex3.0的输出值与持续的时间由模块NoteTabs决定。3、在NoteTabs 中设置了一个8位二进制计数器(计数最大值为138),作为音符数据ROM的地址发生器。这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。例如,NoteTabs 在以下的VHDL逻辑描述中,“梁祝”乐曲的第一个音符为“3
29、”,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置值为1036,在Speakera 的输入端停留了1秒。随着NoteTabs 中的计数器按4Hz的时钟速率作加法计数时,即随地址值递增时,音符数据ROM 中的音符数据将从ROM中通过ToneIndex3.0端口输向ToneTaba模块,“梁祝”乐曲就开始连续自然地演奏起来了。3主要仪器设备(实验用的软硬件环境)实验的硬件环境是:微机一台GW48 EDA实验开发系统一套电源线一根十芯JTAG口线一根USB下载线一根USB下载器一个实验的软件环境是:Quartus II 9.0软件4操作方法与实验步骤首先给出该电路的各
30、个基本模块,再利用QuartusII完成各个模块的文本编辑输入和仿真测试等步骤。完成此项设计,并在EDA实验系统上的FPGA目标器件中实现之。5实验内容及实验数据记录1)输入NoteTabs.vhdl,编译、仿真,给出时序波形2)输入ToneTaba.vhdl,编译、仿真,给出时序波形3)输入Speakera.vhdl,编译、仿真,给出时序波形4) 建立硬件演奏电路顶层文件songer.vhdl,将以上4个vhdl文件拷贝进顶层文件所在目录,用元件例化语句和层次化设计方法,完成乐曲硬件演奏电路的设计,编译、仿真,给出时序波形,引脚锁定并下载进FPGA进行硬件测试Node NameCLK_8Hz
31、CLK_12MHzCODE3.0HIGH1SPKOUTPin179242414039111295)VHDL文本输入法时序仿真波形l 错误波形l 调试后得到正确波形2)硬件测试结果可以听到不同的蜂鸣器声音,改变CLK的选择项可以变换声音的频率。6 实验数据处理与分析1) VHDL语句功能l - 硬件乐曲演奏电路顶层设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer IS PORT ( CLK12MHZ : IN STD_LOGIC; -音调频率信号 CLK8HZ : IN STD_LOGIC; -节拍频率信号 CODE1 : OUT
32、 STD_LOGIC_VECTOR (3 DOWNTO 0);- 简谱码输出显示 HIGH1 : OUT STD_LOGIC; -高8度指示 SPKOUT : OUT STD_LOGIC );-声音输出 END;ARCHITECTURE one OF Songer IS COMPONENT NoteTabs PORT ( clk : IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ); END COMPONENT; COMPONENT ToneTaba PORT ( Index : IN STD_LOGIC_VECTOR
33、(3 DOWNTO 0) ; CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) ); END COMPONENT; COMPONENT Speakera PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC ); END COMPONENT; SIGNAL Tone : STD_LOGIC_VECTOR (1
34、0 DOWNTO 0); SIGNAL ToneIndex : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINu1 : NoteTabs PORT MAP (clk=>CLK8HZ, ToneIndex=>ToneIndex);u2 : ToneTaba PORT MAP (Index=>ToneIndex,Tone=>Tone,CODE=>CODE1,HIGH=>HIGH1);u3 : Speakera PORT MAP(clk=>CLK12MHZ,Tone=>Tone, SpkS=>SPKOUT );END;说
35、明:用vhdl文本输入法和元件例化语句完成硬件演奏电路顶层文件,SpkOut是经SpkS的最终的输出,决定所发出的每一音符的音调。音符不同,SpkOut的脉宽也不同,通过扬声器发出的声音也不同,因而可以演奏音乐,得到预期的效果。l -数控分频器设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD
36、_LOGIC );END;ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LOGIC;BEGINDivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN PreCLK <= '0' - 将CLK进行16分频,PreCLK为CLK的16分频 IF Count4>11 THEN PreCLK <= '1' Count4 := "0000" ELSIF
37、clk'EVENT AND clk = '1' THEN Count4 := Count4 + 1; END IF; END PROCESS;GenSpkS : PROCESS(PreCLK, Tone)- 11位可预置计数器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);BEGIN IF PreCLK'EVENT AND PreCLK = '1' THEN IF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS <= '1
38、9; ELSE Count11 := Count11 + 1; FullSpkS <= '0' END IF; END IF; END PROCESS; DelaySpkS : PROCESS(FullSpkS)-将输出再2分频,展宽脉冲,使扬声器有足够功率发音 VARIABLE Count2 : STD_LOGIC;BEGIN IF FullSpkS'EVENT AND FullSpkS = '1' THEN Count2 := NOT Count2; IF Count2 = '1' THEN SpkS <= '1&
39、#39; ELSE SpkS <= '0' END IF; END IF; END PROCESS;END;说明:完成Speakera.vhdl的设计,该模块是一个初值可变的加法计数器。该计数器的模为2047,当计数器记满时,计数器产生一个溢出信号FULL,此溢出信号就是用作发音的频率信号,由数控分频器模块的仿真波形Speakera.sim可知,由Tone10.0输入的分频预置数将clk输入的一较高频率(12MHz)的时钟信号进行分频,得到不同频率的输出FullSpkS,由于FullSpkS直接由数控分频器输出,是脉冲极窄的脉冲式信号,经内部增加一个D触发器后,可以得到展
40、宽脉冲后的SpkS。l -乐曲简谱码对应的分频预置数查表电路设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END;ARCHITECTURE one OF ToneTaba ISBEGIN Search
41、: PROCESS(Index) BEGIN CASE Index IS - 译码电路,查表方式,控制音调的预置数 WHEN "0000" => Tone<="11111111111" ; CODE<="0000" HIGH <='0'- 2047 WHEN "0001" => Tone<="01100000101" ; CODE<="0001" HIGH <='0'- 773; WHEN &qu
42、ot;0010" => Tone<="01110010000" ; CODE<="0010" HIGH <='0'- 912; WHEN "0011" => Tone<="10000001100" ; CODE<="0011" HIGH <='0'-1036; WHEN "0101" => Tone<="10010101101" ; CODE<=&q
43、uot;0101" HIGH <='0'-1197; WHEN "0110" => Tone<="10100001010" ; CODE<="0110" HIGH <='0'-1290; WHEN "0111" => Tone<="10101011100" ; CODE<="0111" HIGH <='0'-1372; WHEN "1000" =
44、> Tone<="10110000010" ; CODE<="0001" HIGH <='1'-1410; WHEN "1001" => Tone<="10111001000" ; CODE<="0010" HIGH <='1'-1480; WHEN "1010" => Tone<="11000000110" ; CODE<="0011"
45、HIGH <='1'-1542; WHEN "1100" => Tone<="11001010110" ; CODE<="0101" HIGH <='1'-1622; WHEN "1101" => Tone<="11010000100" ; CODE<="0110" HIGH <='1'-1668; WHEN "1111" => Tone<=&
46、quot;11011000000" ; CODE<="0001" HIGH <='1'-1728; WHEN OTHERS => NULL; END CASE; END PROCESS;END;说明:完成ToneTaba.vhdl的设计,此模块给数控分频模块提供每个音符所对应的分频预置数,即计数初值。由分频预置数查表电路模块的仿真波形可知,由Index3.0译码输出分频预置数,并通过Tone10.0输出给Speakera模块。与演奏发音相对应的简谱码由CODE通过数码管输出显示,HIGH1显示高八度音。l -音符数据ROM的地址发
47、生器设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END;ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC -音符数据ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock : IN STD_LO
48、GIC ; q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);END COMPONENT; SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0);BEGIN CNT8 : PROCESS(clk, Counter) BEGIN IF Counter=138 THEN Counter <= "00000000" ELSIF (clk'EVENT AND clk = '1') THEN Counter <= Counter+1; END IF; END PROCESS; u1 : MUSIC PORT MAP(address=>Counter , q=>ToneIndex, inclock=>clk); END;说明:用vhdl文本输入法和元件例化语句完成NoteTabs.vhdl的设计,该模块包含音符数据ROM模块Music.vhdl,由音符数据地址发生模块的仿真波形NoteTabs可知,随NoteTabs中的计数器按输入时钟cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地质灾害对市政工程的影响评估试题及答案
- 家具设计年终总结
- 国家中小学教育云平台建设与应用指南
- 水利水电工程管理试题及答案详解
- 记忆的心理健康教育教案
- 辅助2025年经济法考试复习计划试题及答案
- 解析2025年工程项目管理考试高频试题及答案
- 人工智能机器学习知识总结与测试卷
- 企业人才培训合同详细
- 畜牧养殖技术服务与购销合同
- 2024-2025部编版小学道德与法治二年级下册期末考试卷及答案
- 测井试题及答案完整版
- 山东某年产10万吨甲醇工程施工组织设计(土建 安装)
- 东南地区周代冶金考古研究新进展
- 白酒合作协议合同协议
- 中南大学毕业答辩学术论文模板
- 粪便检测在疾病诊断-全面剖析
- 第七章飞机重心与平衡裴娟64课件
- 如何提升护理队伍专业素质
- 2025高三一模浦东作文:生活中墙的意义与影响
- 国有企业内部审计工作制度
评论
0/150
提交评论