FPGA

基于FPGA的SCL译码算法优化与设计

作者:廖海鹏,卿粼波,滕奇志,何小海,邓媛媛,来源:2018年电子技术应用第12期

摘要: 由于极化码被指出在二进制离散无记忆信道中具有实现其极限容量的理论性能,近年来极化码在通信领域的贡献日渐凸显。极化码的译码系统可采用软件或者硬件方式实现,其中使用软件方式时译码效率受限于CPU的串行处理模式,因此在具有并行工作模式的FPGA上进行极化码的译码实现对于通信系统来说具有非常大的意义。首先介绍了极化码的SCL译码算法;然后针对该算法进行优化从而提高译码效率,以及针对该算法在FPGA上的实现进行了定点量化的改进;最后对译码器进行硬件仿真,以及在FPGA上进行了实现与性能分析。实验结果表明该译码器在码长为512时译码最高频率为143.988 MHz,吞吐率为28.79 Mb/s。

0 引言

作者:四月,机器之能

他们自诩为“搭积木的人”——“FPGA是乐高积木,用最少的积木搭建出整个高楼大厦——这就是我们的能力。”

在大多数芯片从业者看来,因为批量开发难度大和成本过高,FPGA一直作为“技术验证者”的配角存在。但雪湖团队试图打破这一观念,他们希望凭借多年的开发经验积累和自研开发工具将FPGA芯片推向人工智能舞台的中央。

“我们不是一家卖Know-how、卖算法的公司,甚至可以说我们不是一家AI芯片公司。我们把自己定义成一家异构计算公司”——这是张强为雪湖写下的注脚。

6月底的一个夜晚,北京颐和园被灯光装点得美轮美奂。这座千年园林里正在上演一场充满科技感的发布会,美图手机宣布FPGA加速神经网络计算项目正式落地,同时预示着张强团队和美图影像实验室MTlab的合作项目正式投入运营。这是公司创立10个月以来的首个落地项目,它将为美图的最新款手机带来30倍的运算速度提升。

在此之前,美图一直在积极寻觅云计算中心的加速方案。“对于大部分以图片和视频为主的应用公司而言,云计算的核心诉求包括两个,一是希望项目部署越快落地越好;二是不局限用芯片方案,但要求性价比最高。”雪湖科技创始人兼CEO张强说道。

初识FPGA——如何理解时序电路

作者: 小鱼,Xilinx学术合作

一. 概述
时序逻辑示意图,如下图所示。数据从一个寄存器出来,经过组合逻辑到达下一个寄存器。

在学习数字电路的过程中,我们都知道时序逻辑,但是大家对时序逻辑真的了解吗?

(1)纯组合逻辑电路的缺点在哪?

(3)纯组合逻辑电路完成不了什么功能?

(2)为什么需要时钟和寄存器呢?

带着这三个疑问我们来认识一下时序逻辑电路。

二. 同步时序逻辑电路的作用
1. 时序逻辑电路对于组合逻辑的毛刺具有容忍度,从而改善电路的时序特性。同时电路的更新由时钟控制。

比如,在组合逻辑中当各路信号的路径长度不一样时那么组合逻辑的输出就会出现毛刺。如下图所示。F0和F1到达最后一个或门的路径长度不一样,那么在F端就会出现毛刺。

利用FPGA进行基本运算及特殊函数定点运算

作者:没落骑士

一、前言

  FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积、滤波、变换等基本的数学运算。但由于FPGA的硬件结构和开发特性使得其对很多算法不友好,之前本人零散地总结和转载了些基本的数学运算在FPGA中的实现方式,今天做一个系统的总结归纳。

二、FPGA中的加减乘除

1.硬件资源

  Xilinx 7系列的FPGA中有DSP Slice ,叫做“DSP48E1”这一专用硬件资源,这是一个功能强大的计算单元,单就用于基本运算的部分有加减单元和乘法器。详见参考文献1.

因此可以直接用HDL语言中的加、减、乘符号实现变量与常量间运算操作以及变量与变量间操作。而四则运算中的除法没有基本的逻辑计算单元可以对应,因此计算除法需要调用除法器IP核。

2.确认数据的表示范围

他是技术出身的华人CEO兼总裁;他是被Xilinx董事长称为公司过去十年创新的规划者,他是笑傲数十重量级高竞争对手的勇者,他想重新定义FPGA的未来!

为了抗衡英特尔和英伟达,数年磨一剑的秘密武器悄然出鞘。超过10亿美元研发投入,1500人历经5年的智慧结晶,台积电最先进7纳米工艺支持。

巨头的PK

作为FPGA的发明者,作为全行业最难设计芯片的拥有者,Xilinx一直都在王者荣耀,独孤求败。30多年来,无论是Altera,Lattice,Microsemi,Quiclogic,以及被玩丢的Agere等,都没有对它造成过真正的威胁。

2015年,当紧跟在身后的Altera突然被Intel以167亿美元跨界并购,当主要的对手从兔子突然变成了大象,这难免让Xilinx有点目瞪口呆,如临大敌。

花费巨资收购Alteta后,磨刀霍霍的Intel开始憋大招。2018年4月12日,Intel 联合戴尔和富士通推出了基于 Arria 10 GX FPGA 的可编程加速卡(PAC),剑指数据中心加速应用,意图抢占新贵GPU等芯片在异步计算天生缺陷的未来和爆发市场。而且,有渠道商反馈,其芯片性价比直逼Xilinx主力产品。

2018年10月23日 - Silexica发布了多核软件开发工具SLX的最新版本,新版的FPGA和C/C++功能得到大幅增强。SLX工具是目前业界首款用于FPGA的工具,该软件全面支持Xilinx的SDSoC开发环境,在进入高阶综合(High-Level Synthesis,HLS)之前即可进行软硬件开发探索,保证HLS的进行过程更加精确高效。SLX for C/C++则可提供子对象报告和共享变量分析,为最新平台上的代码提供了更加全面的理解,无需再花费时间进行人工手动分析,更大大节省了设计时间。同时,SLX还添加了更多的平台模型(例如 Renesas R-Car H3和RISC-V),真正实现软硬件优化。

SLX 2018.10最新版本的主要新功能有:

SLX for FPGA功能增强

SLX for FPGA可对C/C++代码进行深入分析,全面了解软件相互依赖性、应用程序热点以及并行化机会,真正实现带有FPGA的异构多核SoC的代码优化。该工具可在软硬件探索后针对您的C/C++代码提供建议,甄别出适合留存ARM处理器或是适合在 FPGA架构进行加速的特定部分的C/C++代码。此外,新版更够更加紧密地与Xilinx的SDSoC开发环境进行集成。

C/C++系统仿真的变量分析功能

赛灵思蝶变之路:从FPGA进入ACAP世界

作者:邓晓蕾,经济观察网

近日,自适应和智能计算公司赛灵思(Xilinx)公布2019财年第二季度财报,财报显示该公司实现季度性收入7.46亿美元,比去年同期增长19%,这也是赛灵思连续12个季度实现了正增长。

赛灵思首席执行官Victor Peng表示,得益于5G网络、数据中心及汽车等业务需求带动FPGA的出货,加上人工智能及云计算等应用的广泛增长基础, 与上一年销售额相比,我们将2019财年的收入增长率提高到大约20%。这也意味着,赛灵思对其正进行的平台战略转型极具信心。

上任九个多月的Victor Peng,日前在赛灵思中国开发者大会上谈到赛灵思正在进行的战略转型,称赛灵思正在推进以数据中心优先,加速核心市场发展,驱动灵活应变的计算。“这就像是一个椅子的三条腿,三条腿对于整个战略的完整性来讲都是至关重要,而且是相互关联的,要超过大家的想象。”

赛灵思成立于1984 年,首创FPGA技术。经过长期的发展,其产品线已经涵盖45/28/20/16nm四个系列的FPGA以及Zynq SoC,同时还提供相应的开发软件工具及IP支持。值得注意的是,赛灵思在16nm-28nm系列产品已经在FPGA市场上占据主导优势。

Xilinx:让FFmpeg在FPGA上玩的爽

作者:Sean Gardner,来源:LiveVideoStack

FPGA让企业和开发者有了新的选择,尤其在高运算复杂度和实时音视频场景下。不过FPGA也会带来较高的学习和开发难度,Xilinx的高级市场经理Sean Gardner告诉LiveVideoStack,Xilinx几年前就启动了FPGA对FFmpeg支持的项目,让FFmpeg开发者可以学习和使用FPGA。

LiveVideoStack:你好Sean,请向我们LiveVideoStack读者介绍下自己及加入Xilinx的相关背景。

Sean Gardner:没问题,大家好,我是Sean Gardner,现任Xilinx的高级市场经理,负责制定视频云的营销策略,非常高兴参加本届LiveVideoStackCon。

一文教你搞定FPGA有符号数、无符号数难题

在设计中,所有的算数运算符都是按照无符号数进行的。如果要完成有符号数计算,对于加、减操作通过补码处理即可用无符号加法完成。对于乘法操作,无符号数直接采用“*”运算符,有符号数运算可通过定义输出为 signed 来处理。

通过“*”运算符完成有符号数的乘法运算。
module ceshi (out, clk, a, b);
output [15:0] out;
input clk;

//通过 signed 关键字定义输入端口的数据类型为有符号数
input signed [7:0] a;
input signed [7:0] b;

//通过 signed 关键字定义寄存器的数据类型为有符号数
reg signed [7:0] a_reg;
reg signed [7:0] b_reg;
reg signed [15:0] out;

wire signed [15:0] mult_out;
//调用*运算符完成有符号数乘法
assign mult_out = a_reg * b_reg;

always@(posedge clk)
begin
a_reg <= a;
b_reg <= b;
out <= mult_out;
end

endmodule

用FPGA对ASIC进行原型验证的过程

鉴于芯片设计的复杂度提升, 成功设计一个芯片所牵扯的步骤与过程也愈加复杂,所需花费的资金也成倍增加,一个典型的芯片开发项目的周期和花销如下所示

可以见到在芯片制造出来之前,很多精力会花费在RTL代码验证工作上,另外软件的相关开发工作,也会在得到芯片前开始,这2方面都需要借助FPGA原形来模拟芯片的行为,帮助硬件开发和软件开发者,共同提升工作效率。

FPGA原型在数字芯片设计中,基本是必不可少的,原因非常明显,相比用仿真器,或者加速器等来跑仿真,FPGA的运行速度,更接近真实芯片,可以配合软件开发者来进行底层软件的开发。当然FPGA原型作为芯片的替身,也是有诸多限制的,比如规模限制,速度限制,功耗限制,结构限制等,在使用FPGA原型作为芯片的替代时,需要进行相应的修改,才能完成相应功能,甚至有些功能最终无法覆盖。

如果对FPGA中可以映射为ASIC的资源做逐一对比,我们可以得到这样的表格。

同步内容