现代电子系统设计.ppt

上传人:小飞机 文档编号:6314259 上传时间:2023-10-16 格式:PPT 页数:102 大小:1.34MB
返回 下载 相关 举报
现代电子系统设计.ppt_第1页
第1页 / 共102页
现代电子系统设计.ppt_第2页
第2页 / 共102页
现代电子系统设计.ppt_第3页
第3页 / 共102页
现代电子系统设计.ppt_第4页
第4页 / 共102页
现代电子系统设计.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《现代电子系统设计.ppt》由会员分享,可在线阅读,更多相关《现代电子系统设计.ppt(102页珍藏版)》请在三一办公上搜索。

1、现代电子系统设计复习纲要,2011年6月,第二章,1.电子系统的基本组成及各部分之间的关系,2.十字路口交通灯设计之受控器电路,3.由MDS图设计控制器(状态编码方式),例2.2-5:某数字系统的MDS图如图所示,R、A为输入信号,Ci(i=03)为输出信号,设计它的控制器电路。,五个状态,用三个D触发器,采用二进制编码方式 状态转换表:,画出激励函数的卡诺图:,写出函数表达式:,画出控制器电原理图:,4.控制子系统的微程序设计 概念:把控制子系统中每一个状态要输出的控制信号及该状态的转移去向按一定格式编写成条文,保存在ROM中。运行时,逐条取出这些微指令,实现控制过程。,只把状态变量作为地址

2、变量,而把决定状态转移的测试变量作为指令的内容写入ROM,称为测试变量段。后续地址段分为两部分,分别为测试变量为1和0时的转移去向。对于N个测试变量,由于只与其中的一个有关,可对测试变量进行编码,外部电路用N选一选择器,选择相应的测试变量;其次要决定现态转向后续地址的哪一个,再用多个(取决于后续地址位数)二选一数据选择器,根据测试变量X(i)是0还是1,选出两个后续地址中的一个。,a.单测试双地址法,例2.3-3:设计MDS图如图所示的微程序控制器。,1、状态编码:用两个D触发器;2、确定ROM容量:49;3、填写ROM的内容;4、硬件电路。,微指令表,电路图,现态的两个分支设置成:一个为现状

3、态编码加1,另一个任意,在微指令的后续地址中,只要注明“任意的一个”即可,现态加1就不必标注。标志位:说明测试变量为1时还是为0时现状态加1。表2.3-5 单测试单地址微指令格式 输出变量 测试变量 标志位 转移地址 用计数器取代D触发器,b.单测试单地址法,例2.3-4:用单测试单地址法实现MDS图如图所示的微程序控制器。,1、状态编码:现态的两个转移状态一个必须为现态加1;2、确定ROM的容量:49;测试变量为X、Z、W三个加无条件转移共4个。注意此处无条件转移不能像单测试双地址那样把测试变量表示为,因为这里需要相应的硬件电路保证。测试变量段为2位,L2L1=00为无条件;L2L1=01为

4、X;L2L1=10Z;L2L1=11为W。标志位YNBIT为1位,输出为4位,转移地址两位,ROM容量共49=36。,3、填写微指令:在填写单测试单地址的微指令时最需要注意的是标志位填写,而标志位填写与硬件电路有关。如果用标志位YNBIT=1,表示测试变量X(i)为1时计数器计数,测试变量X(i)为0时计数器置数;而用标志位YNBIT=0,表示测试变量X(i)为0时计数器计数,测试变量X(i)为1时计数器置数,同时根据一般计数器的置数信号均是低电平有效,则有,微指令表,ROM内容:,硬件电路:,还可用另一种方法来实现单测试单地址法。由于每个状态只与一个测试变量有关,则可以采用一个数据选择器,用

5、现态作为其控制信号,选出决定转移的那个测试变量,然后由现态和测试变量共同作为ROM的地址变量,这样对于一个状态只需要两个字就可以实现它的两个转移,也可以大大缩减ROM的容量,例2.3-5:用单测试单地址法实现如图所示的MDS图的微程序控制器。,微指令表,硬件电路:,第三章,1、FPGA结构,2、CPLD结构,第四章,1.VHDL语言程序的基本结构,库和程序包,格式如下:,端口定义:PORT(端口名1:端口模式 数据类型;端口名n1,端口名N:端口模式 数据类型);,实体,端口信号名,端口模式,端口类型,如:,端口模式(MODE):端口模式有以下几种类型:IN:信号进入实体但并不输出;OUT:信

6、号离开实体但并不输入,并且不会在内部反馈使用;INOUT:信号是双向的(既可以进入实体,也可以离开实体)BUFFER:信号输出到实体外部,但同时也在实体内部反馈。,BUFFER(缓冲)是INOUT(双向)的子集,但不是由外部驱动,一般格式:,构造体,说明语句(可选):声明构造体所用的内部信号、数据类型、常数、函数等;构造体中,处于BEGIN和END之间是并行处理语句,描述了构造体的行为及连接关系,包括:并行语句、进程、子程序和元件例化等。,2.VHDL语言要素,VHDL语言操作符 a.逻辑运算符 NOT:取反;AND:与;OR:或;NAND:与非;NOR:或非;XOR:异或;XNOR:同或 可

7、以对STD_LOGIC和BIT等逻辑型数据、STD_LOGIC_VECTOR等逻辑型数组及布尔数据操作。左右无优先级之分。全为“AND”“OR”“XOR”时可以不要括号。例:A=B AND C AND D;A=(B NAND C)NAND D)NAND E;,b.关系运算符(等于);/=(不等于);适用于所有类型的数据;(大于);=(大于等于);可用于整数、实数、位和位矢量等类型。注意!进行关系运算时,左右两边的数据类型必须相同,但 位长度不一定相等,c.连接运算符”&”:用于位的连接。,d.算术运算符,慎重,会大大增加逻辑门数,注意:Std_logic类型数据不能进行算术运算 Std_log

8、ic_vector可以,数据对象 在逻辑综合中,VHDL语言常用的数据对象为:信号 变量 常量,a.常量(CONSTANT)常量是全局量。常量的定义和设置是为了设计更容易阅读和修改。如利用它可设计不同模值的计数器,模值存于一常量中,对不同的设计,改变模值仅需改变此常量值即可。,CONSTANT Zero_4:STD_LOGIC_VECTOR(3 DOWNTO 0):=“0000”;,b.变量(VARIABLE)变量是局部量,只能在进程和子程序中定义和使用;变量的赋值符号为“:=”;变量定义格式:,c.信号(SIGNAL)信号定义格式:,信号是全局量。用于进程间通信,或用于并行模块间的信息交流。

9、信号用于声明内部信号,而非外部信号(外部信号对应为IN,OUT,INOUT,BUFFER),其在元件之间起互联作用(类似于连线);可以赋值给外部信号。信号的赋值符号为“=”;信号使用和定义的范围只能是实体、结构体和程序包,在进程和子程序中不允许定义信号,但可以使用信号。同一个信号只能在一个进程中被赋值,不能在多个进程被赋值,但同一个信号可以在多个进程中使用。,d.信号与变量的比较 信号可以促发进程,同一个信号可以在多个进程中使用;信号与变量声明的形式与位置不同:信号声明为SIGNAL,变量声明为VARIABLE 信号声明在子程序、进程等外部,而变量声明在子程序、进程等内部。信号与变量的赋值不同

10、:在进程中,信号赋值在进程结束时起作用,而变量赋值立即起作用。,如果在一个进程中多次为一个信号赋值时,只有最后一个值会起作用;为变量赋值时,变量值的改变立即发生。,数据类型 最常见的标准定义数据类型:INTEGER:可用作循环的指针或常数,通常不用于I/O信号;Signal typei:INTEGER range 0 to 15;BIT:可取值0或1;BIT_VECTOR:用双引号括起来的一组位数据,如“010101”;STD_LOGIC:工业标准的逻辑类型,可取值0,1,Z等;STD_LOGIC_VECTOR:std_logic的组合,工业标准的逻辑类型。,定义枚举类型 语法:Type 类型

11、名称 Is(元素1,元素2,);例:type state is(s0,s1,s2,s3);signal s:state;,VHDL属性(Attribute)函数类属性 event,值为布尔型,如果该属性所附着的信号有变化,则其取值为True,否则为False。,3.VHDL语句及基本描述方法,顺序语句 并行语句 VHDL基本描述方法,赋值语句 流程控制语句 等待语句 空操作语句,顺序语句,赋值语句包括信号赋值语句和变量赋值语句;赋值源和目标数据类型必须相同;在进程中,信号赋值在进程结束时起作用,变量赋值立即起作用;信号具有全局特征,变量具有局部特征;信号赋值语句可以以顺序语句形式出现,此时在进

12、程内使用;信号赋值语句也可以以并行语句形式出现,此时在进程外使用。,变量赋值目标:=赋值源;信匀赋值目标=赋值源;,赋值语句,IF_THEN_ ELSE语句,流程控制语句,-注意,此处是ELSIF,而-不是ELSE IF,!IF语句只能在进程中使用,例:设计一个二输入与门,无ELSE语句,因此综合器综合时默认为:ELSE c=c;,CASE_WHEN语句,case 表达式 iswhen 选择值=顺序语句;when 选择值=顺序语句;when 选择值=顺序语句;end case;,例:四选一选择器:,“=”相当于THEN的作用;,条件句的顺序是不重要的;,WHEN OTHERS列出其他可能取值;

13、,LOOP语句 常用的是FOR_LOOP语句,语法格式如下:,临时变量,属LOOP语句的局部变量,不必事先定义。,起始值 Downto 结束值,起始值 To 结束值,例:奇偶校验电路,奇数个1标志位,偶数个1标志位,等待(WAIT)语句 语句格式:WAIT ON 敏感信号表 UNTIL 条件表达式 FOR 时间表达式;注:已列出敏感量的进程中不能使用任何形式的WAIT语句。,例:四选一 选择器,NULL语句,并行语句,VHDL的几种主要并行语句:进程语句 PROCESS语句 块语句 BLOCK语句并行信号赋值语句元件例化语句生成语句 GENERATE语句,进程语句(PROCESS)进程语句是个

14、复合语句,由一段程序构成。各个进程是并发执行的,但进程内部的所有语句却都是顺序执行的。一个构造体可以包括多个进程语句,多进程间的通信依靠信号(SIGNAL)来传递。,例:计数器进程部分:,-进程(敏感表),-顺序语句,异步清零,若改为同步清零,则进程如下:,-同步清零,若没有敏感表,利用WAIT UNTIL语句,进程如下:,块语句(BLOCK)块语句是将结构体中的并行语句组合在一起,其主要目的是改善并行语句及其结构的可读性,一般用于较复杂的VHDL程序中。只是形式上的划分,而非功能上的改变。块语句的语法描述:,-块名必须有。,例:比较器,并行信号赋值语句 并行信号赋值语句实际上是一个进程的缩写

15、。如下面两个构造体是等效的:,并行信号赋值语句有三种形式:简单信号赋值语句 条件信号赋值语句 选择信号赋值语句,简单信号赋值语句,例:,条件信号赋值语句,WHEN_ELSE语句描述的四选一选择器:,选择信号赋值语句,WITH_SELECT语句描述的四选一选择器:,元件例化语句,-注意:没有IS,-同该元件定义时的PORT部分,例化名:实体名(即元件名)PORT MAP(端口名连接关系);,例:一个模为10的计数器和一个七段译码器的连接。,模10计数器的VHDL描述,BCD码到七段的VHDL描述,利用元件例化构成本例(cntvh10):,几点说明:元件例化时的端口列表可采用位置关联方法,如u1;

16、元件例化时的端口列表也可采用名称关联方法映射实参和形参,如u2;格式为(形参1=实参1,形参2=实参2,)元件声明时,一定要用原元件定义时的端口名,不能变动。若用到库中的元件,如OR2,在不知原端口名称的情况下,建议重编写OR2_NEW。但必须另起文件名。,VHDL基本描述方法,结构描述(Structural):也称为网表(Netlist)描述。它反映了一个设计中硬件方面特征,表达了内部元件间连接关系。使用元件例化来描述。数据流描述(Dataflow):也称为方程(Equation)描述。它反映了一个设计中输入到输出的流向。使用并发语句来描述。行为描述(Bhavior):它反映了一个设计中的功

17、能算法。一般使用进程PROCESS,用顺序语句来描述。,例:两位相等比较器。逻辑表达式:,构造体一:用元件例化来实现,即结构描述:,构造体二:用布尔方程来实现,即数据流描述:构造体三:用行为描述来实现,采用并行语句:,构造体四:用行为描述来实现,采用顺序语句:,4.常用电路描述,组合逻辑电路 时钟边沿描述 基本触发器电路 时序电路,1、加法器(13位全加器、BCD码加法器),-13位全加器,-BCD码加法器,-保存两数二进制相加之和,-进行加6校正,2、译码器,-BCD7段,-可表示为(OTHERS=0),-38译码器,-4位二进制比较器,3、比较器,-16路四选一,4、数据选择器,(1)时钟

18、上升沿描述,clkEVENT and clk=1RISING_EDGE(clk),(2)时钟下降沿描述,clkEVENT and clk=0FALLING_EDGE(clk),1、异步复位置位(低有效)D触发器,2、同步复位置位(低有效)负跳变D触发器,3、异步复位同步置位(低有效)D触发器,1、移位寄存器,-可左移、右移、同步置数、同步清零,2、M=60计数器,异步清零,同步置数,使能,8421BCD码计数器,模为60。,5.有限状态机,状态机的概念 状态在有限的范围内转换 1Moore状态机.Mealy型状态机,Moore型状态机,Mealy型状态机,习 题,一、单项选择题1、Quartu

19、s是 A、高级语言 B、硬件描述语言 C、EDA工具软件 D、综合软件2、使用Quartus建立仿真文件,应采用 A、图形编辑 B、文本编辑 C、符号编辑 D、波形编辑 3、执行Quartus的哪条命令,可以检查设计电路错误A、Create Default Symbol B、Simulator C、Compiler D、Timing Analyzer 4、Quartus的波形文件类型是 A、.vwf B、.bdf C、.vhd D、.qpf 5、在VHDL的端口声明语句中,用于声明双向端口的是 A、IN B、OUT C、INOUT D、BUFFER,二、完成下列各基础实验题 将两片74160连

20、接成模100计数器,画出CLK和ENT、ENP的连接方法。注:画出一种连接方法即可,1、完成下列各题(1)以下是低有效异步清零clr、低有效异步复位set、时钟clk下降沿触发的D触发器构造体描述,指出其中的错误并改正。,三、VHDL语言设计题,(2)阅读下面的VHDL程序,分析设计电路功能,并画出仿真波形。,2、请用VHDL设计BCD-7段译码器。实体如下:,请补充结构体:,3、请用VHDL设计一个键盘扫描电路。其功能为只要输入CLK,便会自动且依序产生1110-1101-1011-0111-1110(周而复始)四个扫描信号。,四、数字系统设计题,1、某数字系统的MDS图如右所示,R、A为输入信号,Ci(i=0.3)为输出信号,设计它的控制器电路。要求:用D触发器作为状态寄存器,以状态编码方式(如图)进行设计。请列出状态转换表;画出激励函数的卡诺图;写出激励函数及输出函数表达式;画出控制器电原理图。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号