组合逻辑、时序逻辑的适用场合、数字逻辑电路的时序分析

组合逻辑、时序逻辑的适用场合、数字逻辑电路的时序分析

一、组合逻辑、时序逻辑的适用场合

1、时序逻辑 和组合逻辑

组合逻辑:

组合逻辑是一类逻辑电路,其输出仅仅取决于当前的输入信号状态,而不考虑过去的信号状态。

组合逻辑电路的输出完全由输入决定,没有时钟信号的概念,因此输出是输入的函数。

例子包括逻辑门(AND、OR、NOT等)和其他不带存储元件(如触发器)的电路。

时序逻辑:

时序逻辑是一类逻辑电路,其输出不仅取决于当前的输入信号状态,还受到时钟信号和过去的输入信号状态的影响。

时序逻辑包括时钟触发器(flip-flops)和时钟触发器之间的互连,以及时序逻辑电路,如寄存器、计数器等。

时序逻辑考虑了时间的概念,通常在时钟信号的上升沿或下降沿触发,因此可以用来存储信息和实现状态机等功能。

总体而言,组合逻辑处理无状态的逻辑功能,而时序逻辑引入了状态和时钟信号,使得电路能够存储和处理有状态的信息,从而实现更复杂的功能和控制。在硬件描述语言(如Verilog和VHDL)中,

通过 always @ (*) 表达式通常表示组合逻辑,

而 always @(posedge clock) 表达式表示时序逻辑。

2、何时使用:

带有反馈(直接反馈、间接反馈)的必须用时序逻辑 (反馈:输出拉回到输入即为反馈,如 assign cnt = cnt + 1; assign flag = ~flag;没有时序控制 就会出现无限反馈)

//错误示例

always @ (flag) begin

if (flag == 1'b1)

cnt = cnt + 1'b1;

else

cnt = cnt;

end

这个代码会出现的问题就是 没有时序控制 会出现无限反馈 我们无法知道cnt加了多少次

等效电路如下

根据时序对齐关系进行选择: 这里就很经典了 之前写牛客题目的时候颇有感受!(最近没写牛客题目,到组合逻辑 利用门电路进行经典组合逻辑的编写,有点折磨!) 根据运行速度进行选择: ​​​​​​​​​​​​​​就是如果一个组合逻辑很长 延时很大 我们可以通过在中间加入寄存器实现传输速度的增加

二、数字逻辑电路的时序分析

1、FPGA真实结构:基于SRAM(静态存储器)(掉电丢失)的FPGA 即为LUT(查找表)一般是4/5/6输入

一个LUT+一个触发器 构成一个最小逻辑单元

产生随机的0、1序列的方法 (妙啊)同理可以产生0-2、0-3、0-4......

2、组合逻辑产生延时 导致时序逻辑出错

组合逻辑:由于门电路的信号间延时 输出端会产生毛刺 组合逻辑越长 就越容易产生问题

时序逻辑:中很多时候会将数字以二进制编码转换成格雷码的形式原因(

竞争冒险(存在于时序逻辑中)):

故有时候为了保证准确性 会将二进制编码转换成格雷码

3、时序分析(时序约束):

建立时间(setup time、Tsu):在采样(时钟上升沿)之前,数据要保持不变的最小时间;(由器件本身特性决定)

时间裕量:在时钟上升延前保持不变的时间I(一般认为<1个时钟周期)-Tsu;

保持时间(hold time、Th):在在采样(时钟上升沿)之后,数据要保持不变的最小时间;(由器件本身特性决定)

建立时间或保持时间不足就会出现亚稳态

4、单拍系统:

r0、r1间可以加入组合逻辑 但是不能加寄存器;

解释一下:

由于逻辑1比较复杂 输出延时比较大(关键路径长) 导致逻辑1输出出现亚稳态 而寄存器2每次信号来都要对逻辑1进行采样 导致寄存器采样数据出现错误

🎊 相关推荐

健身房设备投入大概要多少钱
365体育外围

健身房设备投入大概要多少钱

📅 07-03 👀 7878
GTA5中如何购买并找到自行车 , 广汽丰田iA5长测总结: 体验优秀,请放心食用
手机号00001为什么值钱:揭秘稀缺数字的价值密码