Verilog中三态门输入输出的使用

Verilog中利用三态门设计输入输出端口

1. 设计中遇到的问题

在利用Verilog进行硬件设计的时候,有时,我们需要设计一些总线,总线既可以输入又可以输出,我们会将端口设置为inout型,那么,这种类型的端口在模块内部是如何使用的呢?

2. 什么是高阻态?

高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。

简介:在电子学中,高阻态(英语:High impedance)表示电路中的某个节点具有相对电路中其他点相对更高的阻抗。这个概念在三态逻辑、上拉电阻中有所涉及。在硬件描述语言(如Verilog HDL和VHDL)中,高阻态通常用字母z来表示。

实质:电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。它的极限状态可以认为悬空(开路)。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。

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

3. Verilog中实现3态逻辑

简单书写代码如下,

//Verilog中三态门输入输出的使用
`timescale 1ns/1ps
module tri_state_gate(
input	rstn,
input   clk,
inout [15:0] data
);
wire sw;
wire [15:0] q;
wire [15:0] rd_data;

assign q = sw ? data : 16'bZ;
assign rd_data = q;

endmodule

功能描述:当sw为1时,data数据被驱动到总线q上,当sw为0时,外部驱动到总线q上的数据被传送到ra_data。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值