• 2.52 MB
  • 2022-04-29 14:31:17 发布

现代数字系统设计方法教学课件PPT

  • 25页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'现代数字系统设计方法 现代数字系统设计方法从上至下(fromtoptodown):优点:适合大规模数字系统系统设计,使得设计步骤之间相互联系越来越紧密、协调,以求数字系统获得良好的性能和正确的结果。设计者从整个系统逻辑出发,进行最上层的系统设计,而后按一定的原则将全局系统分成若干子系统,逐级向下,再将每个子系统分为若干个功能模块、子模块、基本模块。 四、现代数字系统设计流程计算机辅助分析与设计(CAD)早期电子设计自动化(EDA)近期EDA工具从上层系统级开始,对电路功能描述,从上至下地跨越各个层次完成整个设计。近几年来,综合、验证等都由EDA完成。EDA软件还在优化、发展,使从上至下的设计方法得到广泛的应用。 例:24进制数字钟的设计下面讨论一个24进制数字钟系统,用它了解从上至下的设计概念和方法。设计步骤:1.系统级分析,确定初步方案;2.将设计细分,进行模块划分;3.VHDL综合.一、24进制数字数字钟顶层设计1.顶层方案设计系统具有24小时计数显示(HH-MM-SS),并具有校时功能(时,分),附加要求能够实现闹钟功能(定时,闹响),以及提示功能(如校时的字符闪烁)。 输入电路:(1)开始进行计时前,需要对数字钟进行设置,因此需要一个setup键,用来选择系统的不同状态。(2)当数字钟进入校时或者闹钟定时状态后,需要调整时间,需设置一个adjust键。(3)数字钟需要一个时钟脉冲信号给系统提供计时时基和系统其他部分所需的同步时钟。(4)系统需要一个复位键以便恢复到初始状态和系统复位。 输出电路:(1)时间显示采用6位7段数码管,因此系统输出有7位段选LEDout[0..6]和3位位选信号SCAN[0..2]。(2)当闹钟定时到时,需要一个指示信号alarm。 数字钟工作过程如下:(1)系统复位后为正常计时状态,此时adjust键无效;(3)第二次按setup键,系统进入分钟设置状态。此状态下按adjust键进行分钟的校正。(4)第三次按setup键,系统键入闹钟小时部分设定状态,此时显示上次存储的闹钟时间,并可按adjust键设置新的闹钟的小时。(5)第四次按setup键,系统进入闹钟分钟部分设定状态,并可按adjust键设置新的闹钟的分钟。(2)第一次按setup键,系统进入小时设置状态。此状态下按adjust键进行小时的校正。(6)第五次按setup键,系统回到正常计时状态。 二、顶层实体的VHDL程序第一步:为系统建立系统名。第二步:描述顶层的接口,包括输入信号、输出信号、信号方向、数据类型等。LIBRARYieee;USEieee.std_logic_1164.all;ENTITYdigital_clock1ISENDdigital_clock1;PORT(setup_k:INSTD_LOGIC;adjust_k:INSTD_LOGIC;clk:INSTD_LOGIC;clr:INSTD_LOGIC;LEDout:OUTSTD_LOGIC_VECTOR(0to6);SCAN:OUTSTD_LOGIC_VECTOR(0to3);alarm:OUTSTD_LOGIC); 三、顶层结构体的设计及VHDL实现从上至下的精神是将系统划分为几个部分,如不同的功能模块。(1)首先系统需要一个分频模块,提供系统其他模块所需要的时钟信号。(2)其次,系统有一个控制模块,控制电子钟的不同模式之间的转换。(4)电子钟要显示时间,因此有一个显示模块。(3)电子钟需要进行计时,因此有一个计数模块。(5)按键消抖模块。 (1)按键消抖模块。由于按键产生引起电平抖动,最好加入同步消抖电路。四、各个功能模块的具体分析按键消抖模块有哪些输入和输出信号? 四、各个功能模块的具体分析(续)(2)分频模块。系统需要几种时钟信号?分频模块有哪些输入和输出信号? 四、各个功能模块的具体分析(续)(3)控制模块。控制模块有哪些输入和输出信号? 四、各个功能模块的具体分析(续)(4)计时模块。计时模块有哪些输入和输出信号? 四、各个功能模块的具体分析(续)(5)显示模块。显示模块有哪些输入和输出信号?clk_dis没有在分频模块中产生! 四、各个功能模块的具体分析(续)(6)修改相关模块。新建输出端口 (1)按键消抖电路Setup_k和adjust_k都需要一同步消抖电路,如右图所示:单个按键消抖VHDL程序如下:ENTITYksyISENDksyPORT(A:INstd_logic;B:INstd_logic;C:OUTstd_logic);ABCARCHITECTUREksy_arcksyISCOMPONENTknand2ISPORT(A,B:INstd_logic;C:OUTstd_logic);ENDCOMPONENT;SIGNALT1,T2,T3,T4,T5,T6:std_logic;BEGINT1T2T3T4T5T6U0:knand2PORTMAP(A,T1,T2);五、各个功能模块的具体实现 (1)按键消抖电路(续)五、各个功能模块的具体实现(续)ENTITYkey_debounceISPORT(setup_k:INSTD_LOGIC;adjust_k:INSTD_LOGIC;clock_deb:INSTD_LOGIC;k_setup:OUTSTD_LOGIC;k_adjust:OUTSTD_LOGIC);ENDkey_debounce;ARCHITECTUREkey_arcOFkey_debounceISENDARCHITECTURE;COMPONENTksyISPORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDCOMPONENT;BEGINU1:ksyPORTMAP(setup_k,clock_deb,k_setup);U2:ksyPORTMAP(adjust_k,clock_deb,k_adjust); (2)分频模块电路五、各个功能模块的具体实现(续)LIBRARYieee;USEieee.std_logic_1164.all;ENTITYdiv_freqISPORT(clk:INSTD_LOGIC;clr:INSTD_LOGIC;clk_k:OUTSTD_LOGIC;clk_control:OUTSTD_LOGIC;clk_time:OUTSTD_LOGIC;clk_change:OUTSTD_LOGIC;ringtone1:OUTSTD_LOGIC;ringtone2:OUTSTD_LOGIC;clk_dis:OUTSTD_LOGIC);ENDdiv_freq;ARCHITECTUREdiv_freq_architectureOFdiv_freqIS……BEGIN……ENDdiv_freq_architecture;用计数器来实现 (3)控制模块电路——由状态机实现五、各个功能模块的具体实现(续)设计要求抽象提炼系统运行方式功能状态状态转移图 (3)控制模块电路——由状态机实现(续)五、各个功能模块的具体实现(续)闹分/mode5计时/mode1校时/mode2校分/mode3闹时/mode4数字钟运行流程状态转移由按键控制 (3)控制模块电路——由状态机实现(续)五、各个功能模块的具体实现(续)……ARCHITECTUREcontrol_architectureOFcontrolIStypestatesis(timing,changehour,changemin,setalarmh,setalarmm);signalcurrent_state,next_state:states;BEGINreg:process(clr,clk_control)beginifclr="1"thencurrent_state<=timing;elsifclk_control"eventandclk_control="1"thencurrent_state<=next_state;endif;endprocess;com:process(current_state,k_setup)begincasecurrent_stateiswhentiming=>ifk_setup="0"thennext_state<=changehour;elsenext_state<=timing;endif;whenchangehour=>ifk_setup="0"then……output:process(current_state,k_adjust)begincasecurrent_stateiswhentiming=>mode<="100";whenchangehour=>ifk_adjust="0"thenmode<="110";elsemode<="000";endif;……ENDcontrol_architecture; (4)计时模块电路五、各个功能模块的具体实现(续)HHMMSS由计数器实现235959x95959xx5959xxx959………当mode=timing时当mode=changehour时HHMMSS23xxxxx9xxxx…… (5)显示模块电路五、各个功能模块的具体实现(续)采用动态扫描实现显示译码BCD—>7段显示译码位选译码循环选择6位数码管显示模块 六、24进制数字钟整体系统实现ARCHITECTUREdigital_clock1_architectureOFdigital_clock1ISSignal……BEGINU1:keydebouncePORTMAP(……);U2:div_freqPORTMAP(……);U3:controlPORTMAP(……);U4:counterPORTMAP(……);U5:displayPORTMAP(……);ENDdigital_clock1_architecture; 小结1.数字系统由控制电路和受控电路组成,控制电路受同一时钟的控制。2.从上至下的设计方法是从宏观的总体要求入手,尽可能将数字系统划分为较简单的较小的子系统,再通过逻辑接口设计用各种划分的逻辑电路实现所要求的数字系统。3.数字系统的设计分为系统级设计和逻辑级设计两个阶段。系统级设计即原理性设计,是数字系统设计的关键步骤,也是最困难的、最具有创造性的一步。4.系统级设计的具体步骤是:(1)在详细了解设计任务的基础上,确定顶层系统的方案;(2)列出各个输入变量;(3)列出各个输出变量;(4)给定时钟周期T;(5)画出状态转移图。'