《现代数字系统设计方法.pptx》由会员分享,可在线阅读,更多相关《现代数字系统设计方法.pptx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、现代数字系统设计方法从上至下(从上至下(from top to down):优点:优点:适合大规模数字系统系统设计,适合大规模数字系统系统设计,使得设计步骤之间相互联系越来使得设计步骤之间相互联系越来越紧密、协调,以求数字系统获越紧密、协调,以求数字系统获得良好的性能和正确的结果。得良好的性能和正确的结果。设计者从整个系统逻辑出发,进行最上层的系统设计,而后按一定的原则设计者从整个系统逻辑出发,进行最上层的系统设计,而后按一定的原则将全局系统分成若干子系统,逐级向下,再将每个子系统分为若干个功能模块、将全局系统分成若干子系统,逐级向下,再将每个子系统分为若干个功能模块、子模块、基本模块。子模块
2、、基本模块。第1页/共25页四、现代数字系统设计流程四、现代数字系统设计流程计算机辅助分析与设计(计算机辅助分析与设计(CAD)早期电子设计自动化(早期电子设计自动化(EDA)近期近期EDA工具工具从上层系统级开始,对电路功从上层系统级开始,对电路功能描述,从上至下地跨越各个能描述,从上至下地跨越各个层次完成整个设计。层次完成整个设计。近几年来,综合、验证等都由近几年来,综合、验证等都由EDA完成。完成。EDA软件还在优化、软件还在优化、发展,使从上至下的设计方法得发展,使从上至下的设计方法得到广泛的应用。到广泛的应用。第2页/共25页例:24进制数字钟的设计 下面讨论一个24进制数字钟系统,
3、用它了解从上至下的设计概念和方法。设计步骤:1.系统级分析,确定初步方案;2.将设计细分,进行模块划分;3.VHDL综合.一、24进制数字数字钟顶层设计 1.顶层方案设计 系统具有24小时计数显示(HH-MM-SS),并具有校时功能(时,分),附加要求能够实现闹钟功能(定时,闹响),以及提示功能(如校时的字符闪烁)。第3页/共25页输入电路:(1)开始进行计时前,需要对数字钟进行设置,因此需要一个setup键,用来选择系统的不同状态。(2)当数字钟进入校时或者闹钟定时状态后,需要调整时间,需设置一个adjust键。(3)数字钟需要一个时钟脉冲信号给系统提供计时时基和系统其他部分所需的同步时钟。
4、(4)系统需要一个复位键以便恢复到初始状态和系统复位。第4页/共25页输出电路:(1)时间显示采用6位7段数码管,因此系统输出有7位段选LEDout0.6和3位位选信号SCAN0.2。(2)当闹钟定时到时,需要一个指示信号alarm。第5页/共25页数字钟工作过程如下:(1)系统复位后为正常计时状态,此时adjust键无效;(3)第二次按setup键,系统进入分钟设置状态。此状态下按adjust键进行分钟的校正。(4)第三次按setup键,系统键入闹钟小时部分设定状态,此时显示上次存储的闹钟时间,并可按adjust键设置新的闹钟的小时。(5)第四次按setup键,系统进入闹钟分钟部分设定状态,
5、并可按adjust键设置新的闹钟的分钟。(2)第一次按setup键,系统进入小时设置状态。此状态下按adjust键进行小时的校正。(6)第五次按setup键,系统回到正常计时状态。第6页/共25页二、顶层实体的VHDL程序第一步:为系统建立系统名。第二步:描述顶层的接口,包括输入信号、输出信号、信号方向、数据类型等。LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY digital_clock1 ISEND digital_clock1;PORT(setup_k:IN STD_LOGIC;adjust_k:IN STD_LOGIC;clk:IN ST
6、D_LOGIC;clr:IN STD_LOGIC;LEDout:OUT STD_LOGIC_VECTOR(0 to 6);SCAN:OUT STD_LOGIC_VECTOR(0 to 3);alarm:OUT STD_LOGIC);第7页/共25页三、顶层结构体的设计及VHDL实现 从上至下的精神是将系统划分为几个部分,如不同的功能模块。(1)首先系统需要一个分频模块,提供系统其他模块所需要的时钟信号。(2)其次,系统有一个控制模块,控制电子钟的不同模式之间的转换。(4)电子钟要显示时间,因此有一个显示模块。(3)电子钟需要进行计时,因此有一个计数模块。(5)按键消抖模块。第8页/共25页(1
7、)按键消抖模块。由于按键产生引起电平抖动,最好加入同步消抖电路。四、各个功能模块的具体分析按键消抖模块有哪些输入和输出信号?第9页/共25页四、各个功能模块的具体分析(续)(2)分频模块。系统需要几种时钟信号?分频模块有哪些输入和输出信号?第10页/共25页四、各个功能模块的具体分析(续)(3)控制模块。控制模块有哪些输入和输出信号?第11页/共25页四、各个功能模块的具体分析(续)(4)计时模块。计时模块有哪些输入和输出信号?第12页/共25页四、各个功能模块的具体分析(续)(5)显示模块。显示模块有哪些输入和输出信号?clk_dis没有在分频模块中产生!第13页/共25页四、各个功能模块的
8、具体分析(续)(6)修改相关模块。新建输出端口第14页/共25页(1)按键消抖电路Setup_k和adjust_k都需要一同步消抖电路,如右图所示:单个按键消抖VHDL程序如下:ENTITY ksy ISEND ksyPORT(A:IN std_logic;B:IN std_logic;C:OUT std_logic);ABCARCHITECTURE ksy_arc ksy ISCOMPONENT knand2 ISPORT(A,B:IN std_logic;C:OUT std_logic);END COMPONENT;SIGNAL T1,T2,T3,T4,T5,T6:std_logic;BE
9、GINT1T2T3T4T5T6U0:knand2 PORT MAP(A,T1,T2);五、各个功能模块的具体实现第15页/共25页(1)按键消抖电路(续)五、各个功能模块的具体实现(续)ENTITY key_debounce ISPORT(setup_k:IN STD_LOGIC;adjust_k:IN STD_LOGIC;clock_deb:IN STD_LOGIC;k_setup:OUT STD_LOGIC;k_adjust:OUT STD_LOGIC);END key_debounce;ARCHITECTURE key_arc OF key_debounce ISEND ARCHITEC
10、TURE;COMPONENT ksy IS PORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END COMPONENT;BEGIN U1:ksy PORT MAP(setup_k,clock_deb,k_setup);U2:ksy PORT MAP(adjust_k,clock_deb,k_adjust);第16页/共25页(2)分频模块电路五、各个功能模块的具体实现(续)LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY div_freq ISPORT(clk:IN STD_LOGIC;clr:IN STD_LOGIC
11、;clk_k:OUT STD_LOGIC;clk_control:OUT STD_LOGIC;clk_time:OUT STD_LOGIC;clk_change:OUT STD_LOGIC;ringtone1:OUT STD_LOGIC;ringtone2:OUT STD_LOGIC;clk_dis:OUT STD_LOGIC);END div_freq;ARCHITECTURE div_freq_architecture OF div_freq ISBEGINEND div_freq_architecture;用计数器来实现第17页/共25页(3)控制模块电路由状态机实现五、各个功能模块的具
12、体实现(续)设计要求设计要求抽象提炼抽象提炼系统运行方式系统运行方式功能状态状态转移图第18页/共25页(3)控制模块电路由状态机实现(续)五、各个功能模块的具体实现(续)闹分闹分/mode5计时计时/mode1校时校时/mode2校分校分/mode3闹时闹时/mode4数字钟运行流程数字钟运行流程状态转移由按键控制第19页/共25页(3)控制模块电路由状态机实现(续)五、各个功能模块的具体实现(续)ARCHITECTURE control_architecture OF control IStype states is(timing,changehour,changemin,setalarm
13、h,setalarmm);signal current_state,next_state:states;BEGINreg:process(clr,clk_control)begin if clr=1 then current_state=timing;elsif clk_controlevent and clk_control=1 then current_stateif k_setup=0 then next_state=changehour;else next_stateif k_setup=0 then output:process(current_state,k_adjust)begi
14、n case current_state is when timing=modeif k_adjust=0 then mode=110;else mode7段显示译码 位选译码位选译码 循环选择6位数码管 显示模块显示模块第22页/共25页六、24进制数字钟整体系统实现ARCHITECTURE digital_clock1_architecture OF digital_clock1 ISSignal BEGINU1:keydebounce PORT MAP();U2:div_freq PORT MAP();U3:control PORT MAP();U4:counter PORT MAP()
15、;U5:display PORT MAP();END digital_clock1_architecture;第23页/共25页小 结1.数字系统由控制电路和受控电路组成,控制电路受同一时钟的控制。2.从上至下的设计方法是从宏观的总体要求入手,尽可能将数字系统划分为较简单的较小的子系统,再通过逻辑接口设计用各种划分的逻辑电路实现所要求的数字系统。3.数字系统的设计分为系统级设计和逻辑级设计两个阶段。系统级设计即原理性设计,是数字系统设计的关键步骤,也是最困难的、最具有创造性的一步。4.系统级设计的具体步骤是:(1)在详细了解设计任务的基础上,确定顶层系统的方案;(2)列出各个输入变量;(3)列出各个输出变量;(4)给定时钟周期T;(5)画出状态转移图。第24页/共25页感谢您的观看!第25页/共25页