其他分享
首页 > 其他分享> > 2,理解Verilog的四值逻辑

2,理解Verilog的四值逻辑

作者:互联网

微信公众号:FPGA动力联盟

博主微信号:fpga_start

微信公众号原文链接:理解Verilog的四值逻辑

在《数字电路》或《数字电子技术》教材里,通常说数字电路的理论基础是“二值(0或1)”逻辑的布尔代数。但是我们在学习verilog时,接触的都是“四值”逻辑,分别为:

值“0”和“1”不难理解。如下图1所示为5V的TTL电平,当输出电压高于VOH时,认为输出是逻辑值“1”;当输出电压低于VOL时,认为输出为逻辑值“0”;当输入电压高于VIH时,认为输入是逻辑值“1”;当输入电压低于VIL时,认为输入为逻辑值“0”;

图片

图1:TTL电平及逻辑值判断

那么这些“V”的高低之间的区域算什么呢?在真实电路之中,这些区域的电平既可能被认为是“0”,也可能被认为是“1”,也就是不确定值。

在verilog语言的仿真里,不存在这种模棱两可的东西,于是“x”这个第三者出现了,标记信号为未知状态。

未知逻辑电平“x”出现主要有两种可能。第一个就是触发器不满足时钟采样的时序要求,时钟沿采集到信号的边沿;另一个就是信号未被“赋初值”。

未知逻辑电平“x”只在电路仿真中存在,但是高阻态“z”却是在电路系统中真实存在的一种电平状态。

高阻态是数字电路里常见的术语,指的是电路的一种输出状态,它既不是高电平,也不是低电平。

如果高阻态输出到下一级电路,则对下级电路无任何影响,和没接一样。此时我们如果用万用表测量高阻态输出的电压时,既可能是高也可能是低电平,由它后面接的电路而定。

进行电路分析时,高阻态可当做开路处理。我们可以把它看做输入/输出电阻非常大,极限状态就是悬空(开路)。也就是说,理论上高阻态不是悬空,它是对地或电源电阻极大的状态。而在实际应用中,它与管脚悬空几乎是一样的。

举个例子:当门电路的输出上拉晶体管导通而下拉晶体管截止时,输出为高电平。反之,上拉晶体管截止而下拉晶体管导通就是低电平。但是当上拉和下拉晶体管都截止时,输出端就相当于悬空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制。

输出高阻态可以利用名字叫“三态门”的器件实现,其符号和真值表如下图2所示:

图片

图2:三态门电气符号与真值表

高阻一般都会在输入/输出管脚处使用,例如FPGA的IOBUF就包含一个典型的三态门,如下图3所示:

图片

图3:FPGA的IOBUF

今天的博文就到这里了,有问题请给博主公众号留言,谢谢!

标签:输出,逻辑,电路,电平,四值,阻态,Verilog,逻辑值
来源: https://blog.csdn.net/fpga_start/article/details/122528162