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

    文章

    7514

    浏览量

    164010
  • 端口
    +关注

    关注

    4

    文章

    979

    浏览量

    32108

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

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

收藏 人收藏

    评论

    相关推荐

    SN74CBT162292用作2输入,1输出选择且是双向数据端口,可以这样用吗?

    东东,心里没底。 1. 目前2个单片机的总线信号接入SN74CBTLV16292 的B1和B2端口,A端口接SRAM。这种模式可以么? 2. A、B1、B2这3组端口都是无方向性的吧? 因为SRAM
    发表于 01-09 08:24

    内部端口和外部端口怎么填

    在计算机网络中,端口(Port)是用来区分不同服务或应用程序的数据传输通道。每个端口号都是一个16位的数字,范围从0到65535。端口号被分为两大类:内部端口(也称为私有
    的头像 发表于 10-17 10:58 818次阅读

    外部端口和内部端口是什么意思

    在计算机网络和网络安全领域,"外部端口"和"内部端口"这两个术语通常用来描述网络通信中的端口配置和访问控制。 外部端口(External Port) 外部
    的头像 发表于 10-17 10:50 940次阅读

    控制端口和数据端口怎么区别

    在计算机网络中,端口是用来区分不同服务的逻辑概念。每个端口都有一个唯一的编号,范围从0到65535。端口可以分为控制端口和数据端口,它们在网
    的头像 发表于 10-17 10:40 502次阅读

    智能电表双向计量是什么意思?

    智能电表双向计量是指智能电表能够同时记录电力的输入和输出数据,即不仅能够计量用户消耗的电力,还能计量用户向电网输送的电力。本文将详细探讨智能电表双向计量的功能、技术实现及其应用场景。一、双向计量
    的头像 发表于 09-13 17:28 721次阅读
    智能电表<b class='flag-5'>双向</b>计量是什么意思?

    双向可控硅触发电路的工作原理、设计方法和应用实例

    双向可控硅触发电路是一种重要的电力电子器件,广泛应用于电力系统、电机控制、照明控制等领域。 双向可控硅触发电路的工作原理 双向可控硅(TRIAC)是一种三端双向可控硅器件,具有两个阳极
    的头像 发表于 08-16 16:54 2094次阅读

    以太网端口和千兆端口的区别

    以太网端口和千兆端口在多个方面存在显著的区别,这些区别主要体现在速度、应用范围、技术规格以及网络性能等方面。
    的头像 发表于 08-07 15:42 1380次阅读

    双向tvs管怎么测量好坏

    双向TVS(Transient Voltage Suppressor)是一种用于保护电子设备免受瞬态电压冲击的半导体器件。双向TVS管具有双向导电特性,可以同时对正向和负向的瞬态电压进行保护。本文将
    的头像 发表于 08-01 09:45 1741次阅读

    AiP82C55通用可编程I/O端口扩展芯片产品介绍

    以分为低位和高位两个4位端口:每个端口都可以被编程用作输入或输出,8位端口中的一个可以被编程用于双向操作,而两个4位端口可以被编程提供握手能
    的头像 发表于 07-26 17:07 678次阅读
    AiP82C55通用可编程I/O<b class='flag-5'>端口</b>扩展芯片产品介绍

    TS5USBC41双向低功耗双端口高速USB 2.0模拟开关数据表

    电子发烧友网站提供《TS5USBC41双向低功耗双端口高速USB 2.0模拟开关数据表.pdf》资料免费下载
    发表于 07-01 12:32 0次下载
    TS5USBC41<b class='flag-5'>双向</b>低功耗双<b class='flag-5'>端口</b>高速USB 2.0模拟开关数据表

    PLC输入端口和输出端口的工作原理

    内部逻辑运算后,再通过输出端口控制外部设备。因此,了解PLC输入端口和输出端口的工作原理对于理解和应用PLC系统至关重要。本文将详细解析PLC输入端口和输出
    的头像 发表于 06-19 14:11 2924次阅读

    双向晶闸管的触发方式和用实例

    双向晶闸管(BRT)是一种特殊的半导体器件,因其具有双向导通性,即在正负两个方向都能导通,因此在交流电路中得到了广泛应用。而双向晶闸管的触发方式则是决定其工作状态的关键因素之一。本文将详细探讨
    的头像 发表于 05-22 16:23 2299次阅读

    verilog中端口类型有哪三种

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

    verilog双向端口的使用

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