logo

开源硬件开发简介

作者:OSCHINA2021.09.15 10:59浏览量:368

简介:本文向工程界介绍了开源硬件,将其作为一个相关的实践、研究和未来研究领域。

本文翻译自作者 Mohamed A. Salem 和 Jamil I. Khatib 的文章 An introduction to open-source hardware development

本文介绍了硬件设计与开发开源硬件的新趋势。它定义了开源硬件设计的术语、特点和要求。它介绍了基于 FPGA 的平台是最适合开源设计实现的。它还讨论了开源硬件的商业模式。

介绍和动机

开源软件已经成为软件开发过程中的重要组成部分。通过硬件与软件的类比,因此也可以考虑开源硬件。HDL 类似于传统的软件编程语言,可编程实现平台则类似于通用处理器。

开源现象有几个特性,使其研究起来很有意思,与工程设计学科相关。开源摒弃了传统的工程概念,如规划和原型设计,反而采用更有机的方法。例如,开源的 Linux 内核就是一个达到高质量的工程壮举。

开源的经济性违背了传统的经济原则,因为参与者都是自愿的。COCOMO 对广泛分布的开源程序进行了分析,认为这些程序如果用常规手段创建,价值将达到 10 亿美元。开源是互联网的产物,它使开源产品产生了实实在在的效果。

将开源应用于硬件,给硬件开发过程带来新的好处。开源硬件将减少开发时间和设计成本。开源的 IP 核可以重复使用,有黑盒模式和白盒模式。白盒模式允许设计者根据自己的要求定制特定的内核。

开源硬件定义

开源硬件的基础是公布硬件的所有必要数据。设计规范、HDL 文件、仿真测试台、合成结果、使用说明和与其他系统的接口都应该被记录下来。必要的设计文档的开放和对外公开应遵循类似 GPL 的许可条款。

根据类 GPL 许可证的条款,所有信息都是免费公开的。用于开发开放硬件的 EDA 工具也应该是开放的。资源的开放是允许社区重用、开发和改进开放设计的必要条件。

开源硬件的实现

传统的硬件实现平台有多种选择。设计可以适合 ASIC、custom silicon、FPGA 和 CPLD。问题是,什么是适合开源硬件的设计?

硬件与软件的类比指向可编程实现平台;因此,答案是可编程逻辑器件,如 PLD、FPGA、CPLD 和 FPAA。软件和硬件实现之间的类比适用于开发过程中的不同方面。软件程序运行在通用处理器上,但开放的硬件设计适合在可编程逻辑器件上。

软件汇编器根据处理器的指令集生成汇编代码。硬件合成工具使用数字或模拟库,生成特定器件的网表。软件编译器根据处理器的指令集的汇编生成二进制代码格式。FPGA 的编程元件从器件的组件库的网表生成位流格式。

FPGA 的动态可重构性利用可编程逻辑阵列上硬件元件的实时动态加载和卸载,优化了硬件设计的性能。这种软件和硬件执行和实现阶段的类比有助于证明采用开源硬件策略的可行性。

商业模式

开源硬件有一套商业模式,包括以下几种:

  • 设计发行:公司可以像 Linux 发行版一样,将成套的设计打包并出售发行版。OpenTech CD-ROM 就是这种方法的一个例子。
  • 设计技术支持:专家可以为开放设计提供支持。Asics.ws 是一家遵循这种模式的公司,发布 IP 核心并向客户收取技术支持费用。
  • 设计实现:公司可以根据设计的发布许可,实现设计、销售设计、并向原设计者支付版税。
  • 发布:在 GPL 兼容许可证的控制下,只要实现被认为是商业性的,就可以发布开放设计。

开源硬件路线图

开源硬件路线图可以分为以下三个主要阶段。

  • 第一阶段(初级)

初级阶段的目标是开始开发一套简单和通用的基于 FPGA 的原型板,可用于测试和实现简单的开源 IP 核心。将使用开放的 EDA 开发工具,这样设计者可以向开源工具开发者提供反馈。基于 FPGA 的板卡设计者、开放 IP 核心设计者和开放 EDA 开发者之间的交流将改善整个开源硬件的开发过程,并进入下一阶段。

  • 第二阶段(高级)

这个高级阶段假设已经进行了开源硬件宣传。设计者将发布先进的开源设计,包括 FPGA 原型板。市场对原型板的需求将蓬勃发展,从而鼓励厂商以低价大量生产。低价存在的原因是板卡设计本来就是开源的,市场需求大。

厂商可以生产开源的器件编程工具,以扩大市场基础。这个阶段的目标是让一个开源硬件用户从互联网上下载开放的设计,并在原型板上实现设计,就像计算机用户下载开源软件并在个人计算机的通用处理器上运行一样。

  • 第三阶段(运行时配置)

在这一阶段,设计的复杂性和密度将达到传统可编程逻辑器件的限制。某些可编程器件的动态可重构性的特点是,它们能够在运行时重新配置其逻辑和路由资源的子集,同时继续正常工作。这种内在的动态重新配置的结果是在保持高性能的同时,适应复杂和密集的设计。

这一阶段的目标是开源复杂系统的设计和实现。这假定系统模型的无缝架构,其中软件和硬件之间的界限消失了。例如,有人努力将 Linux 内核作为一个主要依靠动态可重构的纯硬件平台来运行。

发展中国家的高新技术推广

开放源码硬件可有助于缩小发展中国家与发达国家之间的技术、教育和文化差距。基于以下考虑,开放源码有助于在这些地区建立一个高技术基地。

  • 开源硬件是工业和学术领域的开放资源。
  • 缺乏高科技活动和公司。
  • 缺乏高科技领域的专业知识。
  • 开源可以与世界各地高科技领域的专家广泛交流。
  • 解决基于可编程逻辑器件实现平台的 HDL 设计可以负担得起,因为芯片制造超出了经济能力。
  • 开源可能有助于将焦点集中在发展中国家由于市场限制而被隐藏的高科技人才和资质上。

新的计算引擎和互联网

开源硬件可以产生新一代的计算机和互联网。计算引擎可能会从基于在硬件资源上执行的软件指令的传统结构,转变为处理硬件功能的算法,在可编程逻辑平台上动态加载和卸载。

未来的个人计算机可能会由基于 FPGA 的电路板构建而成,这些电路板包含与外部世界的连接器。硬件设计者将可以为特定的 FPGA 计算机或未来的计算机编码模块或内核。互联网作为开源设计者的基本框架,可能会受到动态重新配置和开源硬件设计概念的影响。FPGA 原型板可以连接到互联网上,作为自由计算机和调试机。

未来可能会产生一种新的互联网服务,称为”硬件计算资源协议”或 HCRP。这可能使开发者能够设计出基于硬件内核的算法,并将其上传到这些机器上运行和实现。开源设计、开源计算资源和全球网络引入了一个创新技术和应用的新时代。

面临的挑战和建议的解决方案

设计人员面临着一些问题,阻碍他们开发开源硬件。

  • EDA 工具的成本

设计人员无法负担 EDA 工具的费用。建议的解决方案是继续开发开源 EDA 工具,并根据设计社区的反馈对其进行改进。Alliance 和 gEDA 是开放 EDA 工具的良好模式。

  • 制造成本

硬件制造相对昂贵。建议的解决方案是在基于 FPGA 的原型板上实现,或者使用形式化验证技术对设计进行仿真。

  • 设计保护

建议的解决方案是使用类似于 GPL 的许可证来保护开放设计,根据特定的条款和规则为原始设计者保留权利。

  • 市场

市场竞争主要是基于专利和知识产权,这些专利和知识产权维护了原始公司的所有权利。公司可能会反对开放源码在某些方面为受商业保护的产品提供替代品。

建议的解决方案是,公司可以利用开放源码作为弥补研发时间和成本缺口的一种方式。研究人员可能会发现他们不必重新发明已有的轮子。公司可能会发现采用开源设计,并拥有大量的客户基础,是一种双赢的交易。公司可以用可承受的价格完善开源设计,并利用社区提供的错误修复。最终的结果是尖端可靠的产品和实惠的价格。

  • 信誉

开源必须建立信心。所建议的解决办法是,设计者应制作高质量和完全记录的设计。让用户群体相信开放设计的可信度只是时间问题。例如,由于开发社区努力提高质量和性能,Linux 操作系统已经变得可靠和有竞争力。

结论

本文介绍了开源硬件是硬件开发过程中的一个新趋势。它定义了被认为是开放的硬件设计的要求。本文介绍了商业模式和开源硬件路线图的各个阶段。本文还讨论了挑战、问题和建议的解决方案。本文向工程界介绍了开源硬件,将其作为一个相关的实践、研究和未来研究领域。

相关文章推荐

发表评论