首页 > 其他 > 详细

我的 FPGA 学习历程(09)—— 组合逻辑总结和时序逻辑开篇

时间:2015-12-09 13:29:11      阅读:502      评论:0      收藏:0      [点我收藏+]

讲到这篇时,组合逻辑就告一段落了,下面是一些总结:

  1. 描述组合逻辑时,always 语句中的敏感信号列表中需要列出全部的可能影响输出的变量
  2. 描述组合逻辑时,always 语句中的赋值总是使用阻塞赋值符号 =
  3. 组合逻辑是描述输入和输出关系的功能块,由于延时的原因,输出可能会有毛刺,为避免避免毛刺需要引入冗余逻辑。
  4. if..else case 语句只能用在 always 语句中,而且分支条件必须健全,否则会引入不必要的锁存器。

新的 SystemVerilog 语言中强化了 always 的功能;SystemVerilog 使用 always_ff 表示时序逻辑,用 always_comb 表示组合逻辑,而 always_latch 用来表示锁存逻辑,此外敏感信号列表还可以让综合器来自动推导,所以学好 verilog 是学习 systemverilog 语言的重要基础。

时序逻辑:     

        组合逻辑和时序逻辑的重要区别就在于组合逻辑中不存在任何的储存电路,而时序逻辑中含有储存电路,既然含有储存电路,输出的结果就必然和现在的输入以及储存电路中的值有关,然而储存电路中的值来自过去的输入电路,所以时序逻辑是既与现态也与次态有关。学过数电的人都知道,最简单的储存器是双稳态电路,其原理在于两个交叉耦合的反相器,目前实用的储存电路有 SR 锁存器、时钟触发的 SR 锁存器、D 锁存器、边沿触发的 D 触发器、带有同步置位和异步复位的 D 触发器和寄存器等等。

—— 内容摘自《FPGA 数字逻辑设计教程 —— Verilog》

SR锁存器:

技术分享

SR 锁存器电路还存在多个状态:

  1. 当 ~S = 1,~R = 1 时 如果 q 为 1,~q 就为 0 否则 q 为 0,~p 就为 1,这种状态就是我们期望的 储存态
  2. 当 ~S = 0,~R = 0 时 ~q 和 q 的输出都会为 1,这显然破坏了我们的期望,所以这时一种不允许的状态
  3. 当 ~S = 0,~R = 1 时 q 强制为 1,~q 强制为 0,这种状态称为置位
  4. 当 ~S = 1,~R = 0 时 q 强制为 0,~q 强制为 1,这种状态称为复位

可以看到,SR 锁存器显然还有些不足之处,更为重要的问题在与读写的定义模糊,为了解决这一问题,时序逻辑中提供了一个叫做 时钟 的概念来作为控制所需的节拍器,下面是一个比上一个更为实用的电路,时钟触发的 SR 锁存器:

技术分享

 

这个器件的功能如下:

  1. 当 clk = 0,无论 S、R 的值如何          ~S = 1、~R = 1,电路进入储存态
  2. 当 clk = 1,如果 S = 0、R = 0,那么 ~S = 1、~R = 1,电路还是储存态
  3. 当 clk = 1,如果 S = 0、R = 1,那么 ~S = 1、~R = 0,q = 0、~q = 1,电路进入复位状态
  4. 当 clk = 1,如果 S = 1、R = 0,那么 ~S = 0、~R = 1,q = 1、~q = 0,电路进入置为状态
  5. 当 clk = 1,如果 S = 1、R = 1,那么 ~S = 0、~R = 0,q = 1、~q = 1,这同样是不允许的。

为了消除上面电路中的不允许状态,可以添加一个反向器使得 S 和 R 的值总是不同的,下面的这个电路称作 D 锁存器

技术分享

由于 S R 总是取相反的值,D 锁存器的原理如下:

  1. 当 clk = 0,无论 S、R 的值如何          ~S = 1、~R = 1,电路进入储存态
  2. 当 clk = 1,如果 S = 0、R = 1,那么 ~S = 1、~R = 0,q = 0、~q = 1,电路进入复位状态
  3. 当 clk = 1,如果 S = 1、R = 0,那么 ~S = 0、~R = 1,q = 1、~q = 0,电路进入置为状态

由于时钟总是周期变化的,D 锁存器既可以用于储存信号又可以对其进行相应的控制,但还是有一个问题,假设目前 clk = 0,电路进入储存态,在 clk = 0 到 clk = 1 这段期间,q 的值变化了两次,那么储存的值也会发生变化,在数字逻辑设计中,我们希望作为节拍器的 时钟总是是频率最高的信号,任何信号所维持的时间必须是时钟周期的整数倍,为此电路进行了以下修改:

我的 FPGA 学习历程(09)—— 组合逻辑总结和时序逻辑开篇

原文:http://www.cnblogs.com/sxyf/p/5032329.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!