英特尔标志1

GPIO 英特尔® FPGA IP 用户指南


英特尔® Arria® 10 和英特尔® Cyclone® 10 GX 设备

针对英特尔® Quartus® Prime 设计套件更新: 21.2
知识产权版本: 20.0.0

GPIO 英特尔 FPGA IP - 反馈 在线版本                                                               ID: 683136
GPIO 英特尔 FPGA IP - 全球 发送反馈             ug-altera_gpio            版本: 2021.07.15


GPIO 英特尔® FPGA IP 内核支持通用 I/O (GPIO) 功能和组件。 您可以在不特定于收发器、内存接口或 LVDS 的一般应用中使用 GPIO。

GPIO IP 内核仅适用于英特尔 Arria® 10 和英特尔 Cyclone® 10 GX 设备。 如果您从 Stratix® V、Arria V 或 Cyclone V 器件移植设计,则必须移植 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF IP 内核。

相关信息

GPIO 英特尔 FPGA IP 的发布信息

Intel FPGA IP 版本匹配 Intel Quartus® Prime Design Suite 软件版本直到 v19.1。 从英特尔 Quartus Prime 设计套件软件版本 19.2 开始,英特尔 FPGA IP 具有新的版本控制方案。


英特尔公司。 版权所有。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔根据英特尔的标准保修保证其 FPGA 和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务,除非英特尔明确书面同意。 建议英特尔客户在依赖任何已发布信息和下订单购买产品或服务之前获取最新版本的设备规格。 *其他名称和品牌可能被认为是他人的财产。

ISO 9001:2015注册

英特尔 FPGA IP 版本 (XYZ) 编号可以随每个英特尔 Quartus Prime 软件版本而变化。 一个变化:

  • X 表示 IP 的重大修订。 如果更新 Intel Quartus Prime 软件,则必须重新生成 IP。
  • Y 表示 IP 包含新功能。 重新生成您的 IP 以包含这些新功能。
  • Z 表示 IP 包含较小的更改。 重新生成您的 IP 以包含这些更改。

表 1. GPIO 英特尔 FPGA IP 核当前版本信息

物品

描述

IP版本 20.0.0
英特尔 Quartus Prime 版本 21.2
发布日期 2021.06.23
GPIO 英特尔 FPGA IP 特性

GPIO IP 内核包括支持设备 I/O 块的功能。 您可以使用 Intel Quartus Prime 参数编辑器来配置 GPIO IP 内核。

GPIO IP 内核提供以下组件:

  • 双倍数据速率输入/输出 (DDIO)——一种将通信通道的数据速率加倍或减半的数字组件。
  • 延迟链——配置延迟链以执行特定延迟并协助 I/O 时序收敛。
  • I/O 缓冲器——将焊盘连接到 FPGA。
GPIO 英特尔 FPGA IP 数据路径

图 1. 高层 View 单端 GPIO

GPIO 英特尔 FPGA IP - 图 1

表 2. GPIO IP 内核数据路径模式

数据路径

注册方式
旁路 简单注册

内存输入/输出

全速率

半价

输入 数据从延迟元件传输到内核,绕过所有双倍数据速率 I/O (DDIO)。 全速率 DDIO 作为一个简单的寄存器运行,绕过了半速率 DDIO。 Fitter 选择是将寄存器封装在 I/O 中还是在内核中实现寄存器,具体取决于面积和时序权衡。 全速率 DDIO 作为常规 DDIO 运行,绕过半速率 DDIO。 全速率 DDIO 作为常规 DDIO 运行。 半速率 DDIO 将全速率数据转换为半速率数据。
输出 数据从核心直接进入延迟元件,绕过所有 DDIO。 全速率 DDIO 作为一个简单的寄存器运行,绕过了半速率 DDIO。 Fitter 选择是将寄存器封装在 I/O 中还是在内核中实现寄存器,具体取决于面积和时序权衡。 全速率 DDIO 作为常规 DDIO 运行,绕过半速率 DDIO。 全速率 DDIO 作为常规 DDIO 运行。 半速率 DDIO 将全速率数据转换为半速率数据。
双向 输出缓冲器驱动输出引脚和输入缓冲器。 全速率 DDIO 作为一个简单的寄存器运行。 输出缓冲器驱动输出引脚和输入缓冲器。 全速率 DDIO 作为常规 DDIO 运行。 输出缓冲器驱动输出引脚和输入缓冲器。 输入缓冲器驱动一组三个触发器。 全速率 DDIO 作为常规 DDIO 运行。 半速率 DDIO 将全速率数据转换为半速率。 输出缓冲器驱动输出引脚和输入缓冲器。 输入缓冲器驱动一组三个触发器。

如果您使用异步清除和预设信号,则所有 DDIO 共享这些相同的信号。

半速率和全速率 DDIO 连接到不同的时钟。 当您使用半速率和全速率 DDIO 时,全速率时钟必须以两倍半速率频率运行。 您可以使用不同的相位关系来满足时序要求。

相关信息
输入和输出总线高位和低位 on page 12

输入路径

pad 将数据发送到输入缓冲器,输入缓冲器馈送到延迟元件。 数据进入延迟元件的输出后,可编程旁路多路复用器选择要使用的特性和路径。每个输入路径包含两个 stagDDIOs的es,有全速率和半速率。

图 2. 简化 View 单端 GPIO 输入路径

GPIO 英特尔 FPGA IP - 图 2

  1. 垫接收数据。
  2. DDIO IN(1)在ck_fr的上升沿和下降沿采集数据,并以单数据速率发送数据,信号(A)和(B)如下波形图。
  3. DDIO IN (2) 和 DDIO IN (3) 将数据速率减半。
  4. dout[3:0] 将数据呈现为半速率总线。

图 3. 采用半速率转换的 DDIO 模式下的输入路径波形

在此图中,数据从双倍数据速率的全速率时钟变为单数据速率的半速率时钟。 数据速率除以四,总线大小增加相同的比例。 通过 GPIO IP 内核的总吞吐量保持不变。

不同信号之间的实际时序关系可能会有所不同,具体取决于您为全速率和半速率时钟选择的特定设计、延迟和相位。

GPIO 英特尔 FPGA IP - 图 3

注意:GPIO IP 内核不支持双向管脚的动态校准。 需要动态校准双向管脚的应用,请参考相关资料。

相关信息

输出和输出使能路径

输出延迟元件通过输出缓冲器将数据发送到焊盘。

每个输出路径包含两个tagDDIO 的 es,有半速率和全速率。

图 4. 简化 View 单端 GPIO 输出路径

GPIO 英特尔 FPGA IP - 图 4

图 5. DDIO 模式下半速率转换的输出路径波形

GPIO 英特尔 FPGA IP - 图 5

图 6. 简化 View 输出使能路径

GPIO 英特尔 FPGA IP - 图 6

输出路径和输出使能 (OE) 路径之间的区别在于 OE 路径不包含全速率 DDIO。 为了支持 OE 路径中的打包寄存器实现,一个简单的寄存器作为全速率 DDIO 运行。 出于同样的原因,只有一个半速率 DDIO 存在。

OE 路径以以下三种基本模式运行:

  • 旁路——内核直接将数据发送到延迟元件,绕过所有 DDIO。
  • Packed Register—绕过半速率 DDIO。
  • 半速率 SDR 输出——半速率 DDIO 将数据从全速率转换为半速率。

注意:GPIO IP 内核不支持双向管脚的动态校准。 需要动态校准双向管脚的应用,请参考相关资料。

相关信息

GPIO 英特尔 FPGA IP 接口信号

根据您指定的参数设置,不同的接口信号可用于 GPIO IP 核。

图 7. GPIO IP 内核接口

GPIO 英特尔 FPGA IP - 图 7

图 8. GPIO 接口信号

GPIO 英特尔 FPGA IP - 图 8

表 3. 焊盘接口信号

pad接口是GPIO IP核到pad的物理连接。 该接口可以是输入、输出或双向接口,具体取决于 IP 核配置。 在此表中,SIZE 是 IP 内核参数编辑器中指定的数据宽度。

信号名称

方向

描述

pad_in[SIZE-1:0]

输入

来自焊盘的输入信号。
pad_in_b[尺寸-1:0]

输入

来自焊盘的差分输入信号的负节点。 如果您打开 使用差分缓冲器 选项。 
pad_out[尺寸-1:0]

输出

输出信号到焊盘。
pad_out_b[尺寸-1:0]

输出

到焊盘的差分输出信号的负节点。 如果您打开 使用差分缓冲器 选项。
pad_io[大小-1:0]

双向

与焊盘的双向信号连接。
pad_io_b[尺寸-1:0]

双向

与焊盘连接的差分双向信号负节点。 如果您打开 使用差分缓冲器 选项。

表 4. 数据接口信号

数据接口是从GPIO IP核到FPGA核的输入或输出接口。 在此表中,SIZE 是 IP 内核参数编辑器中指定的数据宽度。

信号名称

方向

描述

喧嚣 [DATA_SIZE-1:0]

输入

在输出或双向模式下从 FPGA 内核输入的数据。
DATA_SIZE 取决于寄存器模式:
  • 旁路或简单寄存器—DATA_SIZE = SIZE
  • 没有半速率逻辑的 DDIO—DATA_SIZE = 2 × SIZE
  • 具有半速率逻辑的 DDIO—DATA_SIZE = 4 × SIZE
doout[DATA_SIZE-1:0]

输出

数据以输入或双向方式输出到FPGA内核,
DATA_SIZE 取决于寄存器模式:
  • 旁路或简单寄存器—DATA_SIZE = SIZE
  • 没有半速率逻辑的 DDIO—DATA_SIZE = 2 × SIZE
  • 具有半速率逻辑的 DDIO—DATA_SIZE = 4 × SIZE
oe[OE_SIZE-1:0]

输入

输出模式下来自 FPGA 内核的 OE 输入 使能输出使能端口 打开,或双向模式。 OE 高电平有效。
发送数据时,设置该信号为1。接收数据时,设置该信号为0。OE_SIZE取决于寄存器模式:
  • 旁路或简单寄存器—DATA_SIZE = SIZE
  • 没有半速率逻辑的 DDIO—DATA_SIZE = SIZE
  • 具有半速率逻辑的 DDIO—DATA_SIZE = 2 × SIZE

表 5. 时钟接口信号

时钟接口是输入时钟接口。 它由不同的信号组成,具体取决于配置。 GPIO IP 内核可以有零个、一个、两个或四个时钟输入。 时钟端口在不同的配置中以不同的方式出现,以反映时钟信号执行的实际功能。

信号名称

方向

描述

ck

输入

在输入和输出路径中,如果您关闭 半速率逻辑 范围。
在双向模式下,如果您关闭 独立的输入/输出时钟 范围。
CK_FR

输入

在输入和输出路径中,如果您打开 半速率逻辑 范围。
在双向模式下,如果您关闭 独立的输入/输出时钟 范围。

时钟时间

CK_IN

输入

在双向模式下,如果同时指定以下设置,则这些时钟会在输入和输出路径中馈送打包寄存器或 DDIO:
  • 关闭 半速率逻辑 范围。
  • 打开 独立的输入/输出时钟 范围。
退出
ck_fr_in

输入

在双向模式下,如果同时指定这两个设置,这些时钟会在输入和输出路径中提供全速率和半速率 DDIOS
  • 打开 半速率逻辑 范围。
  • 打开 独立的输入/输出时钟 范围。

例如ample, ck_fr_out 在输出路径中提供全速率 DDIO。

CK_FR_输出
时钟时间输入
时钟输出
CKE

输入

时钟使能。

表 6. 终端接口信号

终端接口将 GPIO IP 核连接到 I/O 缓冲器。

信号名称

方向

描述

系列终止控制

输入

从终止控制块 (OCT) 到缓冲区的输入。 它设置缓冲器串联阻抗值。
并行终端控制

输入

从终止控制块 (OCT) 到缓冲区的输入。 它设置缓冲器并联阻抗值。

表 7. 复位接口信号

复位接口将 GPIO IP 内核连接到 DDIO。

信号名称

方向

描述

单反

输入

同步清零输入。 如果启用 sset,则不可用。
访问控制寄存器

输入

异步清除输入。 活跃度高。 如果启用 aset,则不可用。
资产

输入

异步设置输入。 活跃度高。 如果启用 aclr,则不可用。
塞特

输入

同步设置输入。 如果启用 sclr,则不可用。

相关信息
输入和输出总线高位和低位 on page 12

共享信号
  • 输入、输出和 OE 路径共享相同的清除和预设信号。
  • 输出和 OE 路径共享相同的时钟信号。
数据接口的数据位序

图 9. 数据位顺序约定

此图显示了 din、dout 和 oe 数据信号的位顺序约定。

GPIO 英特尔 FPGA IP - 图 9

  • 如果数据总线大小值为 SIZE,则 LSB 位于最右侧。
  • 如果数据总线大小值为 2 × SIZE,则总线由两个字 SIZE 组成。
  • 如果数据总线大小值为4×SIZE,则总线由四个SIZE字组成。
  • LSB 位于每​​个单词的最右侧。
  • 最右边的字指定输出总线的第一个字和输入总线的第一个字。

相关信息
输入路径第 5 页

输入和输出总线高位和低位

输入或输出信号中的高位和低位包含在 din 和 dout 输入和输出总线中。

输入总线

对于din总线,如果datain_h和datain_l为高低位,每个宽度为datain_width:

  • datain_h = din[(2 × datain_width – 1):datain_width]
  • 数据输入l = din[(数据输入宽度 – 1):0]

例如amp乐,对于 din[7:0] = 8'b11001010:

  • datain_h = 4'b1100
  • datain_l = 4'b1010

输出总线

对于dout总线,如果dataout_h和dataout_l为高位和低位,每个宽度为dataout_width:

  • dataout_h = doout[(2 × dataout_width – 1):dataout_width]
  • dataout_l = doout[(dataout_width – 1):0]

例如ample,对于 dout[7:0] = 8'b11001010:

  • dataout_h = 4'b1100
  • dataout_l = 4'b1010
数据接口信号和相应的时钟

表 8. 数据接口信号和相应的时钟

信号名称 

参数配置
注册方式 半价

独立时钟

喧闹
  • 简单注册
  • 迪奥

离开

离开

ck
迪奥

On

离开

时钟时间
  • 简单注册
  • 迪奥

离开

On

CK_IN
迪奥

On

On

时钟时间输入
  • 输出
  • oe
  • 简单注册
  • 迪奥

离开

离开

ck
迪奥

On

离开

时钟时间
  • 简单注册
  • 迪奥

离开

On

退出
迪奥

On

On

时钟输出
  • 单反
  • 塞特
  • 所有焊盘信号
  • 简单注册
  • 迪奥

离开

离开

ck
迪奥

On

离开

CK_FR
  • 简单注册
  • 迪奥

离开

On

  • 输入路径:ck_in
  • 输出路径:ck_out
迪奥

On

On

  • 输入路径:ck_fr_in
  • 输出路径:ck_fr_out
验证资源利用率和设计性能

您可以参考 Intel Quartus Prime 编译报告以获取有关您的设计的资源使用和性能的详细信息。

  1. 在菜单上,单击 处理 ➤ 开始编译 运行完整编译。
  2. 编译设计后,单击 处理 ➤ 编译报告.
  3. 使用 目录,导航至 Fitter ➤ 资源部分.
    一种。 到 view 资源使用信息,选择 资源使用摘要.
    湾到 view 资源利用信息,选择 实体的资源利用.
GPIO Intel FPGA IP参数设置

您可以在 Intel Quartus Prime 软件中设置 GPIO IP 内核的参数设置。 共有三组选项: 一般的, 缓冲, 和 寄存器.

表 9. GPIO IP 核参数——一般

范围

健康)状况 允许值

描述

数据方向

  • 输入
  • 输出 
  • 比迪尔
指定 GPIO 的数据方向。
数据宽度

1 至 128 年 指定数据宽度。
使用旧的顶级端口名称

  • On
  • 离开
使用与 Stratix V、Arria V 和 Cyclone V 器件相同的端口名称。
例如ample,dout变成dataout_h和dataout_l,din变成datain_h和datain_l。
注意:这些端口的行为不同于 Stratix V、Arria V 和 Cyclone V 器件。 迁移指南请参考相关资料。

表 10. GPIO IP 内核参数——缓冲区

范围

健康)状况 允许值

描述

使用差分缓冲器

  • On 
  • 离开
如果打开,则启用差分 I/O 缓冲器。
使用伪差分缓冲器
  • 数据方向 = 输出
  • 使用差分缓冲器 = 开 
  • On 
  • 离开
如果在输出模式下打开,则启用伪差分输出缓冲器。
如果您打开此选项,则双向模式会自动打开此选项 使用差分缓冲器.
使用总线保持电路
  • 数据方向 = 输入或双向
  • 使用差分缓冲器 = 关闭
  • On 
  • 离开
如果打开,总线保持电路可以将 I/O 引脚上的信号微弱地保持在其最后驱动状态,其中输出缓冲器状态将为 1 或 0,但不是高阻抗。
使用开漏输出
  • 数据方向 = 输出或双向
  • 使用差分缓冲器 = 关闭
  • On 
  • 离开
如果打开,开漏输出使设备能够提供系统级控制信号,例如中断和写使能信号,这些信号可以由系统中的多个设备断言。
使能输出使能端口 数据方向 = 输出
  • On 
  • 离开
如果打开,则允许用户输入到 OE 端口。 对于双向模式,此选项会自动打开。
启用串联终端/并行终端端口

  • On 
  • 离开
如果打开,则启用输出缓冲区的 seriesterminationcontrol 和 parallelterminationcontrol 端口。

表 11. GPIO IP 内核参数——寄存器

范围 健康)状况 允许值 描述
注册方式

  • 没有任何 
  • 简单注册 
  • 迪奥
指定 GPIO IP 内核的寄存器模式:
  • 没有任何—指定从/到缓冲器的简单接线。
  • 简单注册—指定 DDIO 在单数据速率模式 (SDR) 中用作简单寄存器。 Fitter 可以将此寄存器封装在 I/O 中。
  • 迪奥— 指定 IP 内核使用 DDIO。
启用同步清除/预设端口
  • 寄存器模式=DDIO
  • 没有任何 
  • 清除 
  • 预设
指定如何实现同步复位端口。
  • 没有任何— 禁用同步复位端口。
  • 清除— 启用 SCLR 端口以进行同步清除。
  • 预设— 启用同步预设的 SSET 端口。
启用异步清除/预设端口
  • 寄存器模式=DDIO
  • 没有任何 
  • 清除 
  • 预设
指定如何实现异步复位端口。
  • 没有任何— 禁用异步复位端口。
  • 清除— 为异步清除启用 ACLR 端口。
  • 预设— 为异步预设启用 ASET 端口。

ACLR 和 ASET 信号为高电平有效。

启用时钟使能端口 寄存器模式=DDIO
  • On 
  • 离开
  • On— 公开时钟使能 (CKE) 端口以允许您控制数据何时输入或输出。 此信号可防止数据在您无法控制的情况下通过。
  • 离开—时钟使能端口未暴露,数据始终自动通过寄存器。
半速率逻辑 寄存器模式=DDIO
  • On 
  • 离开
如果打开,则启用半速率 DDIO。
独立的输入/输出时钟
  • 数据方向 = 双向 
  • 寄存器模式 = 简单寄存器或 DDIO
  • On 
  • 离开
如果打开,则在双向模式下为输入和输出路径启用单独的时钟(CK_IN 和 CK_OUT)。

相关信息

  • 输入和输出总线高位和低位 on page 12
  • 指南:交换迁移 IP 中的 datain_h 和 datain_l 端口(第 23 页)
注册包装

GPIO IP 内核允许您将寄存器打包到外设中以节省面积和资源利用率。

您可以将输入和输出路径上的全速率 DDIO 配置为触发器。 为此,请添加此表中列出的 .qsf 分配。

表 12. 寄存器封装 QSF 分配

小路

QSF 作业

输入寄存器封装 QSF 分配 set_instance_assignment -name FAST_INPUT_REGISTER ON -to
输出寄存器打包 set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to
输出使能寄存器封装 set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to

注意:这些分配不保证寄存器打包。 但是,这些分配使 Fitter 能够找到合法的布局。 否则,Fitter 会将触发器保留在内核中。

GPIO 英特尔 FPGA IP 时序

GPIO IP 内核的性能取决于 I/O 约束和时钟相位。 要验证 GPIO 配置的时序,英特尔建议您使用时序分析器。

相关信息
英特尔 Quartus Prime 时序分析器

计时组件

GPIO IP 内核时序组件由三个路径组成。

  • I/O 接口路径——从 FPGA 到外部接收设备以及从外部发送设备到 FPGA。
  • 数据和时钟的内核接口路径——从 I/O 到内核以及从内核到 I/O。
  • 传输路径——从半速率到全速率 DDIO,以及从全速率到半速率 DDIO。

注意:Timing Analyzer 将 DDIO_IN 和 DDIO_OUT 块内的路径视为黑盒。

图 10. 输入路径时序组件

GPIO 英特尔 FPGA IP - 图 10

图 11. 输出路径时序组件

GPIO 英特尔 FPGA IP - 图 11

图 12. 输出使能路径时序组件

GPIO 英特尔 FPGA IP - 图 12

延迟元件

Intel Quartus Prime 软件不会自动设置延迟元素来最大化 I/O 时序分析中的裕量。 要关闭时序或最大化松弛,请在 Intel Quartus Prime 设置中手动设置延迟元件 file (.qsf)。

表 13. 延迟元件 .qsf 分配

在 .qsf 中指定这些分配以访问延迟元件。

延迟元件 .qsf 赋值
输入延迟元件 将_instance_assignment 设置为-名称 INPUT_DELAY_CHAIN <0..63>
输出延迟元件 将_instance_assignment 设置为-名称 OUTPUT_DELAY_CHAIN <0..15>
输出使能延迟元件 将_instance_assignment 设置为-名称 OE_DELAY_CHAIN <0..15>
时序分析

Intel Quartus Prime 软件不会自动为 GPIO IP 内核生成 SDC 时序约束。 您必须手动输入时序约束。

遵循时序指南和前amp确保 Timing Analyzer 正确分析 I/O 时序的文件。

  • 要对 I/O 接口路径执行正确的时序分析,请在 .sdc 文件中针对系统时钟引脚指定数据引脚的系统级约束 file.
  • 要对核心接口路径执行正确的时序分析,请在 .sdc 中定义这些时钟设置 file:
    — 时钟到核心寄存器
    — 简单寄存器和 DDIO 模式的 I/O 寄存器时钟

相关信息
AN 433:约束和分析源同步接口
描述用于约束和分析源同步接口的技术。

单数据速率输入寄存器

图 13. 单数据速率输入寄存器

GPIO 英特尔 FPGA IP - 图 13

表 14. 单数据速率输入寄存器 .sdc 命令示例amp莱斯

命令 命令前ample 描述
创建时钟 create_clock -名称 sdr_in_clk -周期
“100 MHz”sdr_in_clk
为输入时钟创建时钟设置。
设置输入延迟 设置输入延迟-时钟 sdr_in_clk
0.15 sdr_in_data
指示时序分析器以 0.15 ns 输入延迟分析输入 I/O 的时序。
全速率或半速率 DDIO 输入寄存器

全速率和半速率DDIO输入寄存器的输入端是一样的。 您可以通过使用虚拟时钟对到 FPGA 的片外发送器建模来适当地约束系统。

图 14. 全速率或半速率 DDIO 输入寄存器

GPIO 英特尔 FPGA IP - 图 14

表 15. 全速率或半速率 DDIO 输入寄存器 .sdc 命令示例amp莱斯

命令 命令前ample 描述
创建时钟 create_clock -name 虚拟时钟
-周期“200 MHz”
创建时钟-名称 ddio_in_clk
-周期“200 MHz”ddio_in_clk
为虚拟时钟和 DDIO 时钟创建时钟设置。
设置输入延迟 set_input_delay -clock 虚拟时钟
0.25 ddio_in_data
设置输入延迟-添加延迟
-clock_fall -clock virtual_clock 0.25
ddio_in_data
指示 Timing Analyzer 分析传输的正时钟边沿和负时钟边沿。 请注意第二个 set_input_delay 命令中的 -add_delay。
设置假路径 set_false_path -fall_from
虚拟时钟-rise_to ddio_in_clk
设置假路径-rise_from
virtual_clock -fall_to ddio_in_clk
指示 Timing Analyzer 忽略正时钟边沿到负边沿触发寄存器,以及时钟负边沿到正边沿触发寄存器。

注意:ck_hr 频率必须是 ck_fr 频率的一半。 如果 I/O PLL 驱动时钟,您可以考虑使用 derive_pll_clocks .sdc 命令。

单数据速率输出寄存器

图 15. 单数据速率输出寄存器

GPIO 英特尔 FPGA IP - 图 15

表 16. 单数据速率输出寄存器 .sdc 命令示例amp莱斯

命令 命令前ample 描述
create_clock 和 create_generated_clock 创建_时钟-名称 sdr_out_clk
-周期“100 MHz”sdr_out_clk
create_generated_clock -源
sdr_out_clk -名称 sdr_out_outclk
sdr_out_outclk
生成要传输的源时钟和输出时钟。
设置输出延迟 设置输出延迟-时钟 sdr_out_clk
0.45 sdr_输出_数据
指示时序分析器分析要传输的输出数据与要传输的输出时钟。
全速率或半速率 DDIO 输出寄存器

全速率和半速率DDIO输出寄存器的输出端是一样的。

表 17. DDIO 输出寄存器 .sdc 命令示例amp莱斯

命令 命令前ample 描述
create_clock 和 create_generated_clock 创建时钟-名称 ddio_out_fr_clk
-周期“200 MHz”ddio_out_fr_clk
create_generated_clock -源
ddio_out_fr_clk-名称
ddio_out_fr_outclk
ddio_out_fr_outclk
生成到 DDIO 的时钟和要传输的时钟。
设置输出延迟 set_output_delay -时钟
ddio_out_fr_outclk 0.55
ddio_out_fr_data
设置输出延迟-添加延迟
-clock_fall -时钟
ddio_out_fr_outclk 0.55
ddio_out_fr_data
指示时序分析器根据输出时钟分析正负数据。
设置假路径 设置假路径-rise_from
ddio_out_fr_clk -fall_to
ddio_out_fr_outclk
set_false_path -fall_from
ddio_out_fr_clk -rise_to
ddio_out_fr_outclk
指示 Timing Analyzer 忽略源时钟的上升沿与输出时钟的下降沿,以及源时钟的下降沿与输出时钟的上升沿
时序收敛指南

对于 GPIO 输入寄存器,如果不设置输入延迟链,输入 I/O 传输很可能会失败保持时间。 此故障是由于时钟延迟大于数据延迟引起的。

为了满足保持时间,使用输入延迟链向输入数据路径添加延迟。 一般而言,输入延迟链在 60 速度等级时每步约为 1 ps。 要获得通过时序的近似输入延迟链设置,请将负保持松弛除以 60 ps。

但是,如果 I/O PLL 驱动 GPIO 输入寄存器的时钟(简单寄存器或 DDIO 模式),您可以将补偿模式设置为源同步模式。 Fitter 将尝试配置 I/O PLL 以获得更好的设置并保持松弛以进行输入 I/O 时序分析。

对于 GPIO 输出和输出启用寄存器,您可以使用输出和输出启用延迟链向输出数据和时钟添加延迟。

  • 如果您观察到设置时间违规,您可以增加输出时钟延迟链设置。
  • 如果您观察到保持时间违规,您可以增加输出数据延迟链设置。
GPIO 英特尔 FPGA IP 设计实例amp莱斯

GPIO IP核可以生成设计实例amp在参数编辑器中匹配您的 IP 配置的文件。 您可以使用这些设计前amp文件作为实例化 IP 核和模拟中预期行为的参考。

您可以生成设计前amp来自 GPIO IP 内核参数编辑器的文件。 设置所需参数后,单击 生成前amp设计. IP核生成设计前amp来源 files 在您指定的目录中。

图 16.来源 File生成的设计示例中的 samp目录

GPIO 英特尔 FPGA IP - 图 16

注意:.qsys files 供设计 ex 期间内部使用amp乐世代而已。 您不能编辑这些 .qsys files.

GPIO IP 内核可合成英特尔 Quartus Prime 设计实例ample

综合设计前ample 是一个编译就绪的 Platform Designer 系统,您可以将其包含在 Intel Quartus Prime 工程中。

生成和使用 Design Example

生成可综合的英特尔 Quartus Prime 设计前amp从源头上 files,在design ex中运行如下命令amp文件目录:

quartus_sh -t make_qii_design.tcl

要指定要使用的确切设备,请运行以下命令:

quartus_sh -t make_qii_design.tcl [设备名称]

TCL 脚本创建一个包含 ed_synth.qpf 项目的 qii 目录 file. 您可以在英特尔 Quartus Prime 软件中打开并编译该项目。

GPIO IP核仿真设计实例ample

仿真设计前amp文件使用您的 GPIO IP 内核参数设置来构建连接到仿真驱动程序的 IP 实例。 驱动程序生成随机流量并在内部检查传出数据的合法性。

使用设计前amp文件中,您可以使用单个命令运行模拟,具体取决于您使用的模拟器。 该仿真演示了如何使用 GPIO IP 核。

生成和使用 Design Example

生成仿真设计前amp从源头上 files 对于 Verilog 仿真器,在 design ex 中运行以下命令amp文件目录:

quartus_sh -t make_sim_design.tcl

生成仿真设计前amp从源头上 files 对于 VHDL 仿真器,在 design ex 中运行以下命令amp文件目录:

quartus_sh -t make_sim_design.tcl VHDL

TCL 脚本创建一个包含子目录的 sim 目录——一个用于每个支持的仿真工具。 您可以在相应的目录中找到每个模拟工具的脚本。

Arria V、Cyclone V 和 Stratix V 器件的 IP 迁移流程

IP 迁移流程允许您将 Arria V、Cyclone V 和 Stratix V 器件的 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 和 ALTIOBUF IP 内核迁移到 Intel Arria 10 和 Intel Cyclone 10 GX 器件的 GPIO IP 内核。

此 IP 迁移流程配置 GPIO IP 核以匹配 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 和 ALTIOBUF IP 核的设置,从而允许您重新生成 IP 核。

注意:一些 IP 内核仅在特定模式下支持 IP 迁移流程。 如果您的 IP 内核处于不受支持的模式,您可能需要为 GPIO IP 内核运行 IP Parameter Editor 并手动配置 IP 内核。

迁移您的 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 和 ALTIOBUF IP 内核

要将您的 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 和 ALTIOBUF IP 内核迁移到 GPIO Intel FPGA IP IP 内核,请执行以下步骤:

  1. 在 IP Parameter Editor 中打开 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF IP 内核。
  2. 当前选择的设备系列, 选择 英特尔 Arria 10 or 英特尔Cyclone 10 GX.
  3. 点击 结束 打开 GPIO IP 参数编辑器。
    IP 参数编辑器配置类似于 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF 内核设置的 GPIO IP 内核设置。
  4. 如果两者之间有任何不兼容的设置,请选择 新支持的设置.
  5. 点击 结束 重新生成 IP 内核。
  6. 用 GPIO IP 核替换 RTL 中的 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF IP 核例化。

注意:GPIO IP 内核端口名称可能与 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF IP 内核端口名称不匹配。 因此,仅在实例化中更改 IP 内核名称可能是不够的。

相关信息
输入和输出总线高位和低位 on page 12

指南:交换迁移 IP 中的 datain_h 和 datain_l 端口

当您将 GPIO IP 从以前的设备迁移到 GPIO IP 内核时,您可以打开 使用旧的顶级端口名称 GPIO IP 内核参数编辑器中的选项。 然而,这些端口在 GPIO IP 内核中的行为不同于用于 Stratix V、Arria V 和 Cyclone V 器件的 IP 内核。

GPIO IP 内核将这些端口驱动到这些时钟边沿上的输出寄存器:

  • datain_h—在 outclock 的上升沿
  • datain_l—在 outclock 的下降沿

如果您从 Stratix V、Arria V 和 Cyclone V 器件移植了您的 GPIO IP,当您实例化由 GPIO IP 核生成的 IP 时交换 datain_h 和 datain_l 端口。

相关信息
输入和输出总线高位和低位 on page 12

GPIO 英特尔 FPGA IP 用户指南档案

IP 版本与最高 v19.1 的英特尔 Quartus Prime 设计套件软件版本相同。 从 Intel Quartus Prime Design Suite 软件版本 19.2 或更高版本开始,IP 核具有新的 IP 版本控制方案。

如果未列出 IP 核版本,则适用先前 IP 核版本的用户指南。

IP核版本

用户指南

20.0.0 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
19.3.0 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
19.3.0 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
18.1 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
18.0 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
17.1 英特尔 FPGA GPIO IP 核用户指南
17.0 Altera GPIO IP 内核用户指南
16.1 Altera GPIO IP 内核用户指南
16.0 Altera GPIO IP 内核用户指南
14.1 Altera GPIO 宏功能用户指南
13.1 Altera GPIO 宏功能用户指南
GPIO 英特尔 FPGA IP 用户指南的文档修订历史:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备

文档版本

英特尔 Quartus Prime 版本 IP版本

更改

2021.07.15

21.2

20.0.0

更新了显示简化的图表 view 将 dout[0] 更新为 dout[3] 并将 dout[3] 更新为 dout[0] 的单端 GPIO 输入路径。

2021.03.29

21.1

20.0.0

将 GPIO IP 版本号更新为 20.0.0。

2021.03.12

20.4

19.3.0

更新了 IP 迁移指南以指定 GPIO IP 在上升沿驱动 datain_h 并在下降沿驱动 datain_l。

2019.10.01

19.3

19.3.0

更正了延迟元件主题中 .qsf 分配代码中的印刷错误。

2019.03.04

18.1

18.1

在有关输入路径、输出和输出使能路径的主题中:
  • 更正了主题中的注释以指定 GPIO Intel FPGA IP 不支持双向管脚的动态校准。
  • 添加了指向 PHY Lite for Parallel Interfaces Intel FPGA IP Core User Guide 的链接:Intel Stratix 10、Intel Arria 10 和 Intel Cyclone 10 GX Devices,以获取有关需要动态校准双向管脚的应用程序的更多信息。

2018.08.28

18.0

18.0

  • 将英特尔 FPGA GPIO IP 内核用户指南中的文档重命名为 GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备。
  • 添加了指向 Intel Stratix 10 GPIO IP 用户指南的链接。 
  • 将 IP 从“Intel FPGA GPIO”重命名为“GPIO Intel FPGA IP”。 
  • 将“clk_fr”和“clk_hr”实例更正为“ck_fr”和“ck_hr”。 
  • 更新了 GPIO IP 输入路径和输出路径图以显示实际的 IP 内核信号名称。
日期 版本 更改
2017 年 XNUMX 月 2017.11.06
  • 添加了对 Intel Cyclone 10 GX 器件的支持。
  • 更新了图中的信号名称以匹配 GPIO IP 内核中的信号名称。
  • 添加了输出路径波形。
  • 将“Altera GPIO IP 核”重命名为“Intel FPGA GPIO IP 核”。
  • 将“Altera IOPLL IP 核”重命名为“Intel FPGA IOPLL IP 核”。
  • 将“TimeQuest Timing Analyzer”重命名为“Timing Analyzer”。
  • 将“Qsys”重命名为“平台设计器”。
  • 阐明了 ASET 和 ACLR 信号为高电平有效。
2017 年 XNUMX 月 2017.05.08
  • 更新了列出 GPIO 缓冲区参数的表以指定条件 使用总线保持电路 参数选项。
  • 更名为英特尔。
2016年XNUMX月XNUMX日 2016.10.31
  • 更新了输入路径波形。
  • 添加了描述 din 和 dout 总线中高位和低位的主题。
2016 年 XNUMX 月 2016.08.05
  • 添加了有关 GPIO IP 内核中动态 OCT 支持的注释。
  • 更新了有关参数设置的主题以提高准确性和清晰度。
  • 更新了有关生成设计示例的部分amp勒。
  • 当您从 Stratix V、Arria V 和 Cyclone V 器件迁移到 GPIO IP 内核时,添加了关于传统端口行为的指南主题。
  • 重写并重组了文档以提高清晰度并便于参考。
  • 将 Quartus II 实例更改为 Quartus Prime。
2014 年 XNUMX 月 2014.08.18
  • 添加了计时信息。
  • 添加了寄存器封装信息。
  • 额外 使用旧的顶级端口名称 范围。 这是一个新参数。
  • 添加了寄存器封装信息。
  • 用 IP 内核替换术语宏功能。
2013 年 XNUMX 月 2013.11.29 初始版本。

GPIO 英特尔 FPGA IP - 反馈 发送反馈

GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备

文件/资源

英特尔 GPIO 英特尔 FPGA IP [pdf] 用户指南
GPIO 英特尔 FPGA IP, GPIO, 英特尔 FPGA IP, FPGA IP

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *