首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA原型设计 能为您做些什么?(3)

基于FPGA原型设计 能为您做些什么?(3)

芯片架构师与其他产品专家需要与早期客户互动,展示其算法的重要特性。基于 FPGA 的原型设计在项目极早期的这个阶段可能是非常关键的优势,但这种方法与主流 SoC 原型设计略有不同。
将基于 FPGA的原型用于实验室外的另一种极为常见的用途是在商业展示会上进行新产品功能的预制造展示。下面让我们来研究一下英国 BBC 下属的研发部门将基于 FPGA 的原型用于实验室外和商业展示会的案例。
实例:现实世界中的原型
FPGA 独立运行的强大功能在英国用来推广 DVB-T2 的 BBC 研发项目中得到了充分展现。DVB-T2 是业界领先的最新开放式标准,其可实现通过地面发射器传播高清电视。
使用基于 FPGA 的原型的原因和大多数国际标准一样,DVB-T2 技术规范的完善花费了数年时间,来自世界各地的研究人员和技术专家用了 3 万个工程小时。只有 FPGA 才能高度灵活地满足开发过程中不断变更的需求。该规范于 2008 年 3 月终稿,并于三个月后在 6 月 26 日以《DVB 蓝皮书》的方式发行。
由于 BBC 在规范制定的同时就已经在使用基于 FPGA 的原型,由 BBC研发部 Justin Mitchell 带领的 BBC 实施团队就能够为 DVB-T2 开发一种基于硬件的调制器和解调器。该调制器建立在具有赛灵思Virtex-5 FPGA 的 Synopsys HAPS-51卡基础之上。该卡连接至 BBC 研发部设计的子卡上。该子卡提供一个 ASI 接口,可接收输入的传送流。输入的传送流随后传输给 FPGA,按 DVB-T2 标准编码,然后传回子卡,直接上变频为UHF。
该调制器用于业界首次从现场 TV发射器传输 DVB-T2 标准信号,时间是该规范发行的同一天。解调器也采用 HAPS 作为另一种FPGA 原型的基础,完善了端对端的工作链,并在 2008 年阿姆斯特丹的 IBC展会上进行了演示,时间是规范最终确定后三个月。这是一项不平常的成就,帮助建立了该系统于 2009 年投入使用的信心。
此外, B B C 研发部还参与了DVB-T2 项目的其它重要部分,包括2009 年 3 月在 Turin 举办的非常成功的插拔测试大会。在这次大会上,共有五种不同的调制器和六种不同的解调器亮相,在各种模式下协同工作。BBC原型稳健的便携式构造使其成为本次插拔测试大会上的亮点。
Justin Mitchell 对基于 FPGA 的原型评论道:“FPGA 最大优势之一是能够在从预备阶段到宣布传输的这段时间里跟踪规范的最新变化。根据规范的变动迅速对调制器做出调整的能力非常重要。很难想出有另一种可如此快速开发调制器与解调器并支持便携性的技术,其可使调制器与解调器独立应用于现场发射器和公共展会。”
基于 FPGA 原型有何不足?
我们撰写本文的目的是公正地看待基于 FPGA 原型的优势与局限性,因此在前面谈及各种优势之后,我们将在下面介绍部分局限性。
首先最重要的是,FPGA 原型不是 RTL 模拟器。如果我们的目的是编写一些 RTL,然后尽快在 FPGA 中实施,以查看它是否能工作,那么我们应该重新思考所忽略的东西。模拟器有两个基本组件,可以把它们考虑成引擎和仪表盘。引擎的作用是激励模型,记录结果,而仪表盘的作用则是帮助我们检验这些结果。我们可以以小幅增量运行模拟器,然后通过我们的仪表盘进行调整;我们可能采用某些非常复杂的激励方式,这基本上都是仿真器的工作。基于 FPGA 的原型能够完成相同的工作吗?当然不能。
FPGA 对运行 RTL“模型”来说确实是一种速度更快的引擎,但当我们开始设置该模型的时候,速度优势就会大打折扣。此外,模拟器的仪表盘部分能够完整地控制激励和掌握结果。我们应该思考仪表化 FPGA 的方法,深入了解设计的功能性,但即便是在这方面最完善的设计,也只能提供一部分真正能用于 RTL 模拟器仪表盘的信息。因此,该模拟器是用于重复编写和评估 RTL代码更加理想的环境,因此我们应该等到模拟基本完成后,RTL 相当成熟后才能将其交付给 FPGA 原型设计团队。
基于 FPGA 原型不是 ESL
S y n o p s y s 的 I n n o v a t o r 或Synphony 等电子系统级 (ESL) 工具或算法工具可在 SystemC 中完成设计,或通过预定义模型库进行构建。然后,我们不但可在相同的工具中模拟这些设计,而且还可深入了解其系统级性能,包括运行软件,在项目初期阶段进行软硬件权衡。
使用基于 FPGA 原型方法,我们需要 RTL,因此它不太适合研究算法或架构,因为这两者通常不采用 RTL 方式表达。对软件来说,FPGA 原型设计的优势是在当 RTL 成熟得可以构建硬件平台的时候,软件可在更加准确以及更加真实的环境中运行。对那些具有天马行空想法的人来说,可以编写少量 RTL 在 FPGA 上运行,进行可行性研究。这是一种极少而又非常重要的FPGA 原型设计的使用方法,但别把它和整个 SoC 的系统级或算法研究混淆在一起。
持续性是关键
优秀的工程师往往会为其工作选择适当的工具,但应该随时有一种方法可以将半成品交给他人继续完成。我们应该能够在尽量不增加工作量的情况下,将来自 ESL 模拟的设计移交给基于 FPGA 的原型。此外,部分 ESL 工具还可通过高层次综合实现设计,生成 RTL 供 SoC 项目整体使用。基于FPGA 的原型能够接收该 RTL,并以高周期精度在电路板上运行。但我们需要再次等到 RTL 相对稳定下来,这需要等到项目软硬件分区和架构研究阶段完成后。
采用 FPGA 进行原型设计的原因是什么呢?
当前 SoC 是从算法研究人员到硬件设计人员,乃至软件工程师和芯片布局团队等众多专家的工作结晶,在项目不断发展的同时,各类专家也都有自己的需求。SoC 项目的成功很大程度上取决于上述各类专家所使用的硬件验证、软硬件联合验证以及软件验证的方法,基于 FPGA 原型设计可为每一类专家带来各种不同的优势。
对于硬件团队而言,验证工具的速度可对验证吞吐量产生巨大的影响。在大多数 SoC 开发中,有必要随项目的成熟运行多次仿真,重复回归测试。仿真器和模拟器是用于这类 RTL 验证的最常用平台。然而即便使用基于 TLM的模拟与建模,由于长时间的运行,RTL 内部或 RTL 与外部激励物之间的部分互动仍然不能在仿真或模拟中重新创建。因此一些团队采用基于 FPGA 原型为这种硬件测试提供具有更高性能的平台。例如,我们可以在近乎实时的条件下运行整个操作系统的引导程序,节省需要花上数天才能达到相同目的的模拟时间。
对于软件开发团队而言, 基于FPGA原型可为目标芯片提供独特的流片前模型,能够在开发接近尾声时高速、高度准确地进行软件调试。
对于整个团队而言,SoC 项目的关键阶段是在软硬件初次结合的时候。硬件将由最终软件执行,而执行方式可能是单纯硬件验证方案难以预见或预测的,从而最终将出现新的硬件问题。这在多核系统中或者在那些运行同步实时应用的系统中特别普遍。如果这种软硬件的采用要等到第一个器件制造完毕后,那么毫不夸张地说,到那时再发现新的缺陷就不太好了。
基于 FPGA原型有助于尽早地将软件引入具有高周期精度的高速硬件模型。SoC 团队经常告诉我们,FPGA 原型设计的最大优势就是在第一个器件上市时,系统和软件都已准备就绪,当天便可运行。
返回列表