资源预览内容
第1页 / 共200页
第2页 / 共200页
第3页 / 共200页
第4页 / 共200页
第5页 / 共200页
第6页 / 共200页
第7页 / 共200页
第8页 / 共200页
第9页 / 共200页
第10页 / 共200页
亲,该文档总共200页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章 MAX+PLUS开发软件中的 宏模块及其应用,7.1 时序电路宏模块 7.2 运算电路宏模块 7.3 存储器宏模块,7.1 时序电路宏模块,7.1.1 触发器 触发器是数字电路中的常用器件, 在后面介绍的许多电路中, 都可以发现触发器的身影。触发器可以组成各种类型的计数器和寄存器。 常用的触发器类型主要分为D触发器、 T触发器、 JK触发器以及带有各种使能端和控制端的扩展型触发器等。,表7.1简要列出了MAX+PLUS提供的触发器宏模块的目录, 有关具体模块参数的设置可以参考该软件提供的帮助信息。,表7.1 触发器宏模块目录,JK触发器是多功能触发器, 其符号如图7.1所示, 表7.2是它的逻辑参数表。,图7.1 JK触发器,表7.2 JK触发器逻辑参数,D触发器的输出就是时钟脉冲到来之前的数据输入端D的状态, 所以输出和输入的状态变化之间存在一个时钟周期的延时, 因而又称之为延时触发器。 D触发器的符号如图7.2所示, 表7.3是逻辑参数表。,图7.2 D触发器,表7.3 D触发器逻辑参数,T触发器与D触发器类似, 只有一个数据输入端和一个时钟输入端。 表7.4给出了T触发器的逻辑参数。 T触发器与D触发器之间最基本的区别在于D触发器输出状态完全取决于D输入端是高电平还是低电平, 而T触发器的输出状态并不随T输入端电平变化而变化, 只有T输入是高电平时, 在时钟的激励下, 输出状态才改变一次, 也就是说T触发器具有二分频能力。 图7.3就是利用T触发器设计的二分频电路。,表7.4 T触发器逻辑参数,图7.3 利用T触发器设计的二分频电路,在普通JK型、 D型和T型触发器的基础上, MAX+PLUS软件还提供了具有扩展功能的触发器宏模块, 如具有预置、 清零端和三态输出端的触发器, 如果在电路设计中灵活加以运用, 可以大大提高电路设计的效率和性能。,7.1.2 锁存器 锁存器主要分为RS锁存器、 门控RS锁存器和D锁存器三种形式, 它的作用就是把某时刻输入信号的状态保存起来。 触发器实际上是一种带有时钟控制的锁存器。 锁存器和触发器状态均跟随输入信号的电平值变化, 二者不同之处在于锁存器的状态随输入信号实时变化, 而触发器的状态要等到时钟沿到来时才改变。 表7.5列出了MAX+PLUS提供的锁存器宏模块的目录, 有关具体模块参数的设置可以参考该软件提供的帮助信息。,表7.5 锁存器宏模块目录,7.1.3 计数器 计数器是数字系统中使用最广泛的时序电路, 几乎每一个数字系统都离不开计数器。 计数器可以对时钟或脉冲信号计数, 还可以完成定时、 分频、 控制和数学运算等功能。 根据输入脉冲的引入方式不同, 计数器可分为同步计数器和异步计数器; 根据从计数过程中数字的增减趋势不同, 计数器可分为加法计数器、 减法计数器和可逆计数器; 根据计数器计数进制的不同, 计数器还可分为二进制计数器和非二进制计数器(如二-十进制计数器)。,MAX+PLUS提供了几十种计数器宏模块, 在设计中可以任意调用, 表7.6简要列出了这些宏模块的目录, 有关具体模块参数的设置可以参考软件提供的帮助信息。,表7.6 计数器宏模块目录,图7.4是一个利用“8count”宏模块构成的“模128同步计数器”,“8count”是8位二进制加/减计数器, 采用同步或异步读取预置数据和异步清零方式。 “8count”宏模块的逻辑参数如表7.7所示。,图7.4 模128同步计数器,表7.7 “8count”宏模块的逻辑参数,下面简要分析一下计数器的参数设置及其原理: “CLK”为时钟输入端口, “CLRN”为外部清零端口(低电平有效), “Q”为结果输出端口; “DNUP”接地, 表示采用加法计数方式, 在时钟上升沿的驱动下, 计数器的8个输出端口“QHQA”以二进制方式显示时钟脉冲的数目, 其中“QH”为最高有效位(MSB), “QA”为最低有效位(LSB);, “LDN”接读取控制信号, 而将“STEN”悬空(系统默认值为接高电平), 则将计数器配置为同步读取方式; 数据预置端口“HA”设置为零, 指示计数器初始计数从“00000000”开始, 其中“H”为最高有效位, “A”为最低有效位;, 计数器从初始状态“00000000”计数到“01111111”时, 表示已经完成一个计数周期,在这里用一个8输入与门检测这一状态, 当“QGQA”同时为高电平时, 与门输出一个高电平脉冲信号, 时间宽度为一个时钟周期。 图7.5给出了仿真波形, 其中“TEST”节点显示与门输出信号的波形。,图7.4中D触发器的作用有两个, 其中一个作用是消除与门输出的毛刺信号。 由于器件内部存在延时, 计数器的输出端口“QGQA”上高低电平的翻转并不是同时进行的, 相互之间会有几个纳秒的差异, 这就有可能在与门输出端产生毛刺。 从仿真波形“TEST”节点上可以看到这些毛刺, 毛刺只出现在时钟上升沿之后, 而且持续时间很短(几个纳秒), 不会与时钟上升沿同时出现, 所以利用D触发器就可以消除毛刺。 从输出引脚“Q”上的仿真波形可以看到“TEST”节点上的毛刺已经被消除干净了。,图7.5 模128同步计数器仿真波形,计数器在清零后的初始状态已经为“00000000”, 那么第一个时钟周期对应的计数器输出端口状态为“00000001”, 这样就使第一个计数周期内只能计127个时钟脉冲, 而不是所希望的128个时钟脉冲。 所以D触发器的另一个作用是为计数器产生一个时钟周期的群延迟, 使得在计数器清零后的所有计数周期内的脉冲数目均为128。,在图7.4“QHQA”不同端口加上“非门”, 再将这些输出信号送入“AND8”中, 则可以构成“2128”任意进制同步计数器。 图7.4给出的“模128同步计数器”输出的计数脉冲的时间宽度为一个时钟周期, 对于一些特殊的应用, 例如需要计数脉冲的时间宽度为半个时钟周期, 这样的电路该如何实现呢?现还以上面介绍的“模128同步计数器”为例, 修改后的电路如图7.6所示。,图7.6 修改后的模128同步计数器,在图7.4的基础上, 额外增加了一个二输入“与门”和一个D触发器。 “与门”的作用是产生一个很小的延时, 它的输出端连至D触发器的时钟输入端。 D触发器的清零端口“CLRN”与系统时钟“CLK”相连, 输入端口接高电平。 节点“TEST1”上的信号实际上就是图7.4“Q”端口上的输出信号, 该信号经过“与门”运算后去激励D触发器。,从图7.7的仿真波形上可以看出, 在计数脉冲出现时, 系统时钟“CLK”处于高电平状态, 在“与门”输出信号的上升沿激励下, D触发器输出端变为高电平。 半个时钟周期后, “CLK”处于低电平状态, D触发器被清零, 其输出端相应地变为低电平。 由此, “Q”端口输出的计数脉冲的宽度为半个时钟周期, 图7.7的仿真波形清楚地显示了这一变化。,图7.7 修改后的计数器仿真波形,当计数器的计数周期是一个合数时, 数学上可以将该数写为几个整数的乘积, 从计数器实现的角度上讲, 该计数器可以采用几个计数器级联的方式实现, 各个计数器计数周期的乘积就是整个计数器的计数周期。 图7.8所示的电路就是利用“模4计数器”和“模32计数器”级联实现的“模128同步计数器”。 采用计数器级联方式, 可以利用几个短周期的计数器构成一个长周期的计数器, 但需要注意的是计数脉冲的时间宽度往往是时钟周期的若干倍, 图7.8所示电路的计数脉冲宽度就是时钟周期的四倍。,图7.8 采用计数器级联方式实现的128同步计数器,7.1.4 分频器 对于一个时序电路系统来说, 一般只有一个时钟源, 各个子系统所需的时钟是由该时钟源经过分频电路和倍频电路得到的。 分频电路的设计与实现比倍频电路简单, 它可以利用触发器、 分频器和计数器等功能模块来实现。 MAX+PLUS提供了三种分频器宏模块, 表7.8简要列出了这些宏模块的名称和功能, 模块参数的设置可以参考MAX+PLUS软件提供的帮助信息。,表7.8 分频器宏模块目录,图7.9中给出了可以用一个D触发器和反相器实现的二分频器电路, 2N次分频电路(N1)可采取将图7.9所示电路级联的方式实现。 图7.10是利用“7456”宏模块构成的双时钟5、 10分频器, “7456”的逻辑参数如表7.9所示。 由仿真波形图7.11可以看出, “CLKA”和“CLKB”可以分别使用两种不同频率的时钟信号。,图7.9 用D触发器实现的二分频器,表7.9 “7456”宏模块的逻辑参数,图7.10 双时钟5、 10分频器,图7.11 双时钟5、 10分频器仿真波形,利用计数器可以实现特殊的分频功能, 图7.12是一个利用“4count”计数器宏模块实现的“9/8分频器”电路。 “4count”宏模块的逻辑参数如表7.10所示。,图7.12 9/8分频器,表7.10 “4count”宏模块的逻辑参数,下面简要分析一下该分频器的参数设置及其原理: “CLK”为时钟输入端口, “CLRN”为外部清零端口(低电平有效), “C”为9/8分频结果输出端口, “Q”为“9计数器”输出端口; “DNUP”接地, 表示采用加法计数方式, 在时钟上升沿的驱动下, 计数器的四个输出端口“QDQA”以二进制方式显示时钟脉冲的数目; “LDN”接读取控制信号, “STEN”接高电平, 将计数器配置为同步读取方式;, 数据预置端口“DA”设置为零, 指示计数器初始计数从“0000”开始; 计数器从初始状态“0000”计数到“1000”时表示已经完成一个计数周期, 此时“QD”输出高电平。 D触发器用时钟的下降沿触发, 目的是使输出脉冲滞后半个时钟周期, 图7.13中“TEST”节点的仿真波形描述了这一信号。 “TEST”节点信号与时钟做“与”逻辑运算, 产生计数周期为9的计数脉冲, “TEST”节点信号的反向信号与时钟的“与”逻辑运算产生“9/8”分频信号。,图7.13 9/8分频器仿真波形,与计数器类似, 将几个分频器级联起来, 可以实现高分频比电路。 如果级联电路的最后一级采用2N分频器, 可以使输出信号的占空比为50。,7.1.5 多路复用器 在多路数据传送过程中, 有时需要将多路数据中的任意一路信号挑选出来, 完成这种功能的逻辑电路称为多路复用器。 多路复用器是一个多输入、 单输出的逻辑电路, 它在地址码(或选择控制信号)的控制下, 从几路输入数据中选择一个, 并将其送到输出端, 其功能类似于一个多掷开关, 所以有时也被称为多路数据选择器、 多路开关或多路转换器。 多路选择器常用于计算机、 DSP中的数据和地址之间的切换, 以及数字通信中的并/串变换、 通道选择等。,MAX+PLUS软件所提供的多路复用器宏模块已在表7.11中列出, 有关具体模块的参数设置可以参考该软件提供的帮助信息。 图7.14是用“lpm-mux”宏模块设计的四路数据采集电路, 在原理图输入时, 当选定“lpm-mux”模块后, 系统会提示设计人员设置模块的参数。 “lpm-mux”的逻辑参数表7.12 所示。,表7.11 多路复用器宏模块目录,图7.14 四路数据采集电路,表7.12 “lpm-mux”宏模块的逻辑参数,四路数据采集器将并行输入的四路数据按照一定的次序合为一路高速数据输出, 每路数据线宽度为4, 所以“lpm-mux”的参数设置为 LPM-WIDTH4 LPM-WIDTHS2,“lpm-mux”输入端口“data”的数据线宽度为16, 用“DATAIN15 0”表示, 其中A路输入数据“DATAINA3 0”占用“DATAIN3 0”, B路输入数据“DATAINB3 0”占用“DATAIN7 4”, C路输入数据“DATAINC3 0”占用“DATAIN11 8”, D路输入数据“DATAIND3 0”占用“D
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号