当前位置:首页 > 芯闻号 > 充电吧
[导读]在一个领域中,如果唯一不变的是变化,那么不需要对电子技术和设计方法的发展变化做多少回顾,就能见证到变化是如何使设计工程师能够创建出下一代创新产品。微处理器得到大规模应用后,价廉物美的新技术为基于软件的

在一个领域中,如果唯一不变的是变化,那么不需要对电子技术和设计方法的发展变化做多少回顾,就能见证到变化是如何使设计工程师能够创建出下一代创新产品。微处理器得到大规模应用后,价廉物美的新技术为基于软件的革新性电子产品设计打开了大门,这就是一个很好的例子。简言之,把设计的主要元素——在这儿是控制“智能”——转入到软领域后,设计工程师就可以在更短时间内创建出更好、更智能、更廉价的产品。

  这个变化意味着嵌入式软件开发人员是当今定义电子产品功能和特性的主要推动者,并且最终将把硬件生产出来。该方法的成功因素在于减少硬件复杂度和把设计的控制元素转变到可编程领域带来的开放灵活性。

  今天,大容量、低成本可编程器件的到来给电子产品设计的发展带来了同样的希望,因为在软领域定义系统硬件本身已经成为可能。诸如大容量FPGA这样的大规模器件对满足这一需求十分理想。这些期间一般可用于构建系统外设逻辑功能块的大件部分,包括总线接口、I/O块、甚至内存。把大量逻辑引入FPGA领域对硬件开发具有深远影响,并为‘软’设计的新时代打开了一扇大门,这为设计提供了前所未有的灵活性,同时具有减少板级尺寸和复杂性的无穷潜力。

  虽然它具有对电子产品开发过程起到革命性作用的潜力,但多数嵌入式软件开发人员仍像以前一样工作——在设计流程的开始阶段选择分立的硬件处理器、创建物理平台,然后写软件使用该平台。人们在嵌入式系统开发的“软”硬件领域缺乏探索,主要原因在于缺少让C程序员在可编程硬件级发挥技巧的工具。确实,当前多数FPGA设计流主要都来自芯片设计领域,需要非常专业的技巧。


  把软设计提升一个水平

  要超越FPGA胶合逻辑应用需要更广阔的视野,包括充分利用可编程器件,把尽可能多的硬件引入到软领域中。这包括引入处理器功能本身,今天,FPGA内的软处理器正越来越多地转变成嵌入式平台。从根本上说,改用带FPGA的软处理器会带来结构灵活性、板卡尺寸更小、更简单的优点。但深层次的应用会带来更吸引人的优点。

  当利用了FPGA的可编程特性获得处理器顶层的抽象层时,就为嵌入式开发人员打开了无限可能,——不仅在软件中实现抽象级设计,而且在硬件中也实现了。试想这样一个系统:处理器通过可配置硬件(本质上是一个硬件包裹)与其内存和外设连接——这就抽象了处理器的接口。简单地对FPGA重新编程就改变了硬件包裹,系统设计师可以轻易地改变处理器内核,甚至在硬的或软的处理器之间转换,无需修改其他系统硬件。从系统的角度来看,所有处理器都是相似的,这就简化了硬件设计流程。当然,把这延伸到应用软件领域也需要可以在处理器之间提供C级别兼容性的编译器。

  这种系统的优点是不需要“事先”对处理器做出选择。系统可能是使用某种处理器开发的,但是开发阶段发现需要更高的性能,又采用了更快的器件。由于包裹层的原因,处理器可以是软的、硬的、甚至是FPGA内部的硬件处理器内核,而不会影响周围的硬件,因为转换层仅仅创建出连接外设的标准接口。实际上外设器件本身的连接可以相同方式抽象。在这个方案中,FPGA为嵌入式系统的所有部件提供通用的连接性,而有效地成为系统互连结构。换言之,它有效地成为标准接口“骨干”,硬件和软件都可以轻松与处理器和外设交流。

  最后,在处理器之上引入透明的包裹层会创建出基于FPGA的开发环境,提供真正的处理器独立性。软件和硬件开发速度都提高了,处理器选择可以放到设计流程的后期进行,有效的软件/硬件协同设计成为可能。

[!--empirenews.page--]
  软件和硬件间进行转换

  在可配置硬件中创建处理器和外设包裹层的想法的扩展就是自动生成应用专用的系统硬件,在硬件中执行软件算法——一种‘自己的’硬件协处理器。

  从C代码中直接生成硬件的想法并不新鲜,有几个系统已经实现,到现在为止的想法是希望通过C类语言创建完整的系统硬件。在本质上,这与使用HDL(如VHDL 或Verilog)设计FPGA没有什么不同,需要软件开发人员学习和采用新的设计方法。真正对嵌入式开发人员有用的是使流程透明。设计工具必须要能够处理标准 ANSI C代码的输入,把程序员选择的功能转换为硬件。不仅如此,系统必须要能够生成使用生成硬件所需的所有代码。嵌入式程序员以这种方式把专用算法从处理器卸载到专用硬件上,无需了解底层硬件的任何设计细节。

  利用FPGA的全部潜力

  很明显,从工具角度来说充分利用可编程器件(如FPGA)带来的机会需要一个提高开发流程抽象级别的系统,这样设计的核心元素可通过类似的设计技术和流程轻松改变。这样的系统必须能够统一整个电子产品开发过程,在单一、一致的环境中将硬件、软件和可编程硬件开发综合在一起。

  Altium Designer 引入简单、高层次的处理器实现这一目标,满足软件、FPGA和 PCB要求,一体化的产品开发环境在单一应用中把所有需要的流程综合在一起(图1)。硬件和软件开发统一在平台级 ,使快速软件/硬件协同设计成为可能。通过基于 FPGA的处理器和处理器包裹内核,设计师可以定位于Altium Designer 或任意受支持的第三方处理器,同时保留设计的全部功能,包括与 FPGA外设的方便连接。Altium Designer基于 Viper的编译器保证在系统支持的所有处理器结构间C级别代码的兼容性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM
关闭
关闭