一文彻底掌握inout双向端口
创作时间:
作者:
@小白创作中心
一文彻底掌握inout双向端口
引用
CSDN
1.
https://m.blog.csdn.net/mengzaishenqiu/article/details/142601042
inout端口是FPGA中一种重要的双向通信端口,广泛应用于总线通信和数据交互场景。本文将从基本概念出发,详细讲解inout端口的工作原理、特点以及具体使用方法,并通过实例代码和仿真测试帮助读者全面掌握这一知识点。
一、inout的基本概念
Inout 端口的实现基础是三态门。三态门具有三种输出状态,即高电平、低电平以及高阻态(Z)。
高阻态是 Inout 端口实现双向功能的关键所在,通过C来控制三态门的导向变化。
- 当C=0时,三态门输出处于高阻态(Z)时,它相当于与外部电路断开连接,此时该端口可以作为输入端口接收外部信A。
- 当C=1时,三态门切换到导通状态,使得信号能够顺利传输到外部,即B = A。
二、inout 端口特点
- inout信号只能声明成wire类型。
- inout端口赋值,可以通过?:条件表达式或原语来实现。
- inout端口一般建议只在顶层模块使用。
三、inout端口的处理
1. assign形式
module inout_test
(
input clk,
input rst,
inout data_inout
)
reg data_out;
wire data_in;
wire control;
assign data_inout = control ? data_out : 1'bz ;
assign data_in = data_inout ;
endmodule
2. 原语
module inout_test
(
input clk,
input rst,
inout data_inout
)
wire data_out;
wire data_in;
wire control;
IOBUF #(
.DRIVE(12),
.IBUF_LOW_PWR("TRUE"),
.IOSTANDARD("DEFAULT"),
.SLEW("SLOW")
) IOBUF_inst (
.O(data_out),
.IO(data_inout),
.I(data_in),
.T(control)
);
endmodule
四、仿真测试
仿真测试激励中,inout端口声明为wire型。需要分别模拟input和output的行为,以测试模块为基准:
- 在测试模块读取数据时,赋值有效数据;
- 在测试模块发送数据时,赋值为高阻态。
reg data_inout_en;
wire data_inout;
reg data_in;
assign data_inout = data_inout_en ? data_in : 1'bz;
热门推荐
小狗咳嗽的常见症状和处理方法
如何高效背俄语单词?盘点10种俄语单词记忆方法!
补牙使用的树脂材料是否存在毒性?补牙材料的靠谱性分析与解读
国画欣赏:《枇杷山鸟图页》(南宋.林椿)
用Excel统计加班时间的多种实用方法
史上最全!一篇文章带你搞懂“AI智能体”(AI Agent)
标准银河字母标准银河字母(SGA)
兰州新区:讲述弦歌不辍的春节民俗故事
探索虐恋心理与悲剧美学的深层联系
客家杰出人物刘付云:文艺与新闻的双重交响、坚持与奉献的力量
郑州首套房认定标准是什么,首套房首付计算方式是怎样的
为什么中国古代看上去侵略性不强,却有那么大的领土?原来如此!
商品房验收标准及步骤详解
久尔杰维奇领衔 U20国足态度谨慎备战亚洲杯
建筑工程项目全周期成本控制与财务风险管理策略
打破偏见:女同性恋群体与艾滋病防治的真实面貌
王昌龄的边塞诗:热血壮志与家国情怀的交融
铃木佳奈:《大图书馆的牧羊人》中的阳光萝莉
链式思维提示是什么?Prompt 加上这一句就能让 AI 像你一样思考
小孩呕吐怎么办?最有效的处理方法
四叶草是花还是草?四叶草的植物分类是什么?
轻松掌握四大角度,读懂世界名画之美
糖胖能逆转获国际认可!专家:“吃和动”能执行才是关键
暗黑不朽人物外观设计图:揭秘游戏角色的魅力
AI时代,“再见,智人”还是“再,见智人”
【日麻】规则笔记
托尼·贾新片《惊天大营救》:隐隐可见《拳霸》风采
ATR指标的计算方法与应用领域:如何辅助投资决策?
岐黄妙手┃ 针灸祛顽疾 妙手定乾坤
博德之门3吟游诗人技能加点方案