《(精品)北邮数电实验综合讲义.ppt》由会员分享,可在线阅读,更多相关《(精品)北邮数电实验综合讲义.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数字电路与逻辑设计实验电子工程学院电路中心电子工程学院电路中心电子工程学院电路中心电子工程学院电路中心袁东明袁东明袁东明袁东明http:/1主要内容n 课程介绍课程介绍n 数字系统设计数字系统设计n 状态机的设计状态机的设计n 注意事项注意事项n 综合实验题目综合实验题目第一部分 课程介绍3课程安排n实验内容:实验内容:完成一个综合课题的设计及仿真、调试。完成一个综合课题的设计及仿真、调试。n本学期实验教学进度:本学期实验教学进度:内内容容1讲讲授内容:状授内容:状态态机、系机、系统设计统设计方法、方法、综综合合题题目要求等目要求等实验实验内容:确定内容:确定题题目、目、讨论设计讨论设计方案方
2、案2综综合合课题设计课题设计与与实现实现,检查设计检查设计方案方案3综综合合课题设计课题设计与与实现实现,检查检查程序及仿真程序及仿真4综综合合课题设计课题设计与与实现实现,功能,功能验验收及交流答收及交流答辩辩4考核方式n考核项目及成绩评定考核项目及成绩评定操作成绩(操作成绩(40%40%)包括实验态度及整理、预习、软件使用、程序编写及仿真波形等 验收答辩(验收答辩(40%40%)包括功能验收和交流答辩 实验报告(实验报告(20%20%)5考核方式n评定标准评定标准实验态度:包括考勤、纪律等,实验结束时关闭计算机、实验态度:包括考勤、纪律等,实验结束时关闭计算机、稳压电源、示波器等仪表,保持
3、实验台清洁、整齐。稳压电源、示波器等仪表,保持实验台清洁、整齐。实验设计方案(预习):根据选定的题目,课下进行预习,实验设计方案(预习):根据选定的题目,课下进行预习,完成系统设计,第二次实验课时进行检查,主要内容包括:完成系统设计,第二次实验课时进行检查,主要内容包括:系统结构框图、方框图(模块划分)、模块之间信息传递系统结构框图、方框图(模块划分)、模块之间信息传递关系、各模块的输入输出信号、主要模块的详细设计关系、各模块的输入输出信号、主要模块的详细设计(ASMASM图、图、MDSMDS图)等。图)等。软件使用及程序验收:包括熟练使用软件使用及程序验收:包括熟练使用QuartusIIQu
4、artusII软件进行设软件进行设计,程序及仿真波形验收。计,程序及仿真波形验收。硬件验收:包括实现的各项功能情况,根据题目的要求进硬件验收:包括实现的各项功能情况,根据题目的要求进行评定。行评定。交流答辩:主要是实验中的经验教训、心得体会等,答辩交流答辩:主要是实验中的经验教训、心得体会等,答辩最后一次课上进行,每人不超过最后一次课上进行,每人不超过3 3分钟,自愿参加分钟,自愿参加 。6课题报告要求内内容容分数分数1设计课题设计课题的任的任务务要求要求52系系统设计统设计(包括(包括设计设计思路、思路、总总体框体框图图、分、分块设计块设计)203仿真波形及波形分析仿真波形及波形分析204源
5、程序(要有注源程序(要有注释释)205功能功能说说明明56元器件清元器件清单单及及资资源利用情况源利用情况57故障及故障及问题问题分析分析108总结总结和和结论结论109报报告格式告格式规规范、清晰范、清晰5电子版和纸版电子版和纸版各提交一份各提交一份最后一次最后一次实验后一实验后一周之内提周之内提交交第二部分 数字系统设计8主要内容n数字系统概述数字系统概述n数字系统设计方法数字系统设计方法n数字系统设计的描述方法数字系统设计的描述方法 n其它概念其它概念9综合实验题目1.1.简易微波炉控制器的设计与实现简易微波炉控制器的设计与实现 2.2.简易地铁自动售票系统简易地铁自动售票系统 3.3.
6、简易二层电梯控制器简易二层电梯控制器 4.4.简易计算器简易计算器 5.5.简易电子琴演奏器简易电子琴演奏器 6.6.点阵赛车游戏点阵赛车游戏 7.7.7.7.简单简单简单简单CPUCPUCPUCPU系统设计与实现系统设计与实现系统设计与实现系统设计与实现10数字系统概述n数字系统:由若干数字系统:由若干数字电路和逻辑部件数字电路和逻辑部件构成的能够构成的能够处理或传送数字信息处理或传送数字信息的设备。的设备。n数字系统的三大组成部分:数字系统的三大组成部分:输入输出接输入输出接口、数据处理器、控制器口、数据处理器、控制器 n区分数字系统与功能部件(数字单元电区分数字系统与功能部件(数字单元电
7、路)的标志:路)的标志:有无控制器有无控制器11数字系统结构框图子系统子系统输入控输入控制信号制信号输出控输出控制信号制信号信息信息输入输入输出输出信息信息控控 制制 器器输出输出接口接口输出输出接口接口输入输入接口接口输入输入接口接口子系统子系统子系统子系统时钟时钟数据处理器数据处理器12数字系统设计方法1.1.自底向上(自底向上(bottom-upbottom-up)设计法(试凑)设计法(试凑设计法)设计法)用试探的方法按给定的功能要求,选择若用试探的方法按给定的功能要求,选择若干模块(功能部件)来拼凑一个数字系统。干模块(功能部件)来拼凑一个数字系统。主要凭借设计者的熟练技巧和经验来实现
8、主要凭借设计者的熟练技巧和经验来实现适用于小型数字系统的设计适用于小型数字系统的设计13数字系统设计方法2.2.自顶向下(自顶向下(top-downtop-down)设计法)设计法从整个系统功能出发,按一定原则将系统从整个系统功能出发,按一定原则将系统划分为若干子系统,再将每个子系统分为划分为若干子系统,再将每个子系统分为若干功能模块,再将每个模块分成若干较若干功能模块,再将每个模块分成若干较小的模块小的模块直至分成许多基本模块实现。直至分成许多基本模块实现。14自顶向下设计法的步骤(一)1.1.确定初步方案,进行系统设计和描述;确定初步方案,进行系统设计和描述;明确设计课题的任务、要求、原理
9、和使用明确设计课题的任务、要求、原理和使用环境,系统外部输入信号及输出信号的特环境,系统外部输入信号及输出信号的特性,以及系统所需要完成的逻辑功能和所性,以及系统所需要完成的逻辑功能和所要达到的技术指标等,然后确定初步方案。要达到的技术指标等,然后确定初步方案。描述方法:方框图、定时图(时序图)、描述方法:方框图、定时图(时序图)、逻辑流程图。逻辑流程图。15自顶向下设计法的步骤(二)2.2.系统划分,进行子系统功能描述;系统划分,进行子系统功能描述;将系统划分为控制器和受控电路两部分,将系统划分为控制器和受控电路两部分,受控电路又可以用各种模块(子系统)实受控电路又可以用各种模块(子系统)实
10、现。现。确定使用哪些子系统,以及各子系统与控确定使用哪些子系统,以及各子系统与控制器之间的关系。制器之间的关系。对各子系统和控制器进行功能描述:对各子系统和控制器进行功能描述:ASMASM图、图、MDSMDS图等图等16自顶向下设计法的步骤(三)3.3.逻辑描述,完成具体设计。逻辑描述,完成具体设计。设计具体电路。设计具体电路。传统方法:用标准的传统方法:用标准的SSISSI、MSIMSI、LSILSI或或GALGAL等器件实现受控电路;用时序机设计等器件实现受控电路;用时序机设计方法实现控制器。方法实现控制器。EDAEDA方法:用方法:用PLDPLD器件实现电路设计。器件实现电路设计。自顶向
11、下的设计过程是一个反复修改和自顶向下的设计过程是一个反复修改和补充的过程。补充的过程。17例1:两人乒乓游戏机n以以8 8个发光二极管代表乒乓球台,中间两个发个发光二极管代表乒乓球台,中间两个发光管兼作球网。用发光管按一定的方向依次闪光管兼作球网。用发光管按一定的方向依次闪亮来表示球的运动,在游戏机两侧各设发球亮来表示球的运动,在游戏机两侧各设发球/击球开关击球开关S SA A和和S SB B,当甲方发球时,靠近甲方,当甲方发球时,靠近甲方的第一个发光管亮,然后依次点亮第二个的第一个发光管亮,然后依次点亮第二个球向乙方移动,球过网后到达设计者的规定的球向乙方移动,球过网后到达设计者的规定的球位
12、乙方即可击球,若乙方提前击球或未击到球位乙方即可击球,若乙方提前击球或未击到球,则甲方得分。然后重新发球进行比赛,直球,则甲方得分。然后重新发球进行比赛,直到某一方记分达到规定分,记分清零,重开一到某一方记分达到规定分,记分清零,重开一局比赛。局比赛。18两人乒乓游戏机结构框图19模块划分根据控制器的指令控制发根据控制器的指令控制发光二极管的亮灭光二极管的亮灭将分数转换为数码管显示将分数转换为数码管显示对应的译码数据对应的译码数据记录双方的得分记录双方的得分将原始时钟分频,产生系将原始时钟分频,产生系统中不同模块需要的时钟统中不同模块需要的时钟频率频率20数字系统的描述方法(一)n方框图方框图
13、可详细描述数字系统的总体结构,直观易可详细描述数字系统的总体结构,直观易懂懂每一个方框定义一个信息处理、存储或传每一个方框定义一个信息处理、存储或传送的子系统,在方框内用文字、表达式、送的子系统,在方框内用文字、表达式、通用符号或图形来表示该子系统的名称或通用符号或图形来表示该子系统的名称或主要功能主要功能方框之间用带箭头的直线相连,表示各个方框之间用带箭头的直线相连,表示各个子系统之间数据流或控制流的信息通道,子系统之间数据流或控制流的信息通道,箭头指示了信息传送的方向箭头指示了信息传送的方向21两人乒乓游戏机逻辑划分方框图分频器分频器球台球台控制器控制器译码显示器译码显示器记分器记分器SA
14、 SBCPmSCSTOPCNT,Cr22数字系统的描述方法(二)n定时图(时序图或时间关系图)定时图(时序图或时间关系图)用来定时地描述系统各模块之间、模块内部用来定时地描述系统各模块之间、模块内部各功能组件之间以及组件内部各门电路或触各功能组件之间以及组件内部各门电路或触发器之间输入信号、输出信号和控制信号的发器之间输入信号、输出信号和控制信号的对应时序关系和特征(信号是电平还是脉冲,对应时序关系和特征(信号是电平还是脉冲,是同步信号还是异步信号等)。是同步信号还是异步信号等)。23数字系统的描述方法(三)nASMASM(Algorithmic State Machine Algorithm
15、ic State Machine)图图(算法状态机图、逻辑流程图)(算法状态机图、逻辑流程图)用特定的几何图形、指向线和简练的文字用特定的几何图形、指向线和简练的文字说明,描述数字系统对信息的处理过程,说明,描述数字系统对信息的处理过程,以及控制单元所提供的控制步骤,以便于以及控制单元所提供的控制步骤,以便于设计者发现和改进信息处理过程中的错误设计者发现和改进信息处理过程中的错误和不足,同时又是后续电路设计的依据和不足,同时又是后续电路设计的依据与通常的软件设计中的流程图相似,但它与通常的软件设计中的流程图相似,但它表示事件的精确时间间隔序列,而一般的表示事件的精确时间间隔序列,而一般的流程图
16、只表示事件序列,没有时间概念流程图只表示事件序列,没有时间概念24ASM图的基本符号状态名或状态名或功能说明功能说明状状 态态输出表输出表入口入口出口出口(A A)状态框状态框功能说明功能说明入口入口出口出口条条 件件输出表输出表(C C)条件输出框)条件输出框条件条件入口入口条件真出口条件真出口条件假出口条件假出口(B B)条件判别框)条件判别框NOYES25启动启动等待发球等待发球甲发球?甲发球?乙发球?乙发球?靠近甲的靠近甲的L1灯亮灯亮靠近乙的靠近乙的L8灯亮灯亮球向乙移动球向乙移动球向甲移动球向甲移动乙击球?乙击球?甲击球?甲击球?球移动到球移动到L7?球移动到球移动到L2?结束,胜
17、方得分结束,胜方得分YesYesYesYesYesYesNoNoNoNoNoNo两人乒乓游戏机的ASM图26数字系统的描述方法(四)nMDSMDS(Mnemonic Documented StateMnemonic Documented State)图图MDSMDS图是设计数字系统控制器的一种简洁图是设计数字系统控制器的一种简洁方法,它类似于状态转换图,可以由详细方法,它类似于状态转换图,可以由详细流程图转换而来。流程图转换而来。MDSMDS图中用一个圆圈表示一个状态,状态图中用一个圆圈表示一个状态,状态名标注在圆圈内,圆圈外的符号或逻辑表名标注在圆圈内,圆圈外的符号或逻辑表达式表示输出,用定
18、向线表示状态转换方达式表示输出,用定向线表示状态转换方向,定向线旁的符号或逻辑表达式表示转向,定向线旁的符号或逻辑表达式表示转换条件。换条件。27WaitLight1Light8MoveBMoveAEndSA SBSA SBSA SBSA SB L7SA L2SA L2SB L7两人乒乓游戏机的MDS图28例2:交通灯控制器n设计制作一个用于十字路口的交通灯控制器。设计制作一个用于十字路口的交通灯控制器。1.1.南北和东西方向各有一组绿、黄、红灯用于指挥南北和东西方向各有一组绿、黄、红灯用于指挥交通,绿灯、黄灯和红灯的持续时间分别为交通,绿灯、黄灯和红灯的持续时间分别为2020秒、秒、5 5秒
19、和秒和2525秒;秒;2.2.当有特殊情况(如消防车、救护车等)时,两个当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,继续正常运行;控制器恢复原来状态,继续正常运行;3.3.用两组数码管,以倒计时方式显示两个方向允许用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间;通行或禁止通行的时间;29交通灯控制器结构框图30交通灯控制器逻辑划分方框图南南北北灯灯东东西西灯灯控制器控制器计时器计时器分频器分频器时钟时钟译码显示器译码显示器resetcallcp31交通灯控制器的ASM图32
20、交通灯控制器的MDS图Green_redred_YellowYellow_redred_GreenTyTgTyTgTgTgTyTy第三部分状态机的设计34用户自定义数据类型n在在VHDL中,用户可以自己定义数据类型。中,用户可以自己定义数据类型。n可由用户定义的数据类型有:可由用户定义的数据类型有:枚举类型枚举类型整数、实数、浮点数类型整数、实数、浮点数类型数组类型数组类型存取、文件、记录、时间类型存取、文件、记录、时间类型n语法描述(枚举类型):语法描述(枚举类型):TYPETYPE week week ISIS(sun(sun,monmon,tuetue,wedwed,thuthu,fri
21、fri,sat);sat);TYPETYPE 数据类型名数据类型名数据类型名数据类型名 ISIS 数据类型定义数据类型定义数据类型定义数据类型定义;n举例举例35用户自定义数据类型n用户自定义数据类型定义语句用户自定义数据类型定义语句TYPE m_state IS (s0,s1,s2,s3,s4,s5);SIGNAL pre_state,next_state :m_state;CASE pre_state ISWHEN s0=next_state next_state IF(d_in=1)THEN next_state=s1;ELSE next_state IF(d_in=1)THEN nex
22、t_state=s2;ELSE next_state IF(d_in=0)THEN next_state=s3;ELSE next_state IF(d_in=0)THEN next_state=s0;ELSE next_state=s1;END IF;END CASE;END PROCESS;44三进程方式描述状态机(三)P2:PROCESS(clk)-状态寄存器状态寄存器BEGINIF(clkEVENT AND clk=1)THENcurrent_state f f f f IF(d_in=1)THEN state=s1;ELSE state=s0;END IF;f IF(d_in=0)T
23、HEN state=s0;ELSE state=s1;END IF;f=1;END CASE;END IFEND PROCESS;END Moore;49单进程方式描述状态机(三)单进程方式序列检测器仿真波形单进程方式序列检测器仿真波形12分频(双进程)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY div_12 ISPORT(clk,clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END div_12;ARCHITECTURE a OF div_
24、12 ISSIGNAL tmp:INTEGER RANGE 0 TO 11;BEGIN50p1:PROCESS(clear,clk)BEGINIF clear=1 THENtmp=0;ELSIF clkevent AND clk=1 THEN IF tmp=11 THEN tmp=0;ELSEtmp=tmp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(tmp)BEGINIF tmp6 THEN clk_out=1;ELSE clk_out=0;END IF;END PROCESS p2;END a;输出进程输出进程51毛刺毛刺12分频仿真波形(双进程)p
25、1:PROCESS(clear,clk)BEGINIF clear=1 THEN tmp=0;ELSIF clkevent AND clk=1 THEN IF tmp=11 THENtmp=0;ELSEtmp=tmp+1;END IF;IF tmp6 THENclk_out=1;ELSEclk_out IF in1=1 THEN out1 IF in1=1 THEN out1=“1111”;END IF;END CASE;END PROCESS;第四部分注意事项56行行输输入入列输入列输入8 88 8发发光光点点阵阵点阵1011111111101111100000000001010057按键开
26、关防抖动n由于按键动作的时刻和按下的时间长短是随机的。并且存在由开关簧片反弹导致的电平抖动,抖动的时间一般小于20mS,因此必须为每个按键开关设置一个消抖和同步电路,此电路可有多种形式。58按键开关防抖动程序LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;ENTITY keyin ISENTITY keyin ISPORT(PORT(clkclk:IN:INSTD_LOGIC;STD_LOGIC;resetreset:IN:INSTD_LOGIC;STD_LOGIC;resetn
27、 resetn:OUT :OUT STD_LOGIC);STD_LOGIC);END keyin;END keyin;ARCHITECTURE a OF keyin ISARCHITECTURE a OF keyin ISSIGNAL resetmp1,resetmp2:STD_LOGIC;SIGNAL resetmp1,resetmp2:STD_LOGIC;BEGINBEGINPROCESS(clk)PROCESS(clk)BEGINBEGINIF(clkEVENT AND clk=0)THENIF(clkEVENT AND clk=0)THENresetmp2=resetmp1;reset
28、mp2=resetmp1;resetmp1=reset;resetmp1=reset;END IF;END IF;END PROCESS;END PROCESS;resetn=clk AND resetmp1 AND(NOT resetmp2);resetn=clk AND resetmp1 AND(NOT resetmp2);END a;END a;59按键开关防抖动程序仿真波形按一次键,只产生一按一次键,只产生一个脉冲,脉冲宽度为个脉冲,脉冲宽度为防抖动时钟的脉宽。防抖动时钟的脉宽。防抖动时钟的频防抖动时钟的频率为率为100HZ左右左右60CPLD/FPGA资源优化问题1.1.通过优化,可
29、以使用规模更小的可编程逻辑通过优化,可以使用规模更小的可编程逻辑芯片,从而降低系统成本;芯片,从而降低系统成本;2.2.对于许多可编程逻辑器件,由于布线资源有对于许多可编程逻辑器件,由于布线资源有限,耗用资源过多会严重影响电路性能;限,耗用资源过多会严重影响电路性能;3.3.为以后的技术升级留下更多的可编程资源,为以后的技术升级留下更多的可编程资源,方便添加产品功能;方便添加产品功能;4.4.对于多数可编程逻辑器件,资源耗用太多会对于多数可编程逻辑器件,资源耗用太多会使器件功耗显著上升。使器件功耗显著上升。61常用优化方法n软件优化软件优化n资源共享资源共享n串行化串行化n正确使用正确使用VH
30、DLVHDL描述描述62QuartusII的优化选项资源共享n针对耗费逻辑资源比较多的模块,通过针对耗费逻辑资源比较多的模块,通过选择、复用的方式共享该模块,以减少选择、复用的方式共享该模块,以减少资源使用。资源使用。6464if(sel=1)thensum=a+b;elsesum=c+d;end if;65if(sel=1)thentemp1=a;temp2=b;elsetemp1=c;temp2=d;end if;sum clk,reset=reset,cnt=cnt1);elseu2:cnt16_down port map(clk=clk,reset=reset,cnt=cnt2);En
31、d if;u1:cnt16_up port map(clk=clk,reset=reset,cnt=cnt1);u2:cnt16_down port map(clk=clk,reset=reset,cnt=cnt2);process(updown,cnt1,cnt2)beginif updown=1 thenled=cnt1;elseled=cnt2;end if;end process;87内部信号使用entity cnt5_1 is port(clk:in STD_LOGIC;cnt:out STD_LOGIC_VECTOR(3 downto 0);end cnt5_1;signal count:STD_LOGIC_VECTOR(3 downto 0);if(count=1100)then count=0000;elsecount=count+1;end if;cnt=count;88多重驱动process(clk)if(clkevent and clk=1)then if(count=5 then count=0;else count=count+1;end if;end if;end process;process(count)if(count=3)then count=4;end if;end process;89多重驱动硬件模型