FPMM(一):序言

简介: FPMM(一):序言

前言

我们感谢意法半导体的海伦娜·克鲁普诺瓦(Helena Krupnova)在本前言中分享了她对基于FPGA的原型设计的见解和经验。

格勒诺布尔——2010年12月

在本书中,我们介绍了“原型设计的三定律”。

在法国格勒诺布尔的STMicroelectronics的过去十年里,我在一个基于硬件的验证团队工作,为全世界的软件开发团队提供基于FPGA的原型解决方案,我们了解到,对于不严谨的原型设计者来说,有许多步骤和障碍。这本书涵盖了其中的大部分,但它们都归到了这三个“定律”:

  • · SoC比FPGA更大
  • · SoC比FPGA更快
  • · SoC设计对FPGA不友好

"FPGA-hostile"是一个术语,指的是某些设计或代码对FPGA(现场可编程门阵列)不友好,可能会导致FPGA性能下降或甚至损坏。这些设计或代码可能包括不合适的时序、电源噪声、布线问题等。因此,在设计或编写代码时,需要考虑FPGA的特性和限制,以确保设计或代码对FPGA友好。

然而,FPGA为SoC开发和验证提供了一个不同于任何其他的平台,其最大的价值在于其独特的能力,可以提供快速而准确的SoC模型,从而允许嵌入式软件在流片前验证

和所有的前沿开发人员一样,意法半导体在SoC设计和验证过程中广泛的使用了不同工具和平台。ST内部有一个原型开发社区,包括几个属于不同部门的团队,并通过各种原型开发方法(实时原型开发、商业解决方案和定制机器)解决不同的设计环境。我们使用基于FPGA的原型,因为它们通常比仿真器快十倍以上,这使得我们能够响应对快速平台的需求,以便在不同的站点上由大量开发人员对新的SoC软件进行交互式测试。

嵌入式软件已成为现代SoC设计的主导部分。我们需要在项目的早期开始,为软件的完成留出足够的时间,这意味着需要在SoC流片前就能运行起来。 “对我来说,非常清楚,基于FPGA的原型设计的主要好处正是为软件团队带来的。”

原型设计是硬件团队对软件团队问题的回答。

它是唯一一种为流片前软件开发人员提供现实性的技术,例如,通过JTAG调试器提供即时响应,允许操作系统以近乎实时的方式启动,并允许实时与系统外设的接口。我可以继续讲下去,但您可以在本书的介绍章节中,为自己阅读其他人从使用基于FPGA的原型设计中获得的好处。

本书讨论了不同的可能电路板和系统架构,我相信从以前可用的架构中学习对于每个构建高速原型的人来说都是必须的。在这本书中也可以找到技术和商业上的“制造与购买”决策标准,这强化了我的信念,即在内部构建定制平台的唯一原因是需要构建大量的复制平台。多少是一个“关键点”?

在这些页面中有帮助读者自己解决问题的内容,但通常只有拥有几十个复制品的板子才能让用户获得对开发成本的回报。当然,对于任何单一的使用情况来说,购买商业解决方案更加经济实惠。

我在前面提到了一些基于FPGA的原型设计的障碍让一些人望而生畏。然而,在克服这三条原型定律方面,我们大家都可以采取一些步骤。这些概述在这本综合性的书中,如果你在开始你的项目之前阅读这些,特别是设计原型指南,那么你更有可能成功

本书最后讨论了通过事务级接口将原型与仿真工具联系起来,并引出了未来方向的一瞥。我相信,我们将看到基于FPGA的原型开发与ESL建模的更多集成,以创建基于事务的平台,这将使软件开发人员从RTL之前的基于FPGA的原型开发扩展到第一颗芯片回来。

这本书以及它的配套的基于网络的论坛,将引起管理者对原型的重视,我期望它将是对原型社区的极大支持!

海伦娜·克鲁普诺娃

原型开发组组长

这本书的目的

这本书是种子。

它是一个种子,基于FPGA的原型设计的总知识结晶。

我们从各方面收集了意见,以呈现基于FPGA原型设计领域的最佳实践的概览。我们希望这本手册对每个人都有所帮助,但由于时间和空间的限制,可能对每个人都有所遗漏。

你手中的书(或屏幕上的电子书)是FPMM的第一版。从早期开始,我们就计划让这本书有一个在线组件,可以添加或更正信息,提供下载PDF副本,并根据每个读者的经验构建更多版本。

通过这种方式,FPMM将依靠反馈而蓬勃发展,并进一步为全球原型制作者提供更深入的教育。使用新媒体,我们可以帮助将孤立无援的原型制作专家团结起来,形成一个受人尊重的真正有价值的论坛。

这个价值不仅将使原型制作者受益,也将使他们成为越来越重要的SoC团队的一部分,促进基于FPGA的原型制作成为一种严肃的验证和验证方法。我们希望你喜欢这本书,并期待在FPMM在线社区上见到你(请访问wwn.synopsys.com/fpmm)。

奥斯汀,道格和勒内

出版商的便条

感谢您对Synopsys和我们的合作伙伴的技术系列书籍的关注。我们在Synopsys Press非常高兴地介绍FPGA-Based Prototyping Methodology Manual(FPMM),就像我们以前成功的方法论手册(例如,低功耗验证方法论手册(VMM-LP))一样,旨在不仅教育从业者,而且还要通知领导者。

我们特别高兴许多专家参与了内容的创作,并进行了广泛的同行评审。在每章的结尾,我们会感谢那些对其内容做出重要贡献的人。要了解更多关于Synopsys Press书籍以及技术和商业系列中的其他书籍,请访问www.synopsys.com/synopsys_press。我们希望您喜欢这本书。

菲尔·德沃尔斯基

本书架构

这本书被组织成四个部分,这些部分按照与 FPGA-基于系统原型设计项目执行的任务和决策相同的顺序排列。读者将从许多不同的角度阅读这本书。

一些读者可能熟悉 FPGA-基于系统原型设计中的许多任务,但寻求新的见解和想法;对其他人可能是相对新的主题,但在其他验证方法中具有经验;仍然其他人可能是项目经理,需要理解 FPGA-基于系统原型设计是否适用于他们的下一个系统项目。

因此,根据您的起点,您可能需要从不同的位置开始阅读这本书。在这方面,我们尽量使每个主题相对独立,或者必要时在某个主题中进行多次前后关系,并提供特定主题的参考:

  • 如第1章和第2章: 我们首先分析验证 SOC 和其中的软件所面临的复杂性。我们介绍了许多不同的原型方法,不仅是 FPGA 。然后,我们继续描述 FPGA-基于系统原型设计的好处,并提供一些现实世界的示例,这些示例来自行业领先的原型者。
  • 第3章: 这一章是关于 FPGA 技术和工具的简介,提供了 FPGA-基于系统原型设计的新视角。 FPGA 用户可能会感到跳过这一章,但它仍然建议作为一种看待 FPGA 的新方法。
  • 第4章: 每一次开始都是从一个步骤开始的。这一章提供了足够的信息,以便读者能够开始,并在他们的努力、工具和时间上花费时间来创建一个原型。
  • 第5和第6章: 硬件原型应该在项目初期选择。这两章提供了关于如何快速创建自己的平台,或者如何选择不同的商业平台,并如何比较它们的信息(见附录 B)。
  • 7、8、9、10章的内容包括: 针对 FPGA 器件,如何进行需求分析、架构设计、逻辑综合、适配验证平台、 RTL 代码设计、分区、 IP 处理等关键信息。同时,还包括了如何将设计模式的理念,应用到 FPGA 原型设计中,以提高设计效率和质量。
  • 第11章和第12章:板子已经准备好了;设计已经准备好了;当两者放在一起时,会发生什么?这些章节介绍了如何在实验室中打开原型,然后在系统上调试RTL和软件,并快速迭代设计。还讨论了在实验室外部署原型的问题。
  • 第13章: 我们有一个工作的 FPGA 原型,还能用它做什么呢?这一章展示了定制原型,以便在更大的验证环境中使用,包括 RTL 仿真器和系统 TM-based 虚拟模型。
  • 第14章:在这里,我们对基于FPGA的原型设计和混合原型设计进行了一些未来展望,结合第13章和其他地方的概念得出了一些新的结论。
  • 第15章:这导致了一些结论和对本手册中提出的关键规则和建议的重申。

注意:大多数FPMM内容都是通用的和普遍适用的,但是,在给出示例的情况下,我们希望读者原谅我们使用了最熟悉的工具平台,我们的Synopys和

Xilinx®(即我们自己的)。

目录
相关文章
|
6月前
|
算法 小程序 IDE
c++primer plus 6读书笔记第一章预备知识
c++primer plus 6读书笔记第一章预备知识
|
6月前
|
存储 编译器 芯片
【读书笔记】汇编语言(第四版)第一章 基础知识
【读书笔记】汇编语言(第四版)第一章 基础知识
|
7月前
|
开发框架 .NET Linux
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
|
存储 算法 Java
2023年Java核心技术第十二篇(篇篇万字精讲)
2023年Java核心技术第十二篇(篇篇万字精讲)
90 1
|
Linux Android开发 虚拟化
我花了半个月,整理出了这篇Linux内核开发学习指南(学习路线+知识点梳理)
我花了半个月,整理出了这篇Linux内核开发学习指南(学习路线+知识点梳理)
|
自然语言处理 Java 编译器
【编译原理】第一章,什么是编译原理?
【编译原理】第一章,什么是编译原理?
|
存储 自然语言处理 Linux
0基础C语言自学教程——收官之战——第十四节 文件的编译和链接
这个时候程序将使用一个运行时堆栈(stack),存储函数的局部变量和返回地址。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。
162 0
0基础C语言自学教程——收官之战——第十四节 文件的编译和链接
|
存储 Unix Java
《C语言程序设计现代方法(第2版)》读书笔记 第二章(二)
《C语言程序设计现代方法(第2版)》读书笔记 第二章(二)
《C语言程序设计现代方法(第2版)》读书笔记 第二章(二)
|
存储 IDE 程序员
《C语言程序设计现代方法(第2版)》读书笔记 第二章(一)
《C语言程序设计现代方法(第2版)》读书笔记 第二章(一)
《C语言程序设计现代方法(第2版)》读书笔记 第二章(一)