7系列FPGA

Xilinx 7series FPGA SelectIO资源--ODDR

OLOGIC 资源

OLOGIC块在FPGA内的位置紧挨着IOB,其作用是FPGA通过IOB发送数据到器件外部的专用同步块。OLOGIC 资源的类型有OLOGIC2(位于HP I/O banks)和OLOGIC2(位于HR I/O banks)。在本文的下述论述中,除非特殊说明,OLOGIC2和OLOGIC3在功能和端口上都是相同的。

OLOGIC2和OLOGIC3不属于原语,正因为这样,所以它们不能被直接例化。它包含在布局布线后用户可例化的一些元素,例如一个输出触发器(OFD--output flip-flop)或者一个ODDR(output DDR element).

OLOGIC主要由两个block组成,一个用于配置输出路径。另外一个用于配置三态控制路径。这两个block具有共同的时钟,但是具有不同的使能信号OCE和TCE。两者具有由SRVAL属性精致的一部和同步set和reset(S/R信号)。

输出路径和三态枯井可以以下列模式之一独立配置:

  • 边沿触发的D触发器
  • DDR模式(ASAME_EDGE 或 OPPOSITE_EDGE)
  • 电平敏感锁存器
  • 异步电路/组合逻辑
  • 下图说明了OLOGIC block中的各种逻辑资源

    Xilinx FGPA的多重配置功能(1)

    作者:浅搁

    如今,随着FPGA工艺的进步,性能提升和成本缩减均得到极大的改善,这使得FPGA芯片的使用越来越广泛。因此为了达到降低系统维护和升级的成本,通常我们都会通过网络传送最新的下载文件,让用户在现场直接将文件下载到FPGA中进行远程的升级处理。然而,一旦下载文件是错的,那么系统轻则功能出错,重则直接死机不工作。为了防止这种情况发生给用户带来重大影响或者损失,Xilinx提供了FPGA的多重配置操作功能。

    1.何为多重配置

    FPGA多重配置允许动态进行多个下载文件之间的切换,当引导配置过程中检测到出错时,FPGA会触发一个回退标志确保一个已知的好的文件可以被加载进来。具体如下图所示:

    Xilinx FPGA复位浅析

    1. 普通逻辑的复位
    对于xilinx 7系列的FPGA而言,flip-flop支持高有效的异步复/置位和同步复位/置位。对普通逻辑设计,同步复位和异步复位没有区别,当然由于器件内部信号均为高有效,因此推荐使用高有效的控制信号,最好使用高有效的同步复位。输入复位信号的低有效在顶层放置反相器可以被吸收到IOB中。

    下面细说原因
    先比较一下同步复位和异步复位的区别:
    首先是同步复位,同步的控制信号包括同步置位/复位和使能,可以被吸收到LUT中,目的是为了防止控制集不同的LUT不能被综合到同一个slice中,这样虽然提高了了LUT的使用率,却降低了slice的使用率,得不偿失。

    控制信号扇出不大于16的情况都可以尽可能的被吸收到同一个slice的LUT中去,在vivado中可以使用control_set_opt_threshold进行设置。

    同步复位
    always @(posedge I_sys_clk)
    begin
    if(I_rst)
    begin
    OUT1 <= 0;
    end
    else
    begin
    OUT1 <= &{a1,a2,a3,a4,a5,a6};
    end
    end

    作者:圆宵,来源:FPGA那点事儿

    IODelay是Xilinx FPGA IO结构内,一个很有用处的单元,至少从Spartan6/Virtex5时代开始,就已经集成了这一技术,在很多高速接口互联时,我们都可能找到IODelay的用武之地。在最新的Ultrascale系列FPGA中,IODelay这一单元的具体用法,跟7Series中相比产生了一些变化。本文总结下,供读者参考。

    1. 7Series FPGA中IODelay的用法
    在7Series中,IODelay都需要配合IOdelayCtrl来使用。其延迟步进阶数总共为64个Taps,每个Tap精度是tREFCLK/64。REFCLK提供3种设置,分别是200Mhz,300Mhz,和400Mhz,所以相对应的延迟精度分别为:5ns/64=78ps,3.333ns/64=52ps,2.5ns/64=39ps。

    7 系列 — FRAME_ECCE2 端口描述与功能性

    7 系列 FPGA 帧 ECC 逻辑可检查配置帧数据的单位或双位错误。它可使用基于帧数据( BitGen 生成)计算的 13 位汉明码校验值。

    在读回过程中,帧 ECC 逻辑可计算使用所有帧位(包括 ECC 位)的综合值。如果位没有改变,还是最初设定的值,那 SYNDROME[12:0] 都是零。如果一个位发生改变,包括所有 ECC 位,那该位的位置则由 SYNDROME[11:0] 表明。如果两个位发生改变,则 SYNDROME[12] 为 0,其余位都为非零。如果改变的位数超过了两位,SYNDROME[12:0] 则为不确定。

    如果一个位或两个位发生改变,则可断言模块的错误输出。要使用帧 ECC 逻辑,FRAME_ECC _VIRTEX6 原语在用户设计中就必须实例化,而且必须通过 SelectMAP、JTAG 或 ICAP 接口执行读回。

    在每个读回帧的末端,可针对读回时钟(CCLK、TCK 或 ICAP_CLK)的一个周期断言 syndrome_valid 信号。读回一个帧所需的周期数不是固定的,随所用接口的不同而不同。修复已经发生改变的位需要一个用户设计。FRAME_ECCE2 逻辑不修复改变的位。设计必须能够存储至少一个帧的数据,要么就必须能够取回原始数据帧,以便重新加载。

    最简单的操作为:

    基于FPGA的高速串行数据收发接口设计

    作者:刘 安,禹卫东,马小兵,吕志鹏 2017年电子技术应用第6期

    摘 要: 针对传统ADC/DAC应用中采样数据并行传输存在线间串扰大、同步难等问题,设计了一种基于高速串行协议——JESD204B的数据收发接口。以Xilinx公司V7系列FPGA为核心控制单元设计电路,在单通道传输速率为6 Gb/s的条件下完成数据收发测试,验证了传输过程中数据的同步性、准确性及整体方案的可行性。设计结果表明,这种串行传输方式不仅解决了并行传输所带来的诸多问题,还降低了制板设计时PCB布线的复杂程度、减少了板层数量、节约了成本。

    0 引言

    数据转换器包括模数转换(Analog-to-Digital Converter,ADC)和数模转换(Digital-to-Analog Converter,DAC),是集成电路中的重要组成部分。在数字信号处理技术发展的过程中,普通的数据转换器已难以满足用户对数据传输速率和转换速率的需求,这促使了高速ADC/DAC及其相关技术的快速发展。

    基于能量攻击的FPGA克隆技术研究

    作者:许纪钧,严迎建 2017年电子技术应用第4期

    摘 要: 针对FPGA克隆技术展开研究,指出其关键问题在于对加密密钥的攻击,并以Xilinx公司7系列FPGA为列,讨论了采用AES-256 CBC模式解密条件下的攻击点函数选择方法,通过单比特功耗模型实施差分能量攻击,成功恢复了256 bit密钥。同时,针对不可直接代入密钥检验正确性的问题,设计了一种基于DPA攻击相关系数极性的检验方法,避免了密钥错误引起FPGA错误配置,实验表明,该方法能够有效消除相关系数的“假峰”现象。

    0 引言

    随着可编程技术的不断发展,FPGA已经成为各类商业系统的重要组成部分。然而,由于配置文件(比特流)必须存储在FPGA外部,通过窃取外部存储器后,攻击者可直接盗版生产,还可通过FPGA逆向工程(FPGA Reverse Engineering)获得硬件设计[1,2]或加入硬件木马[3,4],对产品进行伪造和破坏,严重地威胁了用户知识产权。

    Xilinx 7系列(KC705/VC709)FPGA的EDK仿真

    作者:俞则人

    一:前言

    好久没写博客了,前段时间有个朋友加微信请教关于PCIe的一些学习方法。本人也不是专家,只是略知一些皮毛。对于大家反馈的问题未必能一一解答,但一定知无不言。以后我会常来博客园看看,大家可以把问题直接在评论区提出来。这篇博客是应部分网友的要求写的,Xilinx升级到7系列后,原来的pcie ip核trn接口统统转换成了axis接口,这可愁坏了之前用xapp1052的朋友,一下子不好用了,该怎么办?对此我的想法是:如果您两年左右的verilog代码经验,建议您直接使用axis接口,如果您觉得使用不方便,大可在外面再包一层您自己觉得好用的接口。博主公司有这方面的技术积累,但涉及到商业利益,我不能在此出售源代码,如有私下合作,可谈。PCIe_to_RapidIO, PCIe_to_FC, PCIe_to_Enet等各类接口转换都没问题。如果您刚接触PCIe,想要更清楚得理解axis接口的PCIe IP核是如何工作的,那么这篇系统级的博客对您将会非常有用,同时博主也会给出一个用Block_design搭的带有DMA功能的简易EP,大家只要自己写个简单的控制逻辑就可以操作EP端的DMA,对于没有经验的工程师,是一个比较容易的技术迁移。

    DDR3参考设计

    Xilinx®7系列FPGA内存接口解决方案是组合了预置的控制器和物理层(PHY),以用于互连用户的7系列FPGA设计和基于AMBA® AXI4总线的DDR3 SDRAM设备。

    特性

  • 支持的内存组件位宽高达64位
  • 可选的AXI4 从接口
  • 支持 single & Dual rank SODIMM插槽
  • 1,2,4和8GB设备支持
  • 支持8 bank
  • 支持 DQ : DQS率8:1
  • 支持8-word burst操作
  • 支持ODT模式
  • 初次和定期ZQ校准(可配置)
  • JEDEC® - 兼容DDR3初始化支持
  • Verilog或VHDL源码交付(仅限于顶层文件)
  • 内存到FPGA逻辑接口时钟比支持4:1和2:1
  • 应用

    MIG核可用来链接用户设计和DDR3 SDRAM设备。设计的物理层(PHY)一侧的设计通过FPGA I/O块链接到DDR3 SDRAM设备,用户接口部分则通过FPGA逻辑链接到用户的设计。

    系统框图

    7Series FPGA高速收发器使用学习——RX接收端介绍

    上一篇博文介绍了GTX的发送端,这一篇将介绍GTX的RX接收端,GTX RX接收端的结构和TX发送端类似,数据流方向相反,不过和发送端也有一些区别,GTX的RX接收端结构图如图1所示:

    GTX的RX接收端结构图

    图1

    同步内容