
电子设计自动化第7章常用数字电路设计ppt课件.ppt
187页第7章 常用数字电路设计7.1 组合逻辑电路 7.2 时序逻辑电路设计 7.3 常用时序逻辑电路的设计 7.4 实训 习题 第7章 常用数字电路设计7.1 组合逻辑电路组合逻辑电路 对于组合逻辑电路,电路任何时辰的输 对于组合逻辑电路,电路任何时辰的输出信号仅取决于当时的输入信号,其输出的出信号仅取决于当时的输入信号,其输出的值由输入决议在设计组合逻辑电路时,在值由输入决议在设计组合逻辑电路时,在进程中要包括一切的输入信号,以确保每一进程中要包括一切的输入信号,以确保每一个信号的变化都要启动进程常用的组合逻个信号的变化都要启动进程常用的组合逻辑电路有编码器、译码器、比较器、三态门、辑电路有编码器、译码器、比较器、三态门、加法器等加法器等第7章 常用数字电路设计7.1.1 编码器和译码器编码器和译码器 1.优先级.优先级8-3编码器编码器 优先级 优先级8-3编码器有编码器有d7~~d0八个输入信号,八个输入信号,y2、、y1、、y0三三个输出信号,各信号高电平有效其真值表如表个输出信号,各信号高电平有效其真值表如表7-1所示,逻所示,逻辑符号如图辑符号如图7-1所示。
所示第7章 常用数字电路设计第7章 常用数字电路设计 硬件电路中的优先级关系在VHDL言语中可以用IF分支判别语句或在PROCESS进程语句中设置暂时变量来实现如用IF语句,多条件的IF语句的条件是有优先级的,最前面的条件的优先级最高,越往后优先级越低例7-1是运用IF的分支判别语句实现优先级8-3编码器的VHDL程序,其利用了进程中语句顺序执行的特点,由于语句是由上至下执行的,因以后面的赋值将覆盖前面的赋值例7-2为运用PROCESS进程语句中变量的特点实现优先级8-3编码器的VHDL程序本章的程序为简单起见,全部采用小写方式,VHDL程序不区分大小写)第7章 常用数字电路设计图7-1 优先级8-3编码器逻辑符号第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 2.3-8译码器 3-8译码器的电路功能与编码器相反,其输入为a2、a1、a0三个信号,输出为y7~y0八个信号,另外还有三个控制信号g1、g2a和g2b其真值表如表7-2所示,逻辑符号如图7-2所示。
第7章 常用数字电路设计第7章 常用数字电路设计图7-2 3-8译码器逻辑符号第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.1.2 多位比较器多位比较器 多位比较器的真值表如表 多位比较器的真值表如表7-3所示,逻辑符号如图所示,逻辑符号如图7-3所示第7章 常用数字电路设计图7-3 8位比较器逻辑符号第7章 常用数字电路设计 【例7-4】下面为多位比较器的VHDL源程序,此程序为8位比较器第7章 常用数字电路设计第7章 常用数字电路设计7.1.3 三三态门 三 三态门是是驱动电路路经常用到的器件,其常用到的器件,其输出有三种形状,出有三种形状,分分别为“1〞、〞、“0〞与〞与“Z〞〞(即高阻形状即高阻形状)三态门的的逻辑符号如符号如图7-4所示图7-4 三态门逻辑符号第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.1.4 加法器加法器 加法器的构造化设计见 加法器的构造化设计见6.3.3节,其实也可以调用节,其实也可以调用IEEE库库中的中的STD_LOGIC_UNSIGNED库进展设计,对两个输入类型库进展设计,对两个输入类型为为STD_LOGIC_VECTOR的数直接进展加法运算。
的数直接进展加法运算 【例 【例7-6】两个】两个4位加法器的位加法器的VHDL程序如下:程序如下:第7章 常用数字电路设计第7章 常用数字电路设计7.2 时序逻辑电路设计时序逻辑电路设计 对于时序逻辑电路,其任何时辰的输出 对于时序逻辑电路,其任何时辰的输出信号不仅取决于当时的输入信号,而且还取信号不仅取决于当时的输入信号,而且还取决于电路原来的任务形状,即与以前的输入决于电路原来的任务形状,即与以前的输入信号及输出信号也有关系在时序逻辑电路信号及输出信号也有关系在时序逻辑电路的设计中,时钟信号比较重要,根本每一个的设计中,时钟信号比较重要,根本每一个时序逻辑电路都是由时钟控制的时序逻辑时序逻辑电路都是由时钟控制的时序逻辑电路的控制信号还包括两种重要的信号:同电路的控制信号还包括两种重要的信号:同步控制信号与异步控制信号步控制信号与异步控制信号第7章 常用数字电路设计7.2.1 时钟信号时钟信号 时序逻辑电路只需在时钟信号的边沿到来时,其形状才发 时序逻辑电路只需在时钟信号的边沿到来时,其形状才发生改动因此,时钟信号通常描画时序电路程序执行的条件。
生改动因此,时钟信号通常描画时序电路程序执行的条件另外,时序逻辑电路总是以时钟进程的方式来进展描画的,其另外,时序逻辑电路总是以时钟进程的方式来进展描画的,其描画方式普通分两种情况描画方式普通分两种情况 1.进程的敏感信号是时钟信号.进程的敏感信号是时钟信号 在这种情况下,时钟信号应作为进程敏感信号,显式地出 在这种情况下,时钟信号应作为进程敏感信号,显式地出如今如今process语句后面的括号中,例如语句后面的括号中,例如process(clock_signal)时钟信号边沿的到来,将作为时序逻辑电路语句执行的条件钟信号边沿的到来,将作为时序逻辑电路语句执行的条件第7章 常用数字电路设计 例7-7程序阐明,该进程在时钟信号(clock_signal)发生变化时被启动,而在时钟边沿的条件得到满足后才真正执行时序电路所对应的语句第7章 常用数字电路设计 2.用wait on或wait until语句控制进程启动 在这种情况下,描画时序电路的进程将没有敏感信号,而是用wait on 或wait until 语句来控制进程的执行,也就是说,进程通常停留在wait on 或wait until语句上,只需在时钟信号到来且满足边沿条件时,其他的语句才被执行,如例7-8所示。
第7章 常用数字电路设计第7章 常用数字电路设计 在编写上述两个程序时应留意: (1) 无论if语句还是wait语句,在对时钟边沿阐明时,一定要注明是上升沿还是下降没(前沿还是后沿),光阐明是边沿是不行的 (2) 当时钟信号作为进程的敏感信号时,在敏感信号列表中不能出现一个以上的时钟信号;除时钟信号以外,像复位信号等是可以和时钟一同出如今敏感信号表中的 (3) wait语句只能放在进程的最前面或者最后面 第7章 常用数字电路设计 3.时钟边沿的描画 为了描画时钟边沿,一定要指定是上升沿还是下降沿,这一点可以用时钟信号的属性描画来实现也就是说,经过确定时钟信号的值是从“0〞到“1〞变化,还是从“1〞到“0〞变化,由此得知是时钟脉冲信号的上升沿还是下降沿 1) 时钟脉冲的上升沿描画 时钟脉冲上升沿波形与时钟信号属性的描画关系如图7-5所示 从图中可以看到,时钟信号起始值为“0〞,故其属性值clk’last_value=‘0’;其上升沿的到来表示发生了一个事件,故用clk’event表示;上升沿以后,时钟信号的值为“1〞,故其当前属性值为clk=‘1’。
这样,表示上升沿到来的条件可写为 if clk’event and clk’last_value='0' and clk='1' then 第7章 常用数字电路设计图7-5 时钟脉冲上升沿属性描画关系第7章 常用数字电路设计 2) 时钟脉冲的下降沿描画 时钟脉冲下降沿波形与时钟信号属性的描画关系如图7-6所示 从图中可以看到,时钟信号起始值为“1〞,故其属性值clk’last_value=‘1’;其下降沿的clk’last_value=‘1’,时钟信号当前值为clk=‘0’,下降沿到来的事件为clk’event这样表示下降沿到来的条件可写为 if clk’event and clk’last_value='1' and clk='0' then第7章 常用数字电路设计图7-6 时钟脉冲下降沿属性描画关系第7章 常用数字电路设计 根据上面的描画,时钟的边沿检测条件可以一致描画如下: if clock_signal=current_value and clock_signal’last_value and clock_signal’event then 在某些运用中,也可以简写成如下方式: if clock_signal=current_value and clock_signal’event then 另外,对于STD_LOGIC类型的信号可以用预定义好的两个函数来表示时钟的边沿: rising_edge(clk) 表示时钟的上升沿 falling_edge(clk) 表示时钟的下降沿第7章 常用数字电路设计7.2.2 其他控制信号其他控制信号 1.同步控制信号.同步控制信号 在时序逻辑电路中,同步控制信号指该信号控制功能的产生 在时序逻辑电路中,同步控制信号指该信号控制功能的产生必需等时钟的边沿到来时才有效,也即与时钟同步。
因此,要使必需等时钟的边沿到来时才有效,也即与时钟同步因此,要使同步控制信号可以可靠地产生控制造用,其宽度必需保证至少有同步控制信号可以可靠地产生控制造用,其宽度必需保证至少有一个时钟周期时钟的上升沿比同步控制信号的优先级要高,所一个时钟周期时钟的上升沿比同步控制信号的优先级要高,所以在编写程序时一定要把检测同步控制信号有效的语句放在检测以在编写程序时一定要把检测同步控制信号有效的语句放在检测时钟边沿的后面在进程的敏感信号列表中可以不包括同步控制时钟边沿的后面在进程的敏感信号列表中可以不包括同步控制信号,由于时钟边沿信号的优先级比同步控制信号要高,只需在信号,由于时钟边沿信号的优先级比同步控制信号要高,只需在时钟边沿到来时控制信号才有效,这时进程曾经启动了,所以可时钟边沿到来时控制信号才有效,这时进程曾经启动了,所以可以检测到同步控制信号当然在进程的敏感信号列表中也可以包以检测到同步控制信号当然在进程的敏感信号列表中也可以包含同步控制信号,但这会呵斥进程的多余启动,对于程序的运转含同步控制信号,但这会呵斥进程的多余启动,对于程序的运转结果那么没有影响假设电路中含有使能信号结果那么没有影响。
假设电路中含有使能信号(其性质是同步控其性质是同步控制信号制信号),那么可以把使能信号看做同步控制信号那么可以把使能信号看做同步控制信号第7章 常用数字电路设计 【例7-9】带有使能信号的同步清零的八进制计数器,其仿真波形见图7-7图7-7 同步控制信号仿真波形第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 2.异步控制信号 在时序逻辑电路中,异步控制信号指该信号的控制功能只需满足条件就立刻产生,而不需等时钟的边沿到来时才有效因此,异步控制信号时钟的上升沿比同步控制信号的优先级要高,在编写程序时一定要把检测异步控制信号有效的语句放在检测时钟边沿的前面在进程的敏感信号列表中应该包括异步控制信号,由于时钟边沿信号的优先级比异步控制信号要低,所以只需异步控制信号有效,进程就必需启动 【例7-10】设计带有使能信号的异步清零的八进制计数器,其仿真波形见图7-8第7章 常用数字电路设计图7-8 异步控制信号仿真波形第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.3 常用时序逻辑电路的设计常用时序逻辑电路的设计7.3.1 存储器存储器 1.存储器描画中的共性问题.存储器描画中的共性问题 1) 存储器的数据类型存储器的数据类型 存储器是众多存储单元的集合体,按照单 存储器是众多存储单元的集合体,按照单元号顺序陈列,每个单元由假设干二进制位构元号顺序陈列,每个单元由假设干二进制位构成,以表示单元中存放的数据值。
这种构造和成,以表示单元中存放的数据值这种构造和数组的构造是非常类似的数组的构造是非常类似的第7章 常用数字电路设计 每个存储单元所存放的数可以用不同的、由VHDL语句所定义的数的类型来描画,例如用整数和位矢量来描画: type memory is array (integer range<>) of integer; 这是一个元素用整数表示的数组,用它来描画存储器存储数据的构造 subtype word is std_logic_vector(k-1 downto 0); type memory is array(0 to 2**w-1) of word; 这是一个元素用位矢量表示的数组,用它来描画存储器存储数据的构造这里k表示存储单元二进制位数,w表示数组的元素个数第7章 常用数字电路设计 2) 存储的初始化 在用VHDL言语描画ROM时,ROM的内容应该在仿真时事先读到ROM中,这就是所谓存储器的初始化存储器的初始化要依赖于外部文件的读取,也就是说依赖于TEXTIO下面就是对ROM进展初始化的例子第7章 常用数字电路设计第7章 常用数字电路设计 2.只读存储器ROM 用VHDL言语编写ROM(Read Only Memory)时需求对其进展初始化。
第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 3.随机存储器RAM RAM和ROM的主要区别在于RAM的描画中有“读〞和“写〞两种操作,而且其读、写操作对时间有着严厉的要求 【例7-13】设计一个8×8位RAM,基中cs为片选信号,wr为写信号,rd为读信号当cs=1、在wr信号的上升沿时,将IO上的数据写入到由addr指定的单元;当cs=0、rd=0时,将addr指定的单元读出送至IO第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.3.2 先入先出存储器先入先出存储器 先入先出 先入先出(First In First Out,,FIFO)存储器作为数据缓冲存储器作为数据缓冲器,通常其数据存放构造与器,通常其数据存放构造与RAM是一致的,只是存取方式有是一致的,只是存取方式有所不同 第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.3.3 堆栈堆栈 堆栈是一种常见的数据存储构造,它的特点是数据后进先 堆栈是一种常见的数据存储构造,它的特点是数据后进先出。
堆栈会在实现某些控制算法的电路中出现,但普通不会用出堆栈会在实现某些控制算法的电路中出现,但普通不会用来处置大流量的数据大多的器件厂家都没有提供专门的堆栈来处置大流量的数据大多的器件厂家都没有提供专门的堆栈单元模块,因此需求在设计中描画存放器堆来实现堆栈构造单元模块,因此需求在设计中描画存放器堆来实现堆栈构造第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 【例7-16】 6分频的VHDL源程序如下,其中architecture a运用第一种方案,architecture b运用第二种方案,运用configuration配置语句为实体指定构造体第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.3.5 波形产生电路波形产生电路 1.基于.基于ROM的波形产生电路的波形产生电路 波形产生电路主要经过调用存放器中的数据,控制取出数 波形产生电路主要经过调用存放器中的数据,控制取出数据的速度从而控制周期。
波形周期的改动普通有两种方法:一据的速度从而控制周期波形周期的改动普通有两种方法:一种是改动时钟的速度,也即改动取出存放器中数据的速度控制种是改动时钟的速度,也即改动取出存放器中数据的速度控制所产生波形的速度;另一种是经过控制取出存放器中数据的间所产生波形的速度;另一种是经过控制取出存放器中数据的间隔来控制产生波形的周期,所取数据的间隔越大,所产生的波隔来控制产生波形的周期,所取数据的间隔越大,所产生的波形频率就越大形频率就越大 【例 【例7-18】用一个数组表示数据存放器,并把该数组用程】用一个数组表示数据存放器,并把该数组用程序包进展描画序包进展描画第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 2.恣意波形的产生 1) 正弦波 【例7-19】正弦波的VHDL源程序如下:第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 2) 三角波 由于三角是由线性添加和线性递减的两条线段构成的,所以可以直接用VHDL言语编程来实现三角波。
当线性自加到最高点时,由控制语句控制其自减,直到减到最低点时再反复之前的过程,从而实现三角波 第7章 常用数字电路设计 【例7-20】采用VHDL言语编程的三角波源程序如下:第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 3) 锯齿波 锯齿波的采样也可以用VHDL言语来实现:当波形自加到所要求的最高点时,由控制语句使其前往0点反复以前的过程,从而实现锯齿波另外设置一个控制按键,来控制输出上升锯齿波或下降锯齿波第7章 常用数字电路设计 【例7-21】锯齿波VHDL源程序如下:第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 4) 方波 由于时钟脉冲输出即为方波,因此对方波的设计可以简化为直接输出时钟脉冲信号但是,在本设计中方波与其他三个波形要同步且要经过D/A转换,所以还需把时钟脉冲变成8位输出才可以经由D/A转换输出,详细过程可以由例7-22所示的程序实现第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计 5) 波形选择与控制 在前面曾经分别引见了4种根底波形的设计,如今引见如何将4种波形合并,使它们按操作输出所需波形,波形选择与控制功能由时钟脉冲输入选择模块完成。
中选择了一种波形时,对应的波形模块输入时钟脉冲,并输出波形数据,其他三个波形模块的输入那么一直为0,不能输出波形但是,其他波形模块一直有0信号输入,也能产生数据,会对输出的波形产生干扰因此,需求输出波形选择模块来选择有用的波形,隔离干扰数据为了同时实现时钟脉冲选择与输出波形选择,同时也为了消除延迟,在输出波形选择模块与时钟脉冲选择模块中采用同一组控制开关这样当输入一种控制数据时,输出的波形也就是所需的波形这种设计可以减少按键的数量,节省资源,降低错误机率恣意波形发生器的系统总体设计原理图如图7-9所示第7章 常用数字电路设计图7-9 恣意波形发生器的系统总体设计原理图第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.3.6 形状机形状机 形状机通常分为米勒型 形状机通常分为米勒型(Mealy)和摩尔型和摩尔型(Moore)米勒型形状机的输出由电路当前的输入和电路原来的形状决议,属于形状机的输出由电路当前的输入和电路原来的形状决议,属于同步输出形状机,一旦输入信号或形状发生变化,输出信号立同步输出形状机,一旦输入信号或形状发生变化,输出信号立刻发生变化。
摩尔型形状机的输出是当前形状的函数,属于异刻发生变化摩尔型形状机的输出是当前形状的函数,属于异步输出形状机,输出信号只在时钟边沿到来时才发生变化步输出形状机,输出信号只在时钟边沿到来时才发生变化第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.4 实实 训训7.4.1 4位乘法器设计位乘法器设计 一、实训目的 一、实训目的 (1) 用组合逻辑电路设计用组合逻辑电路设计4位并行乘法器位并行乘法器 (2) 了解并行乘法器的设计原理了解并行乘法器的设计原理 (3) 掌握构造化设计方法掌握构造化设计方法 二、实训原理 二、实训原理 4位乘法器有多种实现方案,根据乘法器位乘法器有多种实现方案,根据乘法器的运算原理,使部分乘积项对齐相加的运算原理,使部分乘积项对齐相加(通常称通常称并行法并行法)是最典型的算法之一。
这种算法可用是最典型的算法之一这种算法可用组合电路实验,其特点是设计思绪简单直观、组合电路实验,其特点是设计思绪简单直观、电路运算速度快,缺陷是运用器件较多电路运算速度快,缺陷是运用器件较多第7章 常用数字电路设计 1.并行乘法的算法 下面将根据乘法例题来分析这种算法,题中M4、M3、M2、M1是被乘数,用M表示N4、N3、N2、N1是乘数,用N表示,如图7-10所示第7章 常用数字电路设计 从以上乘法实例可以看到,乘数N中的每一位都要与被乘数M相乘,获得不同的积,每部分乘法之和相加时需按高低位对齐,并行相加,才干得到正确的结果 2.并行乘法电路原理 并行乘法电路完全是根据以上算法而设计的,其电路框图如图7-11所示图中XB0、XB1、XB2、XB3是乘数B的第N位与被乘数A相乘的1×4 bit乘法器三个加法器将1×4 bit乘法器的积作为加数A,前一级加法器的和作为加数B,相加后得到新的部分积,经过三级加法器的累加最终得到乘积P(P7P6P5P4P3P2P1P0)第7章 常用数字电路设计图7-11 并行乘法电路框图第7章 常用数字电路设计 三、实训内容 (1) 用VHDL言语设计4位乘法器。
(2) 设计乘法器功能模块及4位加法器功能模块,并解释程 序 (3) 采用构造化方法设计该乘法器 (4) 进展软件仿真,并分析仿真结果 (5) 锁定引脚,并下载验证第7章 常用数字电路设计 四、实训步骤(略) 五、器件下载编程与硬件实现 在进展硬件测试时,选择8个按键作为4个数据输入信号,用8个LED灯作为运算结果数据输出指示,每4个数为一个二进制数值,经过LED灯的亮灭来显示乘法的运算结果其硬件对应表示表如表7-4所示第7章 常用数字电路设计第7章 常用数字电路设计 本实训的硬件构造表示图如图7-12所示图7-12 硬件构造表示图第7章 常用数字电路设计 六、实训报告 (1) 阐明实训工程的任务原理、所需求的器材 (2) 写出设计源程序,并进展解释 (3) 写出软件仿真结果,并进展分析 (4) 阐明硬件原理与测试情况 (5) 写出心得领会第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.4.2 步长可变的加减计数器设计步长可变的加减计数器设计 一、实训目的 一、实训目的 (1) 掌握加减法计数器以及特殊功能计数器的设计原理。
掌握加减法计数器以及特殊功能计数器的设计原理 (2) 用用VHDL言语设计多功能计数器言语设计多功能计数器第7章 常用数字电路设计 二、实训原理 1.加减任务原理 加减计数也称为可逆计数,就是根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进展加1计数操作或者减1计数操作 2.变步长任务原理 如步长为3的加法计数器,计数形状变化为0,3,6,9,12,…,步长值由输入端控制在加法计数时,当计数值到达或超越99时,下一个时钟脉冲过后,计数器清零;在减法计数时,当计数值到达或小于0时,下一个时钟脉冲过后,计数器也清零其任务过程如图7-13所示第7章 常用数字电路设计图7-13 步长可变的加减计数器任务过程第7章 常用数字电路设计 三、实训内容 (1) 设计的计数步长可在0~99之间变化 (2) 经过仿真或察看波形图验证设计的正确性 (3) 编译下载,验证结果 四、设计提示 (1) 留意IF语句的嵌套 (2) 留意加减计数形状的变化,计数值由9变0(加法)及由0变9(减法)各位的变化由于计数器为十进制计数器,还应思索进位或借位后进展加6及减6校正。
第7章 常用数字电路设计 五、实训步骤(略) 六、器件下载编程与硬件实现 在进展硬件测试时,取按键K1~K4 对应步长数的十位(BCD码),K1为高位;按键K5~K8 对应步长数的个位(BCD码),K5为高位;按键K9为使能开关(高电平有效);按键K10为加减方式切换开关(高电平为加,低电平为减);按键K11为同步清零开关(低电平有效)计数的结果经过两个数码管M2、M1显示输出 本实训的硬件构造表示图如图7-14所示第7章 常用数字电路设计图7-14 硬件构造表示图第7章 常用数字电路设计 七、实训报告 (1) 指出实训所需求的器材 (2) 写出多模加减计数器的VHDL源程序,并进展分析阐明 (3) 表达多模加减计数器的任务原理 (4) 画出计数器仿真任务波形图,并分析阐明 (5) 写出硬件测试情况 (6) 写出心得领会第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.4.3 序列检测器设计序列检测器设计 一、实训目的 一、实训目的 (1) 了解形状机的设计方法。
了解形状机的设计方法 (2) 运用形状机的原理设计一个序列检测器运用形状机的原理设计一个序列检测器 (3) 掌握枚举类型的用法掌握枚举类型的用法第7章 常用数字电路设计 二、 二、实训原理原理 序列 序列检测器在数据通器在数据通讯、雷达和遥、雷达和遥测等等领域中用于域中用于检测同同步步识别标志它是一种用于志它是一种用于检测一一组或多或多组序列信号的序列信号的电路,路,例如例如检测器收到一器收到一组串行串行码1110010后,后,输出出标志志1,否那么,否那么输出出0思索这个例子,每收到一个符合要求的串行个例子,每收到一个符合要求的串行码就需求用就需求用一个形状机一个形状机进展展记忆串行码长度度为7位,需求位,需求7个形状另外,个形状另外,还需求添加一个需求添加一个“未收到一个有效位〞的形状,共未收到一个有效位〞的形状,共8个形状个形状(S0~~S7),形状,形状标志符的下志符的下标表示有几个有效位被表示有几个有效位被读出画出形出画出形状状转移移图,如,如图7-15所示,很所示,很显然然这是一个摩是一个摩尔型形状机型形状机8个形状机根据个形状机根据编码原那么可以用原那么可以用3位二位二进制数来表示。
制数来表示第7章 常用数字电路设计图7-15 序列检测器的形状转换图第7章 常用数字电路设计 三、实训内容 (1) 用VHDL言语编写出源程序 (2) 设计两个脉冲发生器,一个检测1110010序列;另一个不包含此序列,用于检测程序的正确性 (3) 将脉冲序列发生器和脉冲序列检测器结合生成一个文件,并编译下载,验证结果第7章 常用数字电路设计 四、实训步骤 该实训工程由于要有一个符合要求的序列信号,所以涉及第3章的实训,需求一个脉冲序列发生器第3章的实训是经过原理图进展设计的,读者也可以用VHDL言语进展设计,这样可以修正产生的脉冲序列在产生脉冲序列的程序中可以添加控制按键,用于产生不同的脉冲序列信号,比如当控制按键为高电平常输出“11100100〞序列,低电平常输出“10101010〞序列,然后再用本实训的序列检测器检测该序列,经过LED灯的亮灭表示能否检测到该序列也可以经过示波器先检测一下脉冲序列信号能否正确可以经过一个程序完成全部功能,该程序包括脉冲信号产生程序与脉冲信号检测程序,也可以两个人协作经过两台EDA实验开发系统的扩展口分别实现两个程序及其之间的通讯。
第7章 常用数字电路设计 五、器件下 五、器件下载编程与硬件程与硬件实现 在 在进展硬件展硬件测试时,在脉冲信号,在脉冲信号产生程序中按生程序中按键K1为复复位端位端(低低电平常复位平常复位),按,按键K2 为数据数据选择开关开关(高高电平常平常输出出“11100100〞序列,低〞序列,低电平常平常输出出“10101010〞序列〞序列),,扩展口展口(JK3)输出脉冲信号,出脉冲信号,扩展口展口JK4为接接纳数据端,数据端,LED灯用于灯用于显示能否接到一个正确的脉冲序列本示能否接到一个正确的脉冲序列本实训的硬件构造表示的硬件构造表示图如如图7-16所示第7章 常用数字电路设计图7-16 序列检测器的硬件构造表示图第7章 常用数字电路设计 六、实训报告 (1) 阐明实训工程的任务原理、所需求的器材 (2) 写出设计源程序,并进展解释 (3) 写出软件仿真结果,并进展分析 (4) 阐明硬件原理与测试情况 (5) 写出心得领会第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计7.4.4 4人抢答器设计人抢答器设计 一、实训目的 一、实训目的 (1) 掌握小型数字系统的设计。
掌握小型数字系统的设计 (2) 掌握利用原理图输入与掌握利用原理图输入与VHDL输入共同设计电路的方输入共同设计电路的方法第7章 常用数字电路设计 二、实训原理与要求 1.设计要求 4人抢答器的设计要求如下: (1) 有多路抢答,抢答台数为4 (2) 抢答开场后20秒倒计时,20秒倒计时后无人抢答那么显示超时,并报警 (3) 能显示超前抢答台号并给出犯规警报 (4) 系统复位后进入抢答形状,当有一路抢答按键按下时,该路抢答信号将其他各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号 (5) 用VHDL设计符合上述功能要求的4人抢答器,并用层次化设计方法设计该电路第7章 常用数字电路设计 2.设计原理 4人抢答器原理框图如图7-17所示 系统复位后,反响信号为一个高电平信号,使K1、K2、K3、K4输入有效抢答开场后,有第一个人按键,抢答坚持电路输出低电平,同时送显示电路,让其保管按键的台号并输出,并反响给抢答台,使一切的抢答台输入无效,计时电路停顿当在规定时间内无人抢答时,倒计时电路输出超时信号当有人抢先按键时将显示犯规信号。
这是一个简单适用的数字系统,可采用自顶向下的设计方法,顶层系统采用原理设计方式,各个模块用VHDL进展编程,系统图如图7-18所示,即以原理图作为顶层文件(工程工程文件)第7章 常用数字电路设计图7-17 4人抢答器原理框图第7章 常用数字电路设计 图7-18中,reset为复位键,k[3..0]为开关输入,firstman为输出抢答人员编号;RED为红灯输出,GREEN为绿灯输出,YELLOW为黄灯输出绿灯显示为抢答胜利,红灯为有人犯规,黄灯亮为在规定的时间内没人抢答图7-18 顶层原理图第7章 常用数字电路设计 三、实训内容 (1) 分析原理图搞清其逻辑功能 (2) 用VHDL对顶层各个模块编程,并进展分析 (3) 建立工程,创建如图7-18所示的原理图,并检查编译 (4) 经过软件进展仿真,分析仿真结果 (5) 对系统进展仿真 (6) 下载验证电路的正确性第7章 常用数字电路设计 四、实训步骤 (1) 编写各个模块的源程序,检查编译 (2) 建立工程,以顶层原理图文件名为工程名,把先前建立的VHDL程序参与这个工程中,并对每个VHDL程序创建原理图符号,经过原理图输入设计顶层原理图。
建立如图7-18所示的原理图,检查编译,并进展系统仿真 (3) 选择元器件,定义好管脚 (4) 编译,进展时序仿真并分析波形 (5) 下载编程,进展硬件测试第7章 常用数字电路设计 五、器件下载编程与硬件实现 在进展硬件测试时,按键K1、K2、K3、K4为4路抢答键;按键K5为复位键,供主持人运用;按键K6为开场键,供主持人运用;数码管M3用于显示抢答台号;数码管M2、M1用于显示抢答20秒倒计时;LED灯L16表示有人抢答胜利,LED灯L15表示超时,LED灯L14表示有人犯规对应的硬件构造表示图如图7-19所示第7章 常用数字电路设计图7-19 4人抢答器的硬件构造表示图第7章 常用数字电路设计 六、实训报告 (1) 画出顶层原理图 (2) 对照4人抢答器电路框图分析电路任务原理 (3) 写出各功能模块的VHDL源程序 (4) 写出设计领会第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计第7章 常用数字电路设计习习 题题 7.1 设计一个设计一个8位双向总线缓冲器。
位双向总线缓冲器 7.2 查阅相关资料,设计一个七段数码显查阅相关资料,设计一个七段数码显示译码电路示译码电路(请按共阴极数码管与共阳极数码请按共阴极数码管与共阳极数码管分别设计管分别设计) 7.3 知一个求补器的逻辑符号如图知一个求补器的逻辑符号如图7-20所所示,试给出它的示,试给出它的VHDL描画第7章 常用数字电路设计图7-20 求补器逻辑符号第7章 常用数字电路设计 7.4 设计一个8421码到BCD码的转换电路 7.5 设计一个六十进制的加减计数器,要求有同步置数与异步复位功能 7.6 设计一个16分频电路(占空比为50%) 7.7 设计一个7分频电路(占空比为4/7) 7.8 请用VHDL设计一个多功能存放器,其功能如表7-5所示第7章 常用数字电路设计。












