一文彻底掌握inout双向端口

news2024/12/27 10:31:47

inout端口信号在FPGA中应用还是很广泛的,特别是一些总线通信、数据交互的场景,比如i2c、spi等等。

一、inout的基本概念

Inout 端口的实现基础是三态门。

089bb6362fdd4f718d5602b2e8a81702.webp

 三态门具有三种输出状态,即高电平、低电平以及高阻态(Z)。

高阻态是 Inout 端口实现双向功能的关键所在,通过C来控制三态门的导向变化。

当C=0时,三态门输出处于高阻态(Z)时,它相当于与外部电路断开连接,此时该端口可以作为输入端口接收外部信A。

当C=1时,三态门切换到导通状态,使得信号能够顺利传输到外部,即B = A。

二、inout 端口特点

1、inout信号只能声明成wire类型。

2、inout端口赋值,可以通过?:条件表达式或原语来实现。

3、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;

640?wx_fmt=jpeg

如果需要更多学习资料和源码,想要学习FPGA实战入门进阶,请阅读下面这篇文章:
 

FPGA实战入门真的难吗?看这里,少走弯路,少踩坑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11下 keil报错Cannot load driver ‘D:\Keil_v5\ARM\Segger\JL2CM3.dll‘

现象 更新系统后(win10->win11),发现Keil编译或者调试居然报错了: 但是在该路径下,还是能找到JL2CM3.dll这个文件的 解决方法 进入系统环境变量设置 在Path添加环境变量JL2CM3.dll所在路径,我这里就是‘D:\Keil_v…

中国新媒体联盟与中运律师事务所 建立战略合作伙伴关系

2024年9月27日,中国新媒体联盟与中运律师事务所举行战略合作协议签字仪式。中国新媒体联盟主任兼中国社会新闻网主编、中法新闻法制网运营中心主任左新发,中运律师事务所高级顾问刘学伟代表双方单位签字。 中国新媒体联盟是由央视微电影中文频道联合多家…

jupyter使用pytorch

1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…

第五部分:5---三张信号表,信号表的系统调用

目录 信号的递达、未决、阻塞: 进程维护的三张信号表: 普通信号与实时信号的记录: 信号结构的系统调用: bolck表的系统调用: 实例:设置屏蔽信号集中的所有信号都频闭 pending表读取: 信号…

第一本RAG书籍《大模型RAG实战》出版!

随着ChatGPT的爆火,推动了新一轮的AI技术进步。但大模型自身存在幻觉、知识更新难等问题,阻碍了其直接进行落地应用。RAG(Retrieval-Augmented Generation)技术将LLM与文本信息检索相结合,解决了在一些场景下模型知识不…

数字人直播违规原因究竟是什么?哪些技术可以解决?

随着人工智能时代的来临,以数字人直播为代表的技术应用逐渐被各大中小型企业引进,并成为了它们在直播板块降本增效的利器。不过,从目前的应用情况来看,不少企业都在使用数字人无人直播的过程中遭遇了违规封号的问题。在此背景下&a…

每天分享一个FPGA开源代码(7)- 6种乘法运算实现

​ FPGA开发中经常会遇到各种乘法运算。 这里分享下各种实现: Array Multiplier(阵列乘法器)、Complex Multiplier(复数乘法器)、Fraction Multiplier(分数乘法器)、High Radix Multiplier&a…

基于大数据技术的音乐数据分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

rk3588s android12 自启动 C程序

首先是 拷贝 TEST程序 到android跟文件系统看看能否成功。 首先将需要 在android 系统中 启动的 TEST 程序,拷贝到虚拟机。 这个程序 然后需要拷贝到 android 的文件系统中。 我是这样做的。 改的是这个文件。 然后, 编译+烧写测试。 发现, 在android 系…

detectron2是怎么建立模型的?以SparseInst代码为例

看SparseInst论文发现论文里有些地方没讲清楚;遂找SparseInst源码来看模型结构 我选择从推理代码来找模型结构: 经探索,在SparseInst代码里,推理需要执行代码 python demo.py --config-file configs/sparse_inst_r50_base.yaml …

Verilog基础:时序调度中的竞争(四)(描述时序逻辑时使用非阻塞赋值)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作为一个硬件描述语言,Verilog HDL常常需要使用语句描述并行执行的电路,但其实在仿真器的底层,这些并行执行的语句是有先后顺序…

Python精选200Tips:176-180

针对图像的经典卷积网络结构进化史及可视化 P176--LeNet-5【1988】模型结构说明模型结构代码模型结构可视化 P177--AlexNet【2012】模型结构及创新性说明模型结构代码模型结构可视化 P178--VGGNet【2014】VGG19模型结构及创新性说明VGG19模型结构代码VGG19模型结构可视化 P179-…

Datawhale Leecode基础算法篇 task04:贪心算法

官方学习文档:datawhalechina 往期task01:枚举算法链接:Datawhale Leecode基础算法篇 task01:枚举算法 往期task02:递归算法and分治算法:Datawhale Leecode基础算法篇 task02:递归算法and分治…

项目实战:k8s部署考试系统

一、新建nfs服务器(192.168.1.44) 1.基础配置(IP地址防火墙等) 2.配置时间同步 [rootlocalhost ~]# yum -y install ntpdate.x86_64 [rootlocalhost ~]# ntpdate time2.aliyun.com 27 Sep 10:28:08 ntpdate[1634]: adjust tim…

风景视频素材高清无水印怎么找?推荐几个风景视频素材下载网站

那些绝美的大自然风景视频素材都在哪里找的?今天就跟大家聊聊那些可以下载高清无水印的大自然风景视频素材的网站,如果你也在苦苦寻找,快来看看吧~ 1. 稻虎网 稻虎网作为国内遥遥领先的视频素材网站,提供了大量高清无…

2024最新Linux Socket编程

我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket&am…

Meta广告资料库使用教程:Facebook、Instagram海外社媒营销统统拿下!

社交媒体现今已成为大部分商家宣传推广方案中的重要工具,尤其是Meta旗下的两个主流社媒平台Facebook和Instagram,活跃用户数量以数十亿计,分布地区也非常广。要运用好自带影响力的社媒平台的传播力量和庞大数据,优化自身的宣传推广…

【Kubernetes】常见面试题汇总(四十二)

目录 96. Kubernetes 体系结构有哪些不同的组成部分? 97.您能否简要介绍一下 Kubernetes 中主节点的工作? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二…

亚马逊 Bedrock 平台也能使用Llama 3.2 模型了

亚马逊 Bedrock 平台推出 Llama 3.2 模型:多模态视觉和轻量级模型 概述 由 Meta 提供的最新 Llama 3.2 模型现已在 Amazon Bedrock 平台上推出。这一新模型系列标志着 Meta 在大型语言模型(LLM)领域的最新进展,它在多种应用场景…

养猫久了才发现,宠物空气净化器才是真正除猫毛的神器

相信每个打工人都在期待这个国庆小长假吧,终于等到了!这次我要把属于我的都夺回来!刚好工资到手、小长假我有,只想往家里一躺什么也不想,唯一最想做的就是要在这个节假日里好好的陪一下我家猫咪,还有就是买…