《Verilog HDL数字系统设计-原理、实例及仿真》课件第9章_第1页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第9章_第2页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第9章_第3页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第9章_第4页
《Verilog HDL数字系统设计-原理、实例及仿真》课件第9章_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章常用时序逻辑电路设计9.1触发器9.2计数器9.3寄存器9.4分频器

9.1触发器

触发器是能够存储或记忆一位二进制信息的基本单元电路。触发器有两个基本特点:第一,有两个能够保持的稳定状态,分别用逻辑0(称为0状态)和逻辑1(称为1状态)表示。第二,在适当输入信号作用下,可从一种稳定状态翻转到另一种稳定状态,并且在输入信号取消后,能将新的状态保存下来。为了明确表示触发器的状态,通常把接收输入信号之前的状态称为现态,记作Qn,将接收输入信号之后的状态称为次态,记作Qn+1。触发器的种类很多,分类方法也各不相同。按触发器的触发方式分,有电位触发方式的触发器、主从触发方式的触发器和边沿触发方式的触发器等几种。按照触发器的逻辑功能来分,有R-S触发器、D触发器、J-K触发器和T触发器等。9.1.1R-S触发器

时钟信号CP高有效的钟控R-S触发器逻辑符号见图9.1。钟控R-S触发器的状态转移真值表见表9.1,表中示出的均为CP有效(CP=1)时的情况。图9.1钟控R-S触发器的逻辑符号从表9.1中可以看出,输出Qn+1的状态受R、S的控制,当S=1、R=0时,输出Qn+1=1,实现触发器的置1功能;当S=0、R=1时,输出Qn+1=0,实现清零功能;当S=0、R=0时,输出Qn+1=Qn,即保持原有状态不变。按照上面分析的S和R的功能,S称为置位信号(使Qn+1=1),R称为复位信号(使Qn+1=0)。

注意:当控制输入端R和S同时为1时会出现不确定的状态,必须避免这种情况的发生,因此基本R-S触发器在工作时必须满足约束条件,即R·S=0。

代码9.1是用4个与非门实现的钟控R-S触发器模块,其功能仿真结果如图9.2所示。图9.2基本R-S触发器的功能仿真结果

【代码9.1】钟控R-S触发器模块。9.1.2D触发器

D触发器是应用非常广泛的电路,它在使用时没有约束条件,可以方便地构成各种时序逻辑电路。

图9.3是上升沿触发的D触发器的逻辑符号。表9.2是D触发器的状态转移真值表。D触发器的功能是在满足触发条件的情况下,Qn+1=D。图9.3D触发器的逻辑符号

1.基本功能D触发器

代码9.2是实现上升沿触发的D触发器基本功能的VerilogHDL模块代码。其功能仿真如图9.4所示。图9.4D触发器的功能仿真结果

【代码9.2】上升沿触发的D触发器模块。

2.带异步置位复位端的D触发器

实际应用中的触发器为了便于控制,通常还设置有复位信号R和置位信号S。复位信号和置位信号对电路状态的影响有同步和异步两种控制方式。

异步置位复位信号的变化直接影响着电路的状态,而与时钟信号CP无关。表9.3是异步复位置位(R和S高电平有效)D触发器的状态转移真值表。代码9.3实现了一个具有异步复位置位功能、上升沿触发的D触发器模块。其功能仿真结果如图9.5所示。

【代码9.3】带异步置位复位端的D触发器模块。图9.5具有异步置位复位功能的D触发器的功能仿真结果

3.带同步置位复位端的D触发器

同步置位和复位控制信号对触发器电路状态的影响受到时钟信号CP的控制,只有在时钟信号有效的情况下才会影响触发器的输出状态。表9.4是在时钟信号CP上升沿实现同步复位和置位功能的D触发器的状态转移真值表。

代码9.4是另一个描述D触发器模块的VerilogHDL程序,与代码9.3不同的是其复位和置位功能是同步的。其功能仿真结果如图9.6所示。

【代码9.4】同步置位复位端D触发器模块。图9.6具有同步置位复位功能的D触发器的功能仿真结果9.1.3JK触发器

JK触发器既能够解决钟控R-S触发器中对输入信号的条件约束问题,同时与D触发器相比又具有较强的控制功能,其应用非常广泛。

图9.7是下降沿触发的JK触发器的逻辑符号。表9.5是JK触发器的状态转移真值表。从表9.5可以看出,与D触发器相比,JK触发器还具有状态翻转功能。

代码9.5是JK触发器模块的VerilogHDL程序,该模块具有异步复位和置位控制端,其功能仿真结果如图9.8所示。图9.7JK触发器的逻辑符号

【代码9.5】带异步置位复位端的JK触发器模块。图9.8具有异步置位复位功能的JK触发器的功能仿真结果9.1.4T触发器

T触发器的逻辑功能比较简单,只有保持和翻转功能,其逻辑符号见图9.9,状态转移真值见表9.6。图9.9T触发器的逻辑符号

【代码9.6】钟控T触发器模块。图9.10T触发器的功能仿真结果

9.2计数器

9.2.1常用的二进制计数器

1.基本同步计数器

基本计数器是指能够实现简单计数功能的计数器。这里描述的是上升沿触发的基本计数器,即基本同步计数器。其模块实现见代码9.7。

【代码9.7】基本同步计数器模块。图9.11基本同步计数器的功能仿真结果

2.具有复位端口的同步计数器

(1)同步复位计数器。其模块实现见代码9.8,它是在代码9.7基本同步计数器模块的基础上增加了同步复位功能的计数器。

【代码9.8】同步复位计数器模块。图9.12同步复位计数器的功能仿真波形

(2)异步复位计数器。异步复位计数器模块的实现见代码9.9,它是在代码9.7基本同步计数器模块的基础上实现的。其中R是异步复位信号。该模块的端口信号与代码9.8相同。

【代码9.9】异步复位计数器模块。图9.13异步复位计数器的功能仿真波形

3.具有同步置数端口的同步计数器

代码9.10是在代码9.8实现的具有同步复位功能计数器模块的基础上,增加了同步置数功能。该模块的实现见代码9.10。

【代码9.10】具有同步置数功能的计数器模块。图9.14具有同步置数功能的计数器仿真波形

4.具有计数使能端口的同步计数器

代码9.11是在具有异步复位、置数功能计数器模块的基础上,增加了计数控制端E,且只有E有效时才对时钟信号加1计数,而当E无效时停止计数。

【代码9.11】具有计数控制功能的计数器模块。图9.15具有计数控制功能的计数器仿真波形9.2.2加减控制计数器

加减控制计数器可以在控制信号的作用下实现加法计数或减法计数功能。

代码9.12是实现了加减控制的计数器模块,同时具有异步复位、置位功能。

【代码9.12】加减可控同步计数器模块。

代码9.12的仿真波形如图9.16所示。图9.16加减可控计数器的仿真波形9.2.3特殊功能计数器

1.格雷码计数器

格雷码计数器的特点是相邻两个计数状态数之间仅有一个二进制位不同,所以计数过程中不易出现错误。

(1)从格雷码到二进制码的转换。

设长度为n的二进制码为Bin,其对应的n位格雷码为Gray。其对应关系为:

Gray[n-1]=Bin[n-1]

Gray[i]=Bin[i]^Bin[i+1](i=0~n-2)

(2)从二进制码到格雷码的转换。其对应关系为:

Gray[n-1]=Bin[n-1]

Gray[i]=Bin[i]^Bin[i+1]^…^Bin[n-1](i=0~n-2)

【代码9.13】格雷码计数器模块。

代码9.13的仿真波形如图9.17所示。图9.17格雷码计数器的仿真波形

2.扭环计数器

扭环计数器是由n位移位寄存器构成的计数器,其特点是将串行输出端取反后送入串行数据输入端。例如,3位左移扭环计数器的状态变化为000→001→011→111→110→100

→000…

扭环计数器的实现见代码9.14,其端口中Jcounter是输出信号。

【代码9.14】扭环计数器模块。

代码9.14的仿真波形如图9.18所示。图9.18扭环计数器的仿真波形

9.3寄存器

9.3.1基本寄存器

1.具有锁存控制端的寄存器

具有锁存控制端的寄存器可以在锁存信号的控制下对输入的数据进行存储。

【代码9.15】具有锁存控制功能的寄存器模块。

代码9.15的功能仿真波形如图9.19所示。图9.19具有锁存控制功能的寄存器的功能仿真波形

2.具有输出缓冲功能的寄存器

具有输出缓冲功能的寄存器有一个输出使能控制信号,在该信号有效的情况下,寄存器的数据直接输出,否则寄存器输出高阻状态。这类寄存器可以直接连接在总线上与其他设备进行数据传输。代码9.16是一个具有输出缓冲功能的8位寄存器模块,图9.20是其功能仿真波形。图9.20具有输出缓冲功能的8位寄存器的功能仿真波形

【代码9.16】具有输出缓冲功能的8位寄存器模块。

3.字长可变的通用寄存器

寄存器在使用时,存储的二进制位数(即字长)往往是根据需要来设置的。代码9.17实现了一个字长由参数msb决定的通用寄存器模块,该寄存器具有输入锁存、输出缓冲的功能。

【代码9.17】字长可变的通用寄存器模块。

代码9.17的功能仿真波形如图9.21所示。图9.2116位字长可变的通用寄存器的功能仿真波形9.3.2移位寄存器

1.单向串入串出移位寄存器

单向右移移位寄存器的电路结构特点是,左边触发器的输出端接右邻触发器的输入端。对应的,左移寄存器电路则是右边触发器的输出端接左邻触发器的输入端。

【代码9.18】4位单向串入串出的移位寄存器模块。

代码9.18的仿真波形如图9.22所示。图9.22单向串入串出的4位移位寄存器仿真波形

2.双向串入并出移位寄存器

双向串入并出移位寄存器是指数据寄存器的数据可以在控制信号的作用下实现左右两个方向的移动,寄存器的数据可以作为一个整体输出,即并行输出。代码9.19实现了一个具有双向串行输入并行输出的移位寄存器模块。

【代码9.19】4位双向串入并出的移位寄存器模块。

代码9.19的仿真波形如图9.23所示。图9.234位双向串入并出寄存器的仿真波形

3.并入串出移位寄存器

并入串出移位寄存器是指寄存器的数据可以一次并行置入,而数据的输出只有一个端口,是一位一位按顺序输出的。

代码9.20是一个4位并行输入串行输出的移位寄存器模块。

【代码9.20】4位并入串出移位寄存器模块。

代码9.20的仿真波形如图9.24所示。图9.244位并入串出移位寄存器的仿真波形

9.4分频器

9.4.1偶数分频器

1.2K分频器

2K分频器可以采用非2K分频器的实现方法,只是计数模值是2K,这是计数器中的一种特例。利用这种特殊性其各个计数位也可被用来作为分频输出,且输出为方波。若计数器为4位,则计数器的最低位即可以实现二分频,次低位可实现四分频,次高位可实现八分频,最高位可以实现十六分频。

【代码9.21】多输出2K分频器。

该分频器分别输出K为1、2、4时,即分频系数为2、4、16,占空比为50%的分频信号。

代码9.21的功能仿真波形如图9.25所示。图9.25多输出2K分频器的功能仿真波形

2.非2K分频器

(1)占空比非50%分频器的设计方法是首先设计一个模N计数器,计数器的计数范围是0~N-1,当计数值为N-1时,输出为1,否则输出为0。

【代码9.22】偶数分频,输出占空比为1∶N的分频器。

代码9.22的功能仿真波形如图9.26所示。图9.26占空比非50%分频器的功能仿真波形

(2)占空比50%分频器的设计方法是设计一个模N/2计数器,计数器的计数范围是0~N/2-1,当计数值为N/2-1时,输出信号进行翻转。

【代码9.23】输出占空比为50%的偶数分频器。

代码9.23的功能仿真波形如图9.27所示。图9.27占空比50%分频器的功能仿真波形9.4.2奇数分频器

奇数分频器是指分频系数是奇数,即分频系数N=2n+1(n=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论