赞
踩
Latch 其实就是锁存器,是一种在异步电路系统中,对输入信号电平敏感的单元,用来 存储信息。锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓 冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。因此,锁存器也被称为透 明锁存器,指的是不锁存时输出对于输入是透明的。
在同步时序逻辑电路中latch会给电路结构带来不必要的麻烦,但是在异步时序逻辑电路中锁存却是必要的。
组合逻辑电路中if语句没有else;
组合逻辑中case的条件不能够完全列举时且不加default,
组合逻辑电路中输出变量赋值给自己
- module decorder
- (
- input wire in_1,
- input wire in_2,
- input wire in_3,
-
- output reg [7:0] out
- );
- always@(*)
- if({in_1, in_2, in_3} == 3'b000)
- out = 8'b0000_0001;
- else if({in_1, in_2, in_3} == 3'b001)
- out = 8'b0000_0010;
- else if({in_1, in_2, in_3} == 3'b010)
- out = 8'b0000_0100;
- else if({in_1, in_2, in_3} == 3'b011)
- out = 8'b0000_1000;
- else if ({in_1, in_2, in_3} == 3'b100)
- out = 8'b0001_0000;
- else if ({in_1, in_2, in_3} == 3'b101)
- out = 8'b0010_0000;
- else if ({in_1, in_2, in_3} == 3'b110)
- out = 8'b0100_0000;
- else if ({in_1, in_2, in_3} == 3'b111)
- out = 8'b1000_0000;
- else//此处如果去掉else,就会产生latch锁存
- out = 8'b0000_0001;
-
- endmodule
上述硬件语言仿真的结果为:
- module latch_1
- (
- input wire in_1,
- input wire in_2,
- input wire in_3,
-
- output reg [7:0] out
- );
- always@(*)
- case({in_1,in_2,in_3})
- 3'b000 : out = 8'b0000_0001;
- 3'b001 : out = 8'b0000_0010;
- 3'b010 : out = 8'b0000_0100;
- 3'b011 : out = 8'b0000_1000;
- 3'b100 : out = 8'b0001_0000;
- 3'b101 : out = 8'b0010_0000;
- 3'b110 : out = 8'b0100_0000;
- //注释掉最后一种情况,此时case的情况不能完全列举完会产生latch.
- //3'b111 : out = 8'b1000_0000;
- //default : out = 8'b0000_0001;
- endcase
- endmodulea
仿真后的硬件电路
- module decorder
- (
- input wire in_1,
- input wire in_2,
- input wire in_3,
-
- output reg [7:0] out
- );
- always@(*)
- if({in_1, in_2, in_3} == 3'b000)
- out = 8'b0000_0001;
- else if({in_1, in_2, in_3} == 3'b001)
- out = 8'b0000_0010;
- else if({in_1, in_2, in_3} == 3'b010)
- out = 8'b0000_0100;
- else if({in_1, in_2, in_3} == 3'b011)
- out = 8'b0000_1000;
- else if ({in_1, in_2, in_3} == 3'b100)
- out = 8'b0001_0000;
- else if ({in_1, in_2, in_3} == 3'b101)
- out = 8'b0010_0000;
- else if ({in_1, in_2, in_3} == 3'b110)
- out = 8'b0100_0000;
- else if ({in_1, in_2, in_3} == 3'b111)
- out = out;
-
- endmodule
、仿真后的硬件电路为
在组合逻辑中一定要避免输出信号处于不定的状态,一定要 让输出无论在任何条件下都有一个已知的状态,就可以避免 Latch 的产生。Latch 作为一种 基本电路单元,会影响到电路的时序性能,应尽量避免使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。