表3 逻辑门的符号、真值表、逻辑表达式
任何逻辑电路都可以由积之和表达式来描述。因此,使用NOT-AND-OR组合而成的组合逻辑电路可以实现任何逻辑函数,这种方式被称为AND-OR逻辑电路或AND-OR阵列。实现AND-OR逻辑电路的器件有PLA ( Programmable Logic Array,可编程序逻辑阵列)等。
对于一个逻辑表达公式或逻辑电路,其真值表是唯一的,但其真值表对应的逻辑电路或逻辑表达式可能有多种实现形式,所以,一个特定的逻辑问题,其对应的真值表是惟一的,但实现它的逻辑电路是多种多样的。在实际设计工作中,如果由于某些原因无法获得某些门电路,可以通过变换逻辑表达式变电路,从而能使用其他器件来代替该器件。同时,为了使逻辑电路的设计更简洁,通过各方法对逻辑表达式进行化简是必要的。组合电路可用一组逻辑表达式来描述。设计组合电路直就是实现逻辑表达式。要求在满足逻辑功能和威廉希尔官方网站
要求基础上,力求使电路简单、经济、可靠、实现组合逻辑函数的途径是多种多样的,可采用基本门电路,也可采用中、大规模集成电路。其一般设计步骤为:
(1) 分析设计要求,列真值表;
(2) 进行逻辑和必要变换。得出所需要的最简逻辑表达式;
(3) 画逻辑图。
常用的逻辑组合电路包括,算数运算电路(半加器、全加器和加法器)、编码器、译码器、数据选择器、数据分配器、和数值比较器。
5. 时序逻辑电路
含有记忆元件的逻辑电路被称为时序逻辑电路。在组合逻辑电路中,当前的输出只取决于当前的输人。而在时序逻辑电路中,只知道当前的输人并不足以确定当前的输出。也就是说,时序逻辑电路是一种过去的电路状态(之前的输入)也会对输出产生影响的逻辑电路。
时序逻辑电路分为同步时序逻辑电路和异步时序逻辑电路这两种。同步时序逻辑电路中,输人和内部状态的变化由时钟信号控制同步进行,而异步时序逻辑电路则不需要时钟信号。由于FPGA电路设计一般使用同步时序逻辑电路,所以这里我们不对异步时序逻辑电路进行过多讨论,而我们常用的时序逻辑电路主要有触发器、计数器、寄存器和顺序脉冲发生器等。
时序逻辑电路的输出值由输人值和记忆元件的状态值共同决定。也就是说,时序逻辑电路中过去的输人所形成并保留下来的状态对当前的输出具有影响。这种逻辑电路可描述为图2所示的有限状态机模型。图2a所示的模型为米勒( Mealy )型时序逻辑电路,图2b 所示的模型为摩尔(Moore)型时序逻辑电路。米勒模型的输出由内部状态和输人共同决定,而摩尔模型的输出仅由内部状态决定。米勒模型的状态数通常比摩尔模型的少,因此有电路规模较小的优点。然而由于输人会立刻反映到输出,所以逻辑元件或不等长的布线所带来的信号延迟等容易引起信号竞争,进而导致非预期的错误输出(冒险)。相比之下,摩尔模型直接使用记忆状态的输出,因此电路速度快且不易发生冒险。但摩尔模型由于状态数量多,电路规模也相对较大。