简单组合逻辑
组合逻辑
组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,无反馈电路。
多路选择器
多路选择器就是数据选择器。在多路数据传送过程中,能够根据需要将其中任意一路选择出来。
- 模块IO图
- 真值表
- 波形图
译码器
译码是编码的逆过程,译码器可以将输入的二进制数转化为表示其原来含义的输出信号。是一类多输入多输出的组合逻辑器件,可以分为变量译码和显示译码两类。
-
模块IO图
-
真值表
-
波形图
半加器
加法器是数字电路中的一种基本器件,主要用于两个数或者多个数的加和,加法器包括半加器和全加器。半加器是指两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。全加器的输入除了两位加数,还包括上一级传来的进位信号。
- 模块IO图
)]
-
真值表
-
波形图
层次化设计
数字电路中根据模块层次不同有两种基本的结构设计方法:自底向上和自顶向下。、
自底向上:从基本单元出发,由基本单元构建高层单元,依次向上直至构建系统。
自顶向下:从系统级开始,把系统分为基本单元,然后再把每个单元划分为下一层次的基本单元,直到可以用EDA元件库中的原件实现为止。
混合使用:自顶向下设计结构,自底向上设计基本模块,直至中间融合。
全加器
利用两个半加器实现一个全加器模块。
避免Latch的产生
Latch就是锁存器,是一种在异步电路系统中,对输入信号电平敏感的单元,用来存储信息。
锁存器在数据未锁存时,输出端随输入信号的变化而变化,相当于缓冲器。一旦数据被锁存,输入信号不起作用。
-
异步电路与同步电路
- 异步电路:主要是组合逻辑电路,用于生成FIFO或RAM的读写控制信号脉冲。但它同时也用在时序电路中,此时没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只有在电路稳定的时候才发生变化。
- 同步电路:同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,所有操作都是在严格的始终控制下完成的。这些时序电路共享一个CLK信号,所有的状态变化都是在时钟的边沿完成的。
-
避免Latch的产生
- Latch只有在组合逻辑中才能产生,并且在异步电路中十分重要,替代寄存器实现数据的存储,但是在同步电路中要尽量避免Latch的产生。
- Latch的危害:
- 对毛刺敏感
- 不能异步复位(上电不定态)
- 复杂的静态时序分析
- 占用更多的逻辑资源
- 额外的延时
- 几种产生Latch的情况
- 组合逻辑中if-else语句缺少else
- 组合逻辑中case语句条件未列举完全,且缺少default语句
- 组合逻辑中输出变量赋值给自己