资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第10章数字系统的章数字系统的FPGAFPGA设计设计10.1 数字钟的FPGA设计10.2乐曲演奏电路FPGA设计10.3 多功能算术逻辑运算单元的EDA设计10.4数字系统设计课题数字系统是指由若干数字电路和逻辑部件构成的能够处理或传送、存储数字信息的设备数字系统通常可以分为三个部分,即系统输入输出接口、数据处理器和控制器。数字系统结构框图如图10-1所示。10.1.1设计要求数字钟功能:数字钟的时间为24小时一个周期;数字钟须显示时、分、秒;校时功能:可以分别对时、分、秒进行单独校时,使期调整到标准时间;扩展功能:整点报时系统。设计报整点报时电路,每当数字钟计时59分50秒时开始报时,并发出鸣叫声,到达整点时鸣叫结束,鸣叫频率为100Hz。10.1.2系统组成方框图 手动校时模式选择基准时钟 1kHz主体电路时、分秒计数器模块动态显示系统复位报时模块扬声器10.1.3 数字钟的层次化设计方案根据上述功能,可以把多功能数字式电子钟系统划分为三部分:时钟源(即标准秒钟的产生电路),时分秒计数器模块、数字钟模块、校时模块、数字秒表模块、闹钟和整点报模块。 时分秒计数器模块时分秒计数器模块由秒个位、十位计数器、分个位、十位计数及时个位、十位计数电路构成。其中:秒个位和秒十位计数器、分个位和分十位计数为六十进制计数器,而根据设计要求时个位和时十位构成的为二十四进制计数器。六十进制计数器 图10-5为六十进制计数器模块的原理图,由前面的分析知分和秒计数器都是模M=60的计数器,其规律为0001585900,此底层计数器模块的设计中保留了一个计数使能端CEN、异步清零端Clrn和进位输出端Tc,这三个引脚是为了实现各计数器模块之间进行级联,以便实现校时控制而预留的。六十进制计数器原理图 六十进制计数器仿真输出波形 时计数器模块的设计 时计数器模块由分和秒级使能,每小时只产生一个脉冲。当该条件满足时,74160的ENT变为高电平,即分和秒级为“59分59秒”。时计数器模块能计数和显示023小时.同样可用2片74160同步级联设计成二十四进制计数器。 时计数器模块原理图 二十四进制计数器仿真输出波形 模式计数译码器子模块设计 模式计数译码器子模块的输入数字种的功能设置键为Mode按钮,第1次按Mode按钮时为校秒状态, 按第2次为校分状态, 按第3次为校时状态,按第4次为计时状态,如此循环。刚刚通电时MODE=0为计时状态。 模式计数译码器子模块的原理图 模式计数译码器子模块的仿真输出波形 数字钟校时单元顶层电路模块设计 根据校时单元的功能特性,可利用时钟基准输出的100Hz信号自动校时,在功能设置键Mode按钮的选择下,拨动一个校时开关KEY后(KEY=1时开始校时;KEY=0时停止校时,100Hz信号分别作用于时分秒计数器,使之自动递增,直至增加到希望的值后,再将校时开关KEY拨回初始状态即可。 数字钟校时单元顶层电路模块设计 10.1.4 数字钟的顶层设计和仿真(1)数字钟的顶层设计输入 (2)仿真设计本设计中要仿真的对象为数字钟,须设定一个1KHZ的输入时钟信号和一个校时开关K2,模式的设置开关信号K1的波形,为了能够看到合适的仿真结果,所设计的输入信号的频率和实际的1HZ信号的频率是不同的,本设计中假定网格时间(Grid Size)为10ns,总模拟时间(END TIME)为1s。 顶层设计仿真 10.1.5硬件测试(1)1KHz接系统的clock0(接1KHz)(2) Alarm接时钟报警SPEAKER, (3)用键8、键5表示模式选择键和调整键,此两键所对应的目标芯片EP1C6的引脚分别是240、237。1确定引脚编号2引脚锁定根据第9章9.3节的流程即可完成引脚锁定工作。3编程下载和硬件测试10.2乐曲演奏电路FPGA设计10.2.1 设计要求在QuartusII中利用可编程逻辑器件,设计一个乐曲演奏电路。由键盘输入控制音响,同时可自动演奏乐曲。演奏时可选择键盘输入乐曲或者已存入的乐曲,并配以一个小扬声器。其结构如图10-23所示,该设计产生的音乐选自梁祝片段。 10.2.2 原理描述乐曲演奏电路主要由数控分频器和乐曲存储模块组成。数控分频器对演奏电路的基准频率进行分频,得到与各个音阶对应的频率输出。乐曲存储模块产生节拍控制和音阶选择信号,即在此模块中可存放一个乐曲曲谱真值表,由一个计数器来控制此真值表的输出,而由计数器的计数时钟信号作为乐曲节拍控制信号。10.2.3 乐曲硬件演奏电路的层次化设计方案乐曲硬件演奏电路分为三个模块:(1)音乐节拍发生器NoteTabs模块,(2)音符译码电路Tonetaba模块,(3)数控分频模块(speaker)。 10.2.3 乐曲硬件演奏电路的层次化设计方案(1)音乐节拍发生器NoteTabs设计该模块将利用FPGA的片内ROM存放乐曲简谱真值表,由一个二进制计数器为乐曲数据存储器ROM的地址发生器。该计数器的计数频率为4Hz,即每一计数值的停留时间为0.25秒,随着NoteTab中计数器按4Hz的时钟频率作加法计数时,即随地址值递增时,乐曲数据ROM中的音符数据,将从ROM中的输出口输向音符译码电路Tonetaba,所存储乐曲就开始连续自然地演奏起来。 其设计流程如下:利用MegaWizard Plug-In Manager定制音符数据存储器musica1定制ROM模块的初始化数据文件data1.mif音乐节拍发生器NoteTabs的VHDL设计 10.2.3 乐曲硬件演奏电路的层次化设计方案(2)音符译码电路Tonetaba设计音符译码电路即音调发生器实际上是一个查表电路,放置21个音乐简谱对应的频率表,根据该表为数控分频模块(speaker)提供所发音符频率的初始值(该初始值可参照表10-2),而此数在数控分频模块入口的停留时间即为此音符的节拍数,不失一般性,VDHL程序中仅设置了“梁祝”乐曲全部音符所对应的音符频率的初始值,共16个,每个音符停留时间由音乐节拍发生器的时钟频率决定,在此为4Hz信号.10.2.3 乐曲硬件演奏电路的层次化设计方案(3)数控分频模块(speaker)设计数控分频器对演奏电路的基准频率进行分频,得到与各个音阶对应的频率输出。数控分频模块是由一个初值可变的13位加法计数器构成。该计数器的模为8192,当计数器计满时,产生一个进位信号FullSpkS,该信号就是用作发音的频率信号(其频率值参见表10-2)。在计数器的预置端给定不同的初值,其输出将产生不同的频率信号,频率信号初值Tone就是前级音符译码电路Tonetaba的输出,它计满所需要的分频比可由下式决定: Tone12.0+ 分频比=8192+进位信号FullSpkS 10.2.3 乐曲硬件演奏电路的层次化设计方案(3)数控分频模块(speaker)设计结合表10-2,分析式(10-5)可知,低音时,Tone值小,分频比大,进位信号SpkS的周期长,扬声器发出的声音低,Tone随音乐的乐谱而变化,自动控制分频比,从而实现数控分频,发生信号的频率与Tone成正比,这就是利用数控分频器自动演奏音乐的原理。10.2.4乐曲演奏电路顶层电路的设计和仿真根据图10-15的乐曲演奏电路示意图,可得图10-17所示的是顶层电路原理图。10.3 多功能算术逻辑运算单元的EDA设计10.3.1设计要求利用74181设计一个带进位控制的8位算术逻辑运算单元ALU_8,该算术逻辑运算单元具有16个数据通路,实现表10-4所示基本算术运算功能和逻辑运算功能。 10.3 多功能算术逻辑运算单元的EDA设计10.3.2 原理描述计算机的一个最主要功能就是处理各种算术和逻辑运算,该功能要由CPU中的运算器来完成。运算器也称算术逻辑运算单元(ALU)。其主要功能包括:执行数值数据的算术加减乘除等运算,执行逻辑数据的与或非等逻辑运算, 暂时存放参加运算的数据和中间结果,由多个通用寄存器来承担。 运算器通常也是数据传输的通路 。 10.3 多功能算术逻辑运算单元的EDA设计10.3.2 原理描述 根据设计要求,可得带进位控制的8位算术逻辑运算单元的结构框图如图10-19所示。其中8位ALU运算器模块,是利用2片4位ALU芯片74181级联构成的8位字长ALU。 10.3.3多功能算术逻辑运算单元层次化设计方案 1ALU运算器模块ALU_8的设计10.3.3多功能算术逻辑运算单元层次化设计方案 216路通道计数模块CNT_16的设计CNT_16实际上为一模16的二进制计数器, 可利用QuartusII的兆功能设计向导 MegaWizard Plug-In Manager定制模16的二进制计数器,定制时设clock为计数输入脉冲,q3.0为计数的二进制数输出,供ALU_8选择不同的运算模式。10.3.3多功能算术逻辑运算单元层次化设计方案3数据寄存器模块REG_A_B数据寄存器模块REG_A_B的原理图如图10-21所示。为进行双操作数运算,运算器模块的两个8位数据由数据输入总线分别通过数据寄存器模块REG_A_B两个电平锁存器74373锁入。该模块的输入全部连在数据总线Data_bus7.0中,通过数据选择开关A0_B0,依次选择输出数据A7.0、B7.0给运算器模块ALU_8。10.3.4多功能算术逻辑运算单元的顶层设计和仿真根据10.3.2节的原理描述,可得到图10-22所示的多功能算术逻辑运算单元顶层电路的原理图。在QuartusII的图型编辑方式下,调出前面所设计的底层模块,即1片ALU运算器模块ALU_8,1片16路通道计数模块CNT_16,1片数据寄存器模块REG_A_B及相应的输入输出引脚,根据图10-37完成多功能算术逻辑运算单元顶层电路的原理图输入,电路连好线后,编译正确无误后,可得其仿真输出波形和元件符号如图10-23所示。多功能算术逻辑运算单元顶层电路原理图 仿真结果
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号