HDLbits day3 casez 三态

问题1.if一般结构,不需要endif

always @(*) begin
    if (condition) begin
        out = x;
    end
    else begin
        out = y;
    end
end

问题2.case一般结构,需要endcase

always @(*) begin // This is a combinational circuit
case (in)
1’b1: begin
out = 1’b1; // begin-end if >1 statement
end
1’b0: out = 1’b0;
default: out = 1’bx;
endcase
end
case 条件中 1’b1注意标明位数!!!否则不匹配进不去条件。

问题3 casez

Verilog HDL针对电路的特性提供了case语句的其它两种形式用来处理case语句比较过程中的不必考虑的情况( don’t care condition )。其中casez语句用来处理不考虑高阻值z的比较过程,casex语句则将高阻值z和不定值都视为不必关心的情况。所谓不必关心的情况,即在表达式进行比较时,不将该位的状态考虑在内。这样在case语句表达式进行比较时,就可以灵活地设置以对信号的某些位进行比较。
(注意分支表达式中的z可以写成?)

reg[7:0] ir;
casez(ir)
8 'b1???????: instruction1(ir);
8 'b01??????: instruction2(ir);
8 'b00010???: instruction3(ir);
8 'b000001??: instruction4(ir);
endcase

在这里插入图片描述

问题4 Verilog中三态门(高阻态)

摘自:https://blog.csdn.net/CLL_caicai/article/details/104465002
高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。(就后面电路并上一个无穷大电阻)
实质:电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。它的极限状态可以认为悬空(开路)。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。
表示方法:高阻态常用字母 Z 表示。
典型应用 实例1:在总线连接的结构上。总线上挂有多个设备,设备与总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。
典型应用 实例2:大部分单片机I/O使用时都可以设置为高阻输入,如凌阳,AVR等等。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。
三态逻辑:在数字电路中,三态逻辑(英语:Three-state logic)允许输出端在0和1两种逻辑电平之外呈现高阻态,等效于将输出的影响从后级电路中移除。这允许多个电路共同使用同一个输出线(例如总线)。

三态输出在寄存器、总线以及7400系列、4000系列等各型号的逻辑IC发挥着重要的作用,并常常内置在其他各种集成电路。除此之外,三态逻辑的典型应用还包括微处理器、存储设备、外设的内部和外部总线。许多设备提供一个OE(Output Enable)用于在低电平时才令输出使能,而在不使能时保持高阻态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值