0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

双向端口应用实例

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2022-05-07 11:00 次阅读

双向端口简介

三态缓冲器也称三态门,其典型应用是双向端口,常用于双向数据总线的构建。在数字电路中,逻辑输出有两个正常态:低电平状态(逻辑0)和高电平状态(逻辑1),此外,电路还有不属于0和1的高阻态(逻辑Z)。所谓高阻,即输出端属于浮空状态,只有很小的漏电流流动,其电平随外部电平的高低而定,门电平放弃对输出电路的控制。或者可以理解为输出和电路是断开的。

在应用代码中,verilog HDL程序模块首先进行端口(input:输入端口;output:输出端口;inout:输入/输出端口)定义,然后是逻辑功能的描述。在verilog HDL中,output端口信号可以被定义为reg类型,并在always块中赋值使用,而inout端口不能被定义为reg类型,不能再always块中直接赋值使用,这一点与VHDL中的双向端口使用方法不同。

由于FPGA需要与外部存储器或CPU进行频繁的数据交换,以及引脚资源有限,使用双向端口设计可以成倍的节省数据引脚线。在设计中需要注意两点:其一,要用三态门的控制来处理实现双向端口;其二,要分别指定双向端口作为输入、输出端口时,对外部对象的数据操作。

2. 双向端口应用实例

1. 双向端口的verilog HDL描述

如果输入输出端口都是16位,那么总共需要32根数据线,使用双向端口,只需要16根数据线。实例:

70737cf6-cdb0-11ec-bce3-dac502259ad0.png

模块示意图:

7094ca46-cdb0-11ec-bce3-dac502259ad0.jpg

dinout为双向端口,即可作为输入端口,又可作为输出端口;

当 z = 0 时,三态门选通,从模块module_other_1 输出的数据 data 的流动方向为 I ---> I/O ,I/O 作为系统(module_top)的输出端口;(对于模块module_dinout,I 的类型是input,I/O的类型声明为inout,此时作为输出端口)

当 z = 1 时,三态门关闭,数据 data 的流动方向为 O <--- I/O ,data输入到模块module_other_2 中,供其使用,I/O 作为系统(module_top)的输入端口;(对于模块module_dinout,O 的类型是output,I/O的类型声明为inout,此时作为输入端口)

2. 双向端口的仿真

编写测试模块时,对于inout类型的端口,需要定义成wire类型,而其他输入端口定义为reg类型。此外,对于双向端口本身,仿真输出端口和输入端口的语法是不同的。

输出端口仿真

当作为输出端口时,不需要对其进行初始化,只要开通三态门即可。

输入端口仿真

当作为输入端口时,需要对其进行初始化赋值并关闭三态门。而如果直接把它跟一般的输入口一样直接初始化赋值,则会出错,因为它的定义是wire类型而不是reg类型。这里需要用到force命令。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7120

    浏览量

    161918
  • 端口
    +关注

    关注

    4

    文章

    820

    浏览量

    31571

原文标题:2. 双向端口应用实例

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    verilog中端口类型有哪三种

    在 Verilog 中,端口类型有三种:输入端口(input)、输出端口(output)和双向端口(inout)。 输入
    的头像 发表于 02-23 10:28 464次阅读

    verilog双向端口的使用

    在Verilog硬件描述语言中,端口是指连接模块(Module)与其他模块、寄存器或是物理设备的输入或输出接口。单向端口可以作为输入或输出使用,而双向端口具有双重作用,既可以接收输入信
    的头像 发表于 02-23 10:18 295次阅读

    以太网交换机上的组合端口是什么?如何区分组合端口和RJ45端口

    以太网交换机上的组合端口是什么?如何区分组合端口和RJ45端口?如何使用组合端口呢? 以太网交换机上的组合端口是一种具有多种接口规格的
    的头像 发表于 12-27 15:17 280次阅读

    网络交换机的上行端口和普通端口是什么?有什么区别?

    网络交换机的上行端口和普通端口是什么?有什么区别?是否能将上行端口作为普通端口使用,反之是否也能使用? 网络交换机的上行端口和普通
    的头像 发表于 12-27 13:58 1984次阅读

    端口转发和端口映射的区别 端口映射和端口转发的各自意义?

    端口转发和端口映射的区别 端口映射和端口转发的各自意义? 端口转发和端口映射是两种网络技术,它们
    的头像 发表于 11-22 17:41 4219次阅读

    linux查看端口占用情况

    摘要:本文将详细介绍在Linux操作系统下如何查看端口占用情况。我们将会讲解如何使用命令行工具以及图形界面工具来查看端口占用情况,并通过实例演示如何解决端口冲突等问题。读者将能够掌握全
    的头像 发表于 11-17 09:39 915次阅读

    功率硬件定制 | 三有源全桥双向DC-DC变流模块

    三有源全桥双向(Three Active Bridge ,TAB)DC-DC变换器由3个H桥模块通过三绕组变压器连接构成,各端口均为双向端口,可以实现单输入双输出或双输入单输出工况,T
    的头像 发表于 10-16 12:48 832次阅读
    功率硬件定制 | 三有源全桥<b class='flag-5'>双向</b>DC-DC变流模块

    敏矽微电子Cortex-M0学习笔记05——端口外部中断实例

    敏矽微电子Cortex-M0学习笔记05——端口外部中断实例
    的头像 发表于 09-26 17:10 435次阅读
    敏矽微电子Cortex-M0学习笔记05——<b class='flag-5'>端口</b>外部中断<b class='flag-5'>实例</b>

    实用双向可控硅应用500例分享

    本书介绍了双向可控硅的应用实例,共计50G 例,分二十八类。每一例均给出了电路原理和应用电路图,涉及家用电器、娱乐,消费、工业控制、自动化等领域,对于电子爱好者仿制和产品开发都具有重要的参考价值。
    发表于 09-20 08:12

    双向晶闸管和双向可控硅哪个好?

    双向可控硅,也称为反向双向可控硅,是从双向晶闸管发展而来,其结构也是由四个PNPN结构和一个门极组成。与双向晶闸管相比,双向可控硅可控的电
    的头像 发表于 08-26 12:09 798次阅读

    双向晶闸管和双向二极管的区别

    双向晶闸管和双向二极管的区别 双向晶闸管和双向二极管都是用于电子元器件控制和电路设计中的关键电子器件。它们的作用很相似,都可以进行电流的控制和反向电压保护。但两者之间也存在很多差异。
    的头像 发表于 08-25 16:00 940次阅读

    双向晶闸管和双向可控硅的区别

    双向晶闸管和双向可控硅的区别 一、双向晶闸管的基本介绍 双向晶闸管(Bilateral Thyristor,简称B-T)是由晶闸管和双向导通
    的头像 发表于 08-25 16:00 1089次阅读

    【verilog每日一练】“inout” 双向端口类型的使用

    verilog除了input和output的端口类型,还有inout双向端口,比如在IIC协议中sda为双向信号。若sda在sda_out_en为1时输出sda_out的数值,在sda
    发表于 08-03 16:24

    Verilog inout双向口使用和仿真的方法

    芯片外部引脚很多都使用inout类型的,为的是节省管腿。一般信号线用做总线等双向数据传输的时候就要用到INOUT类型了。就是一个端口同时做输入和输出。
    的头像 发表于 06-25 09:10 4067次阅读

    网络端口大全

    一、端口概念 在网络技术中,端口(Port)大致有两种意思: 一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC
    的头像 发表于 05-24 10:05 853次阅读