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