2,FPGA_Verilog基础篇:理解Verilog的四值逻辑

///

1,FPGA_Verilog基础篇:Verilog发展进程-CSDN博客

2,FPGA_Verilog基础篇:理解Verilog的四值逻辑-CSDN博客

3,FPGA_Verilog基础篇:Verilog中数值的表示-CSDN博客

4,FPGA_Verilog基础篇:信号声明类型-CSDN博客

5,FPGA_Verilog基础篇:模块的端口声明-CSDN博客

6,FPGA_Verilog基础篇:verilog语言的操作符-CSDN博客

7,FPGA_Verilog基础篇:verilog基本逻辑运算-CSDN博客

8,FPGA_Verilog基础篇:verilog关系操作的逻辑运算实现-CSDN博客

9,FPGA_Verilog基础篇:veriolg算术运算-CSDN博客

10,FPGA_Verilog基础篇:verilog移位操作-CSDN博客

11,FPGA_Verilog基础篇:关系操作符简介-CSDN博客

12,FPGA_Verilog基础篇:拼接运算符简介-CSDN博客

13,FPGA_Verilog基础篇:verilog数值的位宽扩展规则-CSDN博客

14,FPGA_Verilog基础篇:verilog移位与拼接实现-CSDN博客

15,FPGA_Verilog基础篇:verilog双向inout接口表示_fpga inout端口-CSDN博客

16,FPGA_Verilog基础篇:verilog之锁存器和触发器-CSDN博客

17,FPGA_Verilog基础篇:verilog之for循环-CSDN博客

18,FPGA_Verilog基础篇:verilog之函数用法-CSDN博客

19,FPGA_Verilog基础篇:verilog之任务用法-CSDN博客

20,FPGA_Verilog基础篇:verilog之任务与函数用法比较-CSDN博客

21,FPGA_Verilog基础篇:verilog之宏define介绍-CSDN博客

22,FPGA_Verilog基础篇:verilog之条件编译指令介绍-CSDN博客

23,FPGA_Verilog基础篇:verilog之参数parameter介绍-CSDN博客

24,FPGA_Verilog基础篇:verilog之本地参数localparam-CSDN博客

25,FPGA_Verilog基础篇:verilog之generate生成块-CSDN博客

26,FPGA_Verilog基础篇:verilog之常数规则-CSDN博客

27,FPGA_Verilog基础篇:verilog中整数运算的位宽和符号规则-CSDN博客

28,FPGA_Verilog基础篇:verilog中的字符串表示-CSDN博客

29,FPGA_Verilog基础篇:verilog中带整数的算术表达式分析-CSDN博客

30(结束篇),FPGA_Verilog基础篇:verilog中的数值运算规则总结-CSDN博客

///

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

1)0:逻辑低电平,条件为假

2)1:逻辑高电平,条件为真

3)z:高阻态,悬空

4)x:未知逻辑电平

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

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

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

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

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

未知逻辑电平“x”只在电路仿真中存在,但是高阻态“z”却是在电路系统中真实存在的一种电平状态。高阻态是数字电路里常见的术语,指的是电路的一种输出状态,它既不是高电平,也不是低电平。如果高阻态输出到下一级电路,则对下级电路无任何影响,和没接一样。此时我们如果用万用表测量高阻态输出的电压时,既可能是高也可能是低电平,由它后面接的电路而定。

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

举个例子:我们学过模拟/数字电子学的小伙伴们都知道,当cmos门电路的输出上拉晶体管导通而下拉晶体管截止时,输出为高电平。反之,上拉晶体管截止而下拉晶体管导通就是低电平。但是当上拉和下拉晶体管都截止时,输出端就相当于悬空(没有电流流动),其电平随外部电平高低而定,即该门电路放弃对输出端电路的控制,这就是所谓的高阻态z。

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

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

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

图3:FPGA的IOBUF

FPGA的三态门如何使用,博主小飞将在后续的FPGA系列篇中分享,咱们这个系列只说verilog~

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值