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的资源做逐一对比,我们可以得到这样的表格。

在云端加速FPGA回归项目,只需一个Tcl指令

严谨的软硬件开发都会有一套回归测试。连续的整合,每日自动测试,以及手动执行脚本等等 –—— 这一系列方法可以让开发人员来定义、创建、运行验证环节,从而决定产品的质量、性能和可靠性。

本文将聚焦那些需要多次FPGA设计编译的测试,以及如何缩短周转时间同时保证测试平稳运行。

1. 使用云服务器来加速编译

如果您有多个 FPGA 设计和参数组合,而且编译机器的数量又有限,运行测试编译是十分困难的。您需要手写脚本来自动运行编译,但是随着您添加特征和用例,总会有越来越多的情况需要测试。随着测试数量的增加,很多工程师都说每当测试设计的编译结束的时候,下一轮的回归周期又要开始了。由此可见,这种情况让测试范围很受限制,同时为了发布新产品,周转时间的要求也十分严峻。

比方说,同样的一个总设计,您有五个不同的设计版本。那么对于每次回归的编译,我们有
set design_list [list "A/A.xpr" "B/B.xpr" "C/C.xpr" "D/D.xpr" "E/E.xpr"]
foreach each_design $design_list {
open_project "$each_design"
reset_run synth_1
launch_runs synth_1 impl_1

秒杀GPU:FPGA发明以来最伟大的技术详解

今年3月份,赛灵思(Xilinx)历史上第四位全球CEO Victor Peng 先生在北京正式宣布赛灵思将推出“自适应计算加速平台”ACAP。Victor 表示:“作为可以和CPU、GPU与FPGA 相提并论、并且性能远超后二者的产品,ACAP可以覆盖更加广泛的应用,帮助人们实现智能互联并且驱动自适应的世界。”

ACAP采用台积电7纳米技术,在机器学习的计算能力方面比16纳米级提升20倍,在5G通信方面能够支持4倍的带宽,在性能功耗比方面具有优越的表现。ACAP是赛灵思公司“Everest 行动”(内部称为“珠穆朗玛”行动)的重大成果。“Everest 行动”已经历经四年,投资10亿美元、动用1500名工程师,无疑是一个重磅级新型产品。可以说,ACAP的问世,对业界来说是一项重大的技术颠覆,也是自赛灵思公司发明FPGA以来最卓著的工程成就。

“图1

图1 ACAP架构图

高速FPGA的PCB设计技术

如果高速PCB设计能够像连接原理图节点那样简单,以及像在计算机显示器上所看到的那样优美的话,那将是一件多么美好的事情。然而,除非设计师初入PCB设计,或者是极度的幸运,实际的PCB设计通常不像他们所从事的电路设计那样轻松。在设计最终能够正常工作、有人对性能作出肯定之前,PCB设计师都面临着许多新的挑战。这正是目前高速PCB设计的现状--设计规则和设计指南不断发展,如果幸运的话,它们会形成一个成功的解决方案。

绝大多数PCB是精通PCB器件的工作原理和相互影响以及构成电路板输入和输出的各种数据传输标准的原理图设计师与可能知道一点甚至可能一点也不知道将小小的原理图连线转换成印刷电路铜线后将会发生什么的专业版图设计师相互合作的成果。通常,对最终电路板的成败负责的是原理图设计师。但是,原理图设计师对优秀的版图技术懂得越多,避免出现重大问题的机会就越多。

如果设计中含有高密度的FPGA,很可能会有许多挑战摆放在精心设计的原理图前面。包括数以百计的输入和输出口数量,超过500MHz(某些设计中可能更高)的工作频率,以及小至半毫米的焊球间距等,这些都将导致设计单元之间产生不应有的相互影响。

并发开关噪声

ADI Guneet Chadha探讨当内核电压不断降低时,电源管理解决方案要解决的三大设计挑战。

该参考设计是一种可扩展的电源设计,旨在为基于 FPGA 的 Artix-7、Spartan-7 和 Zynq-7000 系列器件供电。此设计接收来自标准直流电源的电力,并通过明确的 Samtec 插座端子板连接方式为 Xilinx 芯片组和 DDR 存储器的所有电源轨供电。


告别选择困难症——区分FPGA与CPLD

如何区分CPLD或FPGA和哪一个更适合自己?这是一个老生常谈的问题,尤其是学生和初学者。如果您也在这个问题上很迷茫,那么就请听小编为您区分FPGA与CPLD。

CPLD

我们先来看看CPLD,在此以Xilinx CoolRunner-II为例。下图是Xilinx CoolRunner-II的架构图。

现在小编为您解释一下上图的内容。

1.该CPLD具有从“功能块1”到“功能块n”开始的功能块很少(在CoolRunner-II CPLD的情况下,此编号范围为2到32)

2.每个功能块的16行输出进入AIM(高级互连矩阵),而40行信号从AIM输入功能块。

3.每个功能块都有16个MacroCell(MC1到MC16)。

4.每个MacroCell都可以访问来自I / O块的16个信号

数字设计FPGA应用学习笔记

第一章 FPGA基础及电路设计

FPGA基础及电路设计包含两个方面的内容,一个是FPGA基础及7系列FPGA基本原理,另外就是FPGA电路设计,FPG广泛应用于军事、医疗、工业、通信等领域,下面是两款实验板:


FPGA基础及7系列FPGA基本原理

FPGA概述
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

同步内容