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

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

3天内不再提示

FPGA三态门的结构是怎样的呢?

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-10-20 11:01 次阅读

FPGA设计中,双向IO(输入输出引脚)是一个比较麻烦的东西,但是信号线用作总线等双向数据传输时就要用到inout类型。

以下用液晶的的数据线用作双向IO示例:

f6ef6562-5021-11ed-a3b6-dac502259ad0.png

说是双向IO端口,其实输入和输出不是同时进行的,需要有一个控制信号out_en来控制端口什么时候为输出,什么时候为输入。

那这里就需要引入一个三态门结构电路。

三态门结构

那么三态门的结构是怎样的呢?

三态门电路的输出结构和普通门电路的输出结构有很大的不同,因为它在电路中增加了一个输出控制端EN。

f70a544e-5021-11ed-a3b6-dac502259ad0.png

由上图看出,在单相三态门中,当EN=1时,对原电路无影响,电路的输出符合原来电路的所有逻辑关系,即A可以输出到B。当EN= 0时,电路内部的所有输出与外部将处于一种关断状态。

因此,当FPGA的信号线存在双向IO时,可以有两个三态门来控制,一个控制输出,一个控制输入,结构如下:

f72f6e46-5021-11ed-a3b6-dac502259ad0.png

当ENout=1,ENin=0时,双向三态门的电路传输方向是A->B;
当ENout=0,ENin=1时,双向三态门的电路传输方向是B->A;

模型分析

下面简单做个简易模型来说明双向IO如何分别实现作为输入端口和输出端口的功能,模块图如下:

f74fca88-5021-11ed-a3b6-dac502259ad0.png

模型引脚定义

(1)输入口A定义:当双向端口dinout作为输出口时,我们将A端口输入数据传到模块中,让数据从dinout口出来。

(2)输出端口B定义:当当双向端口dinout作为输入口时,我们将dinout端口输入数据传到模块中,让数据从B口出来。

(3)EN控制信号定义:当EN=1时,开通三态门,将dinout作为输出口使用,当EN=0时,把三态门置为高阻态,这时dinout作为输入口用。

代码展示

f75f1e34-5021-11ed-a3b6-dac502259ad0.png

编译分析后查看RTL视角逻辑电路,符合原有模型设计。

f7772c4a-5021-11ed-a3b6-dac502259ad0.png

总结说明

(1)FPGA内部不允许传递双向IO信号,只有FPGA对外部才能定义为双向IO端口,即只有在顶层输出的信号才可以被赋值为高阻态。

(2)在结构化建模的过程中,一个模块一个功能的建模,当涉及到内部模块的端口是双向IO端口时,然后根据一个双向IO对应一个输入,一个输出和一个使能控制,把模块中双向IO的输出用输出端口代替,双向IO的输入用输入端口代替,引出使能信号,并把对应assign中赋值的高阻态z根据实际情况给出0或1,来解决FPGA内部双向IO连接问题。

审核编辑 :李倩

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

    关注

    1603

    文章

    21328

    浏览量

    593267
  • 电路
    +关注

    关注

    170

    文章

    5484

    浏览量

    169591
  • 信号线
    +关注

    关注

    2

    文章

    137

    浏览量

    21168

原文标题:FPGA双向IO使用之三态门说明

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA设计中,对SPI进行参数化结构设计

    今天给大侠带来FPGA设计中,对SPI进行参数化结构设计,话不多说,上货。 为了避免每次SPI驱动重写,直接参数化,尽量一劳永逸。SPI master有啥用,你发现各种外围芯片的配置一般
    发表于 04-11 18:29

    深入理解 FPGA 的基础结构

    转载地址:https://zhuanlan.zhihu.com/p/506828648 文章很详细的介绍了FPGA的基础结构,能更直观的理解内部结构原理。对深入学习很有帮助。 以下是正文: 这一段
    发表于 04-03 17:39

    l9305初始化模式为三态,通过spi配置为pwm模式失败的原因?

    l9305初始化模式为三态,通过spi配置为pwm模式失败
    发表于 03-25 06:45

    FPGA最小系统是怎样

    请问FPGA的最小系统是怎样的?
    发表于 02-22 09:58

    集电极开路输出的优缺点分析

    1、集电极开路输出上拉电阻电路为什么会速度降低和噪声变大?在此基础出引出了三态? 2、多集电极开路上拉电阻输出实现了线或结构,有高为低,全低为高。那么什么电路结构可以实现线与
    发表于 01-28 16:32

    AD5420的SDO是否是三态输出脚?

    1、AD5420的SDO是否是三态输出脚 2、MCU的SPI接口配置CPOL=0、CPAH=0,是否正确
    发表于 12-20 08:08

    AD9280三态引脚是否只是控制数据输出端的,和转换过程没有关系?

    AD9280三态引脚是否只是控制数据输出端的,和转换过程没有关系? 现在问题是FPGA引脚不够用了,能否将两片AD9280数据D0-D7接在一起,时钟是共用的,两片AD同步输出,在数据开始输出后用三态引脚控制取数?
    发表于 12-14 06:49

    电机的冷、热怎样定义的?

    电机的冷、热怎样定义的?两者如何判断?满负载时是热否则就是冷是这样吗?
    发表于 12-13 08:16

    需要了解的FPGA基础知识

    的,那么这种芯片叫做可编程阵列逻辑器件PAL(Programmable Array Logic),根据输出电路工作模式的不同,PAL可分为几类,有三态输出、寄存器输出、互补输出,但PAL仍使用熔丝工艺
    发表于 11-20 18:56

    51端口的结构及工作原理介绍

    与上图相同的电路组成。下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器: 在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态个状态,即在其的输出
    发表于 10-07 06:58

    fpga内部主要结构及其功能分析(Kintex-7FPGA内部结构

    Kintex-7 FPGA的内部结构相比传统FPGA的内部结构嵌入了DSP48E1,PCIE,GTX,XADC,高速IO口等单元,大大提升了FPGA
    发表于 08-24 09:26 1567次阅读
    <b class='flag-5'>fpga</b>内部主要<b class='flag-5'>结构</b>及其功能分析(Kintex-7<b class='flag-5'>FPGA</b>内部<b class='flag-5'>结构</b>)

    FPGA资料

    Logic,PAL),根据输出电路工作模式的不同,PAL 可分为三态输出、寄存器输出、互补输出,但 PAL 仍使用熔丝工艺,只可编程一次。PAL 的结构图如图 4 所示。 图 4 PAL结构图 在
    发表于 05-30 20:40

    请问这个三态为什么不能实现非功能?

    请问这个三态为什么不能实现非功能?它的逻辑表达式不应该是A非吗?
    发表于 05-10 17:44

    FPGA在通信领域有怎样的发展跟应用?# FPGA# # 通信领域

    fpga
    MYMINIEYE
    发布于 :2023年05月10日 16:43:56

    怎样FPGA实现FSK调制解调

    最近想做这方面的,怎样FPGA实现FSK调制解调?但是我一点头绪都没有,哪位高手帮帮忙,讲解一下什么的
    发表于 05-08 17:34