数字电子技术基础-第11章.ppt
《数字电子技术基础-第11章.ppt》由会员分享,可在线阅读,更多相关《数字电子技术基础-第11章.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第11章VHDL数字系统设计实例 11.1数字系统设计简介数字系统设计简介11.1.1数字系统的基本结构数字系统的基本结构数字系统由若干个数字电路和逻辑功能部件组成,它可以实现数据存储、传输和加工处理等复杂的逻辑功能。数字系统从逻辑上可划分为数据处理单元和控制单元两部分,其结构框图如图11.1.1所示。数据处理单元实现信息的存储、传输和加工处理等功能。控制单元根据外部控制信号和数据处理单元提供的当前状态信号,发出对数据处理单元的控制序列信号,在此控制序列信号的作用下,数据处理单元完成所规定的操作,并向控制单元输出变化后的状态信号,以表示当前的工作状态和数据处理结果。控制单元接收到状态信号后,再
2、发出下一步的控制序列信号,使数据处理单元执行新一轮的操作。第11章VHDL数字系统设计实例 图11.1.1数字系统的结构框图 第11章VHDL数字系统设计实例 11.1.2数字系统的基本设计方法数字系统的基本设计方法传统的数字系统设计多采用自底向上的方法,通常设计者选用标准的通用集成电路芯片和其他元器件,由底层逐级向上构成子系统和系统。其设计过程是:书面设计硬件安装、调试制作样机。这样设计的系统不仅所用元件的种类和数量多,功耗大,可靠性差,而且花费时间多,修改电路和交流设计思想都很不方便。第11章VHDL数字系统设计实例 EDA技术的发展和可编程逻辑器件的普及对数字系统硬件设计产生了很大的影响
3、,它改变了传统的设计思想,使人们可以利用EDA工具,通过芯片的设计来实现数字系统的功能。现代数字系统设计多采用自顶向下的方法。它是一种从抽象到具体,从高层次到低层次,逐步由粗到细的分层次、分模块的设计方法。设计者先将一个硬件系统划分成几个大的模块,设计出各大模块的行为(功能)或结构,并进行仿真以检验设计思想是否正确,然后将大的模块分给下一级设计者。由于自顶向下的设计能够在高层次完成,即一开始进行功能划分和结构设计时,就能通过仿真去检验系统设计思想是否正确,在早期就能发现设计中存在的错误,因而大大提高了系统的设计效率,缩短了设计周期。第11章VHDL数字系统设计实例 数字系统设计主要分系统设计和
4、逻辑设计两个阶段。数字系统的一般设计过程如下:(1)确定顶层系统的方案。这是设计过程的第一阶段,要求对设计任务进行透彻了解,并在此基础上决定设计任务和系统整体的功能、输入信号及输出信号。(2)描述系统功能,设计算法。第11章VHDL数字系统设计实例 描述系统功能是用符号、图形、文字、表达式等形式来正确描述系统应具有的逻辑功能和应达到的技术指标。设计算法是寻求一个解决问题的步骤,实质上是把系统要实现的复杂运算分解成一组有序进行的子运算。描述算法的工具有算法流程图、算法状态机图(ASM,Algorithmic stateMachine)、方框图、硬件描述语言等。在上述描述方法中,硬件描述语言是一种
5、最容易向计算机输入,由计算机自动处理的现代化方法。方框图用于描述数字系统的模型,是系统设计常用的重要手段,它可以详细描述系统的总体结构,并作为进一步设计的基础。第11章VHDL数字系统设计实例(3)根据算法选择电路结构。算法明确后,根据算法选择电路结构,并将系统划分为若干个子系统。若某部分规模仍然较大,则可进一步划分。划分后的多个部分应逻辑功能清楚,便于进行电路设计。(4)设计输入。描述系统功能的输入方式有多种,常用的有原理图输入法、硬件描述语言输入法、波形图输入法等。可以采用其中一种方法输入,也可以多种方法混合使用。(5)设计验证(仿真、测试)和设计实现。第11章VHDL数字系统设计实例 1
6、1.2数字系统设计实例数字系统设计实例11.2.1简易电子琴简易电子琴1.系统原理框图系统原理框图扬声器在不同频率的信号驱动下将发出不同的声音。本设计是利用实验板上的8个按键产生不同的音阶信号,按键不同时,不同的音阶信号产生不同频率的信号去驱动扬声器,从而实现电子琴的功能。根据音乐学理论,每两个8度音之间可分为12个半音,每两个半音之间的频率相差(=1.0599Hz)。若C调第一个音名do的频率定为261.63Hz,则各音名与频率以及2MHz时钟的分频系数的关系如表11.2.1所示。第11章VHDL数字系统设计实例 表表11.2.1音名与频率以及音名与频率以及2MHz时钟的分频系数的关系时钟的
7、分频系数的关系 第11章VHDL数字系统设计实例 简易电子琴的系统框图如图11.2.1所示,它由键盘编码器和时钟分频器组成。键盘编码器产生按键编码信号;时钟分频器产生不同的分频系数,将输入时钟频率分频至各音名对应的频率值,从而驱动扬声器发出该频率的声音。第11章VHDL数字系统设计实例 图11.2.1 电子琴系统框图 第11章VHDL数字系统设计实例 图11.2.2 电子琴顶层原理图 第11章VHDL数字系统设计实例 图11.2.2为实现简易电子琴的顶层原理图。其中,KEYBOARD模块实现对键盘的8-3编码,K7.0为键盘输入,SEL2.0为3位二进制编码输出,EN为使能输出信号(高电平有效
8、);MFREQ模块实现分频功能,CLK为时钟输入,当SEL2.0编码输入不同,且EN输入为高电平时,分频器产生不同的频率值,当SPK输出为1时扬声器响,否则静音。第11章VHDL数字系统设计实例 2.模块设计模块设计1)键盘编码器VHDL描述文件keyboard.vhd如下:library ieee;use ieee.stdlogic1164.all;use ieee.stdlogicunsigned.all;entitykeyboard isport(k:instdlogicvector(7 downto 0);8位键盘输入sel:outstdlogicvector(2 downto 0);
9、3位键盘编码输出en:outstdlogic使能输出);第11章VHDL数字系统设计实例 end keyboard;architecture arckeyboard ofkeyboard isbegin process(k)begincase k iswhen 11111110=sel=001;按键,产生编码 ensel=010;ensel=011;ensel=100;ensel=101;ensel=110;ensel=111;ensel=000;ensel=000;encountldcountldcountldcountldcountldcountldcountldcountldcountl
10、d=0111011101110;3822end case;end process;processbeginwait until clkevent and clk=1;-计数器同步清零if en=0thencount0);spk=1;第11章VHDL数字系统设计实例 当计数值小于countld/2时,spk=1,且加1计数elsif count(0&countld(12 downto 1)thencount=count+1;spk=1;当计数值大于countld/2且小于countld时,spk=0,且加1计数elsif countcountldthencount=count+1;spk=0;-
11、当计数值计到countld时,计数器清零,spk=1 else count0);spk=1;end if;end process;end arcmfreq;第11章VHDL数字系统设计实例 11.2.2用状态机设计的交通信号控制系统用状态机设计的交通信号控制系统1.设计任务设计任务设计一个十字路口交通控制系统,要求如下:(1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是40秒、5秒和45秒,交通灯运行的切换示意图和时序图分别如图11.2.3和图11.2.4所示。第11章VHDL数字系统设计实例 图11.2.3交通控制系统运行切换示意图 第11章VHDL数字系
12、统设计实例 图11.2.4交通控制系统的时序图 第11章VHDL数字系统设计实例(2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。(3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。第11章VHDL数字系统设计实例 2.原理分析原理分析本系统主要由分频器、计数器、控制器、倒计时显示器等电路组成。分频器将晶振送来的4MHz信号变为1Hz时钟信号;计数器实现总共90秒的计数,90秒也是交通控制系统的一个大循环;控制器控制系统的状态转移和红、黄、绿灯
13、的信号输出;倒计时显示电路实现45秒倒计时和显示功能。整个系统的工作时序受控制器控制,它是系统的核心。控制器的整个工作过程用状态机进行描述,其状态转移关系如图11.2.5所示。5种状态描述如下:第11章VHDL数字系统设计实例 s0:A方向绿灯亮,B方向红灯亮,此状态持续40秒的时间;s1:A方向黄灯亮,B方向红灯亮,此状态持续5秒的时间;s2:A方向红灯亮,B方向绿灯亮,此状态持续40秒的时间;s3:A方向红灯亮,B方向黄灯亮,此状态持续5秒的时间;s4:紧急制动状态,A方向红灯亮,B方向红灯亮,当紧急制动信号有效(hold=0)时进入这种状态。第11章VHDL数字系统设计实例 图11.2.
14、5交通控制系统的状态转移图 第11章VHDL数字系统设计实例 当紧急制动信号无效(hold=1)时,状态机按照s0s1s2s3s0循环;当紧急制动信号有效(hold=0)时,状态机立即转入s4,两个方向红灯全亮,计数器停止计数;当紧急制动信号再恢复无效时,状态机会回到原来的状态继续执行。第11章VHDL数字系统设计实例 3.电路设计电路设计交通控制系统顶层原理图如图11.2.6所示,它主要由4MHz分频器(DEVIDE4M)模块、控制器(CONTROL)、45秒倒计时计数器(M45)模块、7字段译码器(SEG7)模块组成。4MHz分频器和7段译码器的设计可参照例10.6.14和例10.6.4,
15、下面主要介绍控制器和倒计时计数器M45的设计方法。第11章VHDL数字系统设计实例 图11.2.6交通控制系统顶层原理图 第11章VHDL数字系统设计实例 1)控制器的设计控制器CONTROL的逻辑符号如图11.2.7所示。其中,CLK为时钟输入信号;HOLD为紧急制动信号;ARED、AGREEN、AYELLOW分别为东西方向驱动红灯、绿灯、黄灯指示的输出信号;BRED、BGREEN、BYELLOW分别为南北方向驱动红灯、绿灯、黄灯指示的输出信号。控制器按照图11.2.5所示的状态转移图控制系统的时序,即各方向红、绿、黄灯的亮、灭时间。第11章VHDL数字系统设计实例 图11.2.7控制器的逻
16、辑符号第11章VHDL数字系统设计实例 控制器的VHDL描述文件control.vhd如下:library ieee;use ieee.stdlogic1164.all;use ieee.stdlogicunsigned.all;entitycontrol is port(clk,hold:instdlogic;ared,agreen,ayellow,bred,bgreen,byellow:outstdlogic);end control;architecture behavior ofcontrol istype statetype is(s0,s1,s2,s3,s4);signal cur
17、rent state,next state:statetype;signalcounter:stdlogicvector(6 downto 0);第11章VHDL数字系统设计实例 beginsynch:processbeginwait until clkevent and clk=1;if hold=0then当紧急制动信号有效时,计数器停止计数counter=counter;else当紧急制动信号无效时,计数器进行周期为90s的计数if counter89thencounter=counter+1;elsecounter0);end if;end if;end process;第11章VHD
18、L数字系统设计实例 process状态机的状态转移描述beginwait until clkevent and clk=1;current stateifhold=0thennext state=s4;elseifcounter39thennext state=s0;第11章VHDL数字系统设计实例 elsenext stateif hold=0thennext state=s4;elseif counter44thennext state=s1;elsenext state 第11章VHDL数字系统设计实例 if hold=0thennext state=s4;elseifcounter84
19、thennext state=s2;elsenext stateif hold=0thennext state=s4;elseif counter89thennext state=s3;else 第11章VHDL数字系统设计实例 next stateif hold=0thennext state=s4;elseif counter39 thennext state=s0;elsif counter44 thennext state=s1;elsif counter84 thennext state=s2;elsif counter89 thennext stateared=0;agreen=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子技术 基础 11
限制150内