FPGA - 7系列 FPGA内部结构之SelectIO -05- 逻辑资源之OLOGIC

简介: FPGA - 7系列 FPGA内部结构之SelectIO -05- 逻辑资源之OLOGIC

前言


本文节选UG471的第二章,进行整理翻译,用于介绍SelectIO资源内部的OLOGIC资源。

OLOGIC 资源简介


OLOGIC 块位于 I/O 块 (IOB) 旁边。 OLOGIC 是一个专用的同步块,通过 IOB 从 FPGA 发送数据。 OLOGIC 资源的类型是 OLOGICE2(HP I/O bank)和 OLOGICE3(HR I/O bank)。 除非明确说明,否则 OLOGICE2 和 OLOGICE3 在功能上是相同的,它们的端口也是如此。

OLOGICE2 和 OLOGICE3 不是原语,因为它们不能被实例化。 它们在布局和布线之后包含用户实例化的元素,例如输出触发器 (OFD) 或输出 DDR 元素 (ODDR)。

OLOGIC 由两个主要模块组成,一个用于配置输出数据路径,另一个用于配置三态控制路径。 这两个模块有一个共同的时钟 (CLK) 但不同的使能信号,OCE 和 TCE。 两者都具有由独立 SRVAL 属性控制的异步和同步设置和复位(S/R 信号)。

输出和三态路径可以独立配置为以下模式之一。

  • 边沿触发 D 型触发器
  • DDR 模式(SAME_EDGE 或 OPPOSITE_EDGE)
  • 电平敏感锁存器
  • 异步/组合

下图 2-17 说明了 OLOGIC 块中的各种逻辑资源

image.png

下面讨论使用 OLOGIC 资源可用的各种功能。

组合输出数据和三态控制路径


组合输出路径创建从 FPGA 逻辑到输出驱动器或输出驱动器控制的直接连接。 在以下情况下,软件会自动使用这些路径:

  1. FPGA 逻辑中的逻辑资源与输出数据或三态控制之间存在直接(未注册)连接。
  2. pack I/O register/latch into IOBs软件映射指令设置为OFF。

输出 DDR 概述 (ODDR)


7 系列器件在 OLOGIC 中有专用寄存器来实现输出 DDR 寄存器。 实例化 ODDR 原语时可访问此功能。 使用 OLOGIC 时,DDR 多路复用是自动的。 不需要手动控制多路选择。 这个控制是从时钟产生的。

ODDR 原语只有一个时钟输入。 下降沿数据由输入时钟的本地反相版本提供时钟。 输入 I/O 块的所有时钟都是完全多路复用的,即 ILOGIC 或 OLOGIC 块之间没有时钟共享。

ODDR 原语支持以下操作模式:

  • OPPOSITE_EDGE 模式。
  • SAME_EDGE 模式。

SAME_EDGE 模式允许设计人员在 ODDR 时钟的上升沿将两个数据输入呈现给 ODDR 原语,从而节省 CLB 和时钟资源,并提高性能。 此模式使用 DDR_CLK_EDGE 属性实现。 它也支持三态控制。 以下部分详细介绍了每种模式。

OPPOSITE_EDGE 模式


在 OPPOSITE_EDGE 模式下,时钟 (CLK) 的两个边沿都用于以两倍的吞吐量从 FPGA 逻辑捕获数据。 两个输出都提供给 IOB 的数据输入或三态控制输入。 使用 OPPOSITE_EDGE 模式的输出 DDR 时序图如下图所示。

image.png

SAME_EDGE 模式


在 SAME_EDGE 模式下,数据可以在同一个时钟边沿提供给 IOB。在同一时钟沿向 IOB 提供数据可避免设置时间违规,并允许用户以最小的寄存器到寄存器延迟执行更高的 DDR 频率,而不是使用 CLB 寄存器。 下图显示了使用 SAME_EDGE 模式的输出 DDR 的时序图。

image.png

时钟转发输出


DDR 可以将时钟的副本转发到输出。 这对于传播具有相同延迟的时钟和 DDR 数据以及多时钟生成非常有用,其中每个时钟负载都有一个独特的时钟驱动器。 这是通过将 ODDR 原语的 D1 输入连接为高电平和 D2 输入为低电平来实现的。 Xilinx 建议使用此方案将时钟从 FPGA 逻辑转发到输出引脚。

输出 DDR 原语 (ODDR)


下图显示了 ODDR 原语框图。 不支持同时设置和重置。

image.png

下表 列出了ODDR 端口信号。

image.png

下表描述了 ODDR 原语的各种可用属性和默认值。

image.png

OLOGIC 时序模型


本节讨论与 OLOGIC 模块相关的所有时序模型。 下表描述了 7 系列 FPGA 数据手册中 OLOGIC 开关特性的功能和控制信号。

Setup/Hold

image.png

Clock to Out

image.png

时序特性


OLOGIC 输出寄存器时序

下图说明了 OLOGIC 输出寄存器时序。时序类似OLOGIC输入寄存器时序。

image.png

时钟事件 1

在时钟事件1 之前的时间TOOCECK 处,输出时钟使能信号在输出寄存器的OCE 输入处变为有效高电平,从而为输入数据启用输出寄存器。

在时钟事件 1 之前的时间 TODCK 处,输出信号在输出寄存器的 D1 输入处变为有效高电平,并在时钟事件 1 之后的时间 TOCKQ 处反映在 OQ 输出上。

时钟事件 4

在时钟事件 4 之前的时间 TOSRCK,S/R 信号(在这种情况下配置为同步复位)变为有效高电平,复位输出寄存器并在时钟事件 4 之后的时间 T RQ 反映在 OQ 输出。

OLOGIC ODDR 寄存器时序


下图说明了 OLOGIC ODDR 寄存器时序,此时OLOGIC 工作在OPPOSITE_EDGE 模式。

image.png

时钟事件 1

在时钟事件1 之前的TOOCECK 时间,ODDR 时钟使能信号在ODDR 的OCE 输入处变为高电平有效,从而为传入数据启用ODDR。 必须注意在 CLK 的上升沿和下降沿之间切换 ODDR 寄存器的 OCE 信号,并满足相对于两个时钟沿的寄存器建立时间。

在时钟事件 1 之前的时间 TODCK(CLK 的上升沿),数据信号 D1 在 ODDR 寄存器的 D1 输入变为有效高电平,并在时钟事件 1 之后的时间 T OCKQ 反映在 OQ 输出上。

时钟事件 2

在时钟事件 2 之前的时间 TODCK(CLK 的下降沿),数据信号 D2 在 ODDR 寄存器的 D2 输入变为有效高电平,并在时钟事件 2 之后的时间 T OCKQ 反映在 OQ 输出上(无 在这种情况下改变 OQ 输出)。

时钟事件 9

在时钟事件 9 之前的时间 TOSRCK(CLK 的上升沿),S/R 信号(在这种情况下配置为同步复位)变为有效高电平复位 ODDR 寄存器,在时钟事件之后的时间 TRQ 处反映在 OQ 输出 9(在这种情况下 OQ 输出没有变化)和复位 ODDR 寄存器,反映在时钟事件 10 之后的时间 TRQ 处的 OQ 输出(在这种情况下 OQ 输出没有变化)。

OLOGIC 三态寄存器时序


下图说明了 OLOGIC 三态寄存器时序。

image.png

时钟事件 1

在时钟事件1 之前的时间TOTCECK,三态时钟使能信号在三态寄存器的TCE 输入处变为有效高电平,从而使三态寄存器能够接收输入数据。

在时钟事件 1 之前的时间 TOTCK,三态信号在三态寄存器的 T 输入变为有效高电平,在时钟事件 1 之后的时间 TOCKQ 使焊盘返回高阻抗。

时钟事件 2

在时钟事件 2 之前的时间 TOSRCK,S/R 信号(在这种情况下配置为同步复位)变为有效高电平,在时钟事件 2 之后的时间 TRQ 复位三态寄存器。

IOB DDR 三态寄存器时序


此时图说明了 IOB DDR 三态寄存器时序。 此示例显示在对边模式下使用 DDR。 对于其他模式,添加适当的延迟。

image.png

时钟事件 1

在时钟事件1 之前的时间TOTCECK,三态时钟使能信号在三态ODDR 寄存器的TCE 输入处变为有效高电平,从而使它们能够用于输入数据。 必须注意在 CLK 的上升沿和下降沿之间切换三态 ODDR 的 TCE 信号,并满足相对于两个时钟沿的寄存器建立时间。

在时钟事件 1 之前的时间 TOTCK(CLK 的上升沿),三态信号 T1 在三态寄存器的 T1 输入处变为有效高电平,并在时钟事件 1 之后的时间 T OCKQ 反映在 TQ 输出上。

时钟事件 2

在时钟事件 2 之前的时间 TOTCK(CLK 的下降沿),三态信号 T2 在三态寄存器的 T2 输入处变为有效高电平,并在时钟之后的时间 T OCKQ 反映在 TQ 输出上 事件 2(在这种情况下 TQ 输出没有变化)。

时钟事件 9

在时钟事件 9 之前的时间 TOSRCK(CLK 的上升沿),S/R 信号(在这种情况下配置为同步复位)变为有效高电平复位三态寄存器,在时间 TRQ 处反映在 TQ 输出 在时钟事件 9 之后(在这种情况下 TQ 输出没有变化)并复位三态寄存器,在时钟事件 10 之后的时间 TRQ 处反映在 TQ 输出上(在这种情况下 TQ 输出没有变化)。

reference


  1. UG471
目录
相关文章
|
2月前
|
移动开发 开发框架 .NET
【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
54 0
|
7月前
|
异构计算
fpga内嵌逻辑分析仪使用方法 1
fpga内嵌逻辑分析仪使用方法
47 0
|
5月前
|
异构计算
【FPGA】基本实验步骤演示 | Verilog编码 | 运行合成 | 设备/引脚分配 | 综合/实施 | 设备配置 | 以最简单的逻辑非为例
【FPGA】基本实验步骤演示 | Verilog编码 | 运行合成 | 设备/引脚分配 | 综合/实施 | 设备配置 | 以最简单的逻辑非为例
49 0
|
7月前
|
异构计算
fpga内嵌逻辑分析仪使用方法 2
fpga内嵌逻辑分析仪使用方法
64 0
|
异构计算
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
155 0
FPGA新起点V1开发板(一)——资源介绍(顺便说下无人机的进度状况)
|
算法 测试技术 异构计算
FPGA:逻辑功能的仿真与验证
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
97 0
FPGA:逻辑功能的仿真与验证
|
存储 异构计算
FPGA - 7系列 FPGA内部结构之CLB -01- CLB资源概述
本文节选UG474进行整理翻译,用于对CLB进行简单介绍,同时简单介绍了下针对逻辑资源设计的推荐流程。
298 0
FPGA - 7系列 FPGA内部结构之CLB -01- CLB资源概述
|
存储 Java 异构计算
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(二)
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述
539 0
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(二)
|
存储 数据可视化 芯片
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(一)
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述
389 0
FPGA - 7系列 FPGA内部结构之Clocking -01- 时钟架构概述(一)
|
存储 异构计算
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO
239 0
FPGA - 7系列 FPGA内部结构之SelectIO -09- 高级逻辑资源之IO_FIFO

热门文章

最新文章