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

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

3天内不再提示

详解FPGA的输入输出处理

FPGA研究院 来源:FPGA从入门到跑路 2025-10-15 10:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:FPGA从入门到跑路

1.输入信号

时钟单端

时钟差分

单端信号

差分信号

inputclk,//时钟
inputclk_P,//差分时钟+端
inputclk_N,//差分时钟-端
inputDin_S,//单端信号输入
inputDin_D_P,//差分信号+端
inputDin_D_N,//差分信号-端

2.输出信号

时钟单端

时钟差分

单端信号

差分信号

outputclk_O,//时钟
outputclk_O_P,//差分时钟+端
outputclk_O_N,//差分时钟-端
outputDout_S,//单端信号输入
outputDout_D_P,//差分信号+端
outputDout_D_N//差分信号-端

3.双向信号端口

inout是可以输入也可以输出的引脚,只能由wire型网线驱动。

inoutDataBus,//双向信号

当inout作输入引脚时需要将此引脚置为高阻态z。inout端口的实现是使用三态门。

4945176e-9e56-11f0-8c8f-92fbcf53809c.png

inout端口的实现

assignDataBus=control?'bz:DataOut;

inout端口DataBus作为输出的时候值为DataOut,作为输入时为高阻态。

4.IO相关原语

输入:

IBUF

输入缓冲器。

单端输入信号的处理举例:

wireDin;
IBUF#(
.IOSTANDARD("DEFAULT")//SpecifytheinputI/Ostandard
)IBUF_Din(
.O(Din),//Bufferoutput
.I(Din_S)//Bufferinput(connectdirectlytotop-levelport)
);

IBUFDS

专用差分输入时钟缓冲器(Dedicated Differential Signaling Input Buffer with Selectable I/O Interface)。将差分时钟转换成单端时钟作为全局时钟,需要添加例化此原语。IBUFDS是一个输入缓冲器,支持低压差分信号(如LVCMOS、LVDS等)。在IBUFDS中,一个电平接口用两个独特的电平接口(I和IB)表示。一个可以认为是主信号,另外一个可以认为是从信号。主信号和从信号是同一个逻辑信号,但是相位相反。

499bcb36-9e56-11f0-8c8f-92fbcf53809c.png

IBUFDS

使用方式如下:

IBUFDS#(
.DIFF_TERM("FALSE"),//DifferentialTermination
.IBUF_LOW_PWR("TRUE"),//Lowpower="TRUE",Highestperformance="FALSE"
.IOSTANDARD("DEFAULT")//SpecifytheinputI/Ostandard
)IBUFDS_inst(
.O(O),//Bufferoutput
.I(I),//Diff_pbufferinput(connectdirectlytotop-levelport)
.IB(IB)//Diff_nbufferinput(connectdirectlytotop-levelport)
);

IBUFG

输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错。 IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、PCIX和 SSTL等多种格式的IO标准。

IBUFGDS

IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多种格式的IO标准。

IDDR2

后面单独介绍。

双向:

IOBUF

49efaddc-9e56-11f0-8c8f-92fbcf53809c.png

IOBUF

IOBUF由一个OBUFT和一个IBUF组成。

4a43ea82-9e56-11f0-8c8f-92fbcf53809c.png

OBUFT

OBUFT是三态输出缓冲器,其结构和真值表如下图所示,可以看到,当T为1时,输出是高阻态。当T为0时,输出与输入结果相同。

4a97b6ee-9e56-11f0-8c8f-92fbcf53809c.png

OBUFT真值表

使用双向信号端口时,使用此原语和使用上面第3部分的三态门效果相同。

assignDataBus=control?'bz:DataOut;
IOBUFIOBUF(
.I(DataIn),
.O(DataOut),
.T(control),
.IO(DataBus)
);

输出:

OBUF

输出缓冲器。使用方式如下:

wireDout;
OBUF#(
.DRIVE(12),//Specifytheoutputdrivestrength
.IOSTANDARD("DEFAULT"),//SpecifytheoutputI/Ostandard
.SLEW("SLOW")//Specifytheoutputslewrate
)OBUF_inst(
.O(Dout_S),//Bufferoutput(connectdirectlytotop-levelport)
.I(Dout)//Bufferinput
);

OBUFDS

差分输出时钟缓冲器(Differential Signaling Output Buffer with Selectable I/O Interface),将单端信号转换成差分信号。OBUFDS是一个输出缓冲器,支持低压差分信号。OBUFDS隔离出了内电路并向芯片上的信号提供驱动电流。它的输出用O和OB两个独立接口表示。一个可以认为是主信号,另外一个可以认为是从信号。主信号和从信号是同一个逻辑信号,但是相位相反。

4aeb5826-9e56-11f0-8c8f-92fbcf53809c.png

OBUFDS示意图

使用方式如下:

OBUFDS#(
.IOSTANDARD("DEFAULT"),//SpecifytheoutputI/Ostandard
.SLEW("SLOW")//Specifytheoutputslewrate
)OBUFDS_inst(
.O(O),//Diff_poutput(connectdirectlytotop-levelport)
.OB(OB),//Diff_noutput(connectdirectlytotop-levelport)
.I(I)//Bufferinput
);
4b4b2f4e-9e56-11f0-8c8f-92fbcf53809c.pngIBUFDS、IBUFGDS 和 OBUFDS 真值表

ODDR2

后面单独介绍。

5.举例

单端输入时钟的处理——全局时钟:

wireclk_in;
IBUFG#(
.IOSTANDARD("DEFAULT")
)IBUFG_CLK_S(
.O(clk_in),//Clockbufferoutput
.I(clk)//Clockbufferinput(connectdirectlytotop-levelport)
);

差分输入时钟的处理——全局时钟,以LVDS为例子

wireclk_in_D;
IBUFGDS#(
.DIFF_TERM(“TRUE"),//DifferentialTermination
.IOSTANDARD("LVDS_25")//SpecifiestheI/Ostandardforthisbuffer
)IBUFGDS_inst(
.O(clk_in_D),//Clockbufferoutput
.I(clk_P),//Diff_pclockbufferinput
.IB(clk_N)//Diff_nclockbufferinput
);

差分输入信号的处理 ,以LVDS为例子

wireDin_D;
IBUFDS#(
.DIFF_TERM("TRUE"),//DifferentialTermination
.IOSTANDARD("LVDS_25")//SpecifytheinputI/Ostandard
)IBUFDS_inst(
.O(Din_D),//Bufferoutput
.I(Din_D_P),//Diff_pbufferinput(connectdirectlytotop-levelport)
.IB(Din_D_N)//Diff_nbufferinput(connectdirectlytotop-levelport)
);

更多相关内容,或者想要深入学习,建议去看UG471。

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

    关注

    1656

    文章

    22297

    浏览量

    630455
  • 输入输出
    +关注

    关注

    0

    文章

    44

    浏览量

    11043
  • 输入信号
    +关注

    关注

    0

    文章

    558

    浏览量

    13107

原文标题:FPGA的输入输出处理

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何用FPGA实现4K视频的输入输出处理

    在游戏、影视和显示领域,4K 已经成为标配。而今天,我们就来聊聊——如何用 FPGA 实现 4K 视频的输入输出处理
    的头像 发表于 10-15 10:47 1697次阅读
    如何用<b class='flag-5'>FPGA</b>实现4K视频的<b class='flag-5'>输入输出</b>与<b class='flag-5'>处理</b>

    对于IO空间映射在存储空间的结构,输入输出处理介绍

    对于IO空间映射在存储空间的结构,输入输出处理#define inp(port)(*((volatile byte *) (port))) #define inpw(port
    发表于 07-27 08:00

    视频打印机的输入输出

    视频打印机的输入输出            输入输出指的是产品输入输出视频信号的端口,比较常见的是S端子和复合视频端口。
    发表于 12-31 10:38 1755次阅读

    车载功放的RCA输入输出

    车载功放的RCA输入输出              RCA输入输出是车载功放最主要的音频输入
    发表于 01-04 11:20 6946次阅读

    一文详解FPGA编程技巧输入输出偏移约束

    偏移约束(Offset Constraint)用来定义一个外部时钟引脚(Pad)和数据输入输出引脚之间的时序关系,这种时序关系也被称为器件上的Pad-to-Setup或Clock-to-Out路径这些约束对与外部元器件相连的接口十分重要。
    的头像 发表于 07-14 07:14 6083次阅读
    一文<b class='flag-5'>详解</b><b class='flag-5'>FPGA</b>编程技巧<b class='flag-5'>输入输出</b>偏移约束

    什么是输入输出模块_输入输出模块有什么作用

    输入输出模块也称为控制模块,在有控制要求时可以输出信号,或者提供一个开关量信号,使被控设备动作,同时可以接收设备的反馈信号,以向主机报告,是火灾报警联动系统中重要的组成部分。市场上的输入输出
    发表于 05-21 10:28 12.1w次阅读

    STM32的8种GPIO输入输出模式

    STM32的8种GPIO输入输出模式参考文章“STM32的8种GPIO输入输出模式深入详解”和“STM32中GPIO的8种工作模式!”输入模式- 浮空
    发表于 11-26 17:06 16次下载
    STM32的8种GPIO<b class='flag-5'>输入输出</b>模式

    GPIO通用输入输出

    GPIO通用输入输出一、GPIO的功能概述用途:GPIO是通用输入输出(General Purpose I/O)的简称,主要用于工业现场需要用到数字量输入/输出的场合。例如:
    发表于 12-20 18:58 6次下载
    GPIO通用<b class='flag-5'>输入输出</b>

    MCU中的IO口输入输出状态详解

    使用MCU,必然接触到IO(Input,Output)口,对于IO口的输入输出状态就要有所了解。
    发表于 02-08 15:47 3次下载
    MCU中的IO口<b class='flag-5'>输入输出</b>状态<b class='flag-5'>详解</b>

    Logos系列FPGA输入输出接口(IO)用户指南

    电子发烧友网站提供《Logos系列FPGA输入输出接口(IO)用户指南.pdf》资料免费下载
    发表于 09-26 10:19 18次下载
    Logos系列<b class='flag-5'>FPGA</b><b class='flag-5'>输入输出</b>接口(IO)用户指南

    CW32通用输入输出端口详解

    CW32通用输入输出端口详解
    的头像 发表于 10-30 17:33 1755次阅读
    CW32通用<b class='flag-5'>输入输出</b>端口<b class='flag-5'>详解</b>

    plc带模拟量输入输出和不带模拟量输入输出有什么区别啊?

    的PLC类型,它们之间有很大的差异。 PLC带模拟量输入输出与PLC不带模拟量输入输出的区别在于它们可以控制和处理的不同信号类型。模拟量输入输出和数字量
    的头像 发表于 10-17 16:44 2540次阅读

    用于处理丰富输入输出数据流的图形和图像处理工具

    电子发烧友网站提供《用于处理丰富输入输出数据流的图形和图像处理工具.pdf》资料免费下载
    发表于 11-15 14:12 0次下载
    用于<b class='flag-5'>处理</b>丰富<b class='flag-5'>输入输出</b>数据流的图形和图像<b class='flag-5'>处理</b>工具

    plc输入输出的运行原理

    plc输入端24v. 说明plc输入是PNP输入,要知道怎么接线必须知道plc输入输出的运行原理。
    发表于 12-17 09:27 3367次阅读
    plc<b class='flag-5'>输入输出</b>的运行原理

    寄存器的输入输出方式

    寄存器的输入输出方式是数字电路设计中至关重要的部分,它决定了数据如何在寄存器中进出以及处理的效率。下面将详细探讨寄存器的几种主要输入输出方式,包括并行输入输出、串行
    的头像 发表于 09-05 14:09 3367次阅读