1.  CvP简介

CvP(Configuration via Protocol)是一种通过协议实现FPGA配置的方案,Arria® V,Cyclone® V,Stratix® V,Arria® 10,Cyclone® 10 GX,Stratix® 10,Agilex™都支持这个功能,但支持的模式有所差异。目前所采用的协议是PCI Express® (PCIe)。

CvP配置文件被拆分成两个,一个是periphery image,一个是core image。

•Periphery image (*.periph.jic) 包含GPIOs,I/Oregisters,GCLK、QCLK、RCLK 时钟网络,PLLs,收发器,存储器PHY接口,以及硬核IP,例如PCIe硬核。这部分不能被更改和更新。Periphery image存储在FPGA配置芯片内,上电加载。

•Core image (*.core.rbf) 包含被configuration RAM (CRAM)配置的逻辑部分,包括LABs, DSP, 和embedded memory。FPGA设备上电后主机端再经由所用的协议(此处为PCIe)将core image下载并配置到FPGA内部。

2.   CvP系统结构

CvP系统由三部分组成:FPGA,PCIehost,FPGA的配置器件。如图1。

图1 CvP系统结构图

(1)配置器件与FPGA通过传统配置接口互联。对于V系列和Arria10器件来说,可支持任何配置方式,例如AS,PS或FPP。针对Stratix10,可采用Active Serial x4 (fast mode) 或Avalon Streaming (Avalon-ST) x8。对于Agilex系列器件,只可采用 Active Serial x4 (fast mode)。

(2)对于V系列、Arria10、Stratix10、Cyclone10GX,只有器件底部左侧的PCIe硬核才支持CvP功能,其他的PCIe硬核可作常规功能使用。而对于Agilex系列,左侧的PCIe硬核都支持CvP功能。在硬件设计阶段需要确认使用哪个PCIe做CvP,一旦确定,则只有这个PCIe硬核作为Endpoint可以使能CvP功能,其他PCIe硬核不能再作此用途,但可作为常规PCIe接口用。

(3)其他PCIe硬核能作为常规PCIe接口使用。

3.   CvP价值

• 由于只需要存储periphery logic,FPGA的配置器件可以选择小容量器件,降低成本。

• Coreimage存在主机端,提高核心逻辑的安全性。

• 对于支持CvP Update Mode的器件来说,可支持动态的核心逻辑更新,而不需要系统断电重启。

• 主机侧提供了简单的软件配置模型。

4.   CvP模式

CvP有两种模式:CvP Initialization mode和CvP Update mode。

4.1 CvP Initialization Mode初始化模式

FPGA在上电时加载配置芯片上的peripheral image,在100ms的枚举时间内成功配置其PCIe接口,使主机能正确枚举该PCIe设备。主机启动后再通过PCIe链路配置FPGA核心逻辑。

CvP Initialization Mode优势:

• 保证FPGA PCIe设备满足枚举时间。

• FPGA的配置器件可以选择小容量器件,降低成本。

• 保证主机侧核心逻辑的安全性。

4.2 CvP Update Mode更新模式

当FPGA进入用户模式,对除CvP PCIe核之外的其他逻辑通过CvP进行重新配置,此时CvP PCIe既可以做常规PCIe使用,又可以实现FPGA核心逻辑的更新。为使用该模式,需要参考Partition的流程对工程进行分模块Partition和Logic Lock设计,以重复利用设备外设,保证peripheral image不变。

当有以下几种需要时,可以考虑使用该模式:

• 需要对核心逻辑进行更新。

• 根据功能发布情况对设备进行更新。

4.3 不同器件系列支持的模式

前面说到ArriaV,CycloneV,StratixV,Arria10,Cyclone10GX,Stratix10,Agilex都支持CvP,但不同系列器件支持的模式有所差异,具体如表1,其中Agilex只支持InitializationMode,如表2。

表1 不同器件系列支持的模式

器件系列

支持的CvP模式

PCIe  Gen1

PCIe  Gen2

PCIe  Gen3

Stratix  10

CvP  Initialization

CvP Update

CvP  Initialization

CvP Update

CvP  Initialization

CvP Update

Arria  10

CvP  Initialization

CvP  Initialization

CvP  Initialization

Cyclone  10

CvP  Initialization

CvP  Initialization

No Support

Stratix  V

CvP  Initialization

CvP  Update

CvP  Initialization

CvP  Update

No  Support

Arria  V GZ

CvP  Initialization

CvP Update

CvP  Initialization

CvP Update

No Support

Arria  V

CvP  Initialization

CvP  Update

CvP  Initialization

No  Support

Cyclone  V

CvP  Initialization

CvP Update

CvP  Initialization

No Support

表2 Agilex系列支持的模式

器件系列

支持的CvP模式

PCIe  Gen3 x16

PCIe  Gen4 x16

(P-  tile)

PCIe  Gen4 x8

PCIe  Gen3 x8

Agilex

CvP  Initialization

5.   CvP Initialization mode实现流程和注意事项

使用Stratix V开发板实现CvP Initialization mode的流程及注意事项。

板卡:Stratix-VGX Dev Kit (PCIe board),PCIe Gen1x8。

主机:64位Windows7操作系统。

Quartus版本:QuartusII 64-Bit Version 14.1.0 Build 186

5.1 实现流程

1. 构建含PCIe IP的工程,此处采用S5PCIe的Example design。

2. 打开工程内PCIe IP的GUI,勾选“Enable configuration via the PCIe link”。

3. 在Assignments => Device => Device andPin Options => Configuration中选择FPGA的配置模式为Active Serial x4(并设置MSEL)。

在Assignments => Device => Device and Pin Options => CvPSettings选择configuration via protocol为Core initialization。

4. 根据开发板分配管脚并编译工程,生成cvp_example.sof。

5. 将生成的cvp_example.sof进行拆分,打开File => Convert Programming Files,设置Programmingfile type为JTAG Indirect Configuration File (.jic)。添加cvp_example.sof,勾选Create Memory Map File和Create CvP files。点击Generate之后,cvp_example.sof就被拆分成两部分,cvp_example.periph.jic和cvp_example.core.rbf。

6. 关闭主机,将PCIE板卡连上JTAG,插在主机PCIe插槽里,主机再上电启动。此时PCIE板卡由PCIE插槽供电。打开Quartus II Programmer,点击Auto Detect扫描JTAG链,选择FPGA点击ChangeFile,选择之前生成的cvp_example.periph.jic文件,并烧写进EPCQ256。

7. 重新启动主机,枚举PCIe设备。此时已经加载了cvp_example.periph.jic的PCIE板卡将作为PCIE设备被系统识别。根据PCIe IP的设置,在主机侧查看DeviceID为E001,Vendor ID为1172的PCIe设备。

此时可以下载一个免费软件“RW – Read & Write Utility”。找到Device ID为E001,Vendor ID为1172的PCIe设备。

8. 在主机上使用quartus_cvp对识别到的PCIe板卡(Device ID为E001,VendorID为1172)加载核心逻辑部分cvp_example.core.rbf。打开Windows CMD,更改路径到cvp_example.core.rbf所在的位置。

输入如下命令并回车:

• quartus_cvp--vid=1172 --did=e001 cvp_example.core.rbf

如果成功执行该命令,会出现如下界面,表示核心逻辑已被成功加载进FPGA,此时FPGA进入usermode,可以正确工作。

5.2 注意事项

运行quartus_cvp时需要安装Jungo WinDriver。

更多关于 Intel FPGA 产品和方案信息敬请联系骏龙科技,或直接微信留言。

pcie协议_如何通过PCIE协议实现FPGA 配置?详情请戳这里!相关推荐

  1. 数据链路层协议_数据链路层 基本数据链路协议

    目录 数据帧的传输协议 认识了数据链路层,解决数据帧的组帧方式和差错控制后,现在我们来看看数据帧是如何来传输的,即学习数据帧的传输协议. 数据帧的传输协议主要用来解决数据帧收发双方如何协同进行数据帧的 ...

  2. 上下位机通讯协议_嵌入式中自定义协议的一些典型例子

    关于自定义协议,对于会的人很简单,对于不会的人就摸不着头脑.下面分享一些关于自定义协议的笔记. 什么是协议? 协议这个概念我觉得挺杂的.就像嵌入式的概念一样,说法不一,比如大家常常争论FPGA是不是嵌 ...

  3. tcp ip协议_网络通信-TCP/IP协议族简述

    导读:计算机与网络设备要相互通信需要遵守同样的规则.例如,如何找到通信目标.该使用哪种语言通信.怎么结束通信等规则.不同的硬件.操作系统之间的通信都需要遵循同一种规则,这种规则也称为是协议.下面本文主 ...

  4. dhcp是哪一层的协议_常用的网络协议有哪些,分别是什么含义

    ARP(Address Resolution Protocol)地址解析协议 它是用于映射计算机的物理地址和临时指定的网络地址.启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使 ...

  5. java modbus通讯协议_物联通讯协议一(Modbus)

    1.Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领域通 ...

  6. rtsp协议_如何在RTSP协议视频智能平台EasyNVR未登录的情况下调用通道直播的接口?...

    原标题:如何在RTSP协议视频智能平台EasyNVR未登录的情况下调用通道直播的接口? TSINGSEE青犀视频云边端架构全线都提供了丰富的API接口,用户可以自由调用进行二次开发.在本文之前,我们博 ...

  7. vrrp协议_虚拟路由冗余协议VRRP原理介绍

    一.概述: 1.1. 产生背景 随着Internet的发展,人们对网络可靠性的要求越来越高.特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的.一般来说,主机通过设置默认网关来与外部网 ...

  8. wifi协议_图解 802.11wifi协议

    微信公众号:卢同学 关注可了解更多.若有问题或建议,请与本人联系或者公众号留言;如果你觉得此文对你有帮助,欢迎赞赏 目录 凡事若能综观形势,通常有助于细节的进一步探究 从OSI七层模型来看,802规范 ...

  9. 热水bot协议_如何设计Bot协议

    热水bot协议 by Alex Bunardzic 由Alex Bunardzic 如何设计Bot协议 (How to Design a Bot Protocol) One of the bigges ...

  10. ptp精准时间协议_网络时钟同步协议– NTP, PTP – 默默的点滴

    这篇文章介绍一下两个时钟同步的网络协议:NTP和PTP. 这里不涉及协议的原理和具体实现(想了解的可自行Google),重点是如何搭建起这两个服务. 1. NTP及PTP简介 NTP(Network ...

最新文章

  1. qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
  2. 麻省理工和 IBM 合作创立 Watson AI 实验室,谨慎推进 AI 研究
  3. 黑马vue---1-7、vue杂记
  4. MFC添加背景图片方法
  5. 2017.9.22 松鼠的聚会 失败总结
  6. 一款可以精准爬取网站的网络数据采集系统
  7. 翻译PDG官方教程:一个最简单的特效PDG流程(步骤详细)
  8. win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
  9. (转帖)SpringBoot自定义Starter
  10. (已解决)vue数组添加数据后页面无法实时渲染
  11. 成功解决 zsh: command not found
  12. 黑盒测试,白盒测试与灰盒测试的比较和区别
  13. Android FrameWork 系统源码调试
  14. java 刻度尺,jQuery实现腾讯信用界面(自制刻度尺)样式
  15. 基于HTML+CSS+JavaScript仿淘宝购物商城设计毕业论文源码
  16. SQL Server 2019 (15.x) 新特性概要
  17. 【FBS外汇公司】通胀数据降低,美联储量化宽松预期升温
  18. 如何提高软件开发质量
  19. 独家|知识图谱技术在司法领域的应用:国双科技探索与技术分享
  20. 中国女排获得里约奥运会冠军

热门文章

  1. 捷安四方聚合支付系统功能和优势的简介介绍?
  2. 一种基于复制粘贴的cam350邮票孔拼版教程(三) 导出钻孔文件
  3. 能源管理系统在企业中的应用及系统介绍
  4. SVN教程代码比较(图文教程)
  5. 电影票预售系统1.0
  6. Tomcat下载安装以及配置(详细教程)
  7. 解决方案:微信小程序下载文档出错downloadFile:fail url not in domain list
  8. CMOS工作原理和概念
  9. 萤石云官方Demo下载并二次开发 QT5.12.10
  10. 物理学步入禅境,缘起性空