信号的状态类型

  • verilog专用常见的信号状态有4种,分别是0、1、z、x,其中,0和1是数字电路本身的状态,它的本源是零电平和VDD电平。例如,将一根导线接地,它的电平就是0,可以用数字0表示,将一根导线接VDD电平,那么它传出的信号就是1。VDD是数字电源的常用标号,整个芯片的电源常称为VCC,芯片的地常标注为VSS。不同工艺和元器件库需要的电压VDD不同,例如0.9V、1.8V、3.3V等,而同一个元器件库中的所有元器件,其需要的供电电压VDD一般相同的,只有I/O器件等少数元器件,其输入端和控制端是比较低的电压,而输出端口确是较高的电压。数字0和1对应的电平不会特别严格,而是有一个浮动范围,通常信号电平低于VDD的30%,就被认为是0,高于VDD的70%,就被认为是1。数字设计师处理的对象是0和1,不会经常去联想其背后代表的电压含义。
  • z态是高阻态。高阻的名字虽然不好理解,但实际并不神秘。如果一颗芯片不通电,则它所有的引脚就都是高阻态。可见,高阻态的实际意义就是不会干扰到其它信号传播的状态。例如某信号A是高阻态,某信号B不是高阻态,那么信号 A叠加到信号B上(可以理解为两根线被拧在一起),结果仍然是B,而A没有任何效果。一般来讲,一个有着双传输功能的引脚,如果设置为输入模式,就可以认为这个引脚处于高阻态,意思是他对电板上与它相连的元器件没有任何影响,这些相连元器件如果要对本芯片输出0或1,就可直接顺着该高阻态引脚输入,而不会被干扰或阻挡。FPGA中会用inout语法来描述z态。在ASIC设计中,需要例化一个引脚模块,在代码中不会出现1'bz数值
  • x态的含义是未知态,有4种情况会产生未知态:
    1. 其一是芯片已上电但复位信号未进行复位的情况;
    2. 其二是双向引脚信号冲突,因为没控制好,导致有一路信号通过引脚输入,另一路信号通过相同的引脚输出;
    3. 其三是芯片中一个元器件的某个输入端为x态,于是输出就跟着变成了x态,这就是所谓x态的传播;
    4. 第四是触发器的时序不满足,产生了亚稳态,从而表示为x态。
  • 上述4种情况在仿真中都能看到,但实际中,第1种情况基本不会出现,除非模拟电路设计有误,其它3种在数字设计有缺陷时会出现,实际在测量其电压时会出现不稳定或非预期的问题。在可综合Verilog中,不会出现1'bx数值,因为没有一个设计会故意将一个错误引入RTL中,所有的错误都是意外发生的。该符号在仿真脚本和仿真波形中可能出现。
相关推荐
upper20202 小时前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy9 小时前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
upper202010 小时前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
智者知已应修善业11 小时前
【使用D触发器74HC175实现0001 0011 0111 1111 1110 1100 1000的循环彩灯电路。】2025-4-28
驱动开发·经验分享·笔记·硬件架构·硬件工程
你是我的解忧王子1 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安1 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun2 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun2 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议
忆锦紫2 天前
vivado报错及解决【十】
fpga开发·fpga·vivado
喵喵苗2 天前
FPGA 核心资源解析:FF 触发器(Flip-Flop)—— 时序逻辑的“记忆心脏”
fpga开发