组合逻辑电路和时序逻辑电路

组合逻辑电路和时序逻辑电路
2011年03月09日 星期三 09:54 P.M.

组合逻辑电路:任何时刻电路的输出仅与该时刻电路的输入有关的数字电路被称为组合逻辑电路。组合逻辑电路不含有反馈,不含有记忆单元,仅仅通过将若干门电路按照不同的方式连接来实现所需的逻辑功能。常见的有加法器、减法器、编码器、解码器、多路选择器等。使用Verilog HDL描述逻辑电路通常有3种表达方式:assign、always和门原语。

1.使用assign描述组合逻辑电路

用assign描述的部分都是组合逻辑,注意assign只能对wire型变量进行赋值。

2.使用always描述组合逻辑

always既可以用于描述组合逻辑电路,也可以用于描述时序逻辑电路。在描述组合逻辑电路时,always在使用上有以下几个特点:

1)在敏感列表中使用电平敏感事件,不要使用边缘敏感事件。

2)为变量赋值使用阻塞赋值(=),不要使用非阻塞赋值(<=)。

另外,在always块内被赋值的变量必须为reg型变量。

3.使用门原语

如果研究人员要使用门原语描述组合逻辑电路,必须清楚所描述的电路的门级结构。但是使用起来非常繁琐、不方便。

时序逻辑电路:输出不仅和当前的输入有关,还和电路原来的状态有关。包括组合逻辑电路和存储电路两部分。记忆特性是时序逻辑电路的特征,通过存储电路来实现的。

存储单位按照触发方式可以分为电平触发和边沿触发两种,电平触发的称为锁存器,边沿触发的称为触发器。在设计过程中,设计人员可以选择使用锁存器或者触发器,但一般情况下尽量使用触发器,特别是在使用FPGA器件时。

触发器在使用时要满足两个重要参数:建立时间和保持时间。建立时间是指在时钟沿到来之前,数据至少需要保持稳定不变的时间。保持时间是指在时钟沿到来之后,数据至少需要保持稳定不变的时间。如果不满足这两个参数中的任意一个,则触发器无法被正确置位,因此保证时序逻辑电路内部每个触发器的建立时间和保持时间都能满足要求是保证电路正常工作的前提条件,也是时序逻辑电路设计中的重点和难点。

时序逻辑电路按照其存储单元的动作特点不同,又可以分为同步时序电路(synchronization)和异步时序电路(asynchronization)。同步时序电路中的所有存储单位的状态变化都受到同一个时钟信号的控制,因而所有存储单元状态的变化都发生在同一时刻,称这个时钟信号为全局时钟。异步时序电路中不存在全局时钟,因而各个存储单元的状态可以于任意时间改变。

同步时序电路同异步时序电路相比有许多优点。

首先,由于同步时序电路中所有的触发器都在同一个时刻翻转,因而比较容易满足建立时间和保持时间的要求;异步时序电路则不然,由于各个触发器的翻转时间不定,因而满足每一个触发器的建立时间和保持时间是非常困难的。其次,在同步时序电路中,由于受到全局时钟的控制,数据以相同的速度通过每一个触发器,不容易发生数据丢失的现象;但是在异步时序电路中,由于缺少全局时钟的控制,数据通过每一个触发器的速度并不相同,因而经常要添加握手信号来保证数据的完整性,增加了设计的复杂度,同时也降低了数据传输的效率。最后,由于前面两个优点,同步时序电路通常可以获得比异步电路更高的工作可靠性和工作速度,因而同步时序电路被广泛地应用于各行业。

你可能感兴趣的:(Verilog)