为什么嵌入式开发人员要使用FPGA

FPGA转行ISP的探索之一:行业概览 阅读详情
为什么嵌入式开发人员要使用FPGA

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

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

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

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

  把软设计提升一个水平

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

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

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

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

  软件和硬件间进行转换

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

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

  利用FPGA的全部潜力

  很明显,从工具角度来说充分利用可编程器件(如FPGA)带来的机会需要一个提高开发流程抽象级别的系统,这样设计的核心元素可通过类似的设计技术和流程轻松改变。

  这样的系统必须能够统一整个电子产品开发过程,在单一、一致的环境中将硬件、软件和可编程硬件开发综合在一起。

图1充分利用FPGA的潜能意味着把设计的所有元素带到可重新编程的领域

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

  除了快速产品开发的潜力外, Altium Designer 的一体化本质也为嵌入式开发人员带来了新的设计和功能可能性。Altium 也开发了新的一体化硬件/软件编译器技术,不久Altium Designer就将支持该技术。这项技术同时从标准C代码生成高度优化的可执行代码和并发硬件的FPGA实现 ,并同时生成在运行时将二者链接起来所需的代码。实际上这意味着开发人员 可以指定从处理器卸载到硬件的C代码功能,而Altium Designer一体化的软件/硬件环境使该流程迅速且透明(图2)。

图2有了先进的软件工具嵌入式开发人员不用变成硬件工程师就能够影响修改和调试底层系统硬件

  这样的系统为嵌入式开发人员提供选择系统复选框以获得把专用软件功能转移到硬件最终的性能和成本改进的潜力。这使得开发人员可以有效地在硬件和软件之间转移功能,不断在优化的应用方案上融合。值得注意的有趣现象是,使用Altium Designer这一功能以及其他高层功能(如嵌入式包裹内核和基于库的预同步软组件)的软件开发人员可有效地使用 FPGA机制内部的硬件。简言之,使用该系统的软件工程师可利用其现有技巧,轻松使用 FPGA 硬件,无需涉及目标器件结构的底层或 RTL编程(图3)。

图3包括硬件可编程硬件和软件的设计流程的一体化使FPGA器件可以被用于创建完整的嵌入式系统而且这只需要常见的技术

  Altium Designer的一体化开发环境和低成本大规模

  FPGA的结合使得嵌入式开发人员可充分开发可编程器件的潜力。使用正确的开发环境后,当前FPGA带来的大型可重构设计空间使一种新的嵌入式设计方法成为可能 ,设计师可以为电子产品开发带来革命式的创新,正如几十年前微处理器的引入给电子工业带来的革命那样。

第1章:LabVIEW FPGA前世今生《LabVIEW ZYNQ FPGA宝典》 由于工程师们要同时面对ARM和FPGA双重开发,难度和工作量都是难以想象的,传统的ZYNQ芯片程序开发通常需要两个人协同开发:一人负责PSARM)裸机或者Linux程序开发;另一人负责纯逻辑PL也就是FPGA部分开发,人力成本极高。 阅读详情

相关推荐

FPGA + SJA1000 实现 <PCIe to CAN> 网卡的设计

FPGA SJA1000 CAN PCIe to CAN FPGA 工程详细说明 PCIe to 原理图 采用 FPGA + SJA1000 实现 PCIe to CAN,FPGA 工程详细说明 包括 FPGA 工程创建,IP设置,Verilog 代码编写,约束文件。 PCIe to CAN Linux 驱动详细说明 PCIe to CAN 软硬件调试记录 linux devices : oem_pcie.c system verilog: pcie_can_root.sv Xilinx Vivado:

qq_46621272的博客 3432

ARM、FPGA、DSP、PCB、PLC工作该怎么选

每次学弟学妹问这类问题我都会问他们自己的兴趣喜欢什么,清楚自己兴趣爱好甚至理想是一件很难得的事情。抛开个人爱好讨论的话,这里列举的其实是两大类完全不同的方向,建议大家了解之后再好好选择。

木子点灯的博客 1748

Ompal138+Spartan-6 FPGA开发板硬件数据手册说明书(下)

本篇内容主要讲解Ompal138+Spartan-6 FPGA开发板的硬件部分,其中包含了FPGA、CPU、FLASH、接口与串口,以及连接器和开关等,希望对嵌入式开发的相关用户有所帮助。由于文章篇幅过长不易阅读,故分为上下两篇展示,本篇为下文,硬件资料讲解包含有SATA硬盘接口、触摸屏接口、视频输出接口以及SD卡接口等。

创龙,嵌入式一体化解决方案商 394

嵌入式软件工程师适合去芯片公司吗?

事隔一年更新此文,是想将文章写得更客观,将工作内容、发展方向进行了细化,介绍创业阶段和成熟阶段公司的优劣势,扩充了选择一份工作的参考因素和评估矩阵。希望在年底换工作的高峰期能够给朋友们提供一些参考信息,大家可以结合自身特点以及职业规划进行分析。 文末推荐一家很有潜力的芯片公司。 行业趋势 关于芯片行业的趋势,各位一定都感受得到,国内的芯片行业发展越来越迅猛,包括AI芯片、处理器、传感器、物联网芯片...

老猿产品视界 4623

嵌入式开发为什么不选择汇编、Java而是C语言呢?

关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥对于现在我们从事嵌入式开发的人员来说,C语言好像是必备的技能,也是最常见的开发语言.但是我们有没有想过为什么嵌入式开发要使...

李肖遥的专栏 1141

FPGA嵌入式以太网与Matlab数据交互系统的构建与应用

硬件描述语言(HDL)是用于电子系统设计和描述电子硬件的编程语言。通过HDL,工程师能够以文本形式描述电子系统的结构和行为,而这些文本描述可以被硬件设计工具所理解,并转换成实际的电子设备。HDL的使用不仅简化了复杂逻辑的描述,而且使得设计的修改、仿真和测试变得更为容易。硬件描述语言的历史可以追溯到20世纪60年代,当时的主要目的是为了自动化的数字逻辑设计。第一个广泛使用的HDL是Verilog,其原型在1984年被推出。

weixin_42593549的博客 1165

该不该放弃FPGA这条路?

中国智能制造2025规划产业显示,随着高精度制造、CNC机床、主轴、机器人相关行业的发展,对于高端嵌入式人才的需求会逐渐上升,所以如果楼主能把FPGA学好,而不是进入中低端饱和人才市场肉搏,那么获得一份不错的收入是很容易。就目前的行情,深圳地区,985毕业,5年工作经验拿到20k月薪的工作机会大把。后者难度较低,在系统中的存在感也会弱一些,单纯将这块作为职业还是太窄了,适合硬件同学兼职去做。如果你渴望学习嵌入式,不妨点个关注,给个评论222,私信22,我在后台发给你。

T1246632660的博客 264

ADS1299寄存器配置与应用实战指南

本文提供了ADS1299高精度生物电信号采集芯片的寄存器配置与应用实战指南。详细解析了采样率、增益、转换模式等核心寄存器的设置方法,并分享了数据读取、高级功能配置及常见问题的调试心得,帮助开发者快速掌握ADS1299的配置技巧,实现稳定的ECG/EEG信号采集。

weixin_28278377的博客 194

zynq 文件系统中加载PL fpga.bit笔记

1.在启动脚本中添加创建/dev/xdevcfg节点: if [ ! -e /dev/xdevcfg ] then         mknod /dev/xdevcfg c 259 0 fi 2.直接用以下命令完成PL Image写入: cat  top_sds1000b_fpga.bit > /dev/xdevcfg...

xld123 5343

一文搞懂【Linux 搭建 Dread Hunger 服务器】附本体及Docker部署集群方案

看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里乱象:首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机???

LHmine的博客 3985

飞书+扣子+DeepSeek三件套:5分钟搞定公众号文章批量改写(附完整配置截图)

本文详细介绍了如何利用飞书、扣子和DeepSeek三款工具,无需编程即可搭建一个高效的公众号文章批量改写自动化工作流。通过飞书多维表格管理链接与成果,扣子平台串联整个流程,并调用DeepSeek智能体进行内容润色与改写,实现从内容抓取到智能处理的完整自动化,大幅提升新媒体运营效率。

python9snake的博客 208

分立式ARM+FPGA核间通信综合案例

本案例是基于创龙SOM-TL437xF是一款TI Sitara系列AM4376/AM4379 ARM Cortex-A9 + Xilinx Spartan-6 FPGA处理器设计的异构多核工业级核心板,进行案例分享的。 案例功能 Spartan-6 FPGA通过ADS8568进行AD数据采集,并将AD数据通过核心板内部与ARM端连接的GPMC高速并行接口传送到AM437x ARM。ARM端运行Qt程序,将从GPMC接口读取的AD数据进行波形显示。 案例框图 图 1 ...

创龙,嵌入式一体化解决方案商 1870

【四足机器人项目实战】四足机器人腿部机械结构设计

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对四足机器人–腿部机械结构设计做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 为了减轻腿部惯量,使用有限元分析着重进行轻量化设计,小腿采用工字梁方案,大腿采用内部镂方案,并使用1.5 mm的AL 6061硬质材料,轻量化的腿部设了腿部运动时摆动

qq_35635374的博客 7538

现在FPGA和嵌入式开发的关系是什么?

然后,FPGA 可以与其他嵌入式组件(如微控制器、传感器、驱动器等)集成在一起,形成一个完整的嵌入式系统。在嵌入式开发中,FPGA 通常用于实现特定的硬件功能,例如数字信号处理、高速数据传输、实时控制等。与传统的嵌入式微控制器或微处理器相比,FPGA 具有更高的速度、更低的延迟和更强的并行处理能力。它可以在硬件层面上实现复杂的逻辑功能,提供高效的性能和灵活性。总的来说,FPGA 为嵌入式开发提供了一种可编程的硬件平台,可以实现高性能、定制化的逻辑功能。它为嵌入式开发提供了强大的硬件可编程性。

T1246632660的博客 1002

PCL 基于强度的双边滤波【2026最新版】

基于强度信息的双边滤波代码实现、滤波前后点云未出现变化的原因以及获取带有强度pcd点云的方法。本文由优快云点云侠原创,博客长期更新,本文最近一次更新时间为:2026年5月24日。

点云侠的博客 29万+

一张微服务地图的十年演进:Spring Cloud 核心、扩展与工具组件的定位、原理与选型

本文把 Spring Cloud 当作一张微服务地图来读:先说明它是由 Commons 抽象层、实现层和 Boot 装配层构成的发行版,再沿一次请求梳理注册发现、负载均衡、声明式调用、容错限流、网关、配置、追踪与总线七类核心组件的原理与换代,并扩展到云平台、服务网格、消息流、批处理、安全与周边生态。仿真实测:默认参数下实例宕机平均 242 秒才被感知,优雅下线降到 47 秒;一个慢实例让轮询的 P99 达 49 秒,P2C 仅 203 毫秒。最后给出退场替代表、技术栈组合、升级路线和决策树。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 169万+

软核Cortex-M3的FPGA实现代码:为嵌入式开发注入新动力

软核Cortex-M3的FPGA实现代码:为嵌入式开发注入新动力 去发现同类优质开源项目:https://gitcode.com/ 在当今快速发展的嵌入式系统领域,软核Cortex-M3的FPGA实现代码成为众多开发者和研究人员关注的焦点。本文将详细介绍这个项目,解析其技术特点和应用场景,帮助读者更好地理解和运用这一开源项目。 项目介绍 软核Cortex-M3的FPGA实现代码,旨在为开发者提供一...

gitblog_06795的博客 727

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1797

【【FPGA的 MicroBlaze 的 介绍与使用 】】

FPGA的 MicroBlaze 的 介绍与使用

weixin_50965981的博客 9601

Midscene.js(3):手把手教你用 YAML 脚本实现 AI 驱动的 Web UI 自动化「喂饭教程」

Midscene.js是一款开源的AI驱动UI自动化工具,通过自然语言描述即可控制浏览器或Android设备执行操作。它支持YAML脚本编写测试用例,降低了自动化测试门槛。

blues_C的博客 3241

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【嵌入式开发】73

嵌入式开发定义:嵌入式开发是指为嵌入式系统(如微控制器、DSP等)编写软件的过程。这些系统通常被集成到更大的产品中,如汽车、家用电器或工业设备等。特点:嵌入式系统通常是资源受限的,如处理器速度、内存大小和功耗等。应用:从简单的LED闪烁到复杂的实时操作系统(RTOS)和网络通信。FPGA定义:FPGA(现场可编程门阵列)是一种可编程的数字逻辑电路,可以被重新配置以实现各种数字电路系统。特点:FPGA提供了并行处理的能力,适用于高性能、低延迟的应用。

宅男很神经 422

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

FPGA高手例程集锦:助你成为FPGA设计高手

FPGA高手例程集锦:助你成为FPGA设计高手 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 收集FPGA高手例程,助力快速掌握FPGA设计和实践 项目介绍 在数字电路设计和硬件编程领域,FPGA(Field-Programmable Gate Array)以其灵活性和强大的并行处理能力,成为了工程师们关注的焦点。FPGA高手例程集锦正是为了满足这个需求而诞...

gitblog_06783的博客 917

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

iCore3STM32F407FPGA双核心工控板硬件设计原理图及手册:开启高效嵌入式开发之旅

iCore3STM32F407FPGA双核心工控板硬件设计原理图及手册:开启高效嵌入式开发之旅 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 iCore3STM32F407FPGA双核心工控板是一款集成STM32F407微控制器和FPGA双核心的工控板,其设计原理图和手册为开发者提供了一个全面、详尽的硬件资源库。通过这份资源,工程师、研发人员和爱好者可以深入理解STM...

gitblog_06708的博客 1232

关于嵌入式开发的一些信息汇总:嵌入式C开发人员、嵌入式系统Linux

本文详细介绍了嵌入式C开发的一些需要的知识储备,包括开发人员需要具备哪些知识,开发人员如何搭建嵌入式开发平台,如何搭建内核、设备等。

无所适从的我的博客 1459

学员追访:FPGA——我职业生涯的明智之选

回顾我的职业历程,转型FPGA的决定并非一蹴而就,但每当我回想起那段犹豫的时光,心中总会涌起一丝遗憾——为何没有更早地迈出这一步。然而,幸运的是,我最终找到了FPGA的学习路线图,掌握了正确的学习方法,通过半年的学习,我成功踏入了FPGA领域的大门。回顾我的转型之路,我深感FPGA是一个充满挑战和机遇的领域。为了更深入地了解FPGA领域,我开始在各大论坛和社交媒体上搜索相关信息,通过与学院的老师和其他学员交流,我逐渐对FPGA有了更清晰的认识,并对市面上的培训机构的教学质量和服务水平产生了大量的数据评估。

509
上一篇: Linux系统内核有待提高的七个领域
下一篇: 一位技术主管的十年编程经验总结
c_arm_java
博客等级 码龄14年 44粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值