当前位置:首页 > FPGA
  • 生而为速,Xilinx专为联网和存储加速优化推出全新 Virtex UltraScale+ VU23P FPGA

    生而为速,Xilinx专为联网和存储加速优化推出全新 Virtex UltraScale+ VU23P FPGA

    2020 年 5 月 26日,中国北京 —— 自适应和智能计算的全球领先企业赛灵思公司今日宣布推出专为联网和存储加速而优化的 UltraScale+ FPGA 产品系列最新成员 Virtex® UltraScale+™ VU23P FPGA,通过独特方式综合多种资源,实现了更高效率数据包处理和可扩展的数据带宽,致力于为联网和存储应用突破性的性能。在数据指数级增长对智能化、灵活应变的网络和数据中心解决方案提出极高要求的今天,全新 VU23P FPGA 为行业提供了所需的最大吞吐量、强大的数据处理能力以及灵活性优势,使其可以适应不断演进发展的连接标准,并满足当前与未来需求。 图:Xilinx 推出专为网络和存储加速优化的全新 Virtex UltraScale+ FPGA VU23P 具备一系列卓越特性,它在 Virtex UltraScale 产品组合中实现了最高的查找表和嵌入式存储器(块 RAM)与 DSP 片之比,能够在尺寸和功耗不变的情况下进行高吞吐量处理。它采用 35mmx35mm 小型封装,尺寸小巧却能提供超强算力,使之成为 SmartNIC 等高密度服务器环境的理想选择。该器件的 58G PAM4 收发器可支持高达 200G 的 SmartNIC 和网络系统,采用最先进的 PCIe Gen 4 连接功能实现最大 I/O 带宽。借助 VU23P FPGA 加速,多种应用可以从中取得以下显著优势: ·SmartNIC:通过将处理卸载到基于 FPGA 的 SmartNIC,用户能够大幅提升服务器性能、降低系统级总拥有成本( TCO ),同时实现快速的功能创新。采用 Virtex UltraScale+ VU23P FPGA 的 SmartNIC 能够根据工作负载情况实现高达 2x100G 的应用。小型封装选项则有助于灵活构建适用于高密度服务器集群的多样化解决方案。 ·NMVe-oF:NVMe over Fabrics,也称为 NVMe-oF 或光纤通道非易失性存储器标准,是一种在设计上使用 NVMe 协议通过网络架构将主机连接到存储的协议规范。Virtex UltraScale+ VU23P 能够针对多种类型的存储工作负载实现强化加速,包括数据压缩、数据解压缩、数据重复删除、排序器功能,同时提高总体存储利用率,最大限度减轻 CPU 负担。凭借小型封装和兼容 PCIe Gen 4 能力,这款新型 Virtex UltraScale+ FPGA 可提供无与伦比的单位面积性能,既实现了灵活部署,也降低了存储系统的总拥有成本。 ·融合接入前传:在有线通信中,使用融合接入前传网关便于通过单个接口承载所有业务且不会劣化性能。新款 VU23P FPGA 赋予不同器件不同“个性”,可以针对网络基础设施中的每个部署进行选择,它支持多种类型的标准,包括以太网前传、 OTN 前传和 PON 前传。此外,集成型 PCIe Gen 4 IP 也为虚拟化现有无线电的基带处理提供了途径。 作为一款突破性器件,VU23P FPGA 将助力新一代联网和存储系统设计人员在竞争中迅速占领先机。

    时间:2020-05-26 关键词: Xilinx FPGA vu23p

  • FPGA隐藏的一个安全漏洞曝光!

    FPGA隐藏的一个安全漏洞曝光!

    这段时间,波鸿鲁尔大学霍斯特·戈茨IT安全研究所和马克斯·普朗克网络安全与隐私保护研究所的研究人员在一项联合研究项目中发现,FPGA中隐藏了一个关键的安全漏洞,他们称这个漏洞为“ StarBleed”,攻击者可以利用此漏洞来完全控制芯片及其功能。此外,报道还称,由于该漏洞是硬件的组成部分,因此只能通过更换芯片来弥补安全风险。此次安全漏洞造成的影响有多大?给FPGA产业将带来哪些影响? StarBleed是如何形成的 山东师范大学物理与电子科学学院讲师孙建辉向记者介绍,FPGA(field-program-gate-array)芯片,有人称之为万能芯片,它具有数字逻辑电路硬件可编程能力,应用场景涵盖军工、民用、工业等。这些应用既可以利用FPGA芯片进行快速逻辑实现,也可以重构为多媒体信息处理编解码芯片,比如多媒体SOC芯片编解码器CODEC、无线通信的基带。 在很多人看来,此次StarBleed安全漏洞正是由于FPGA的这种“万能”性,开放、灵活性强的芯片,安全漏洞也会比较多。赛灵思官网针对这个事件分析,此次研究人员研究的对象,是基于十年甚至十多年前的赛灵思6系列和7系列FPGA器件,攻击者会利用两款器件在AES-CBC模式下缺少误差扩展,同时以WBSTAR为代表的配置命令又可在认证成功前执行,使其得以成功突破器件安全屏障。 影响究竟有多大 由于FPGA的用途广泛,尤其是在军工、航天和工控这类安全性要求很高的产业需求量很大。此外,这次安全漏洞是发生在硬件的组成部分,比起软件来说修补周期较大,这些是造成此次StarBleed安全漏洞事件引起不小风波的原因。 京微齐力创始人&CEO王海力表示:“修补安全漏洞问题,一般可采用两种方法,从软件修补或者硬件修复下手。从软件下手修补相比较而言周期短、速度快、花费低。例如若是A算法被破译了,就换成B算法加密,现在FPGA针对生成的配置码流采用比较多的是AES256位加密。一般而言,这种算法是比较难以破解的。同时,如果配置码流被破解了,还可以进行软件升级完成补丁修改,总的来说更容易解决一些。” 然而,若是从硬件方面修复漏洞,往往所耗费的时间和精力都会比较多。“一般来说,在硬件方面修复漏洞,需要在硬件电路里面做一些特别的功能,去判断一些恶意攻击的行为,防止别人破解位流,或者监测不按照原有的行为来进行工作的预判电路。这些花费都会很高,因为往往需要重新设计芯片、重新流片并且重新生产。此次研究学者没有特别详细公开关键安全漏洞的机制,从侧面印证了这次StarBleed安全漏洞事件造成了较大影响,因为这个安全漏洞有可能是出在了硬件的组成部分。”王海力说道。 赛灵思发言人向记者表示:“这次安全事件发生后,美国总部第一时间给出设计建议来规避安全隐患。而且这次漏洞虽然在硬件上,但是若想通过其进行攻击也并不是件容易的事情,需要有一个前提条件,那就是必须在物理上近距离接触到这个硬件。也就是说,其一,若想进行攻击,必须有近距离的物理接触,但是这并不容易实现;其二,若想实现远程攻击,需要在接口设置为外部可以访问的情况下才可实现,如果接口不设置外部访问,就不会出现这个问题。” 巧妙利用变“废”为宝 在王海力看来,此次攻击者利用的手法其实并不是新型的手段:“早在十年前,黑客就会利用控制配置码流的技术来入侵。这么多年过去了,FPGA的安全性能在不断提升,黑客技术也在不断提升。一般来说,开放、灵活性强的芯片,安全漏洞也会比较多。这往往是相伴而生的,黑客问题肯定是无法完全避免,但正是因为有黑客的存在,也使FPGA需要不断更新迭代、修补漏洞。从某种意义上讲,这也促进了FPGA技术的发展。” 孙建辉认为,这次安全漏洞事件虽然向所有FPGA研发单位敲了一次警钟,但同时也可以反向利用这次安全漏洞,变“废”为宝。“比如我们可以基于远程无线操纵码流存储体,远程重构更新逻辑功能,并且若用户具有私有权限,甚至可以设置权限,进行授权访问码流修改权限,而恶意入侵者却被严密的安全防护网络阻挡在门外,这无疑是一件因祸得福的事情,也会促进国际FPGA硬件重构芯片的发展,以及推出新的标准或新的研发规范。”孙建辉说。 王海力表示,虽然比起国外FPGA来说,国内FPGA起步较晚,技术较为落后,但是中国还是有自己的优势的。在安全性能上,国产FPGA可以做一些自己的特色,比如在加密算法中,在一些应用领域,采用国密算法来加密,不易被破解,安全性能更高。此外,国产FPGA可以借鉴很多国外PFGA的发展经验,避开很多雷区,使国产FPGA在安全性能上能够发展得更快更好。 同时,孙建辉认为,这次StarBleed安全漏洞事件也给了国产FPGA一定的反思,让国产FPGA企业能够思考如何设计FPGA万能芯片,用什么全新的物理、电路、算法以及配置下载流程技术能够进行安全性更高的FPGA重构设计?国内企业等单位如果抓住机遇,推出最新的安全FPGA芯片,拥有国际专利、推出新标准,这无疑是一次突围的好机会。 安全性是目前最在乎的特性之一,重视的企业必将获得更好的发展。

    时间:2020-05-26 关键词: FPGA 芯片 漏洞

  • 一点点认识芯片设计,轻松搞定多路正弦波信号发生器芯片设计

    一点点认识芯片设计,轻松搞定多路正弦波信号发生器芯片设计

    芯片设计的重要性不言而喻,缺少芯片设计,芯片行业的发展必将受到阻碍。小编在往期文章中,曾对芯片设计的过程、芯片设计的理论知识以及芯片设计实例做过讲解。为提升大家对芯片设计的进一步理解,本文将介绍如何基于FPGA设计多路正弦波信号发生器芯片。如果你对本文即将讨论的内容存在兴趣,不妨继续往下阅读哦。 目前,正弦波信号发生器技术正逐渐成熟,各种直接数字频率合成器(DDS)集成电路如AD9850等已得到广泛应用;FPGA方面也已经有相关的DDS设计。但DDS专用芯片还很少见。本文介绍了一种工作频率为25 MHz、可进行异步串行通信、频率相位可调的3路正弦波信号发生器专用芯片的设计方法。 本设计采用OR1200处理器作为主控制器,通过Wishbone总线将3个DDS模块、UART控制器模块、片内RAM模块连接到系统中,构建出一个硬件平台;然后对OR1200进行软件编程,使UART控制器接收专用芯片外部异步串口传送的数据,将这些数据进行处理后传送到DDS模块相应寄存器,从而产生特定频率相位的正弦波信号;最后将程序固化到片内RAM中,在FPGA上实现多路正弦波信号发生器专用芯片的设计。 一、理论分析 直接数字频率合成技术是20世纪60年代末出现的第三代频率合成技术。该技术从相位概念出发,以Nyquist时域采样定理为基础,在时域中进行频率合成。DDS频率转换速度快、频率分辨率高,并在频率转换时可保持相位的连续,因而易于实现多种调制功能。DDS是全数字化技术,其幅度、相位、频率均可实现程控,并可通过更换波形数据灵活实现任意波形。本设计实现频率相位可控的正弦波输出。所用DDS IP软核原理框图如图1所示(未给出时钟和复位信号)。 图1中,ftw_i为频率控制字,phase_i为相位控制字,ampl_o为正弦波信号幅度输出,phase_o为正弦波信号相位输出。本设计中频率控制字的位宽为32位,选用的ROM波形数据为10×10结构,因此相位控制字的位宽为10位,正弦波幅度输出位宽也为10位。 图1中第1个加法器和第1个单位延时电路构成相位累加器。它在时钟的控制下以步长ftw_i做累加,输出的N位二进制码与M位相位控制字phase_i相加作为波形ROM的地址。由于在ROM中存取的是1/4周期的正弦波形数据,因此,根据正弦波不同的象限,由相位控制字的2个最高有效位(MSB)来控制是否对波形ROM地址进行移位或者对幅度输出进行反相,最终输出10位的正弦波数字信号。 频率相位值从UART串口输入,OR1200处理器根据式(1)和式(2)对数据进行处理得出频率相位控制字,赋给相应DDS模块的频率相位寄存器,从而输出特定频率相位的正弦波信号。 二、专用芯片硬件设计 2.1 专用芯片总体结构设计 正弦波信号发生器专用芯片的结构框图如图2所示。Wishbone总线是整个硬件平台的系统总线,OR1200处理器的数据BIU(Bus Interface Unit)和指令BIU作为Wishbone总线的主设备,UART控制器、3个DDS模块以及FPGA片上RAM作为Wishbone总线的从设备,它们通过Wishbone总线连接到系统中。OR1200是整个硬件平台的主控制器,控制该专用芯片配置数据的读入与转换。UART控制器模块主要实现该专用芯片与外部异步串口的通信,负责读入配置数据。3个DDS模块是产生正弦波信号的核心模块,根据频率控制字和相位控制字产生特定频率相位的正弦波信号。FPGA片上RAM作为该专用芯片的片内RAM,系统软件要固化在RAM中。OR1200处理器、Wishbone总线、UART控制器模块及片内RAM模块的时钟直接连到外部时钟源上,3个DDS模块的时钟由外部时钟源通过PLL倍频得到。本专用芯片为低电平复位。 2.2 OR1200处理器 OpenRISC1200处理器(简称OR1200)是Opencores组织发布维护的基于GPL并属于OpenRISC1000序列的一款RISC处理器。OR1200是32位RISC,它具有哈佛结构、5级整数流水线,支持虚拟内存(MMU),带有基本的DSP功能,并且外部数据和地址总线接口符合Wishbone标准。 OR1200通用框架由CPU/DSP核心、直接映射的数据Cache、直接映射的指令Cache、基于DTLB的Hash表的数据MMU和指令MMU、电源管理单元及接口、Tick定时器,调试单元及开发接口、中断控制器和中断接口、指令及数据Wishbone主机接口组成。 2.3 片内RAM设计 片内RAM由Altera公司的EDA工具QuartusII中MegaWizard Plug-In Manager…生成。它为单端口RAM,数据总线32位,大小为8 KB。编写的固化软件程序编译链接后转换为hex格式,在RAM初始化时固化到其中。由QuartusII生成的片内RAM模块不具有Wishbone接口,本设计为其添加了1个Wishbone总线接口。 2.4 DDS模块 DDS模块也是Opencores上的开源IP软核,没有标准的Wishbone接口模块,本设计为DDS模块添加了1个Wishbone总线接口。该DDS模块主要有两类配置数据:频率控制字和相位控制字。给DDS模块加入2个硬件寄存器DDS_FTW和DDS_PHASE,利用这2个寄存器来控制连接到Wishbone总线接口上的输出数据是频率控制字还是相位控制字。 2.5 UART控制器模块 UART控制器模块是Opencores上符合工业标准16550A的开源IP核。该IP核的设计采用Wishbone总线接口规范,支持可选择的32位数据模式和8位数据模式;使用FIFO操作实现,寄存器及所实现的具体功能符合NS16550A标准[4]。在本设计中,UART控制器的波特率默认值为9 600 b/s,UART控制器模块用于与专用芯片外部UART串口通信,通过URXD引脚接收外部串口数据,通过UTXD向外部串口发送数据。 2.6 Wishbone总线主从设备分配 Wishbone总线仲裁采用Opencores上开源软核wb_conmax,为8×16结构,即在该Wishbone总线模块中可以使用8个主设备和16个从设备。本系统中,OR1200的指令和数据单元为Wishbone总线的主设备;片内RAM模块、URAT控制器模块以及3个DDS模块为Wishbone总线的从设备。 根据各子模块在Wishbone总线上的位置和wb_conmax的逻辑实现,相应从设备的地址分配如下: 片内RAM : 0x00000000 DDS1 : 0x10000000 DDS2 : 0x20000000 DDS3 : 0x30000000 UART : 0x90000000 2.7 顶层模块设计 本系统顶层模块例化各子模块,采用Wishbone总线接口技术将各个子模块集成在一起,为每个子模块分配时钟和复位信号,实现硬件平台的总体设计。设计中所用FPGA开发板的时钟为50 MHz,OR1200处理器时钟为25 MHz,Wishbone总线时钟为25 MHz,3个DDS模块时钟为100 MHz。其他模块的时钟都为25 MHz,设计中所用时钟都是通过FPGA芯片中的PLL分频及倍频实现的。正弦波专用芯片的时钟设为各模块时钟的最小值(25 MHz),3个DDS模块的100 MHz时钟通过PLL倍频实现。各模块的复位信号由顶层模块统一分配。 三、专用芯片固化程序设计 正弦波信号发生器专用芯片的固化程序主要包括UART控制器初始化程序和串口数据处理程序两部分:UART控制器初始化程序初始化UART控制器中的各个寄存器,使该控制器能够正常工作。串口数据处理程序采用查询方式接收串口数据,将接收到的数据赋给相应寄存器变量,根据式(1)和式(2)进行计算,得到3路DDS模块的频率控制字和相位控制字,其固化程序流程图如图3所示。固化程序首先初始化OR1200处理器的各个寄存器,然后对UART控制器进行初始化,最后循环处理串口数据。 3.1 UART控制器初始化程序 UART控制器中的寄存器都是8位或16位,通过对UART控制器的寄存器赋值来初始化UART控制器。上电复位后UART控制器的初始化工作包括: (1)清空接收和发送FIFO。 (2)清零接收和发送移位寄存器。 (3)关闭中断。 (4)设置Line控制寄存器为8个数据位、1个停止位、无奇偶校验的通信模式。 (5)读取Line控制寄存器的值,将其最高位置1,允许Divisor锁存器存取;通过设置Divisor锁存器的值设置波特率为9 600 b/s;将LCR赋回原值。 3.2 串口数据处理程序 正弦波信号发生器专用芯片从外部串口接收到的数据分为3类:相位、频率选择信号,相位或频率值,3路正弦波选择信号。固化程序定义了1个32位的数据寄存器变量和1个8位状态寄存器变量。串口数据处理程序采用查询方式接收串口数据,接收到的前4个数据进行相应转换后赋给数据寄存器变量,第5个数据放入状态寄存器变量中,作为相位信号、频率选择信号和3路正弦波选择信号。若为相位信号,则将数据寄存器变量中的数据与0x3ff相“与”,然后根据式(2)得到相位控制字;若为频率信号,则根据式(1)得到频率控制字。最后根据这个信号将数据寄存器变量中的值送入相应的DDS模块硬件寄存器中(DDS_FTW和DDS_PHASE)。 在FPGA上实现了一个多路正弦波信号发生器专用芯片的设计。本设计在友晶公司的DE2-70开发板上进行了验证,使用开发板上3路10位视频数字信号转模拟信号的控制芯片ADV7123作为D/A转换芯片,最后得到3路频率相位可调的正弦波信号。该正弦波信号发生器专用芯片通过串口控制,而未来的设计中可以扩展数字按键控制或者触摸屏控制,不使用外部主控MCU也可以产生特定频率相位的正弦波信号。 以上便是此次小编带来的“芯片设计”相关内容,希望大家对本文介绍的知识具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!

    时间:2020-05-26 关键词: FPGA 芯片设计 指数

  • 莱迪思Nexus技术平台:重新定义低功耗、小尺寸FPGA

    莱迪思Nexus技术平台:重新定义低功耗、小尺寸FPGA

    物联网AI、嵌入式视觉、硬件安全、5G通信、工业和汽车自动化等新兴应用正在重新定义开发人员设计网络边缘产品的硬件要求。为了支持这些应用,网络边缘设备的硬件方案需要具备下列特征: • 低功耗 • 高性能 • 高稳定性 • 小尺寸 莱迪思的研发工程师几年前就开始着手FPGA开发工艺的创新,旨在为客户提供具备上述特性的硬件平台。最终莱迪思成为业界首个支持28 nm全耗尽型绝缘体上硅(FD-SOI)工艺的低功耗FPGA供应商。该工艺由三星研发,与如今大多数半导体芯片采用的bulk CMOS工艺有些类似,但优势更为显著,能在显著降低器件尺寸和功耗的同时,大幅提升性能和稳定性。 除了支持全新的制造平台,莱迪思还依托其低功耗、小尺寸FPGA领先开发商的行业经验,在系统设计的各个层面(从完善的系统解决方案到FPGA架构,再到电路)取得创新,进一步降低功耗,减小FPGA尺寸,同时提升系统性能。全新的制造工艺与多个层面的创新催生了莱迪思Nexus™ FPGA开发平台。 莱迪思Nexus重新定义低功耗FPGA FD-SOI工艺让莱迪思的工程师能够开发全新电路设计,充分发挥该工艺的固有优势。其优势之一就是FD-SOI支持可编程基体偏压(body bias),这是一种位于晶体管基体上的块电阻,能让开发人员在晶体管运行期间进行动态调节。莱迪思的研发团队发明的可编程基体偏压,能够根据设计的功耗和散热管理需要,让器件以高性能模式或低功耗模式运行。只需通过软件开关即可控制运行模式。开发人员通过对基体偏压进行编程实现高性能或低功耗之间的切换,可以优化 FPGA 的功耗/性能,更好地满足应用的功耗和散热管理需求。这不仅有助于降低电池供电的网络边缘设备的功耗,还能降低工业和数据中心等应用的电力成本。根据莱迪思估算,基于Nexus平台的FPGA的功耗将比同类竞品最多减少75%。 图1:可编程基体偏压让使用莱迪思FPGA的开发人员能够密切控制电路的泄电流,同时对器件进行微调,实现低功耗或高性能模式。 莱迪思Nexus加速AI处理性能 为了支持AI等网络边缘新兴技术,设备的开发人员需要让系统更加智能。他们的做法是为系统集成更多智能功能,从而让设备在网络边缘端执行实时数据处理和分析。然而AI的设计人员面临诸多挑战。AI推理算法需要大量计算,还要求具备大型存储模块在本地存储数值用于计算。以前AI解决方案的开发人员需要高水平的DSP来实现算法时,他们往往选择外部资源,如系统中或者云端的另一个处理器。然而在片外执行AI计算会导致数据延迟,此外将客户数据发送到云端还会引发数据隐私问题和安全隐患。 有了Nexus FPGA技术平台,莱迪思可以通过集成更大的RAM和优化的DSP模块在本地存储数据和执行计算解决延迟问题。Nexus FPGA比之前的莱迪思FPGA性能提升了一倍(同时功耗降低一半),因此开发人员可以在网络边缘实现AI推理算法。网络边缘AI推理的潜在应用包括自动工业机器人、ADAS系统、安防摄像头和智能门铃等。 莱迪思Nexus FPGA提供高稳定性 通常的半导体器件由于高能粒子(如宇宙射线和α粒子)撞击晶体管,性能会受到损害;这一现象被称为软错误。从软错误中恢复需要重置FPGA,这对于那些不允许系统中断哪怕几毫秒的关键应用而言,显然不适用。为了解决这一难题,采用bulk CMOS工艺开发的器件通常会使用一些功能来校正软错误,例如片上软错误校正(SEC)和错误代码校正(ECC)模块。莱迪思基于Nexus平台的FPGA不仅支持以上功能,还拥有一层极薄的氧化物(得益于FD-SOI工艺)保护FPGA中的晶体管,防止高能粒子对基底产生影响。因此基于莱迪思Nexus技术平台开发的FPGA与同类FPGA产品相比,软错误率可降低100多倍。由此带来稳定性的大幅提升,对于任何应用而言都不失为理想之选,尤其是汽车和工业领域的一些关键应用,其器件故障可能导致重大人员伤害和财产损失。 小尺寸不在话下 莱迪思Nexus技术平台还能满足网络边缘设备不断精简尺寸的需求。许多FPGA厂商都在设计产品用于数据中心(云端)的数据分析应用,它们的架构很大,不适用于逻辑单元的数量较少的小型FPGA。莱迪思则专注开发小型、低功耗的FPGA,创造了紧凑的FPGA架构,其器件的物理尺寸比相似逻辑密度的FPGA竞品小十倍之多。 莱迪思Nexus技术平台提供完善的系统解决方案 除了Nexus技术平台上晶体管结构的创新之外,莱迪思还研究了设计过程中更高层次的抽象设计,以了解如何帮助客户在其应用设计中快速轻松地应用Nexus FPGA。莱迪思已经创建或购买并验证了易于使用、直观的设计软件、预先设计的软IP模块、评估板、套件以及完整的参考设计等资源,从而实现莱迪思目标市场(通信、计算、工业、汽车和消费电子)的各类常见应用,包括传感器聚合、传感器桥接和图像处理。 图2:莱迪思为嵌入式视觉市场提供完整的参考设计,让开发人员快速轻松地让新产品或现有产品设计支持流行的应用。 让我们进一步了解图2中的传感器聚合演示,看看这类演示如何帮助客户快速将产品推向市场。该演示主要用于嵌入式视觉系统,可以从多达四个源获取视频数据流,将它们合并为一个数据流,然后通过高速 MIPI D-PHY将其发送到显示器或处理器以进行后续处理。该演示的潜在应用包括高级驾驶辅助系统(ADAS)。在此应用中开发人员需要从多个摄像头和/或雷达传感器收集、汇总数据,然后将其发送给处理器实时做出决策,保障安全。由于无须将多个传感器连接到汽车应用处理器(AP),开发人员可以简化系统PCB上的走线,节省宝贵的AP I/O端口,从而降低系统成本,减小总体尺寸。 在软件方面,莱迪思Nexus平台上的FPGA可搭配设计软件和莱迪思精选的预验证IP库来实现该平台拟支持的各类应用。 推出首款基于莱迪思Nexus的FPGA:CrossLink-NX CrossLink-NX™ 作为采用莱迪思 Nexus 技术平台开发的首个新产品系列,将迎来巨大机遇。 全新的 CrossLink-NX FPGA继承了CrossLink系列FPGA在视频信号桥接、拆分和聚合等应用中的优势,同样支持所有视频信号应用。得益于莱迪思Nexus开发平台,CrossLink-NX FPGA系列具有更高的存储逻辑比、更优化的DSP、更多的逻辑单元和更快的I/O,能够使用AI算法处理视频数据,运行速度是之前FPGA的两倍。此外,在工业和汽车应用中,CrossLink-NX的尺寸比上一代产品小了10倍,软错误率最高降低100倍,大幅提升了可靠性。最后,为进一步加快产品上市时间,莱迪思提供Diamond 2.0 FPGA开发工具、经过验证的IP模块以及基于CrossLink-NX FPGA的应用参考设计。 图3:CrossLink-NX系列FPGA是首款基于莱迪思Nexus技术平台开发的产品,用于AI和嵌入式视觉应用。 结论 如今,快速发展的网络边缘设备市场在要求更高性能和可靠性的同时,希望设备具有低功耗和小尺寸的特性。莱迪思向来注重帮助开发人员将智能、低功耗网络边缘设备推向市场,服务各类应用。随着 Nexus平台的推出,莱迪思半导体可以快速开发新的FPGA,开发人员也可以加速产品开发,满足新的市场需求。莱迪思Nexus平台的推出,重新定义了开发人员对小型、低功耗FPGA的期望。

    时间:2020-05-25 关键词: FPGA 物联网 nexus

  • 全球首例基于国产FPGA的人工智能解决方案发布

    全球首例基于国产FPGA的人工智能解决方案发布

    中国广州,2019年9月16日 - 全球增长最快的可编程逻辑器件供应商—广东高云半导体科技股份有限公司(以下简称“高云半导体”),今日发布基于高云国产FPGA硬件平台的人工智能(AI)边缘计算最新解决方案—GoAITM。相比当前采用标准微处理器的其他类似边缘计算方案,GoAITM加速方案可获得将近78倍的速度提升,加速优势显著。同时GoAITM的设计流程与目前AI、神经网络的开发框架完全融合,为用户开发使用带来了极大的便利。 人工智能在物联网(IoT)终端及云的边缘应用中突飞猛进,这主要得益于其无需网络连接到数据中心就能进行智能决策,且具有低功耗、小尺寸、高性价比的优势;高云GoAITM全面支持目前通用的人工智能开发工具,通过连接到现有的caffe和ARM CMSIS-NN框架,可轻松实现边缘测试与AI解决方案部署。 用户可以很方便的在高云FPGA芯片内嵌的微控制器上实现模型训练、量化与测试,从而达到通过高云FPGA实现模型加速以提高系统实时性能的效果。 “许多边缘计算AI解决方案,在FPGA上部署训练过的神经网络模型时,都要求用特别专用软件,这为开发人员制造了诸多障碍。”高云半导体国际营销总监Grant Jennings先生说, “通过连接到通用的可实现量化和优化的人工智能软件工具上,我们可以为用户提供更方便,更高效的AI解决方案。 这样可以帮助用户缩短产品上市时间并更好的实现协同开发,并为用户提供更多的选择来平衡产品的成本与性能。” 高云半导体的GoAITM加速器提供AHB接口,用户可以通过AHB接口使用状态机来控制加速器,同时GoAITM解决方案包括了软核处理器或硬化的Arm Cortex-M3处理器,也可用来控制加速器,并提供了诸多与FPGA互联的接口,允许开发人员将MIPI CSI-2摄像头或各种I2S麦克风等接口与加速器互联。 “由于严苛的尺存及功耗的限制,边缘AI解决方案在对特定域建模要求有极高的灵活性。” 高云半导体软件工程总监刘建华博士认为。“ GoAITM将嵌入式处理器及FPGA加速器完美的结合在一起,又融合现有的人工智能工具链,造就了一个独特,高速,高效的人工智能开发环境,可广泛用于当前的边缘计算等人工智能领域。” 高云半导体的GoAITM解决方案将在ARM Techcon 2019会议(2019.10.8-10, 加州圣何塞),MIPI DevCon会议(2019.10.18 台北)和ICCAD 2019展会(2019.11.21-22,南京)现场进行展示,并在ICCAD进行主题论文演讲。其演示系统是基于GoAITM的物体检测系统,通过摄像机采集图像信息,采用GoAITM方案实现各类物体的识别。 FPGA使用经过CIFAR10数据集训练的神经网络,并在GoAITM加速器内配置,以提供实时的识别结果。

    时间:2020-05-22 关键词: FPGA 人工智能 边缘计算 高云半导体

  • 物联网云管端的FPGA应用是怎么一回事

    物联网云管端的FPGA应用是怎么一回事

    随着大数据和云计算的落地,FPGA(现场可编程逻辑器件)在数据中心,基站等IT通信设备上正成为主流,风起云涌的人工智能更加速了FPGA在超级数据中心中的应用,“云管端”可以大致对应云计算、雾计算和边缘计算, 区别在于计算能力、功能模块、位置节点和应用场景的不同。FPGA的嵌入式应用进一步扩展到消费电子、汽车电子、工业控制、测试测量等领域, 不仅仅发生在对计算要求高的云端,而且还会出现在数量更加庞大的物联网边缘端。 2010年华为首先提出“云管端”概念,目前“云管端”概念已经延伸到其他行业。 “云(Cloud)”既可以指为用户提供云计算和大数据等云服务的集合, 也可以是一种数据汇聚和计算处理的模式, 还可以指设备的云化、电信业务的云化、电信业自身IT设施的云改造等。当然, 我们也可以简单理解为数据中心; “管(Channel)”是指管道,链接“云”和“端”之间的设备和服务都可统称为管道,提供信息传输能力, 包括交换机、路由器、无线基站、有线接入等设备和服务; “端(Device)”比较容易理解,是指智能设备终端(手机、数据卡、平板电脑、机器人、工业设备等能上网的终端设备), 主要包括物理终端、操作系统软件和人机界面接口等。 “云”上的FPGA应用 云端的FPGA的主要功能是计算。用于数据中心、人工智能、机器学习、云计算和工业云平台。云端的FPGA应用属于高端高利润市场,主要由赛灵思和Intel PSG部门(注:Intel收购的Altera公司)把持,其他厂商很难进入这个市场。 云端的人工智能最近非常热门,主要包括“离线训练”和“在线判断和服务”两种方式。离线训练是指利用海量数据输入,通过合适的训练方法,实现和验证人工智能算法模型。而在线判断和服务是指利用训练出来的算法模型做出判断,在线响应用户的请求。 GPU有很好的计算能力, 目前主要用在离线训练上,而在在线判断和服务方面,FPGA的能耗效率(性能/能耗)和成本效率(性能/价格)都比GPU更好。在云端数据中心领域,采用FPGA的服务器应用越来越多。亚马逊Web Services和百度大脑都在采用赛灵思和Intel PSG的FPGA支持云服务,作为在线判断和服务的人工智能专用芯片。 百度的AI Silicon FPGA集群拥有数十万台服务器,已经部署成为国内最大的GPU/FPGA集群,采用先进的集群操作系统来统一管理,成为国内率先推出可用的FPGA云服务的厂商。 “管”中的FPGA应用 通信行业的管道(基站、基站控制、承载、传输等)大量使用FPGA。通信行业是需要实际功能测试和现场测试来进行产品迭代设计的, 不能等到标准成熟才做芯片和产品。 所以各设备厂家为了缩短上市时间,抢占技术先机,会在标准还未冻结之前就推出原型样机,甚至小批量产品。所以FPGA成为通信厂商们的不二选择,一边讨论协议,一边用FPGA开发产品,在客户那里一边测试,一边修改版本。 通信行业下一个增长的大潮应该是5G和物联网,3GPP第一个5G标准今年12月初冻结,预计将于2020年开始部署,并在2023年达到顶峰。而即将到来的物联网时代,NB-IoT等物联网标准也在不断演进,协议不断更新,快速的发展变化推动了FPGA在5G和物联网的应用。 在整个通信管道中,越靠近终端侧,设备的数量越多,用的FPGA量也越多,而越靠近核心网侧,用的FPGA数量越少,但价格更贵。在协议完全冻结后,各设备厂家会逐步以ASIC来替代之前的FPGA,因此FPGA在通信领域主要在初、中期应用比例高,后期可能会被ASIC替代,只留下一些接口类的FPGA。在通信管道领域,主要是赛灵思和Intel PSG之间的竞争,别的厂商很难进入这个市场。 “端“里的FPGA应用 FPGA目前在智能终端设备上已经开始广泛应用,如无人驾驶汽车、机器人、安防监控、电子半导体测试设备、医疗设备、工厂自动化设备、军用设备、消费电子产品、物流运输、AR/VR和游戏设备等。FPGA在这些终端设备中的应用主要考虑能耗效率(性能/能耗)和成本效率(性能/价格),而在消费电子行业中,这种对功耗和性价比的追求更是达到了极致。 FPGA在智能终端的应用主要包括三方面:互联(感知周围的世界,与外界建立连接)、计算(对收集到的数据和信息进行处理和判断,通过人工智能和机器学习等建立对外界的认知)和控制(智能地响应外部请求,做出相应的动作和反馈)。 来源:朗锐智科

    时间:2020-05-22 关键词: FPGA 物联网 大数据

  • 人工智能芯片FPGA与ASIC分别有着怎样的发展

    人工智能芯片FPGA与ASIC分别有着怎样的发展

    随着人工智能产业链的火速延伸,GPU并不能满足所有场景(如手机)上的深度学习计算任务, GPU并不是深度学习算力痛点的唯一解。目前以深度学习为代表的人工智能计算需求,主要采用GPU、FPGA等已有适合并行计算的通用芯片来实现加速。 在产业应用没有大规模兴起之时,使用这类已有的通用芯片可以避免专门研发定制芯片(ASIC)的高投入和高风险。但是,由于这类通用芯片设计初衷并非专门针对深度学习,因而天然存在性能、功耗等方面的瓶颈。随着人工智能应用规模的扩大,这类问题将日益突出。 一项深度学习工程的搭建,可分为训练(training)和推断(inference)两个环节:训练环境通常需要通过大量的数据输入,或采取增强学习等非监督学习方法,训练出一个复杂的深度神经网络模型。训练过程由于涉及海量的训练数据(大数据)和复杂的深度神经网络结构,需要的计算规模非常庞大,通常需要GPU集群训练几天甚至数周的时间,在训练环节GPU目前暂时扮演着难以轻易替代的角色。 推断(inference)环节指利用训练好的模型,使用新的数据去“推断”出各种结论,如视频监控设备通过后台的深度神经网络模型,判断一张抓拍到的人脸是否属于黑名单。虽然推断环节的计算量相比训练环节少,但仍然涉及大量的矩阵运算。在推断环节,除了使用CPU或GPU进行运算外,FPGA以及ASIC均能发挥重大作用。 FPGA(可编程门阵列,Field Programmable Gate Array)是一种集成大量基本门电路及存储器的芯片,可通过烧入FPGA配置文件来来定义这些门电路及存储器间的连线,从而实现特定的功能。而且烧入的内容是可配置的,通过配置特定的文件可将FPGA转变为不同的处理器,就如一块可重复刷写的白板一样。因此FPGA可灵活支持各类深度学习的计算任务,性能上根据百度的一项研究显示,对于大量的矩阵运算GPU远好于FPGA,但是当处理小计算量大批次的实际计算时FPGA性能优于GPU,另外FPGA有低延迟的特点,非常适合在推断环节支撑海量的用户实时计算请求(如语音云识别)。 ASIC(专用集成电路,Application Specific Integrated Circuit)则是不可配置的高度定制专用芯片。特点是需要大量的研发投入,如果不能保证出货量其单颗成本难以下降,而且芯片的功能一旦流片后则无更改余地,若市场深度学习方向一旦改变,ASIC前期投入将无法回收,意味着ASIC具有较大的市场风险。但ASIC作为专用芯片性能高于FPGA,如能实现高出货量,其单颗成本可做到远低于FPGA。 FPGA的灵活性,很多使用通用处理器或ASIC难以实现的下层硬件控制操作技术利用FPGA可以很方便的实现,从而为算法的功能实现和优化留出了更大空间。同时FPGA一次性成本(光刻掩模制作成本)远低于ASIC,在芯片需求还未成规模、深度学习算法暂未稳定需要不断迭代改进的情况下,利用具备可重构特性的FPGA芯片来实现半定制的人工智能芯片是最佳选择。在众多领域都有替代ASIC的趋势,据市场机构GRANDVIEW RESEARCH的数据,FPGA市场将从2015年的63.6亿增长到2024年的约110亿美元,年均增长率在6%。 尽管FPGA倍受看好,甚至新一代百度大脑也是基于FPGA平台研发,但其毕竟不是专门为了适用深度学习算法而研发,实际仍然存在不少局限:第一,基本单元的计算能力有限。为了实现可重构特性,FPGA内部有大量极细粒度的基本单元,但是每个单元的计算能力(主要依靠LUT查找表)都远远低于CPU和GPU中的ALU模块。第二,速度和功耗相对专用定制芯片(ASIC)仍然存在不小差距; 第三,FPGA价格较为昂贵,在规模放量的情况下单块FPGA的成本要远高于专用定制芯片。 近几年来,定制芯片的性能提升非常明显。例如英伟达首款专门为深度学习从零开始设计的芯片Tesla P100数据处理速度是其2014年推出GPU系列的12倍。谷歌为机器学习定制的芯片TPU将硬件性能提升至相当于当前芯片按摩尔定律发展7年后的水平。正如CPU改变了当年庞大的计算机一样,人工智能ASIC芯片也将大幅改变如今AI硬件设备的面貌。如大名鼎鼎的AlphaGo使用了约170个图形处理器(GPU)和1200 个中央处理器(CPU),这些设备需要占用一个机房,还要配备大功率的空调,以及多名专家进行系统维护。而如果全部使用专用芯片,非常可能只需要一个盒子大小,且功耗也会大幅降低。 下游需求促进人工智能芯片专用化。从服务器,计算机到无人驾驶汽车、无人机再到智能家居的各类家电,至少数十倍于智能手机体量的设备需要引入感知交互能力和人工智能计算能力。而出于对实时性的要求以及训练数据隐私等考虑,这些能力不可能完全依赖云端,必须要有本地的软硬件基础平台支撑,这将带来海量的人工智能芯片的需求。 朗锐智科(www.lrist.com)认为在芯片需求还未成规模、深度学习算法暂未稳定需要不断迭代改进的情况下,利用具备可重构特性的FPGA芯片来实现半定制的人工智能芯片是最佳选择。随着人工智能算法和应用技术的日益发展,以及人工智能专用芯片ASIC产业环境的逐渐成熟,人工智能ASIC将成为人工智能计算芯片发展的必然趋势。 来源:朗锐智科

    时间:2020-05-22 关键词: FPGA 人工智能

  • FPGA在深度学习上有什么应用

    FPGA在深度学习上有什么应用

    zui近几年数据量和可访问性的迅速增长,使得人工智能的算法设计理念发生了转变。人工建立算法的做法被计算机从大量数据中自动习得可组合系统的能力所取代,使得计算机视觉、语音识别、自然语言处理等关键领域都出现了重大突破。深度学习是这些领域中所zui常使用的技术,也被业界大为关注。然而,深度学习模型需要极为大量的数据和计算能力,只有更好的硬件加速条件,才能满足现有数据和模型规模继续扩大的需求。现有的解决方案使用图形处理单元(GPU)集群作为通用计算图形处理单元(GPGPU),但现场可编程门阵列(FPGA)提供了另一个值得探究的解决方案。日渐流行的FPGA设计工具使其对深度学习领域经常使用的上层软件兼容性更强,使得FPGA更容易为模型搭建和部署者所用。 FPGA架构灵活,使得研究者能够在诸如GPU的固定架构之外进行模型优化探究。同时,FPGA在单位能耗下性能更强,这对大规模服务器部署或资源有限的嵌入式应用的研究而言至关重要。本文从硬件加速的视角考察深度学习与FPGA,指出有哪些趋势和创新使得这些技术相互匹配,并激发对FPGA如何帮助深度学习领域发展的探讨。 1.简介 机器学习对日常生活影响深远。无论是在上点击个性化推荐内容、在智能手机上使用语音沟通,或利用面部识别技术来拍照,都用到了某种形式的人工智能技术。这股人工智能的新潮流也伴随着算法设计的理念转变。过去基于数据的机器学习大多是利用具体领域的专业知识来人工地“塑造”所要学习的“特征”,计算机从大量示例数据中习得组合特征提取系统的能力,则使得计算机视觉、语音识别和自然语言处理等关键领域实现了重大的性能突破。对这些数据驱动技术的研究被称为深度学习,如今正受到技术界两个重要群体的关注:一是希望使用并训练这些模型、从而实现极高性能跨任务计算的研究者,二是希望为现实世界中的新应用来部署这些模型的应用科学家。然而,他们都面临着一个限制条件,即硬件加速能力仍需加强,才可能满足扩大现有数据和算法规模的需求。 对于深度学习来说,目前硬件加速主要靠使用图形处理单元(GPU)集群作为通用计算图形处理单元(GPGPU)。相比传统的通用处理器(GPP),GPU的核心计算能力要多出几个数量级,也更容易进行并行计算。尤其是NVIDIACUDA,作为zui主流的GPGPU编写平台,各个主要的深度学习工具均用其来进行GPU加速。zui近,开放型并行程序设计标准OpenCL作为异构硬件编程的替代性工具备受关注,而对这些工具的热情也在高涨。虽然在深度学习领域内,OpenCL获得的支持相较CUDA还略逊一筹,但OpenCL有两项独特的性能。首先,OpenCL对开源、免费,不同于CUDA单一供应商的做法。其次,OpenCL支持一系列硬件,包括GPU、GPP、现场可编程门阵列(FPGA)和数字信号处理器(DSP)。 1.1.FPGA 作为GPU在算法加速上强有力的竞争者,FPGA是否立即支持不同硬件,显得尤为重要。FPGA与GPU不同之处在于硬件配置灵活,且FPGA在运行深入学习中关键的子程序(例如对滑动窗口的计算)时,单位能耗下通常能比GPU提供更好的表现。不过,设置FPGA需要具体硬件的知识,许多研究者和应用科学家并不具备,正因如此,FPGA经常被看作一种行家专属的架构。zui近,FPGA工具开始采用包括OpenCL在内的软件级编程模型,使其越来越受经主流软件开发训练的用户青睐。 对考察一系列设计工具的研究者而言,其对工具的筛选标准通常与其是否具备用户友好的软件开发工具、是否具有灵活可升级的模型设计方法以及是否能迅速计算、以缩减大模型的训练时间有关。随着FPGA因为高抽象化设计工具的出现而越来越容易编写,其可重构性又使得定制架构成为可能,同时高度的并行计算能力提高了指令执行速度,FPGA将为深度学习的研究者带来好处。 对应用科学家而言,尽管有类似的工具级选择,但硬件挑选的重点在于zui大化提高单位能耗的性能,从而为大规模运行降低成本。所以,FPGA凭借单位能耗的强劲性能,加上为特定应用定制架构的能力,就能让深度学习的应用科学家受益。 FPGA能满足两类受众的需求,是一个合乎逻辑的选择。本文考察FPGA上深度学习的现状,以及目前用于填补两者间鸿沟的技术发展。因此,本文有三个重要目的。首先,指出深度学习领域存在探索全新硬件加速平台的机会,而FPGA是一个理想的选择。其次,勾勒出FPGA支持深度学习的现状,指出潜在的限制。zui后,对FPGA硬件加速的未来方向提出关键建议,帮助解决今后深度学习所面临的问题。 2.FPGA 传统来说,在评估硬件平台的加速时,必须考虑到灵活性和性能之间的权衡。一方面,通用处理器(GPP)可提供高度的灵活性和易用性,但性能相对缺乏效率。这些平台往往更易于获取,可以低廉的价格生产,并且适用于多种用途和重复使用。另一方面,专用集成电路(ASIC)可提供高性能,但代价是不够灵活且生产难度更大。这些电路专用于某特定的应用程序,并且生产起来价格昂贵且耗时。 FPGA是这两个极端之间的折中。FPGA属于一类更通用的可编程逻辑设备(PLD),并且简单来说,是一种可重新配置的集成电路。因此,FPGA既能提供集成电路的性能优势,又具备GPP可重新配置的灵活性。FPGA能够简单地通过使用触发器(FF)来实现顺序逻辑,并通过使用查找表(LUT)来实现组合逻辑。现代的FPGA还含有硬化组件以实现一些常用功能,例如全处理器内核、通信内核、运算内核和块内存(BRAM)。另外,目前的FPGA趋势趋向于系统芯片(SoC)设计方法,即ARM协处理器和FPGA通常位于同一芯片中。目前的FPGA市场由Xilinx主导,占据超过85%的市场份额。此外,FPGA正迅速取代ASIC和应用专用标准产品(ASSP)来实现固定功能逻辑。FPGA市场规模预计在2016年将达到100亿美元。 对于深度学习而言,FPGA提供了优于传统GPP加速能力的显著潜力。GPP在软件层面的执行依赖于传统的冯·诺依曼架构,指令和数据存储于外部存储器中,在需要时再取出。这推动了缓存的出现,大大减轻了昂贵的外部存储器操作。该架构的瓶颈是处理器和存储器之间的通信,这严重削弱了GPP的性能,尤其影响深度学习经常需要获取的存储信息技术。 相比较而言,FPGA的可编程逻辑原件可用于实现普通逻辑功能中的数据和控制路径,而不依赖于冯·诺伊曼结构。它们也能够利用分布式片上存储器,以及深度利用流水线并行,这与前馈性深度学习方法自然契合。现代FPGA还支持部分动态重新配置,当FPGA的一部分被重新配置时另一部分仍可使用。这将对大规模深度学习模式产生影响,FPGA的各层可进行重新配置,而不扰乱其他层正在进行的计算。这将可用于无法由单个FPGA容纳的模型,同时还可通过将中间结果保存在本地存储以降低高昂的全球存储读取费用。 zui重要的是,相比于GPU,FPGA为硬件加速设计的探索提供了另一个视角。GPU和其它固定架构的设计是遵循软件执行模型,并围绕自主计算单元并行以执行任务搭建结构。由此,为深度学习技术开发GPU的目标就是使算法适应这一模型,让计算并行完成、确保数据相互依赖。与此相反,FPGA架构是为应用程序专门定制的。在开发FPGA的深度学习技术时,较少强调使算法适应某固定计算结构,从而留出更多的自由去探索算法层面的优化。需要很多复杂的下层硬件控制操作的技术很难在上层软件语言中实现,但对FPGA执行却特别具有吸引力。然而,这种灵活性是以大量编译(定位和回路)时间为成本的,对于需要通过设计循环快速迭代的研究人员来说这往往会是个问题。 除了编译时间外,吸引偏好上层编程语言的研究人员和应用科学家来开发FPGA的问题尤为艰难。虽然能流利使用一种软件语言常常意味着可以轻松地学习另一种软件语言,但对于硬件语言翻译技能来说却非如此。针对FPGAzui常用的语言是Verilog和VHDL,两者均为硬件描述语言(HDL)。这些语言和传统的软件语言之间的主要区别是,HDL只是单纯描述硬件,而例如C语言等软件语言则描述顺序指令,并无需了解硬件层面的执行细节。有效地描述硬件需要对数字化设计和电路的专业知识,尽管一些下层的实现决定可以留给自动合成工具去实现,但往往无法达到的设计。因此,研究人员和应用科学家倾向于选择软件设计,因其已经非常成熟,拥有大量抽象和便利的分类来提高程序员的效率。这些趋势使得FPGA领域目前更加青睐高度抽象化的设计工具。 FPGA深度学习研究里程碑: 1987VHDL成为IEEE标准 1992GANGLION成为*FPGA神经网络硬件实现项目(Coxetal.) 1994Synopsys推出*代FPGA行为综合方案 1996VIP成为*FPGA的CNN实现方案(Cloutieretal.) 2005FPGA市场价值接近20亿美元 2006利用BP算法在FPGA上实现5GOPS的处理能力 2011Altera推出OpenCL,支持FPGA 出现大规模的基于FPGA的CNN算法研究(Farabetetal.) 2016在微软Catapult项目的基础上,出现基于FPGA的数据中心CNN算法加速(Ovtcharovetal.)    4.未来展望 深度学习的未来不管是就FPGA还是总体而言,主要取决于可扩展性。要让这些技术成功解决未来的问题,必须要拓展到能够支持飞速增长的数据规模和架构。FPGA技术正在适应这一趋势,而硬件正朝着更大内存、更少的特征点数量、更好的互连性发展,来适应FPGA多重配置。英特尔收购了Altera,IBM与Xilinx合作,都昭示着FPGA领域的变革,未来也可能很快看到FPGA与个人应用和数据中心应用的整合。另外,算法设计工具可能朝着进一步抽象化和体验软件化的方向发展,从而吸引更广技术范围的用户。 4.1.常用深度学习软件工具 在深度学习zui常用的软件工具中,有些工具已经在支持CUDA的同时,认识到支持OpenCL的必要性。这将使得FPGA更容易实现深度学习的目的。虽然据我们所知,目前没有任何深度学习工具明确表示支持FPGA,不过下面的表格列出了哪些工具正朝支持OpenCL方向发展: Caffe,由伯克利视觉与学习中心开发,其GreenTea项目对OpenCL提供非正式支持。Caffe另有支持OpenCL的AMD版本。    Torch,基于Lua语言的科学计算框架,使用范围广,其项目CLTorch对OpenCL提供非正式支持。    Theano,由蒙特利尔大学开发,其正在研发的gpuarray后端对OpenCL提供非正式支持。 DeepCL,由HughPerkins开发的OpenCL库,用于训练卷积神经网络。 对于刚进入此领域、希望选择工具的人来说,我们的建议是从Caffe开始,因为它十分常用,支持性好,用户界面简单。利用Caffe的modelzoo库,也很容易用预先训练好的模型进行试验。 4.2.增加训练自由度 有人或许以为训练机器学习算法的过程是完全自动的,实际上有一些超参数需要调整。对于深度学习尤为如此,模型在参数量上的复杂程度经常伴随着大量可能的超参数组合。可以调整的超参数包括训练迭代次数、学习速率、批梯度尺寸、隐藏单元数和层数等等。调整这些参数,等于在所有可能的模型中,挑选zui适用于某个问题的模型。传统做法中,超参数的设置要么依照经验,要么根据系统网格搜索或更有效的随机搜索来进行。zui近研究者转向了适应性的方法,用超参数调整的尝试结果为配置依据。其中,贝叶斯优化是zui常用的方法。 不管用何种方法调整超参数,目前利用固定架构的训练流程在某种程度上局限了模型的可能性,也就是说,我们或许只在所有的解决方案中管窥了一部分。固定架构让模型内的超参数设置探究变得很容易(比如,隐藏单元数、层数等),但去探索不同模型间的参数设置变得很难(比如,模型类别的不同),因为如果要就一个并不简单符合某个固定架构的模型来进行训练,就可能要花很长时间。相反,FPGA灵活的架构,可能更适合上述优化类型,因为用FPGA能编写一个完全不同的硬件架构并在运行时加速。 4.3.Low power compute clusters低耗能计算节点集群 深度学习模型zui让人着迷的就是其拓展能力。不管是为了从数据中发现复杂的高层特征,还是为数据中心应用提升性能,深度学习技术经常在多节点计算基础架构间进行拓展。目前的解决方案使用具备Infiniband互连技术的GPU集群和MPI,从而实现上层的并行计算能力和节点间数据的快速传输。然而,当大规模应用的负载越来越各不相同,使用FPGA可能会是更优的方法。FPGA的可编程行允许系统根据应用和负载进行重新配置,同时FPGA的能耗比高,有助于下一代数据中心降低成本。 5.结语 相比GPU和GPP,FPGA在满足深度学习的硬件需求上提供了具有吸引力的替代方案。凭借流水线并行计算的能力和的能耗,FPGA将在一般的深度学习应用中展现GPU和GPP所没有的独特优势。同时,算法设计工具日渐成熟,如今将FPGA集成到常用的深度学习框架已成为可能。未来,FPGA将有效地适应深度学习的发展趋势,从架构上确保相关应用和研究能够自由实现。 来源:智能制造网

    时间:2020-05-21 关键词: FPGA 人工智能 深度学习

  • 怎样合理的构建高可靠性医疗电子设备

    怎样合理的构建高可靠性医疗电子设备

    几乎每个使用手机的人都会有过几次通话中断的经历。虽然这些产品以及其他消费类产品的系统故障或者小毛病会带来不方便,但它们不会造成灾难性的后果。然而,医疗电子设备的一次系统故障就会带来生命威胁,这也是为什么医疗设备,以及这些系统中集成的器件和这些器件中运行的软件必须通过严格测试,并符合美国食品药品监督管理局(FDA)的严格要求。 为确保我们的新设计能够发挥理想可靠的性能,顺利通过FDA审批流程,我们采用了一种称为“Scrum/Sprint开发流程”的高度结构化的设计方法。此外,通过减少在软件中实施的功能,还能够降低软件出错的几率。我们已在赛灵思的FPGA中实施了这些功能。为了能够更充分地理解这种方法,我们首先来分析一下医疗设备的设计流程。 三阶段生命周期 FDA针对医疗电子产品制定了严格的规定、要求和指导原则,旨在确保社会大众的人身安全。在这些规定中,FDA对医疗设备(图 1)的生命周期制定了严格的要求。一般情况下,电子产品公司必须在如下方面都符合上述规定的要求,其中包括医疗设备的所有元件、零部件或者配件,医疗设备生产过程中采用的任何软件,以及设备制造商质量系统使用的所有软件,如可记录并保持设备历史记录的程序等。 图1、FDA定义的医疗设备设计整个生命周期图. 我们可将医疗设备整个生命周期划分为三个主要阶段。首先是产品整个生命周期的初期阶段(图2),该阶段是所有三个阶段中系统性最差的阶段,期间企业主要侧重于理论与构思方面的研究和开发。该阶段的持续时长从数星期到数年不等,这与企业准备开发的系统的复杂程度息息相关。 图2、在产品整个生命周期的初期阶段应用虚拟仪器和HEI设计方法,可以清晰地理解需要解决的问题。 产品整个生命周期初期阶段的基本组成部分是数据采集与分析。通常情况下,研究人员与产品设计规范小组会使用多种工具来精简流程。在这个阶段,HEI通常会采用美国国家仪器(NI)公司的LabVIEW产品来调整 FPGA的I/O。一旦充分理解问题,我们就能设计出解决方案。对于器件开发及原型设计,我们结合直观的图形编程,重复使用数学与信号处理功能来开发新的算法。然后,通过使用商用套装硬件,我们对现实世界的数据进行参考来对算法的性能进行验证。在许多情况下,我们都能使用NI提供的基于FPGA的原型设计平台来实现最终器件的实验原型。确切地说,我们能够将LabVIEWReal-Time模块和FPGA模块同NI CompactRIO结合使用,以便在算法设计和器件原型阶段之间迅速实现叠代。使用硬件套件进行原型设计,不仅能够显著缩短硬件开发与集成时间,而且还使我们能够将更多精力集中到交付功能强大、性能可靠的软件设计中。 图3、软件设计的审核与验证工作通常是在产品整个生命周期的中期完成。 可将医疗设备整个生命周期的第二阶段称为产品整个生命周期的中期(参见图3),能够充分满足所设计的设备在产品化、验证、审核以及制造等方面的需求。该阶段的重点是制定准确定义的、清晰载明可量化要求的规范文档。这些规范一经定义,即可在规范文档与实际的实施代码之间建立明确的映射关系。 图4、传统的“瀑布式”开发流程在进入到下一步前需完成每一阶段的开发。 在当今错综复杂的医疗设备市场上,客户必须加速上市,捷足先登。众多公司纷纷采用传统的“瀑布式”开发法来完成这项工作。“瀑布式”开发法中的设计小组在进入下一步前,需要完成设计流程的每个步骤(图4)。瀑布法高度依赖在项目展开之初就拥有完整准确的规范。但是,在医疗设备市场,更多的时候需求会随着产品的开发而不断发展变化。这就需要能够将发展演进也考虑周全的流程。HEI的Scrum/Sprint开发流程就是可充分解决这一问题的理想方案。 图5  在“Scrum/Sprint”流程中,启动项目只需要高级系统架构和规范。 图6——项目小组为循环周期中的每个“Sprint”确定“Sprint待办事项”工作任务,并对其进行扩展和分配。然后,项目小组在日常的”Scrum“会议上评估进程,并消除相关障碍。小组在每个“Sprint”终止时向客户交付产品功能。 在Scrum/Sprint流程中,我们仅要求高级系统架构和规范即可启动项目。我们将项目细分为4~6个星期长的“Sprint”。在每个 “Sprint”中,我们可确定我们认为流程将会要求的所有任务,并将其置于“燃尽”列表(burn-down list)中。图5与图6显示了相关流程图。HEI在全公司范围内使用Scrum/Sprint开发流程,不仅将我们的开发进程加快了30%,而且还使我们提前数月完成了新产品的实施。表1对瀑布式开发与Scrum/Sprint开发方案进行了比较。 医疗设备开发的第三阶段,也是最后一个阶段,属于产品整个生命周期的后期(图7)。这个阶段要求的工程设计工作非常少,不过客户反馈和市场成功将有助于推动新一代产品的概念形成,这样生命周期又进入新的循环。 图7—产品生命周期后期工作是将产品推向市场,获取反馈,帮助确定新一代产品的功能。这样就完成了本周期的工作,并将其带入新的构思阶段。 采用Scrum/Sprint产品开发流程,再结合使用基于FPGA的套装硬件以及涵盖从研发到制造过程的高级FPGA软件设计工具,HEI就能够迅速地开发出未来产品的衍生技术。我们发现在众多情况下都可以使用我们在多种产品开发中采用的通用内核架构。例如,可调整IV与输液泵的泵控制器架构,同样也能用于可控制电机以实现输血管理的其它设计项目中。 为何硬件优于软件 为了有效地使用这种方法,并进一步加快设计流程,就必须改变构思设计的方式,即从以软件为中心转变为更多地以硬件为中心。正如人们所意识到的,医疗设备的召回在2008年达到新高,比2007年上升43%。FDA专家认为,发生召回问题的主要原因有两个:生产中采用的原材料存在缺陷;软件开发工作存在问题。企业对原材料质量的管理相对容易一些,不过解决软件的质量问题难度则要大得多。随着设备软件的代码量迅速增加,问题只会日益严重。在FDA的消费者健康安全部表示医疗设备设计方要承担众多安全责任后,这个问题尤为突出。 在HEI,我们认为该问题具有一个潜在的解决方案,不过不是进行更多的测试、代码检查和引入更多的流程,相反,我们仅是尽量少编写软件,将更多的逻辑交给诸如赛灵思FPGA这样的硬件元件来执行。让我们来看看发生软件故障的常见原因,以及我们将如何使用FPGA来解决这些问题。 消除死锁 大多数现代化设备都需要能够同时处理多个任务,而大多数嵌入式处理器的处理内核仍然只有一个。这意味着处理器每次只能执行一个指令。同时,并行处理也好不到那里去,因为他们仍然必须共享主系统CPU。此外,诸如通信驱动器、硬盘和用户接口元件等其他共享资源也会引发死锁——两个或两个以上的处理进程相互等待对方释放资源。 由于死锁状况经常有赖于多个进程,并且通常要求事件在顺序上出现同步,因而死锁非常难以复制和调试。仅仅进行单元测试很难发现大多数死锁问题。它们往往被代码检查人员、熟练的系统测试人员所发现,甚至有时靠运气发现。 相比之下,采用FPGA,相互独立的进程拥有其自己的物理电路系统,因而不存在共享资源。在每个时钟信号报时的时候,组合逻辑不仅在每个电路中闭锁,而且还会在独立的寄存器中存储相关值。由于进程不依赖其他资源,因而也不会发生死锁问题。这样您就能更多地相信仿真和单元测试的结果,因为诸如资源竞争这样的未知因素不再是个问题。 互不兼容的中间件 在开发嵌入式软件时,您基本上无需从头开始编写每一行代码。有许多工具都可帮助固件设计人员提升工作效率,如简单的驱动器、网络协议栈、操作系统、乃至代码生成工具等。虽然这些系统通常都进行过全面的独立测试,但软件还是会存在缺陷。由于工具和库的组合方式多种多样,将组件以全新的方式组合在一起使用的可能性非常大。 基于此种原因,FDA要求对在医疗设备中使用的所有套装软件,企业必须根据其具体设计的具体使用情况对软件协议栈进行审验。这是什么意思呢?例如,若我们正在使用包含定点快速傅立叶变换的信号处理库,并需要检测是否存在特定的频率组分,我们就无需验证对于所有可能的输入,FFT是否都会返回正确的值。但是,我们需要验证的是,对于符合规范的所有有效输入,FFT能否返回我们期望的值。例如,如果我们只检测人耳能听到的音调,就没有必要测试输入超过 20KHz以上时返回的值是否正确。 不过,看上去相互独立的软件组件并不一定如此。因此,如果我们将软件协议栈与SPI驱动器结合起来使用,并配以实时操作系统(RTOS),我们就需要对所有这些组件进行验证才能对FFT充满信心。如果FFT将有效输出传递到SPI驱动器,但 SPI驱动器出现系统性故障,那么问题显然不可避免。然后,如果我们决定调整SPI驱动器,就需要再次验证整个软件协议栈。这非常麻烦,而且一个存在故障的组件会拖累整个系统的开发进程。基于此原因,在HEI,我们尽可能多地重复利用经检验具备良好特性的中间件和RTOS驱动器组合。例如,我们可使用NI 单板RIO平台上的中间件驱动器。 除了按照每种具体使用情况审验软件以外,我们还需要审验我们在我们基于FPGA的设计中使用的所有第三方知识产权(IP)。不过,一旦我们完成我们所有使用情况的审验工作,我们就会深信不疑:IP在和其它组件集成后,工作情况会如同预期一样。让我们再来看看我们上面举的FFT示例。如果我们使用FPGA,我们就可和使用软件一样,获取或者生成FFTIP内核,根据每个使用情况验证其数字的正确性。不过,间发故障的风险可大幅降低,因为我们不需要以软件为中心的设计所需要的所有处理器中间件。这样,RTOS及SPI驱动器就不再是其自身IP内核了,因为其工作不会直接影响FFT。另外,如果我们调整SPI驱动器的实施,我们就不需要对系统未影响的部分再进行审验。 缓冲器溢出管理 我们如何使用FPGA来减少以软件为中心的系统通常会产生的错误的另一个示例就是缓冲器溢出管理。当程序试图存储超过为其存储分配的存储器末端的数据时,程序就会重复写入本不该写入的某些相邻数据,这样就会产生缓冲器溢出。这是个很难察觉的缺陷,因为在将来任何时候都可访问被重写的存储器,而且这种情况可能会造成明显的错误,也可能不会。嵌入设计中一种比较常见的缓冲器溢出情况是某种高速通信造成的,或许来自网络、磁盘或者 A/D转换器。如果通信中断时间过长,缓冲器就会溢出,因此我们需要解决这个问题来防止各种冲突。 我们可以以两种方式采用 FPGA来管理缓冲器溢出。在第一种示例中,我们采用FPGA管理循环传输或者双缓冲传输,这样可卸载实时处理器的负荷。在这种情况下,FPGA可用作协处理器,降低主处理器的中断负载。这是一种通用配置,特别是在高速A/D转换器中。 在第二种示例中,我们将FPGA用作保护功能的安全保护层,让针对病人的I/O在到达处理器之前,先通过FPGA。在这种情况下,您可以为FPGA增加额外的安全逻辑,这样在处理器上的软件崩溃时,您可将所有的输出置于已知的安全状态下。FPGA可发挥看门狗的作用,其逻辑可以在软件发生故障的时候保证对病人的风险降低到最低程度。通过在架构设计中将FPGA引入设备的主信号链,您可以使用这两种方法中的一种或者两种来应对缓冲器溢出,以便在发生状况的时候能够更好地处置。 事实上,越多地将软、硬件总体系统功能移至FPGA中,就能越快地完成设计流程,并最终越快地完成我们的设计在客户最终产品上的验证工作。如果我们能更快地验证我们设计方案在总体系统上运行的可靠性,那么我们的客户就能更快地验证整个最终产品,进而将其交付FDA审批。这一过程意味着我们的客户能够显著加速其产品的上市进程,改善患者的生活质量,甚至拯救生命。 如果我们采用ASIC工艺来实施设计,我们需要为代工厂生产出硬件等上好几个月。验证ASIC的物理设计、创建掩膜并将设计投产等额外的步骤会造成更多出错和出现缺陷的几率。如果设计在任何这些步骤中出现错误,结果都会导致产品上市时间被大大拖延。由于已生产出FPGA且经过全面的测试,因此我们只需关心我们的设计和软件,并确保设计能够符合客户的规范要求。全面结合 “Scrum/Sprint”方法、以硬件为中心的构思、使用高度可靠的工具并在FPGA与ASIC中选择FPGA,我们便能使客户实现差异化,进而也能为客户的客户,即患者带来改变。

    时间:2020-05-17 关键词: FPGA 医疗电子

  • FPGA原型系统对于物联网的设计实现有没有帮助

    FPGA原型系统对于物联网的设计实现有没有帮助

    当我们谈论物联网 (IoT) 的时候,不夸张地说,它可以将我们所使用的智能设备互相连接,彼此分享大量的数据,从而使我们的生活更高效。这不仅仅是消费者对智能家居、娱乐和可穿戴技术的需求,也是工业、军事和政府应用,如智慧城市和工厂等改变了连接局面。 从非常小到巨大 当我们从这个角度来探讨物联网,我们了解到这些设备的范围可以从最小的设计,由少量传感器和驱动器组成的仅几百万门规模的机器,到极其复杂的机器包含几百个传感器和数十亿门的规模。无论规模和复杂度, 这些智能系统都需要大量的软件和真实环境测 试,特别是在整合商业 IP的过程中。所有的物联网案例都提到了连接的可互操作性、复杂的控制和测试效率,这些都 迫使设计团队不得不重新思考其发展策略。再加消费类物联网设备对产品上市时间的压力,很显然工程师需要适当的解 决方案来解决这些问题。 让你在设计初期信心倍增 基于FPGA 的原型系统是专门针对物联网设备的设计和验证的复杂性需求。随着原型技术在设计分割以及多 FPGA 联 合调试领域的进步,基于FPGA 的原型系统不仅可以满足百万门级的设计需求,还可以实现设计规模高达15 亿门。基 于FPGA 的原型系统允许设计人员在硅芯片可用之前就可以在一个全功能的硬件平台上先行开发和测试他们的系统级软 件。硬件原型是唯一的可用于早期的实际软件开发和测试的解决方案。软件模型无法提供像硬件平台那样的准确性和可 靠性下的速度和容量。 即使是最小的设计也必须面临非常复杂的软 件问题,需要大量严苛的测试,花费惊人。 这种类型的测试的性质是可以运行,但上市 时间窗可能面临考验。“仿真VS 原型系统 –性能曲线图”这篇文章在FPGA 原型验证 速度和测试好处等方面进行了深入的探讨。 尽管最初设置原型系统可能花费数周时间, 但在初始设置后短时间内进行大量的测试。 以最小速度(5 兆赫)或者四周的初始设置时 间计算,FPGA 原型可以完成数量惊人测 试,这远高于其他解决方案。 事务处理器是物联网设计成功的关键 基于FPGA 的原型系统是非常适合呈现设计从RTL 映射到FPGA。然而,许多物联网设计不可能完全映射到FPGA, 或者可能部分设计仍然只能以C++ 或SystemC 等行为模型描述。在这些情况下,事务级接口能够桥接行为模型和真实硬件。 这些事务处理器提供了一种交互方式,使得主机上运行的软件和基于FPGA 的原型系统可以相互通信,通常包括内存、 处理器和高速接口等。S2C 独有的申请专利的 Prodigy ProtoBridge? 系统正是允许这种类型的高速通信一个解决方案。 ProtoBridge 提供软件程序和基于AXI 总线的硬件接口。其中有两个关键部分:连接到PC 主机的AXI 到PCIe 桥接模块,通过桥接模块进行通信的C-API 函数库。该 软件为设计人员创建了基于 ARM 系统提供了新的灵活 性,并且PCIe 接口的传输速度高达1000MB/s,为数据 密集型应用提供了一个完美的开发平台。 这样的系统允许设计人员将FPGA 原型系统的优势最大 化,包括在项目中进行早期算法验证、IP 设计、仿真加 速度和边界测试的验证等等。FPGA 原型系统结合事务 处理器接口可能在整个设计流程中进行一系列的有趣的应用。 完善的解决方案 除了 Prodigy ProtoBridge 系统在物联网设计中起重要作用,S2C 的Prodigy 完整原型平台还可以为物联网设计流程的 各个方面提供解决方案。我们提供最全面的原型验证系统以适合您的设计规模,以及最丰富的预测试原型 IP 库和参考设 计流程,加速和简化您的原型验证过程。我们的 Prodigy Player Pro 软件可协助您进行原型配置,并提供远程系统监视 和控制功能。在编译功能在PlayerPro提供了先进的设计分割功能,即将发布的Prodigy Multi-Debug 模块则可以缓解 多颗FPGA 联合调试的任务。S2C 的 Prodigy FPGA 原型系统解决方案是目前市场上最全面的能帮助您实现物联网设计的解决方案。

    时间:2020-05-16 关键词: FPGA 物联网 IoT

  • 如何学好FPGA?你知道吗?

    如何学好FPGA?你知道吗?

    什么是FPGA?你知道怎么学习吗?经常看到有初学者的提问,本人零基础,想学FPGA,求有经验的人说说,我应该从哪入手,应该看什么教程,应该用什么学习板和开发板,看什么书等,希望有经验的好心人能够给我一些引导。 FPGA到底怎么学呢? 如果想速成,那就上网看视频吧,这样主要是面对应用的,一个小时内让你的板子运行起来。早期起来的快,活学活用,就是后期没有系统理论支持,会有些吃力,特别是大项目,那完全是个悲剧。国内做的可以的,我知道的就是周立功了,艾米电子也可以吧。这两家都有学习板,不过后者的教程抄袭的前者的。前者功底深厚些,资金不紧张就买前者吧。速成的话,数电书一定一定必备,边看边学比较好。其余的书可以适量买点。 其实只要有兴趣,慢慢学,入门也不难,板子就去网购吧,我去华强北逛了好多次了,都没什么好板子。网购大把的! 总结几点 1、看代码,建模型 只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设计方法上的差异。在看到一段简单程序的时候应该想到是什么样的功能电路。 2、用数学思维来简化设计逻辑 学习FPGA不仅逻辑思维很重要,好的数学思维也能让你的设计化繁为简,所以啊,那些看见高数就头疼的童鞋需要重视一下这门课哦。举个简单的例子,比如有两个32bit的数据X[31:0]与Y[31:0]相乘。当然,无论Altera还是Xilinx都有现成的乘法器IP核可以调用,这也是最简单的方法,但是两个32bit的乘法器将耗费大量的资源。那么有没有节省资源,又不太复杂的方式来实现呢?我们可以稍做修改: 将X[31:0]拆成两部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],则X1左移16位后与X2相加可以得到X;同样将Y[31:0]拆成两部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],则Y1左移16位后与Y2相加可以得到Y;则X与Y的相乘可以转化为X1和X2 分别与Y1和Y2相乘,这样一个32bit*32bit的乘法运算转换成了四个16bit*16bit的乘法运算和三个32bit的加法运算。转换后的占用资源将会减少很多,有兴趣的童鞋,不妨综合一下看看,看看两者差多少。 3、时钟与触发器的关系 “时钟是时序电路的控制者”这句话太经典了,可以说是FPGA设计的圣言。FPGA的设计主要是以时序电路为主,因为组合逻辑电路再怎么复杂也变不出太多花样,理解起来也不没太多困难。但是时序电路就不同了,它的所有动作都是在时钟一拍一拍的节奏下转变触发,可以说时钟就是整个电路的控制者,控制不好,电路功能就会混乱。 打个比方,时钟就相当于人体的心脏,它每一次的跳动就是触发一个 CLK,向身体的各个器官供血,维持着机体的正常运作,每一个器官体统正常工作少不了组织细胞的构成,那么触发器就可以比作基本单元组织细胞。时序逻辑电路的时钟是控制时序逻辑电路状态转换的“发动机”,没有它时序逻辑电路就不能正常工作,因为时序逻辑电路主要是利用触发器存储电路的状态,而触发器状态变换需要时钟的上升或下降沿!由此可见时钟在时序电路中的核心作用! 最后简单说一下体会吧,归结起来就是多实践、多思考、多问。实践出真知,看100遍别人的方案不如自己去实践一下。实践的动力一方面来自兴趣,一方面来自压力,我个人觉得后者更重要。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。在实践的过程中要多思考,多想想问题出现的原因,问题解决后要多问几个为什么,这也是经验积累的过程,如果有写项目日志的习惯更好,把问题及原因、解决的办法都写进去。最后还要多问,遇到问题思索后还得不到解决就要问了,毕竟个人的力量是有限的,问同学同事、问搜索引擎、问网友都可以,一篇文章、朋友们的点拨都可能帮助自己快速解决问题。 为什么大量的人会觉得FPGA难学? 1、不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理 FPGA为什么是可以编程的?恐怕很多菜鸟不知道,他们也不想知道。因为他们觉得这是无关紧要的。他们潜意识的认为可编程嘛,肯定就是像写软件一样啦。软件编程的思想根深蒂固,看到Verilog或者VHDL就像看到C语言或者其它软件编程语言一样。一条条的读,一条条的分析。如果这些菜鸟们始终拒绝去了解为什么FPGA是可以编程的,不去了解FPGA的内部结构,要想学会FPGA 恐怕是天方夜谭。虽然现在EDA软件已经非常先进,像写软件那样照猫画虎也能综合出点东西,但也许只有天知道EDA软件最后综合出来的到底是什么。也许点个灯,跑个马还行。这样就是为什么很多菜鸟学了N久以后依然是一个菜鸟的原因。那么FPGA为什么是可以“编程”的呢?首先来了解一下什么叫“程”。启示 “程”只不过是一堆具有一定含义的01编码而已。 编程,其实就是编写这些01编码。只不过我们现在有了很多开发工具运算或者是其它操作。所以软件是一条一条的,通常都不是直接编写这些01编码,而是以高级语言的形式来编写,最后由开发工具转换为这种01编码而已。对于软件编程而言,处理器会有一个专门的译码电路逐条把这些01编码翻译为各种控制信号,然后控制其内部的电路完成一个个的读,因为软件的操作是一步一步完成的。而FPGA的可编程,本质也是依靠这些01编码实现其功能的改变,但不同的是FPGA之所以可以完成不同的功能,不是依靠像软件那样将01编码翻译出来再去控制一个运算电路,FPGA里面没有这些东西。 FPGA内部主要三块:可编程的逻辑单元、可编程的连线和可编程的IO模块。可编程的逻辑单元是什么?其基本结构某种存储器(SRAM、 FLASH等)制成的4输入或6输入1输出地“真值表”加上一个D触发器构成。任何一个4输入1输出组合逻辑电路,都有一张对应的“真值表”,同样的如果用这么一个存储器制成的4输入1输出地“真值表”,只需要修改其“真值表”内部值就可以等效出任意4输入1输出的组合逻辑。这些“真值表”内部值是什么?就是那些01编码而已。如果要实现时序逻辑电路怎么办?这不又D触发器嘛,任何的时序逻辑都可以转换为组合逻辑+D触发器来完成。但这毕竟只实现了4输入1输出的逻辑电路而已,通常逻辑电路的规模那是相当的大哦。 那怎么办呢?这个时候就需要用到可编程连线了。在这些连线上有很多用存储器控制的链接点,通过改写对应存储器的值就可以确定哪些线是连上的而哪些线是断开的。这就可以把很多可编程逻辑单元组合起来形成大型的逻辑电路。最后就是可编程的IO,这其实是FPGA作为芯片级使用必须要注意的。 任何芯片都必然有输入引脚和输出引脚。有可编程的IO可以任意的定义某个非专用引脚(FPGA中有专门的非用户可使用的测试、下载用引脚)为输入还是输出,还可以对IO的电平标准进行设置。总归一句话,FPGA之所以可编程是因为可以通过特殊的01代码制作成一张张 “真值表”,并将这些“真值表”组合起来以实现大规模的逻辑功能。 不了解FPGA内部结构,就不能明白最终代码如何变到FPGA里面去的。也就无法深入的了解如何能够充分运用FPGA。现在的FPGA,不单单是有前面讲的那三块,还有很多专用的硬件功能单元,如何利用好这些单元实现复杂的逻辑电路设计,是从菜鸟迈向高手的路上必须要克服的障碍。而这一切,还是必须先从了解FPGA内部逻辑及其工作原理做起。 2、错误理解HDL语言,怎么看都看不出硬件结构 HDL语言的英语全称是:Hardware Deion Language,注意这个单词Deion,而不是Design。老外为什么要用Deion这个词而不是Design呢?因为HDL确实不是用用来设计硬件的,而仅仅是用来描述硬件的。描述这个词精确地反映了HDL语言的本质,HDL语言不过是已知硬件电路的文本表现形式而已,只是将以后的电路用文本的形式描述出来而已。而在编写语言之前,硬件电路应该已经被设计出来了。语言只不过是将这种设计转化为文字表达形式而已。但是很多人就不理解了,既然硬件都已经被设计出来了,直接拿去制作部就完了,为什么还要转化为文字表达形式再通过EDA工具这些麻烦的流程呢?其实这就是很多菜鸟没有了解设计的抽象层次的问题,任何设计包括什么服装、机械、广告设计都有一个抽象层次的问题。就拿广告设计来说吧,最初的设计也许就是一个概念,设计出这个概念也是就是一个点子而已,离最终拍成广告还差得很远。 硬件设计也是有不同的抽象层次,每一个层次都需要设计。最高的抽象层次为算法级、然后依次是体系结构级、寄存器传输级、门级、物理版图级。使用HDL的好处在于我们已经设计好了一个寄存器传输级的电路,那么用HDL描述以后转化为文本的形式,剩下的向更低层次的转换就可以让EDA工具去做了,这就大大的降低了工作量。这就是可综合的概念,也就是说在对这一抽象层次上硬件单元进行描述可以被EDA工具理解并转化为底层的门级电路或其他结构的电路。 在FPGA设计中,就是在将这以抽象层级的意见描述成HDL语言,就可以通过FPGA开发软件转化为问题1中所述的FPGA内部逻辑功能实现形式。HDL也可以描述更高的抽象层级如算法级或者是体系结构级,但目前受限于EDA软件的发展,EDA软件还无法理解这么高的抽象层次,所以 HDL描述这样抽象层级是无法被转化为较低的抽象层级的,这也就是所谓的不可综合。所以在阅读或编写HDL语言,尤其是可综合的HDL,不应该看到的是语言本身,而是要看到语言背后所对应的硬件电路结构。如果看到的HDL始终是一条条的代码,那么这种人永远摆脱不了菜鸟的宿命。假如哪一天看到的代码不再是一行行的代码而是一块一块的硬件模块,那么恭喜脱离了菜鸟的级别,进入不那么菜的鸟级别。 3、FPGA本身不算什么,一切皆在FPGA之外,这一点恐怕也是很多学FPGA的菜鸟最难理解的地方 FPGA是给谁用的?很多学校解释为给学微电子专业或者集成电路设计专业的学生用的,其实这不过是很多学校受资金限制,买不起专业的集成电路设计工具而用FPGA工具替代而已。其实FPGA是给设计电子系统的工程师使用的。这些工程师通常是使用已有的芯片搭配在一起完成一个电子设备,如基站、机顶盒、视频监控设备等。当现有芯片无法满足系统的需求时,就需要用FPGA来快速的定义一个能用的芯片。 前面说了,FPGA里面无法就是一些“真值表”、触发器、各种连线以及一些硬件资源,电子系统工程师使用FPGA进行设计时无非就是考虑如何将这些以后资源组合起来实现一定的逻辑功能而已,而不必像IC设计工程师那样一直要关注到最后芯片是不是能够被制造出来。本质上和利用现有芯片组合成不同的电子系统没有区别,只是需要关注更底层的资源而已。要想把FPGA用起来还是简单的,因为无非就是那些资源,在理解了前面两点再搞个实验板,跑跑实验,做点简单的东西是可以的。而真正要把FPGA用好,那光懂点FPGA知识就远远不够了。因为最终要让FPGA里面的资源如何组合,实现何种功能才能满足系统的需要,那就需要懂得更多更广泛的知识。 目前FPGA的应用主要是三个方向: 第一个方向,也是传统方向主要用于通信设备的高速接口电路设计,这一方向主要是用FPGA处理高速接口的协议,并完成高速的数据收发和交换。这类应用通常要求采用具备高速收发接口的 FPGA,同时要求设计者懂得高速接口电路设计和高速数字电路板级设计,具备EMC/EMI设计知识,以及较好的模拟电路基础,需要解决在高速收发过程中产生的信号完整性问题。FPGA最初以及到目前最广的应用就是在通信领域,一方面通信领域需要高速的通信协议处理方式,另一方面通信协议随时在修改,非常不适合做成专门的芯片。因此能够灵活改变功能的FPGA就成为首选。到目前为止FPGA的一半以上的应用也是在通信行业。 第二个方向,可以称为数字信号处理方向或者数学计算方向,因为很大程度上这一方向已经大大超出了信号处理的范畴。例如早就在2006年就听说老美将FPGA用于金融数据分析,后来又见到有将FPGA用于医学数据分析的案例。在这一方向要求FPGA设计者有一定的数学功底,能够理解并改进较为复杂的数学算法,并利用FPGA内部的各种资源使之能够变为实际的运算电路。目前真正投入实用的还是在通信领域的无线信号处理、信道编解码以及图像信号处理等领域,其它领域的研究正在开展中,之所以没有大量实用的主要原因还是因为学金融的、学医学的不了解这玩意。不过最近发现欧美有很多电子工程、计算机类的博士转入到金融行业,开展金融信号处理,相信随着转入的人增加,FPGA在其它领域的数学计算功能会更好的发挥出来,而我也有意做一些这些方面的研究。不过国内学金融的、学医的恐怕连数学都很少用到,就不用说用FPGA来帮助他们完成数学_运算了,这个问题只有再议了。 第三个方向就是所谓的SOPC方向,其实严格意义上来说这个已经在FPGA设计的范畴之内,只不过是利用FPGA这个平台搭建的一个嵌入式系统的底层硬件环境,然后设计者主要是在上面进行嵌入式软件开发而已。设计对于FPGA本身的设计时相当少的。但如果涉及到需要在FPGA做专门的算法加速,实际上需要用到第二个方向的知识,而如果需要设计专用的接口电路则需要用到第一个方向的知识。就目前SOPC方向发展其实远不如第一和第二个方向,其主要原因是因为SOPC以FPGA为主,或者是在FPGA内部的资源实现一个“软”的处理器,或者是在FPGA内部嵌入一个处理器核。但大多数的嵌入式设计却是以软件为核心,以现有的硬件发展情况来看,多数情况下的接口都已经标准化,并不需要那么大的FPGA逻辑资源去设计太过复杂的接口。 而且就目前看来SOPC相关的开发工具还非常的不完善,以ARM为代表的各类嵌入式处理器开发工具却早已深入人心,大多数以ARM为核心的SOC芯片提供了大多数标准的接口,大量成系列的单片机/嵌入式处理器提供了相关行业所需要的硬件加速电路,需要专门定制硬件场合确实很少。 通常是在一些特种行业才会在这方面有非常迫切的需求。即使目前Xilinx将ARM的硬核加入到FPGA里面,相信目前的情况不会有太大改观,不要忘了很多老掉牙的8位单片机还在嵌入式领域混呢,嵌入式主要不是靠硬件的差异而更多的是靠软件的差异来体现价值的。 我曾经看好的是 cypress的Psoc这一想法。和SOPC系列不同,Psoc的思想史载SOC芯片里面去嵌入那么一小块FPGA,那这样其实可以满足嵌入式的那些微小的硬件接口差异,比如某个运用需要4个USB,而通常的处理器不会提供那么多,就可以用这么一块FPGA来提供多的USB接口。而另一种运用需要6个 UART,也可以用同样的方法完成。 对于嵌入式设计公司来说他们只需要备货一种芯片,就可以满足这些设计中各种微小的差异变化。其主要的差异化仍然是通过软件来完成。但目前cypress过于封闭,如果其采用ARM作为处理器内核,借助其完整的工具链。同时开放IP合作,让大量的第三方为它提供IP设计,其实是很有希望的。但目前cypress的日子怕不太好过,Psoc的思想也不知道何时能够发光。 4、数字逻辑知识是根本。无论是FPGA的哪个方向,都离不开数字逻辑知识的支撑。FPGA说白了是一种实现数字逻辑的方式而已。如果连最基本的数字逻辑的知识都有问题,学习FPGA的愿望只是空中楼阁而已。而这,恰恰是很多菜鸟最不愿意去面对的问题。数字逻辑是任何电子电气类专业的专业基础知识,也是必须要学好的一门课。很多人无非是学习了,考个试,完了。 如果不能将数字逻辑知识烂熟于心,养成良好的设计习惯,学FPGA到最后仍然是雾里看花水中望月,始终是一场空的。以上四条只是我目前总结菜鸟们在学习FPGA时所最容易跑偏的地方,FPGA的学习其实就像学习围棋一样,学会如何在棋盘上落子很容易,成为一位高手却是难上加难。要真成为李昌镐那样的神一般的选手,除了靠刻苦专研,恐怕还确实得要一点天赋。以上就是FPGA的一些学习方法,希望能给大家帮助。

    时间:2020-05-14 关键词: FPGA 电路 电压

  • FPGA与GPU类比分析

    FPGA与GPU类比分析

    什么是FPGA?他有什么作用?本文通过与GPU对比,来搞懂FPGA的一些难点,解答几个有关FPGA的常见问题——什么是FPGA、为什么我会需要FPGA、如何为FPGA编程?FPGA(现场可编程门阵列)是集成电路中的重要门类,与CPU、存储器、DSP并称为四大通用集成电路芯片,它属于半导体行业无法缺少的一块,而国内半导体正处在蓬勃的发展阶段,各类高科技公司需求旺盛。 FPGA 是一堆晶体管,你可以把它们连接(wire up)起来做出任何你想要的电路。它就像一个纳米级面包板。使用 FPGA 就像芯片流片,但是你只需要买这一张芯片就可以搭建不一样的设计,作为交换,你需要付出一些效率上的代价。 从字面上讲这种说法并不对,因为你并不需要重连(rewire)FPGA,它实际上是一个通过路由网络(routing network)连接的查找表 2D 网格,以及一些算术单元和内存。FPGA 可以模拟任意电路,但它们实际上只是在模仿,就像软件电路仿真器模拟电路一样。这个答案不恰当的地方在于,它过分简化了人们实际使用 FPGA 的方式。接下来的两个定义能更好地描述 FPGA。 电路模拟是 FPGA 的经典主流用例,这也是 FPGA很早出现的原因。FPGA 的关键在于硬件设计是用 HDL 形式编码的,而且买一些便宜的硬件就可以得到和 ASIC 相同的效果。当然,你不可能在 FPGA 和真正的芯片上使用完全相同的 Verilog 代码,但至少它们的抽象范围是一样的。 这是与 ASIC 原型设计不同的一个用例。和电路仿真不同,计算加速是 FPGA 的新兴用例。这也是微软成功加速搜索和深度神经网络的原因。而且关键的是,计算实例并不依赖于 FPGA 和真正 ASIC 之间的关系:开发人员针对基于 FPGA 的加速编写的 Verilog 代码不需要与用来流片的 Verilog 代码有任何的相似性。 这两种实例在编程、编译器和抽象方面存在巨大差异。我比较关注后者,我将其称为「计算 FPGA 编程」(computaTIonal FPGA programming)。我的论点是,目前计算 FPGA 的编程方法都借鉴了传统的电路仿真编程模型,这是不对的。如果你想开发 ASIC 原型的话,Verilog 和 VHDL 都是正确的选择。但如果目标是计算的话,我们可以也应该重新思考整个堆栈。 让我们开门见山地说吧。FPGA 是一类很特殊的硬件,它用来高效执行模拟电路描述的特殊软件。FPGA 配置需要一些底层软件——它是为了 ISA 编写的程序。 这里可以用 GPU 做类比。 在深度学习和区块链盛行之前,有一段时间 GPU 是用来处理图形的。在 21 世纪初,人们意识到他们在处理没有图形数据的计算密集型任务时,也会大量使用 GPU 作为加速器:GPU 设计师们已经构建了更通用的机器,3D 渲染只是其中一个应用而已。 FPGA的定义以及和GPU的类比 计算 FPGA 遵循了相同的轨迹。我们的想法是要多多使用这一时兴的硬件,当然不是为了电路仿真,而是利用适合电路执行的计算模式,用类比的形式来看 GPU 和 FPGA。 为了让 GPU 发展成今天的数据并行加速器,人们不得不重新定义 GPU 输入的概念。我们过去常常认为 GPU 接受奇特的、强烈的、特定领域的视觉效果描述。我们实现了 GPU 执行程序,从而解锁了它们真正的潜力。这样的实现让 GPU 的目标从单个应用域发展为整个计算域。 我认为计算 FPGA 正处于类似的转变中,现在还没有针对 FPGA 擅长的基本计算模式的简洁描述。但它和潜在的不规则并行性、数据重用以及大多数静态的数据流有关。 和 GPU 一样,FPGA 也需要能够体现这种计算模式的硬件抽象,Verilog 用于计算 FPGA 的问题在于它在低级硬件抽象中效果不好,在高级编程抽象中的效果也不好。让我们通过反证法想象一下,如果用 RTL(寄存器传输级)取代这些角色会是什么样。 甚至 RTL 专家可能也无法相信 Verilog 是可以高效开发主流 FPGA 的方式。它不会把编程逻辑推向主流。对于经验丰富的硬件黑客来说,RTL 设计似乎是友好而熟悉的,但它与软件语言之间的生产力差距是不可估量的。 事实上,对现在的计算 FPGA 来说,Verilog 实际上就是 ISA。主要的 FPGA 供应商工具链会将 Verilog 作为输入,而高级语言的编译器则将 Verilog 作为输出。供应商一般会对比特流格式保密,因此 Verilog 在抽象层次结构中会处于尽可能低的位置。 把 Verilog 当做 ISA 的问题是它和硬件之间的距离太远了。RTL 和 FPGA 硬件之间的抽象差距是巨大的,从传统角度讲它至少要包含合成、技术映射以及布局布线——每一个都是复杂而缓慢的过程。因此,FPGA 上 RTL 编程的编译/编辑/运行周期需要数小时或数天,更糟糕的是,这是一个无法预测的过程,工具链的深层堆栈可能会掩盖 RTL 中的改变,这可能会影响设计性能和能源特性。 好的 ISA 应该直接展示底层硬件未经修饰的真实情况。像汇编语言一样,它其实不需要很方便编程。但也像汇编语言一样,它的编译速度需要非常快,而且结果可预测。如果想要构建更高级的抽象和编译器,就需要一个不会出现意外的低级目标。而 RTL 不是这样的目标。 如果计算 FPGA 是特定类算法模式的加速器,那当前的 FPGA 并不能理想地实现这一目标。在这个游戏规则下能够击败 FPGA 的新硬件类型,才可能带来全新的抽象层次结构。新的软件栈应该摒弃 FPGA 在电路仿真方面的遗留问题,以及 RTL 抽象。以上就是FPGA的解析,希望能给大家帮助。

    时间:2020-05-13 关键词: FPGA GPU 单片机

  • 智原推出推出FIE3240 FPGA开发验证平台,加速ASIC前期开发

    智原推出推出FIE3240 FPGA开发验证平台,加速ASIC前期开发

    ASIC设计服务暨IP研发销售厂商智原科技(Faraday Technology Corporation,TWSE:3035)今日针对SoCreaTIve!™物联网SoC平台系列,推出 FIE3240 FPGA开发验证平台。FIE3240可编程平台具有高度的弹性与扩展性,并支持基于ARM Cortex-M处理器的SoC设计,满足架构复杂的AIoT芯片开发需求。 智原FIE3240平台支持业界标准扩充接口以整合DDR、USB、Ethernet、MIPI和LCD控制器等功能,且提供多电平I/O以直接连接各种周边组件,满足物联网多元的应用特性。此外,可透过USB Type-C接口的PCIe连接第二套SoCreaTIve! FIE3240或A500平台,达成扩充设计的需求。该SoC开发平台也整合IDE工具、SDK软件套件、安全启动(Secure Boot)等完备的软件支持,协助客户缩短开发时程、更专注于应用程序与算法开发。 智原科技研发资深副总经理陈健铭表示:「针对日益复杂的物联网芯片,智原全新的FIE3240软硬件设计平台可加速其系统验证与软件开发,进一步协助客户在物联网、人工智能边缘运算、穿戴装置、打印机和智能电表等领域中取得先机。」 Arm资深副总裁暨车用与物联网事业部总经理DipTI Vachani表示:「为了在快速变化的市场实现一万亿兆台装置连网的愿景,开发者需要经过证实、可规模化的解决方案,以便更迅速的实行。藉由采用此次智原新推出的FIE3240平台,其客户将可简化基于Cortex-M的SoC开发流程,更快的为市场带来低功耗运算的物联网应用。」

    时间:2020-05-12 关键词: FPGA 物联网 asic 智原科技

  • AI时代的FPGA你认为应该是什么样子的

    AI时代的FPGA你认为应该是什么样子的

    为什么当前的FPGA设备看起来像原来的电话系统,非常像工作人员使用电线和插头连接呼叫的交换机?Achronix认为现在是时候放弃Switch Blocks并采用新方法了。他们的目的是提高FPGA在机器学习应用中的适用性,这意味着它们具有更多类似ASIC的性能特征。然而,除了更新数据在芯片上的移动方式之外,还有很多其他改变。 Achronix已经确定了FPGA需要改进的三个方面,从而使它们成为实现机器学习应用程序的首选。当然,他们需要保持其标志性的灵活性和适应性。高效数据加速的三个架构要求是计算性能、数据移动和内存层次结构。Achronix退后一步,分别研究每个元素,以便重新创建在机器学习时代可以更好工作的FPGA。因此他们研究出来了新Speedster 7t。他们的目标是打破降低FPGA效率的历史瓶颈。他们将其称为FPGA +。 这些新芯片基于台积电的7nm节点,并进行了多项重要创新。就像我们所有的电话呼叫都采用分组技术进行路由一样,Achronix的Speedster 7t将使用二维阵列片上网络(NoC),在计算元件、存储器和接口之间移动数据。NoC由主从网络接入点(NAP)网格组成。每行或列的运行速度为256b @ 2.0Gbps,组合为512 Gbps。这使设备级带宽在20Tbps的范围内。 NoC支持特定的连接模式(AXI)、以太网数据包、无包数据流和FPGA内部连接的NAP to NAP。这样做的一个好处是,可以使用NoC将数据从PCIe预加载到内存中,不需要处理内核的干预。另一个优点是,网络结构消除了放置连接逻辑单元时的压力,这是造成堵塞和层次规划问题的主要原因。 NoC还允许Achronix Speedster 7t支持400G操作。Speedster 7t无需在724 MHz运行1000位总线,它可以支持4条并行256位总线,运行频率为506MHz,可以减轻吞吐量的压力。当需要进行深度标头检测时,这一点尤其有用。 对于外设接口,Achronix使用的方法是提供一个高度可扩展的SerDes,运行频率可以从1到112Gbps,以支持PCIe和以太网,每台设备上最多可以包含72个。对于以太网,它们可以运行4x 100Gbps或8x 50Gbps。还支持低速率的以太网连接以实现后向兼容。它们支持PCIe Gen5,每个端口高达512 Gbps,每个设备有两个端口。 当我们查看计算体系结构时,就会发现它们体系结构的真正优势。他们没有单独的DSP LUT和内存块,而是将它们组合成机器学习处理器(MLP)。这样可以立即释放FPGA路由上的带宽。这三个元素在机器学习应用程序中经常一起使用,因此将它们组合在一起对于它们的体系结构来说是一个很大的优势。 AI和ML算法都对数学精度有很高的要求。有时使用较大的浮点数精度,有时也会使用低精度整数,谷歌甚至有自己的Bfloat精度。为了适应这种多样性,Achronix开发了可分离的浮点数和整数MAC。对多种数字格式的支持提供了对MAC资源的高利用率。MLP还包括72Kbit RAM块、内存和操作数级联功能。 对于AI和ML应用程序,本地内存很重要,对系统RAM来说也是如此。Achronix决定在他们的Speedster 7t系列上使用GDDR6。可以实现更低的成本、更灵活的系统设计和极高的带宽。当然,DDR4也可以用于要求较低的存储需求。GDDR6的使用允许每个设计调整它们的内存需求,而不是依赖于与可编程设备配置在同一包中的内存。Speedster 7t支持多达8个设备,吞吐量为4 Tbps。 回过头来看,FPGA的这种演变就像老式的有线台式电话演变成高度连接和集成的通信设备一样。关键在于,这种创新水平将使最终产品能力出现不可预见的进步。根据Achronix Speedster 7t公告,他们的设计工具已经准备就绪。

    时间:2020-05-11 关键词: FPGA ml AI

  • 采用FPGA器件实现GPS数据加密系统中机载模块中DES IP的设计

    采用FPGA器件实现GPS数据加密系统中机载模块中DES IP的设计

    针对GPS测量系统数据传输过程中的安全问题,采用FPGA技术设计了GPS数据加密系统。系统移植MD5算法到NIOS中对系统口令加密,并设计DES IP对GPS数据加密。实验表明,该设计可有效防止GPS数据被非法窃取,具有安全性强、速度快、操作简便等特点。 随着网络通信技术的发展,数据传输对安全性的要求也随之加强。如何确保信息的正确认证与严格保密,保证数据信息在传输与处理过程中不被非法窃取和篡改,成为信息安全理论与技术研究的重要内容。多数情况下,数据加密是保证信息机密性的惟一方法。在GPS测量系统中,GPS定位数据以明文形式通过电台进行传输,可能会被同型号电台获取,存在一定的安全隐患。本设计应用FPGA技术设计了GPS数据加密系统,通过MD5加密算法对管理员口令进行加密;DES加密算法对GPS数据进行加密。这样,GPS数据经加密卡加密后再以密文方式发给电台进行传输,同时接收端必须使用密钥将密文解码才能得到定位数据,从而确保了数据传输的安全。 1 、系统组成及功能 GPS数据加密系统由机载模块和服务器端两部分组成,通过电台进行通信。其系统结构如图1所示。 1.1 机载模块 机载模块由4×4键盘、机载LCD、加密卡三部分组成,用户可通过4×4键盘发送预定义指令、更改密钥等操作;机载LCD用于显示系统工作状态、飞行参数等数据;加密卡为系统核心部件,主要有以下4个功能: (1)解析、处理GPS数据、检测设备工作状态并在LCD上显示相关信息; (2)接收GPS数据并通过加密卡对其加密,将密文通过电台传送到服务器端; (3)处理键盘或服务器端输入的预存指令编号或新指令,将指令发给GPS接收机并返回回馈信息; (4)更新键盘或服务器输入的新密钥或新管理员口令。新密钥先保存在FLASH中,再通过总线传给密钥寄存器;新口令保存在FLASH中。 系统工作时,加密卡通过UART IP获取GPS数据后同时传给NIOS和DES IP。NIOS解析GPS数据并经LCD CONtroller传给机载LCD进行实时显示,方便机上人员了解设备工作状态;DES IP将GPS数据加密后,通过I/O中断传给NIOS,NIOS将密文加入数据包头、尾字节后,再经电台传到服务器端。 1.2 服务器端 服务器端为通用计算机,其应用软件使用VC++6.0开发,服务器的主要功能有以下6点: (1)接收电台传来的密文并进行DES算法解密、解析和处理GPS数据; (2)显示GPS参数,并保存数据; (3)发送GPS接收机控制指令; (4)更改密钥; (5)更改管理员口令; (6)设置串口参数。 2 、数据加密算法的原理及应用 2.1 MD5算法的原理及应用 信息—摘要算法MD5(Message-DigeST Algorithm 5),在90年代初由Rivest设计发明,经MD2、MD3和MD4发展而来。其作用可使大容量信息在用数字签名软件签署私人密匙前,被“压缩”成一种保密的格式(对任意长度的信息,生成一个长度为128 bit的值)。 本设计将MD5算法移植到NIOS中,用于加密管理员口令。这样系统在并不知道管理员口令的明码情况下就可以确定口令的合法性,从而有效地防止了反编译等技术手段对管理员口令进行破解。系统工作时,NIOS预先将管理员口令加密后,将MD5值存储在FLASH中,当加密卡接收到更改密钥、更改口令或发GPS接收机控制指令等操作命令时,先将输入的口令计算成MD5值,然后与存储在FLASH中的MD5值进行比较,如果两值相同则说明口令正确,再进行相应的操作。 2.2 DES算法的原理及应用 DES(Data Encryption Standard)是一种分组乘积加密算法,是用64 bit的密钥对64 bit的明文加密,64 bit密钥中每8 bit有一奇偶校验位不参与运算,有效密钥只有56 bit。同时,它又是对称加密算法,其加密和解密运算过程完全相同,只是在迭代运算时子密钥的使用顺序不同。如图2所示,64 bit的明文块在经过初始IP置换后,被重新排列,然后进入16轮的迭代运算;每一轮迭代运算由一个f函数完成;最后一轮迭代的输出为64 bit,将其左半部分和右半部分互换产生预输出;预输出再与逆初始置换IP-1作用产生64 bit的密文,IP-1是IP的反变换。 采用软件方式实现的DES算法会在很大程度上占用系统资源,造成系统性能的严重下降,而DES算法本身并没有大量的复杂数学计算(如乘、带进位的加、模等运算),在加密、解密过程和密钥生成过程中仅有逻辑运算和查表运算。因而,无论是从系统性能还是加、解密速度的角度来看,采用硬件实现都是一个理想的方案。 图3为DES IP的硬件逻辑图,主要由状态控制器、子密钥生成器、DES算法运算器三部分组成。其中,状态控制器用于控制IP的工作状态、模式和标识完成状态;子密钥生成器将56 bit密钥分成两部分,每部分按循环移位次数表移位并按置换选择表置换,从而生成每一轮次运算的子密钥K(K1,K2,…,K48);DES算法运算器为整个IP的关键,它将64 bit中间数据分为左右两部分,分别记为Li和Ri。单个运算的过程可以写为下面的公式: (1)将Ri-1按照扩展换位表E扩展为48 bit的数据; (2)将扩展后的Ri-1与循环移位后的48 bit子密钥K(K1,K2,…,K48)“异或”; (3)将“异或”后的结果送入8个S盒(S box)进行替代运算,每个S盒都有6 bit输入、4 bit输出,并且8个S盒都不相同,48 bit的输入分为6位一组,分别送到8个S盒选择相应的输出,结果为32 bit; (4)S盒替代后的32 bit结果依照P盒(P box)进行置换,置换后结果即为f(Ri-1,Ki)的最终值,这样便完成了f函数的运算。 算法中用到的初始换位表IP、放大换位表E、替代函数表S、换位函数P、逆初始换位IP-1、密钥循环移位表可在参考文献中查到。本设计中,GPS数据的加密在加密卡中完成,解密在服务器端完成,为方便功能扩展,在加密卡中设计、保留了解密功能。 2.3 DES算法仿真验证 本设计的DES IP采用ALTERA公司的Quartus 7.0软件开发及Verilog HDL语言编写,整个加密卡在单片Cyclone系列EP1C6Q240C8N芯片上实现。图4为Quartus 7.0开发软件下DES IP的仿真图。 各仿真信号的意义及说明如下: 时钟信号(clk):周期为10 ns、占空比为50%; 复位信号(reset_n):低电平有效,置高; 模式信号(mode):加密/解密选择,‘1’为加密,‘0’为解密; 加载信号(load):高电平有效,置高; 加密数据(des_in):8000 0000 0000 0000; 密钥信号(key):0000 0000 0000 0000; 加密结果(des_out):95F8 A5E5 DD31 D900; 加密完成信号(ready) :在第17个周期后置高。 DES IP工作时,“密钥”保存在总线接口的密钥寄存器中,“加密数据”由NIOS输入,加密完成后,通过“加密完成信号”产生的I/O中断传回给NIOS。图4中,其加密结果与XILINX公司网站上设计参考中给出的数据一致,表明DES IP设计正确。 本设计采用FPGA技术设计了GPS数据加密系统,重点介绍了机载模块中DES IP的设计。实验发现,采用NIOS进行DES算法软件加密时速度慢,会出现间隔丢失GPS数据的现象,而采用硬件DES IP进行加密处理时,完全可以满足GPS接收机的速度需要,不会出现丢点现象。系统采用MD5算法对管理员口令进行加密,进一步增强了系统的安全性,因此本设计对解决该GPS测量系统安全性方面有较大的现实意义和实用价值。

    时间:2020-05-08 关键词: GPS FPGA 服务器

  • 实现带CPCI接口模块的AFDX终端通讯系统的设计

    实现带CPCI接口模块的AFDX终端通讯系统的设计

    1 、引言 本文在研究航空全双工交换式以太网(Avionics Full Duplex Switched Ethernet,AFDX)实时传输协议的基础上,分析了基于CPCI接口的双冗余AFDX终端测试系统通讯模块的设计原理,重点介绍了支持热插拔的CPCI接口电源电路分析、FPGA与PCI9030接口模块时序分析和在Windriver软件环境下的驱动程序的开发,为AFDX上位机底层驱动接口的开发和软件界面的开发以及AFDX交换机的研发打下了良好的基础。 2、 AFDX终端系统模块设计 本文设计的AFDX终端通讯系统包括FPGA控制模块、PCI接口模块、双冗余PHY模块。为了设计高可靠性的AFDX终端系统,设计了2个独立的双冗余交换网络,从而保证系统的可靠性信息传输。系统硬件架构如图1所示。 系统硬件架构图 2.1 CPCI接口模块 CPCI接口模块由2个部分组成,第一部分主要实现PCI总线协议功能,实现FPGA与上位机进行数据的通信;第二部分主要实现从CPCI接口采电,并在板上进行电源管理,对整个板卡实现支持热插拔的电源供应。 2.2 FPGA控制模块 FPGA控制模块是整个板卡的控制核心,它包含了AFDX协议栈的IP硬核,实现了AFDX协议栈特有的,如流量整形、虚拟链路调度、完整性检查、冗余管理、以太网MAC层硬件实现等功能以及其它如与PCI9056通信、内部数据的缓存管理等功能。支持10/100Mbps标准的航空实时以太网数据的可靠性传输。 以数据下传为例介绍FPGA控制模块的工作流程:首先在PC机上运行上层测试软件,通过它来设置发送通道的相应参数,该信息通过CPCI接口传送至可编程芯片,可编程芯片内的处理器单元根据PC机下传的参数来设置发送通道的相关寄存器参数,同时该消息经过流量整形模块,进行规划化处理,使其输出的数据帧是规整的、没有时延抖动的。来自流量整形模块的数据帧由虚拟调度模块添加序列号(SN)后,发往冗余管理模块。冗余管理模块将需要发送消息复制发送到2个独立的冗余MAC链路层中。 MAC模块对数据帧添加帧序列校验,发往PHY模块。PHY层模块将可编程芯片内的MAC层的数据帧进行电平转换后传送至其他标准航空以太网PHY设备中。 2.3 双冗余PHY物理接口 双冗余的PHY模块实现以太网物理层的接口功能,实现AFDX航空以太网的可靠性传输,FPGA内部的航空以太网MAC层通过MII接口与PHY连接,完成数据流的通信。MII (Media IndependentInterface 介质无关接口) 接口,即媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY.本设计中采用的是双PHY芯片共用一个25MHz的外部晶振提供工作时钟,这样可以保证双冗余的PHY完全工作同步。 3 、CPCI接口电源电路分析 热插拔功能主要用于CPCI设备,热插拔功能允许板卡随意从设备中插拔而不影响设备操作系统的正常运行。如图2所示,LTC1643L是一个允许CPCI型设备进行安全插入和拔出的电源管理控制器,将系统的CPCI插槽电源接入到AFDX板卡,图中IRF7413是一个N型MOS管,用于控制3.3V和5V的电源供应,而-12V和+12V电源由片上开关供应,所有的电压的上升时间可以达到一个可编程的速率,同时还有电源过流故障时的短路保护。 CPCI接口电源管理模块 PCI9030的引脚BD_SEL#是CPCI接口中最小的插针之一,BD_SEL#连接LTC1643L的使能引脚,低电平时有效开启LTC1643L工作并同时给板卡供电。R10是一个0.018欧姆,0.5W,精度为1%的精密电阻,用于过流保护的电压检测电阻。当板卡发生故障导致电流超过额定值之后,R10两端的压差将增大,SENSE引脚将此过流信息反馈至LTC1643L电源管理器,同时切断电源供应,起到电源过流保护的功能。 4 、FPGA与PCI9030接口模块时序分析 在PCI9030与本地FPGA之间的通信分为直接主模式(Direct Master Mode)、直接从模式(Direct Slave Mode)和DMA模式。由于PCI通信要AFDX网络的10M/100M通讯速率,这里采用直接从模式,工作时序如图3所示,PCI9030为主,FPGA为从。LHOLD为输出,声明使用本地地址数据总线,LHOLDA为本地总线申请使用成功的返回信号。LBE[3:0]#为本地总线使能控制引脚,这里选择32位宽的数据总线。LA[31:2]为地址总线,在本地总线申请使用成功信号返回且本地总线位宽使能有效后,开始输出地址信号。ADS#为起始信号,表明地址总线有效且开始一个有效的总线访问,同时一个周期后就可以读数据或者写数据了,LW/R#低电平为读高电平为写。为了与PCI9030进行高效的数据通信,FPGA里面必须有相应的本地数据通信接口。 PCI9030本地连接读写时序 5 、WinDriver软件的驱动生产 通过PLXMON软件对PCI9056的配置芯片进行配置后,可以利用Windows操作系统中WinDriver自动生成PCI驱动程序,步骤如下:首先启动WinDriver Wizard,从开始菜单,选择“程序 | WinDriver | Driver Wizard”;然后在Driver Wizard 菜单,单击“File | New Project”菜单来新建一个工程,从即插即用列表中选择显示卡,通过生产商的名字来选定。单击“Memory”标签。该显示卡的三个内存范围显示出来。内存范围中的BAR2映射的是FPGA内的RAM缓存块和专用寄存器,根据FPGA内核对这些缓存块和寄存器的可读写定义,可以在BAR2映射的区域里进行读写,若写进去的数值跟读出来的数值一致,表面CPCI接口通信正常。最后一步为生成驱动代码:单击“Build | Generate code”菜单, Driver Wizard 将产生操作硬件资源的函数,可以在用户模式下在应用程序中直接使用这些函数,这个向导还会产生一个样本程序来使用这些函数操作硬件,上层界面的开发可以直接调用这些API函数。 6 、总结 本论文中设计的带有CPCI接口的AFDX终端板卡通讯模块的设计,充分利用PCI总线传输速度快和CPCI接口支持热插拔的特点,使得设计能满足双冗余AFDX的高速数据传输,使用方便和设备体积相对较小,便于携带,该板卡已经实现AFDX通信协议并批量生产销售。此论文的研究为AFDX网络交换机的研发打下了良好的基础。

    时间:2020-05-07 关键词: FPGA cpci 电源模块

  • 贸泽备货Microchip Hello FPGA套件,简化AI与图像处理应用的FPGA开发工作

    贸泽备货Microchip Hello FPGA套件,简化AI与图像处理应用的FPGA开发工作

    2020年5月6日 – 专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开始备货Microchip Technology的Hello FPGA套件。此套件是一个入门级平台,专为在现场可编程门阵列 (FPGA) 领域经验不足的终端用户而开发。Hello FPGA套件支持人工智能 (AI) 和数字信号处理原型开发,其电源监控GUI让开发人员能在设计时测量FPGA内核功耗。此套件适合于开发各种解决方案,包括通信、工业、航空、医疗以及国防等应用。 贸泽备货的Microchip Hello FPGA套件配备有FPGA主板、相机传感器板、LCD板以及所需的USB电缆。FPGA主板采用SmartFusion®2片上系统 (SoC) FPGA。低功耗SmartFusion2器件结合了FPGA架构与166-MHz Arm® Cortex®-M3微控制器子系统,该子系统具有256KB嵌入式闪存、丰富的外设、指令高速缓存以及嵌入式跟踪宏单元。 FPGA主板搭载了Microchip PIC32MX7微控制器 ,用于控制SmartFusion2 SoC、监控电源等。此外,该主板还具有Arduino和Mikroe mikroBUS连接器,可提高原型设计和扩展的灵活性。此套件可作为独立单元使用,也可通过PICkit™接头扩展现有Microchip套件。

    时间:2020-05-06 关键词: FPGA AI 图像处理

  • 工业4.0时代需要的是怎样的网络

    工业4.0时代需要的是怎样的网络

    以太网在计算机与自动化网络领域中同样是一种可靠的有线传输方案。这种开放的协议标准允许终端能够快速便捷地连接,并且能够快捷地在相对便宜的硬件设备中交换数据。然而,以太网最初的设计并不是为了满足自动化技术的要求,尤其是在保证实时性通信方面。因此,自动化中各种总线系统在顶层设计实现专有的实时性协议时,对以太网的物理层进行了创新。这些系统通常会导致网络基础架构的独占使用以及对供应商的依赖性。 目前,对于时效性和非时效性网络数据,一般都是分开单独来处理的,以消除相互的负面干扰。在未来,工业4.0应用将需要越来越通用的以太网网络,如果用传统的方法来实现满足上述功能需求的通用以太网网络,付出的代价会非常大,因此,时效性网络旨在提出一种方案来解决现有的问题。 实时通信 对时间周期以及周期的波动性的严格控制,包括传输过程中的控制和输送技术领域,是自动化领域一系列应用中的先决条件。这些应用领域所需的数据传输时间明显小于1 ms,除了这些需要“硬”实时功能的应用之外,其他应用(如过程自动化)可在较长的时间周期中实现“软”实时功能,不过,这些应用也需要严格的时序控制。各种实时通信方法,如EtherCat(以太网控制自动化技术)或Profinet 技术中的IRT,都是专门为严格控制时间序列而开发的。虽然它们都是基于传统的以太网技术来开发的,但它们彼此不兼容,这种不兼容性导致了网络碎片化。 为什么选择时效性网络? 在大多数情况下,包括自动化行业(如制造业)在内的传统以太网网络的工作是基于将信息技术(IT)与运营技术(OT)分开的高级自动化金字塔。信息技术(IT)包括典型的终端设备(如打印机和个人计算机)的经典办公通信场景。运营技术(OT)是由系统、机器和软件组成的,用于处理过程控制和自动化的技术。这两个领域从根本上决定了它们通信方式的不同,信息技术(IT)依赖于带宽,而运营技术(OT)则更聚焦于实用性(如图1所示)。因此,信息技术(IT)层面的数据流通常被标记为非关键类别,而数据流在OT层面被特指为(时间)关键类别。最终,每个层级的数据流都有一个特定的通信标准。虽然具有TCP / IP协议的以太网总线系统在IT领域上占了绝对的主导地位,但各种需要保证延迟时间满足特定需求的总线系统(比如现场总线系统)也广泛应用于运营技术(OT)领域。因此,每个供应商通常都会推广一个特定的现场总线系统。对于用户来说,这意味着选择控制器基本上也就决定了总线的规格。因此,终端用户通常的选择通常受制于制造商,因为不同的总线系统彼此间不兼容。 最初,信息技术(IT)与运营技术(OT)之间几乎没有任何联系。今天,数据的连续传输是数字化时代所有形态和以及规模的企业所必备基本需求。持续稳定的通信对于云端的数据获取,远程访问或设备连接等要求的满足至关重要。未来将更加重视普世的以及协议统一的网络。在工业4.0以及物联网(IOT)背景下描述或者已经实施的基于建立灵活,智能制造的工业互联网的计划已经进入了一个重组的阶段。包括组件,设备以及工厂在内的智能制造环节之间互相进行不间断地数据共享,以便于用自动化地方式优化智能制造地各个环节。同时,这些变化也已经对建立的自动化模型产生了深远的影响。 图1 自动化领域金字塔转换架构 由于整合的优势,传统的自动化领域正在转型为一个广义上的网络,这些网络能够直接和更高级别的传感器直接连接与控制。现场和控制层面的分离正在逐渐消解,因此一个统一的并且相互关联的网络至关重要,这个网络中的关键数据流可以与非关键数据流同时传输并且不会产生影响彼此的消极反应。因此,现有的以太网必须要做出相应的改变以适应现在的网络需求。旨在通过共享以太网基础设施实现融合关键和非关键数据流的以太网子标准目前正在制定和改进的过程中。 时效性网络相比于传统以太网的优势包括:(1)保证整个网络中实时关键数据的延迟时间;(2)通过融合网络能够将关键和非关键数据流同时传输;(3)更高级的协议层可以共享通用网络基础设施;(4)在运营技术(OT)领域之外也能够实时进行控制;(5)不依赖于供应商。 什么是时效性网络? 时效性网络是在IEEE 802.1 TSN任务组中一系列以太网子标准定义组成的。TSN通过扩展和调整现有的以太网标准,致力于实现在信息技术(IT)和工业运行技术(OT)之间的融合。 时效性网络技术旨在对开放式系统互连(Open System Interconnection)第二层协议进行规范化与标准化,以便不同的协议可以在相同的基础架构上运行。这项技术的难点在于如何配置关键和非关键数据流,使其既不影响实时性,也不影响性能。 核心要素 所有网络设备都具有相同的参考时钟,这是必不可少的先决条件。网络中所有交换机和终端都必须是时间同步的。通过有选择地使用两种不同的方法来改善这些功能(如表1所列)。 表1 时效性网络标准一览 除了通用的IEEE 1588规范之外,时效性网络任务组还采用了一个特殊的配置文件,规定了IEEE 1588与IEEE 802.1Q结合使用的规范。这个配置文件的目的是将不需要1588-2008标准全部功能的协议加速应用到具体场景中。由于这个配置文件不能满足所有自动化要求,因此需要重新设计,现在经过改进的标准被称为IEEE 802.1AS-rev。 第二个核心功能是利用融合网络处理关键和非关键数据流的传输。关键数据流必须保证在预定时间内传输,而非关键数据流通常优先级较低。根据IEEE 802.1Q已经建立的8个数据流类别用来考虑各种数据流的优先级。但是,服务质量(QoS)的标准定义并不能实现关键和非关键数据流的并行传输。由于以太网交换机中的缓冲机制,尽管传输路径中的数据流有最高优先级,低优先级以太网数据仍然可能导致延迟,因此,我们引入新的优先权机制来改善和调节之前模式存在的问题。另外,数据形式可以根据应用的需求来重新塑造或者改善调度机制,下面具体阐述其中的两种机制。 IEEE 802.1Qav — 基于可信因子的整形算法 该标准定义了一种数据流算法,该算法对于满足实时要求的数据流的优先级比最高优先级的数据流优先级更高。基于可信因子的整形算法(CBS)由IEEE 802.1工作组于2009年开发,用于时效性网络(TSN)音频/视频桥接(AVB)的预研技术。整形器给数据流分配置信因子,只要可信因子保持在置信区间范围内,就发送具有保留带宽的数据包。在传输过程中,可信因子在不断消耗,直至下降到置信区间之外,才停止数据包的发送。一旦在传输过程中可信因子降至置信区间之外,则相邻的最优级别的数据包将会接替传输任务。如果这种方法对具有保留带宽的数据包的传输产生了延迟,则可以相应地增加可信因子的值来实现在最优级别的数据包发送完成后,能够连续发送最高优先级的以太网数据帧。 IEEE 802.1Qbv — 时间感知调度系统 调度系统的最基本功能是创建相等的离散时间片(时间周期),这些时间片段或时隙用来分配给不同类别的数据。时间感知形成器为不同类别的数据流提供了一个固定的时间表,以实现对网络中数据流的预开始和到达时间的估计。这种策略使得系统遵守定义的传输时间的同时,同步多个数据流的功能实现成为可能。由于调度系统需要保持同步,因此所有网络参与者都知道何时以及哪个优先级的数据包将被传输与处理。 除了时间同步和各种数据流整形和调度机制之外,其他子标准已经或正在制定中,这些不同的标准更像是一系列差异化的解决方案,而不是一个一体化解决方案。通过不同的模块组合来满足某些应用场景的要求,从而可以使时效性网络(TSN)适应每个特定的应用场景。 弗劳恩霍夫光子微系统研究所(IPMS)的IP核目前已实现IEEE 802.1Qbv、IEEE 802.1AS、IEEE 802.1Qav和实时媒体访问控制(MAC)的功能。 基于FPGA的TSN_IP核 由于时效性网络功能的广泛性,可以通过可编程门阵列(FPGA)实现系统功能的集成,与和许多功能确定的集成电路(IC)相比,FPGA可以通过灵活的编程实现系统功能的变化,配置逻辑门阵列(门阵列)可以实现复杂的数字功能。FPGA与IC相比,其优势包括如下:•开发成本显着降低;•系统功能实现的时间更短;•灵活的可扩展性和可编程性。 由于某些时效性网络(TSN)的标准目前仍在修订和制定中,因此可扩展性和可重复编程性仍然是功能实现的关键因素。 总结和展望 通过不同的方法实现对不同实时性要求的功能。时效性网络(TSN)为满足这些要求奠定了坚实的基础,同时也为实现各种延迟、抖动和可靠性要求提供了较大的动态范围。虽然标准制定过程尚未完成,各种标准的实施仍在进行中,但核心功能已经可以集成到产品中,并且可以通过相应的IP核服务支持后续的功能完善或升级。当基础设施内的所有组件和设备都兼容时效性网络(TSN)时,时效性网络(TSN)将充分发挥其潜力。许多工业设备和交换器制造商正在努力制造与时效性网络(TSN)兼容的产品。在 “接插集会”期间,所有制造商的产品都需要经过符合标准的互操作性测试,弗劳恩霍夫光子微系统研究所(IPMS)目前正在工业互联网联盟(IIC)和工业4.0网络实验室(LNI)插头测试中测试自己的TSN_CTRL IP核功能。

    时间:2020-05-03 关键词: 网络 互联网 FPGA

  • 片上网络(NoC)技术的发展及其给高端FPGA带来的优势

    片上网络(NoC)技术的发展及其给高端FPGA带来的优势

    1. 概述 在摩尔定律的推动下,集成电路工艺取得了高速发展,单位面积上的晶体管数量不断增加。片上系统(System-on-Chip,SoC)具有集成度高、功耗低、成本低等优势,已经成为大规模集成电路系统设计的主流方向,解决了通信、图像、计算、消费电子等领域的众多挑战性的难题。 随着片上系统SoC的应用需求越来越丰富,SoC需要集成越来越多的不同应用的IP(Intellectual Property)。另外,片上多核系统MPSoC(MultiProcessor-System-on-Chip)也已经成为必然的发展趋势。 随着SoC的高度集成以及MPSoC的高速发展,对片上通信提出了更高的要求。片上网络技术(Network-on-Chip,NoC)在这个时候也得到了极大的应用,它本质上就是提供一种解决芯片内不同IP或者不同核心之间数据传输的片上通信方案。 片上网络技术从发明至今已有20多年的历史,在SoC中已经有了广泛的应用。针对片上网络高带宽、低延迟的特性,主流FPGA公司也开始考虑将NoC用于高端FPGA中来解决数据传输的高带宽需求。Achronix的新一代7nm工艺的Speedster 7t便是最早集成了NoC的高端FPGA之一。如图1所示。 图1 Speedster 7t FPGA结构图 2. 片上互连架构的发展 片上互联架构的发展主要经历了三个阶段:共享总线(Bus)、Crossbar以及片上网络(NoC)。 (1) 传统的SoC片上通信结构一般采用共享总线的方式。在共享总线结构中,所有的处理器和IP模块共享一条或多条总线。当有多个处理器同时访问一条总线时候需要有仲裁机制来决定总线的所有权。共享总线片上通信系统结构一般比较简单,且硬件代价也小。但是带宽有限,而且带宽也没法随着IP的增多而进行扩展。1996年,ARM公司提出的AMBA总线广泛应用于嵌入式微处理器的片上总线,现在已经成为事实上的工业标准。 图2 典型的AMBA总线系统 (2) 对于传统的共享总线,当多个处理器同时去访问不同的IP的时候,因为需要仲裁机制去决定总线的所有权,所以传统的总线方式在这种情况下就会造成一定的瓶颈,最大的问题就是访问的延时。在这种情况下,为了满足多处理同时访问的需求同时提高整个系统的带宽,一种新的解决方案Crossbar孕育而生,如图3所示一个典型的Crossbar结构。 Crossbar保证了多路通信同时进行的实时性,只要不是访问同一个目标设备,就不需要用到仲裁,大大减少了因为仲裁带来的瓶颈问题。但是随着设备数的增加,Crossbar的规模会以几何级数增长。所以通常我们通过桥接设备去级联多个Crossbar来支持设备的扩展。但是桥接设备可能会成为系统的瓶颈,增加传输的延迟。 图3 典型的单向8x8 Crossbar 实际应用中,我们通常也会采用Crossbar和共享总线相结合的方式,用桥接器将Crossbar网络和共享总线网络连接起来,如图4所示一个典型的混合型拓扑结构。 图4 典型的混合拓扑网络 (3) 片上网络NoC带来了一种全新的片上通信方法,显著优于传统的总线式和Crossbar的性能。NoC是一种可扩展性更好的设计。在NoC架构中,每一个模块都连接到片上路由器,模块传输的数据则是形成了一个个数据包,通过路由器去送达数据包的目标模块。如图5所示是一个典型的NoC结构,图中的R表示Router, 所有的Router可以是同步,但每个Router所连接的PE(Processing Element)与Router异步,自成一个时钟域(Clock Domain)。所以基于NoC的系统能更好地适应在复杂多核SoC设计中使用的全局异步局部同步时钟机制。另外,NoC可以支持各种扩展功能,比如流量控制(flow control)、服务质量(QoS)等等。 因此,NoC是多核系统的最佳互联机制。 图5 典型的片上网络NoC结构 3. NoC在高端FPGA的应用 FPGA在日益增长的数据加速需求上正在发挥越来越重要的作用。为了满足云计算和边缘计算中各种高性能应用的需求,FPGA作为一种可编程可定制化的高性能的器件逐步成为一条部署高吞吐量数据加速的快捷途径。但同时这些高性能的加速应用也对高端FPGA提出了更高的要求,高算力、高带宽的数据传输以及高带宽的存储器。 片上网络技术已经比较广泛的用于SoC中,并取得了比较好的效果。近年来才慢慢用于FPGA中,Achronix创建了一种可最大限度地提高系统吞吐量的Speedster 7t FPGA芯片,创新地将二维片上网络(2D NoC)运用到了FPGA中,可以在逻辑阵列内的处理单元与各种片上高速接口和存储器接口之间高速地传输数据,真正实现了数据密集型应用吞吐量的最大化。有了片上网络的FPGA如虎添翼,带来了传统FPGA所不及的很多优势,势必在各种数据加速应用中发挥巨大的作用。 4. NoC给Speedster 7t FPGA带来的优势 Achronix Speedster 7t FPGA拥有支持单通道速率112Gbps的SerDes、400G以太网MAC、PCIe GEN5控制器以及带宽高达4Tbps带宽的GDDR6控制器,为各种数据加速应用提供了高带宽的I/O接口和高带宽的存储器。在这类应用中,会有大量的数据进入FPGA进行处理,处理后的数据会通过FPGA输出,所以除了FPGA算力以外,数据移动速度直接决定了器件的性能以及用户的体验。为了提高数据传输速率,Achronix在Speedster 7t FPGA中专门设计了不同于传统FPGA数据移动通道的片上网络。如图6所示。这是一个可横跨和垂直跨越FPGA逻辑阵列的创新性的、高带宽的二维片上网络(2D NoC),它不仅可以连接到所有FPGA高速接口、高带宽存储器接口,还可以作为内部逻辑之间的互连。 图6 Speedster 7t片上网络(NoC)结构 Speedster 7t FPGA上的二维片上网络(2D NoC)不是由可编程逻辑搭建,而是固化的ASIC逻辑实现,固定运行频率为2GHz,每一行或者每一列的NoC都可以作为两个单向256位实现双向的通路,所以每个方向可提供512Gbps的带宽,整个网络总带宽则能达到27Tbps。 下面的表格列出了Speedster 7t FPGA中NoC的特性。 表1 Speedster 7t FPGA中NoC特性 NoC为FPGA提供了以下几项重要优势: (1) 大幅提高设计性能,解决一些高性能应用如400G以太网的性能瓶颈:通常在数据流经过400G以太网MAC解包以后会是一个超高位宽且需要运行在很高频率的处理,这在传统FPGA逻辑单元里面是无法实现的,而NoC就能解决性能瓶颈。我们会在后续文章具体说明。 (2) NoC是在传统可编程逻辑之外额外增加的走线资源,所以在高资源占用设计中可以降低布局布线拥塞的风险。 (3) NoC包含了异步时钟转换,仲裁控制等逻辑,可以去替代传统的逻辑去做高速接口和总线管理等,所以利用NoC可以简化用户设计节省一部分传统资源(LE、FIFO和布线等)的使用。 (4) NoC部分是ASIC固化逻辑,功耗比传统的FPGA可编程逻辑实现要低很多。 (5) 利用NoC可以实现真正的模块化设计。传统高端FPGA设计通常是需要一个FPGA工程师团队来完成,每个工程师设计自己模块,在FPGA整个芯片里调试验证自己模块,然后再把各个模块连接成更大的完整设计,这时候会由于资源占用上升,通常需要花很多时间去优化布局甚至去修改设计以达到目标性能。而在Achronix Speedster7t 中可以让模块之间通过NOC互联,再借助对于单个模块功能性能调试完成后固定布局技术,甚至可以达到NoC互联后整体设计不需要额外联调的可能。这样可以大幅减少研发工作量和时间。 后面我们会继续深入了解Speedster 7t FPGA上的二维片上网络(2D NoC),并且会用一些具体的设计来讲解如何在Speedster 7t FPGA上使用NoC以及NoC给FPGA设计带来的好处,敬请期待。 如需更多信息或者有任何疑问您可以通过Achronix公众号里联系方式联系我们,也可访问Achronix公司官方网站 。

    时间:2020-04-30 关键词: FPGA 片上网络 noc

  • 工控技术中FPGA的应用将会显得越来越重要

    工控技术中FPGA的应用将会显得越来越重要

    (文章来源:林契于宸) 随着科技的进展,生产机台走向更高度的自动化,对工控技术以及产品在不断有新的要求。工控技术升级已是大势所趋。 Altera亚太区市场开发经理江允贵表示,工业控制技术趋势包括非中心化的架构、功能整合的小型化设计、实时同步的链接性、多轴向运作的精密控制、功能性安全的提升,以及对特殊应用的弹性平台支持等。 江允贵说:“更高度的功能整合能让设计更单纯、成本降低,也有助缩小产品尺寸,因而成为工控设备的大势所趋。在此情况下,离散型的系统设计已不符需求,高整合度的SoC、ASIC,甚至是兼具弹性和整合性的FPGASoC,才能展现设计优势。” 受惠于工业控制开始走向自动化,拥有弹性设计特性的FPGA也已广泛应用到工控系统的各个环节当中。Lattice资深应用工程师陈泓志表示,在工控嵌入式系统的应用上,FPGA的可程序化逻辑特性,让它比其他ASIC或SoC有更大的设计弹性。 Freescale市场营销暨业务发展经理JacksonLiu指出:“FPGA是处理并行运算的理想选择,因为FPGA是直接使用硬件来实现算法,可以提供相当低的延迟。另外,将FPGA结合到运算架构中也同时提高了嵌入式系统的灵活性。” 这几十年来,可程序逻辑控制器(ProgrammableLogicController;PLC)一直都是工厂自动化和工业程控组成的一部分。从简单的照明功能到环境系统、再到化学加工等各种应用领域,皆离不开PLC控制。 PLC的技术不断进化,已从原先只有电路逻辑控制的功能,逐步加入时序控制、模拟控制、多机通信等更多功能,甚至出现整合工业计算机(采用嵌入式操作系统)与PLC架构的PC-BASE控制器,能透过数字或模拟输入/输出模块控制机器设备、制造处理流程、及其它控制模块的电子系统。 对于PLC控制器的基本要求是必须够灵活并可配置,以满足不同工厂和应用的需求。但这已不够,郭嘉豪表示,新世代的工业控制系统对PLC提出了更为艰辛的任务要求,不仅希望能够更具高效能、体积更小和更高功能灵活性,以及内建保护功能,还要能防止潜在的破坏性静电放电(ESD)、电磁干扰和射频干扰(RFI/EMI),以及恶劣的工业环境中常见的大幅值瞬态脉冲。      

    时间:2020-04-30 关键词: FPGA 工业控制

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站

更多

项目外包