0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于FPGA原型验证系统的常见接口介绍

芯华章科技 来源:芯华章科技 作者:杨一峰 2022-09-19 09:27 次阅读

文章首发于《中国集成电路》,由国家工业信息化部主管,中国半导体行业协会主办的官方专业期刊。感谢《中国集成电路》对芯华章的认可! FPGA(Field Programmable Gate Array)原型验证,基于其成本适中、速率接近真实系统环境等优点,受到了验证工程师的青睐。正是由于广泛丰富的应用场景,FPGA 原型系统上往往需要设计各种不同的接口,用以和外界进行数据信号的交换互通,满足不同的使用需求。不同的接口设置与选择,也会极大影响原型验证系统产品的应用范围以及验证效率。因此,如何合理规划接口设置,就成为了一款优秀的原型验证系统必须要考虑的重要问题。 首先和大家介绍下目前常见的接口类型。

子卡扩展接口

考虑到使用场景通用性,一套原型平台不可能覆盖到所有协议接口,因此会布局一些用于扩展特定功能子卡的连接器,支持各类协议。这类接口少则几个,多达几十个。

多FPGA互联接口

在较大的逻辑设计中,用于多片FPGA 切割处的互联IO之间的连接,一般通过互联电路板或特制线缆这两种形式进行互联。此类接口和上一点谈到的子卡扩展接口往往能够兼容使用。

高速接口GTH/GTY

用来和外部高速数据传输的链路设备或测试仪器相连;接口形式包括如PCI Express、QSFP+、MiniSAS等等。

时钟输入/输出接口

原型系统自身产生时钟输出到外部的设备或其他原型系统的通道;反之,也可以接收外部输入的时钟源。在多个系统互联时,起到时钟同步的作用。

低速接口

FPGA原型系统通过其连接调试上位机、不同协议的仿真器及逻辑分析仪、低速外设元件等,包括JTAG、UARTI2C、SPI、GPIO、PMOD等。

关于“扩展子卡和用于多片FPGA IO互联的接口”

此类应用场景最为普遍,我们先列出几种业界较为主流的用于该类功能的连接器:

1

PHC连接器

PHC连接器的全称为Prototyping High-performance Connector. 从信号的组成来看,其种类较为丰富,包含了电源信号(含管理信号)、接地信号、I2C信号(地址/时钟/数据)、全局时钟信号、数据信号及保留信号。

以芯华章科技(X-EPIC)出品的桦捷HuaPro-P1 高性能FPGA原型验证系统为例,上面搭载了48个PHC连接器;每个PHC连接器的可用IO为50个。经过实测,HuaPro-P1 PHC 连接器IO的单端数据速率最高可达到1.4Gbps,处于业界领先水平。

PHC连接器的好处是颗粒度小,使用方便灵活,对于宝贵及有限的FPGA IO资源,能够做到高利用率而不造成浪费。

2

FMC连接器

FMC的英文全称为FPGA Mezzanine Card。而这里谈到的FMC连接器(FMC Connector)是其中的组成部分,遵循 VITA 57.1 标准;

按物理Pin的数量来区分,包括400 Pin的FMC HPC(high pin connector)及160 Pin的FMC LPC(low pin connector)两种。

53abb55c-37b9-11ed-ba43-dac502259ad0.png

图1:母板上适用的FMC母头插座

53c9207e-37b9-11ed-ba43-dac502259ad0.png

图2: 子卡上适用的FMC公头插座

总体上看,FMC接口从标准上就是为“扣板”形式而定义的,对线缆连接的支持不太理想,成本高而且容易损坏。

3

Prodigy连接器

Prodigy为部分厂商的FPGA系统所采用的连接器,总体看,其信号组成及电气特性同FMC连接器相仿,区别在于体积略小和总的信号数量相应减少。

综合考虑上述三种连接器的特性,目前看,以PHC连接器的“小型、灵活”的特点,更加适合于子卡的扩展及FPGA系统之间进行互联布局。

53fff6e4-37b9-11ed-ba43-dac502259ad0.png

其主要的原因是:

连接器比较小巧,则在进行线缆或子卡插拔的时候,更容易操作;

其次,连接线缆不会很粗,布局起来更方便走线;

PHC连接器的颗粒度小,那么在子卡的使用率上,IO使用率最高;不会因为一个大连接器占用很多IO,但实际只用到其中一部分,从而造成系统性浪费的风险;

根据实际情况,可以定制PHC转其他连接器的转接卡(比如FMC或用户自定义接口),这样对于用户已有的子卡,可以继续兼容使用而不造成浪费;

最后,互联线缆的成本都不低,从几十、几百乃至几千美金一根;而包含IO数较少的电缆,在成本方面有优势,一旦出现有损坏、老化的情况,以单根电缆为单位更换的成本最低。

548adaa2-37b9-11ed-ba43-dac502259ad0.png

高速接口GTH/GTY

新技术发展下的FPGA芯片,都已基本带有高速Serdes通道。Serdes,是英文Serializer(串行器)/Deserializer(解串器)的简称。它采用的是点对点(Point to Point)的串行通信技术,充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而降低通信成本。这些通道往往也以不同的接口方式连接到FPGA原型系统的接口上。其中包括了PCIE/SATA/Ethernet/QSFP+/MiniSAS和MCIO等。通过对应的不同接口cable,能够和外部的高速设备或是仪器进行连接。

1

PCIe(Peripheral Component Intercon-

nect express)是一种高速串行计算机扩展总线标准,独占通道带宽;传输高速可靠。目前市售的,较为高端的FPGA芯片都原生支持PCIe传输协议。HuaPro-P1系统自带 PCIe 3.0的接口可以实现双向 128Gbps的高速数据传输。

2

QSFP+ 是一种能够支持热插拔的光模块,结构紧凑,因其包含四条高速通道,故传输速率可达40Gbps。QSFP+ 在High Performance Network,Data Center等场景应用广泛。从协议上看,QSFP+支持的是SFF-8436协议和QSFP 多源协议。

由于光模块优越的物理特性,它能够把电信号转换为光信号,通过光纤达到远距离传输的效果,然后在对端再转回电信号;并且这样也不会影响信号的质量。

3

另一种较为常见的高速传输的接口为Mini SAS。Mini SAS连接器符合SFF-8643标准,是一款36针的高密度SAS连接器,符合最新的SAS 3.0规范,并支持12Gb/s数据传输协议。支持最多4通道的高速数据传输。一种典型的应用是Host PC通过Mini SAS的cable连接到FPGA原型系统,这样可以实现主机和FPGA之间高速通信,达到软硬件协同验证的目的。

时下热门的Chiplet技术和高速接口也有着很大的联系,因为裸片之间的超短距离和链路上(裸片间互联)数据传输速率将超过100Gbps。这在普通接口上的实现是个几乎不可能完成的任务;而拥有高速传输通道的FPGA平台为Chiplet互连的验证提供了很大的可能性。

值得一提的是,芯华章科技(X-EPIC)出品的桦捷HuaPro-P1 高性能FPGA原型验证系统,规划时候充分考虑了用户的潜在高速应用需求,因此,在系统的主体已经集成了上述三种高速接口;而市面上其他的原型系统,很少有做到同时集成,一般需要外接子卡才能使用;这样在进行如服务器机架部署的时候,在空间上产生一定的阻碍及局限性。

时钟输入/输出接口

现代的芯片设计规模日益增大,通常有用到多个FPGA系统级联使用的情况,除了前述数据通道的传输,还有一个必要的部分就是进行时钟的传输。这对于同步数字系统尤为重要。

1

一种方式是采用独立走线的同轴射频连接器;常见的如SMA,SMB,MMCX等接口;当多路时钟传输时,因为线束以‘对’的方式单独走线,故会显得比较杂乱。

2

另外一种更优化的传输方式是采用如下的连接器:Samtec出品的 Q Strip High-Speed Ground Plane Socket Strip;它可以同时传输多路时钟、复位信号;且只需要一根扁平形状的电缆接口。在整个布局上较为简便、美观。芯华章HuaPro-P1系统采用这种连接器,并支持最大16台P1系统的级联。

低速接口

最后我们来看一下FPGA系统上常用的低速接口:

1

JTAG(Joint Test Action Group,联合测试工作组)接口

主流分为若干种不同IO数,用以FPGA 厂商的JTAG调试器、ARM 调试仿真器等连接使用。JTAG调试接口必须使用VCC、GND电源信号,以及TMS、TCK、TDI、TDO四根调试信号,分别对应为模式选择、时钟、数据输入和数据输出线。随着可用针数增大,另外可选TRST、RESET复位信号和RTCK(同步时钟)信号。

5653bffc-37b9-11ed-ba43-dac502259ad0.png

2

UART接口

通用异步收发器 (Universal Asynchronous Receiver/Transmitter),以一种串行形式的,全双工异步通信协议。其通信格式分为起始位、数据位、奇偶校验位、停止位和空闲位等。通过UART接口,FPGA系统和Host上位机相连,可以发送硬件测试中的调试log信息到主机中;相反,主机也可以通过UART口下发一些测试命令及少量的测试数据到FPGA中去。

3

I2C 接口

最早由飞利浦公司开发的双向的二进制双线同步串行总线,它属于一种半双工模式;只需SDA(串行数据线)和SCL(串行时钟线)即可连接位于总线上的器件。它的好处是电路接口简单,总线长度达25英尺和支持组件多达40个。在通常的FPGA开发中,I2C往往被用来连接EEPROMLED显示屏、传感器等元件。

4

SPI(Serial Peripheral Interface,串行外围设备接口)通讯协议

一种同步的串行接口,需用四根管脚用来控制及数据传输,广泛用于EEPROM、Flash、ADC数模转换器)及数字信号解码器上,是比较常用及较为重要的通讯协议之一。

针对用户对于低速接口的需求,HuaPro-P1系统配套的GPIO子卡,单卡上集成了例如多种JTAG、UART、CAN、DB9等接口,同时也支持如1.8V/2.5V/3.3V/5V多种电压的GPIO,用户只需通过一些简单的跳线设置就可以兼容支持。

56ff8684-37b9-11ed-ba43-dac502259ad0.png

小结

以上就是关于FPGA原型验证系统的常见接口介绍。各种接口,不论尺寸大小、速度快慢都有其独到的作用。基于这些五花八门的接口,对用户来说若要人工手动去做原型项目分割、IO复用和时钟处理等工作,是非常麻烦的;因此还是需要原型系统的配套软件工具具有从ASIC设计到FPGA设计的转换、FPGA综合、自动分割、自动化后处理等上述这些技术要点的能力。

用户在选择原型产品的时候,需从长远使用状况,综合考虑选用扩展能力强、支持外部协议丰富、子卡/线缆配件成本相对较低,互联形式灵活、方便,及配套软件自动化集成度高的产品。芯华章的HuaPro系列FPGA原型系统产品,给用户提供了软硬件全套的FPGA原型实现工具和平台,能够帮助客户最快完成系统集成验证和软件提前开发的工作。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21302

    浏览量

    593109
  • 连接器
    +关注

    关注

    96

    文章

    12597

    浏览量

    133091
  • FMC
    FMC
    +关注

    关注

    0

    文章

    74

    浏览量

    19541

原文标题:如何在N多选择中,为FPGA原型验证系统规划实用高效的接口?

文章出处:【微信号:X-EPIC,微信公众号:芯华章科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 286次阅读

    fpga原型验证流程

    FPGA原型验证流程是确保FPGA(现场可编程门阵列)设计正确性和功能性的关键步骤。它涵盖了从设计实现到功能验证的整个过程,是
    的头像 发表于 03-15 15:05 353次阅读

    原型平台是做什么的?proFPGA验证环境介绍

    proFPGA是mentor的FPGA原型验证平台,当然mentor被西门子收购之后,现在叫西门子EDA。
    的头像 发表于 01-22 09:21 641次阅读
    <b class='flag-5'>原型</b>平台是做什么的?pro<b class='flag-5'>FPGA</b><b class='flag-5'>验证</b>环境<b class='flag-5'>介绍</b>

    什么是FPGA原型验证FPGA原型设计的好处是什么?

    FPGA原型设计是一种成熟的技术,用于通过将RTL移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(ASIC),专用标准产品(ASSP)和片上
    发表于 01-12 16:13 377次阅读

    基于FPGA原型设计的SoC开发

    所有形式的原型都为验证硬件设计和验证软件提供了强大的方法,模型或多或少地模仿了目标环境。基于FPGA原型设计在项目的关键后期阶段尤其有益。
    发表于 10-11 12:39 313次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b>设计的SoC开发

    为什么SoC验证一定需要FPGA原型验证呢?

    在现代SoC芯片验证过程中,不可避免的都会使用FPGA原型验证,或许原型验证一词对你而言非常新鲜
    发表于 05-30 15:04 982次阅读
    为什么SoC<b class='flag-5'>验证</b>一定需要<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b>呢?

    从SoC仿真验证FPGA原型验证的时机

    我们当然希望在项目中尽快准备好基于FPGA原型验证的代码,以便最大限度地为软件团队和RTL验证人员带来更客观的收益。
    发表于 05-30 11:10 804次阅读
    从SoC仿真<b class='flag-5'>验证</b>到<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b>的时机

    多片FPGA原型验证系统互连拓扑分析

    多片FPGA原型验证系统的性能和容量通常受到FPGA间连接的限制。FPGA中有大量的资源,但I
    发表于 05-23 17:12 1237次阅读
    多片<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b><b class='flag-5'>系统</b>互连拓扑分析

    SoC设计的IO PAD怎么移植到FPGA原型验证

    FPGA原型验证系统要尽可能多的复用SoC相关的模块,这样才是复刻SoC原型的意义所在。
    发表于 05-23 16:50 414次阅读
    SoC设计的IO PAD怎么移植到<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b>

    正确认识原型验证多片FPGA自动分割工具

    当SoC的规模在一片FPGA中装不下的时候,我们通常选择多片FPGA原型验证的平台来承载整个SoC系统
    发表于 05-23 15:31 344次阅读

    FPGA原型验证中分割引擎的重要性解析

    FPGA原型验证的原理是将芯片RTL代码综合到FPGA上来验证芯片的功能。对于目前主流行业应用而言,芯片规模通常达到上亿门甚至数十亿门,一颗
    发表于 05-18 12:52 414次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b>中分割引擎的重要性解析

    什么是FPGA原型验证?如何用FPGA对ASIC进行原型验证

    FPGA原型在数字芯片设计中非常重要,因为相比用仿真器,或者加速器等来跑仿真,FPGA的运行速度,更接近真实芯片,可以配合软件开发者来进行底层软件的开发。这一流片前的软硬件的协同开发,是其最不可替代的地方。
    发表于 05-10 10:44 5475次阅读
    什么是<b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b>?如何用<b class='flag-5'>FPGA</b>对ASIC进行<b class='flag-5'>原型</b><b class='flag-5'>验证</b>?

    如何将这些SoC的逻辑功能原型正确的移植到多片FPGA中?

    当SoC的规模在一片FPGA中装不下的时候,我们通常选择多片FPGA原型验证的平台来承载整个SoC系统
    发表于 05-10 10:15 198次阅读

    FPGA原型系统装配文件:Assign Traces介绍

    多片FPGA原型验证系统的拓扑连接方式各不相同,理想的多片FPGA原型
    发表于 05-08 11:51 357次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>系统</b>装配文件:Assign Traces<b class='flag-5'>介绍</b>

    FPGA原型验证系统中复制功能模块的作用

    在进行FPGA原型验证的过程中,当要把大型的SoC进行FPGA原型验证时,有时候会遇到一种情况,
    的头像 发表于 05-04 16:21 453次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>原型</b><b class='flag-5'>验证</b><b class='flag-5'>系统</b>中复制功能模块的作用