
GPIO 英特尔® FPGA IP 用户指南
英特尔® Arria® 10 和英特尔® Cyclone® 10 GX 设备
针对英特尔® Quartus® Prime 设计套件更新: 21.2
知识产权版本: 20.0.0
在线版本 ID: 683136
发送反馈 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 内核。
相关信息
- Arria V、Cyclone V 和 Stratix V 器件的 IP 迁移流程 (第 22 页)
- 英特尔 Stratix 10 I/O 实施指南
提供 Intel Stratix 10 设备的 GPIOIP 内核用户指南。 - 英特尔 FPGA IP 内核简介
提供有关所有 Intel FPGA IP 内核的一般信息,包括参数化、生成、升级和仿真 IP 内核。 - 创建与版本无关的 IP 和 Qsys 仿真脚本
创建不需要手动更新软件或 IP 版本升级的仿真脚本。 - 项目管理最佳实践
项目和 IP 的有效管理和可移植性指南 files. - GPIO 英特尔 FPGA IP 用户指南档案第 24 页
提供以前版本的 GPIO IP 内核的用户指南列表。 - 双倍数据速率 I/O(ALTDDIO_IN、ALTDDIO_OUT 和 ALTDDIO_BIDIR)IP 内核用户指南
- I/O 缓冲器 (ALTIOBUF) IP 内核用户指南
GPIO 英特尔 FPGA IP 的发布信息
Intel FPGA IP 版本匹配 Intel Quartus® Prime Design Suite 软件版本直到 v19.1。 从英特尔 Quartus Prime 设计套件软件版本 19.2 开始,英特尔 FPGA IP 具有新的版本控制方案。
英特尔公司。 版权所有。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 英特尔根据英特尔的标准保修保证其 FPGA 和半导体产品的性能符合当前规格,但保留随时更改任何产品和服务的权利,恕不另行通知。 英特尔不承担因应用或使用此处描述的任何信息、产品或服务而产生的任何责任或义务,除非英特尔明确书面同意。 建议英特尔客户在依赖任何已发布信息和下订单购买产品或服务之前获取最新版本的设备规格。 *其他名称和品牌可能被认为是他人的财产。
英特尔 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

表 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 输入路径

- 垫接收数据。
- DDIO IN(1)在ck_fr的上升沿和下降沿采集数据,并以单数据速率发送数据,信号(A)和(B)如下波形图。
- DDIO IN (2) 和 DDIO IN (3) 将数据速率减半。
- dout[3:0] 将数据呈现为半速率总线。
图 3. 采用半速率转换的 DDIO 模式下的输入路径波形
在此图中,数据从双倍数据速率的全速率时钟变为单数据速率的半速率时钟。 数据速率除以四,总线大小增加相同的比例。 通过 GPIO IP 内核的总吞吐量保持不变。
不同信号之间的实际时序关系可能会有所不同,具体取决于您为全速率和半速率时钟选择的特定设计、延迟和相位。

注意:GPIO IP 内核不支持双向管脚的动态校准。 需要动态校准双向管脚的应用,请参考相关资料。
相关信息
- 用于并行接口的 PHY Lite Intel FPGA IP Core 用户指南:Intel Stratix 10、Intel Arria 10 和 Intel Cyclone 10 GX 设备
为需要双向引脚动态 OCT 的应用程序提供更多信息。 - 第 7 页的输出和输出使能路径
输出和输出使能路径
输出延迟元件通过输出缓冲器将数据发送到焊盘。
每个输出路径包含两个tagDDIO 的 es,有半速率和全速率。
图 4. 简化 View 单端 GPIO 输出路径

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

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

输出路径和输出使能 (OE) 路径之间的区别在于 OE 路径不包含全速率 DDIO。 为了支持 OE 路径中的打包寄存器实现,一个简单的寄存器作为全速率 DDIO 运行。 出于同样的原因,只有一个半速率 DDIO 存在。
OE 路径以以下三种基本模式运行:
- 旁路——内核直接将数据发送到延迟元件,绕过所有 DDIO。
- Packed Register—绕过半速率 DDIO。
- 半速率 SDR 输出——半速率 DDIO 将数据从全速率转换为半速率。
注意:GPIO IP 内核不支持双向管脚的动态校准。 需要动态校准双向管脚的应用,请参考相关资料。
相关信息
- 用于并行接口的 PHY Lite Intel FPGA IP Core 用户指南:Intel Stratix 10、Intel Arria 10 和 Intel Cyclone 10 GX 设备
为需要双向引脚动态 OCT 的应用程序提供更多信息。 - 输入路径第 5 页
GPIO 英特尔 FPGA IP 接口信号
根据您指定的参数设置,不同的接口信号可用于 GPIO IP 核。
图 7. GPIO IP 内核接口

图 8. GPIO 接口信号

表 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 取决于寄存器模式:
|
| doout[DATA_SIZE-1:0] |
输出 |
数据以输入或双向方式输出到FPGA内核, DATA_SIZE 取决于寄存器模式:
|
| oe[OE_SIZE-1:0] |
输入 |
输出模式下来自 FPGA 内核的 OE 输入 使能输出使能端口 打开,或双向模式。 OE 高电平有效。 发送数据时,设置该信号为1。接收数据时,设置该信号为0。OE_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 数据信号的位顺序约定。

- 如果数据总线大小值为 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 |
时钟时间输入 | |
|
|
离开 |
离开 |
ck |
| 迪奥 |
On |
离开 |
时钟时间 | |
|
离开 |
On |
退出 | |
| 迪奥 |
On |
On |
时钟输出 | |
|
|
离开 |
离开 |
ck |
| 迪奥 |
On |
离开 |
CK_FR | |
|
离开 |
On |
|
|
| 迪奥 |
On |
On |
|
|
验证资源利用率和设计性能
您可以参考 Intel Quartus Prime 编译报告以获取有关您的设计的资源使用和性能的详细信息。
- 在菜单上,单击 处理 ➤ 开始编译 运行完整编译。
- 编译设计后,单击 处理 ➤ 编译报告.
- 使用 目录,导航至 Fitter ➤ 资源部分.
一种。 到 view 资源使用信息,选择 资源使用摘要.
湾到 view 资源利用信息,选择 实体的资源利用.
GPIO Intel FPGA IP参数设置
您可以在 Intel Quartus Prime 软件中设置 GPIO IP 内核的参数设置。 共有三组选项: 一般的, 缓冲, 和 寄存器.
表 9. GPIO IP 核参数——一般
|
范围 |
健康)状况 | 允许值 |
描述 |
| 数据方向 |
— |
|
指定 GPIO 的数据方向。 |
| 数据宽度 |
— |
1 至 128 年 | 指定数据宽度。 |
| 使用旧的顶级端口名称 |
— |
|
使用与 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 内核参数——缓冲区
|
范围 |
健康)状况 | 允许值 |
描述 |
| 使用差分缓冲器 |
— |
|
如果打开,则启用差分 I/O 缓冲器。 |
| 使用伪差分缓冲器 |
|
|
如果在输出模式下打开,则启用伪差分输出缓冲器。 如果您打开此选项,则双向模式会自动打开此选项 使用差分缓冲器. |
| 使用总线保持电路 |
|
|
如果打开,总线保持电路可以将 I/O 引脚上的信号微弱地保持在其最后驱动状态,其中输出缓冲器状态将为 1 或 0,但不是高阻抗。 |
| 使用开漏输出 |
|
|
如果打开,开漏输出使设备能够提供系统级控制信号,例如中断和写使能信号,这些信号可以由系统中的多个设备断言。 |
| 使能输出使能端口 | 数据方向 = 输出 |
|
如果打开,则允许用户输入到 OE 端口。 对于双向模式,此选项会自动打开。 |
| 启用串联终端/并行终端端口 |
— |
|
如果打开,则启用输出缓冲区的 seriesterminationcontrol 和 parallelterminationcontrol 端口。 |
表 11. GPIO IP 内核参数——寄存器
| 范围 | 健康)状况 | 允许值 | 描述 |
| 注册方式 |
— |
|
指定 GPIO IP 内核的寄存器模式:
|
| 启用同步清除/预设端口 |
|
|
指定如何实现同步复位端口。
|
| 启用异步清除/预设端口 |
|
|
指定如何实现异步复位端口。
ACLR 和 ASET 信号为高电平有效。 |
| 启用时钟使能端口 | 寄存器模式=DDIO |
|
|
| 半速率逻辑 | 寄存器模式=DDIO |
|
如果打开,则启用半速率 DDIO。 |
| 独立的输入/输出时钟 |
|
|
如果打开,则在双向模式下为输入和输出路径启用单独的时钟(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 配置的时序,英特尔建议您使用时序分析器。
计时组件
GPIO IP 内核时序组件由三个路径组成。
- I/O 接口路径——从 FPGA 到外部接收设备以及从外部发送设备到 FPGA。
- 数据和时钟的内核接口路径——从 I/O 到内核以及从内核到 I/O。
- 传输路径——从半速率到全速率 DDIO,以及从全速率到半速率 DDIO。
注意:Timing Analyzer 将 DDIO_IN 和 DDIO_OUT 块内的路径视为黑盒。
图 10. 输入路径时序组件

图 11. 输出路径时序组件

图 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. 单数据速率输入寄存器

表 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 输入寄存器

表 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. 单数据速率输出寄存器

表 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目录

注意:.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 内核,请执行以下步骤:
- 在 IP Parameter Editor 中打开 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF IP 内核。
- 在 当前选择的设备系列, 选择 英特尔 Arria 10 or 英特尔Cyclone 10 GX.
- 点击 结束 打开 GPIO IP 参数编辑器。
IP 参数编辑器配置类似于 ALTDDIO_IN、ALTDDIO_OUT、ALTDDIO_BIDIR 或 ALTIOBUF 内核设置的 GPIO IP 内核设置。 - 如果两者之间有任何不兼容的设置,请选择 新支持的设置.
- 点击 结束 重新生成 IP 内核。
- 用 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 |
在有关输入路径、输出和输出使能路径的主题中:
|
|
2018.08.28 |
18.0 |
18.0 |
|
| 日期 | 版本 | 更改 |
| 2017 年 XNUMX 月 | 2017.11.06 |
|
| 2017 年 XNUMX 月 | 2017.05.08 |
|
| 2016年XNUMX月XNUMX日 | 2016.10.31 |
|
| 2016 年 XNUMX 月 | 2016.08.05 |
|
| 2014 年 XNUMX 月 | 2014.08.18 |
|
| 2013 年 XNUMX 月 | 2013.11.29 | 初始版本。 |
GPIO 英特尔 FPGA IP 用户指南:英特尔 Arria 10 和英特尔 Cyclone 10 GX 设备
文件/资源
![]() |
英特尔 GPIO 英特尔 FPGA IP [pdf] 用户指南 GPIO 英特尔 FPGA IP, GPIO, 英特尔 FPGA IP, FPGA IP |




