FPGA开发从逻辑设计做起,结合软+硬+系统很重要

FPGA2嵌入式 2018-02-05 10:49 次阅读

    大多数FPGA设计者从逻辑设计做起,对软件级设计接触不多,但目前的项目中都少不了处理器软件C的设计,下面接着看下《UltraFast 嵌入式设计方法指南》中关于软件设计方面的内容,主要分3部分:软件设计需要考虑的事项、设计流程及调试等。

1. 软件设计考虑事项

    软件设计时,需要先搭建一个处理器到系统中,处理器可以是硬核(如ZYNQ的ARM),也可以是软核(如NIOS II),所有的内容均围绕处理器方面设计展开:处理器配置,操作系统选择,库和中间件,启动加载器,软件开发工具(SDK)。

  • 处理器配置:配置核心频率、多处理单元协调和数据程序存储空间分配、中断等;

  • 操作系统选择:选择操作系统活着裸跑;

  • 库和中间件:方便设计者高效的使用底层硬件的过渡层接口;

  • 启动加载器:方便操作系统的BOOT设计;

  • 软件开发工具:C开发环境,类似NIOS IDE开发环境。

    当我们自己在逻辑部分设计了一个底层逻辑后通过接口(一般是总线接口)连接到处理器后,也可以自定义自己的操作接口,通过SDK来操作底层逻辑。如三角函数处理器运算太慢,可以在逻辑中设计一个三角函数后SDK中只需将运算的数据写入对应reg中后得到运算结果,这就实现了硬软件协调处理功能。

2. 软件设计流程

    软件设计流程如下图:

其中:

  • 板启动开发工作包括开发低级固件、设置启动次序、针对接口和外设的基本测试,划分了下列阶段:PS 初始化 ,PL 配置 ,储存器和外设测试,软件和硬件调试;

  • 驱动开发为 SoC 和板载外设开发软件驱动,用于为OS或裸机应用等更高软件层建立接口;

  • 针对裸机或 LinuxFreeRTOS 等操作系统开发出了相关可运行应用。

    设计中要注重层次,多学习C++等高级语言设计技巧,这样可以保证设计的简洁和可维护性,一般FPGA对C设计接触比较少从业者写的C代码一团乱麻。

3. 调试

    系统调试中,PL部分就是我们常用的Modelsim仿真+在线逻辑分析仪等,PS部分就是断点、单步,查看内存等。关于调试的经验技巧下次搞篇文章分享。

    软件调试中,需要在处理器配置配置合适的的选项,SDK中灵活使用,同时需要注意:调试完成得到最终发行版本时,记得去掉在线逻辑分析仪和处理器JTAG配置,因为这样会省掉不少资源,时序和功耗当然会更好

4. 其它

    理解启动加载器的流程对理解软硬件协同+Linux有很大帮助:

    在为SoC 加电时,启动过程从BootROM 开始。启动过程先从片上储存器 (OCM) 加载然后启动执行第一阶段启动加载器 (FSBL)。FSBL负责配置具体的初始化。

    然后根据软件架构,第二阶段启动加载器,如使用嵌入式 Linux 时的 U-Boot 进行初始化并执行。 FSBL 和/或 SSBL 启动 RTOS 或嵌入式 Linux 以及应用代码。 如果没有操作系统,则是裸跑,好多步都没有。简单说裸跑就是51单片机C程序开发,而跑系统则是ARM高端应用程序开发,原理性相差不大,可以自己查阅资料了解,不需要马上都懂,因为随着时间和经验的积累,这些你会慢慢要了解并使用巩固。

5. 总结

    FPGA大多是逻辑开发者,但只做逻辑的话局限性太大,而且现在的趋势也是FPGA软件话了,SDSOC就是证明。所以,我们应该提前扩充知识面,而且你会发现复杂软件设计和操作系统经验上有很多技巧也可以借鉴,更好地借鉴能帮助我们软+硬+系统结合,设计出更有成就感的架构应用于项目中。

原文标题:《UltraFast 嵌入式设计方法指南》(3)——软件级

文章出处:【微信号:fpga234,微信公众号:FPGA2嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

基于水下无人机,Intel Braswell芯片组的3.5寸嵌入式工业主板

海洋覆盖了地球表面70%的面积,但人类对它的了解,仍然还在起步阶段。科技的发展带来的是人们生活水平的....

发表于 08-14 17:07 21次 阅读
基于水下无人机,Intel Braswell芯片组的3.5寸嵌入式工业主板

四强联手发布了基于FPGA的一系列vBRAS解决方案,加快了FPGA硬件加速的步伐

在近日举行的2018上海世界移动大会期间,中国电信、英特尔、联想与赛特斯联合发布了基于FPGA的一系....

发表于 08-14 16:20 86次 阅读
四强联手发布了基于FPGA的一系列vBRAS解决方案,加快了FPGA硬件加速的步伐

现代先进武器装备为何越来越青睐高端芯片?

至于FPGA,它包含大量门电路,使芯片更集成化,速度更快,可靠性更高.尤其是具有系统内可再编程(可再....

的头像 半导体观察IC 发表于 08-14 14:58 162次 阅读
现代先进武器装备为何越来越青睐高端芯片?

数字电路中最简单的混频知识

在FPGA设计中,不管是Altera还是Xilinx,它们的IP核几乎都是采用二进制补码带符号数,也....

的头像 FPGA技术联盟 发表于 08-14 14:35 74次 阅读
数字电路中最简单的混频知识

arm加载fpga程序为什么DONE信号一直为低?

[ENV] 我们的一块板卡上有FPGA(7A200T),ARM(tm4c1294),FLASH(N25Q),想通过arm上电加载fpga启动,过程如下;...

发表于 08-14 14:35 27次 阅读
arm加载fpga程序为什么DONE信号一直为低?

FPGA在音乐科技及医疗照护领域的应用

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

的头像 芯榜 发表于 08-14 10:39 128次 阅读
FPGA在音乐科技及医疗照护领域的应用

以FPGA和CPLD为基础的灵活可行的降低汽车电子物料成本解决方案

汽车制造商们坚持不懈地改进车内舒适性、安全性、便利性、工作效能和娱乐性,反过来,这些努力又推动了各....

发表于 08-14 10:01 42次 阅读
以FPGA和CPLD为基础的灵活可行的降低汽车电子物料成本解决方案

将FPGA作为下一代汽车电子设计的灵活及低成本解决方案还需要考虑这些问题

随着汽车在过去 25 年中从纯机械设备演变成高度集成的线控驾驶汽车电子系统,设计人员面临的挑战也不....

发表于 08-14 09:31 39次 阅读
将FPGA作为下一代汽车电子设计的灵活及低成本解决方案还需要考虑这些问题

电子工程师为什么要学会用FPGA 有什么好处?

对当今的硬件工程师来讲,FPGA的应用是同PCB设计一样必须掌握的技能,因此在过去三年里我们摩尔吧的硬禾实战营最重要的技...

发表于 08-14 09:29 63次 阅读
电子工程师为什么要学会用FPGA 有什么好处?

MY-IMX6-EK140P L4115编译手册

MY-IMX6-EK140P L4115 编译手册 目录 [隐藏] 1文档说明 1.1系统环境说明1.2操作说明1.3截图说明1.4图片中的L...

发表于 08-14 09:26 99次 阅读
MY-IMX6-EK140P L4115编译手册

如何高效学习FPGA 学习FPGA应该避免那些误区

FPGA对于硬件工程师以及高校师生来说是非常重要的一项技能,其重要性甚至要超过PCB设计,不仅是因为在电子产品系统中(尤...

发表于 08-14 09:14 52次 阅读
如何高效学习FPGA 学习FPGA应该避免那些误区

基于FPGA的二值图像的膨胀算法的实现

1 背景知识 二值图像(Binary Image)是指将图像上的每一个像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单...

发表于 08-14 09:08 94次 阅读
基于FPGA的二值图像的膨胀算法的实现

作为工程师的你,真的需要不断学习吗?

今天的这篇文章来自我们一位可爱的工程师烧友,很有情怀,相信很多朋友会产生共鸣。 我是一个平凡的工程师,标准的80后,从事单...

发表于 08-14 09:05 257次 阅读
作为工程师的你,真的需要不断学习吗?

cc2530和linux gateway之间的通信网关端的服务都没有正常启动是什么原因?

请教各位大侠个问题: 我最近在做cc2530和linux gateway之间的通信,在CC2530端烧写的是Z-Stack Home 1.2.2a.44539\Proje...

发表于 08-14 07:43 43次 阅读
cc2530和linux gateway之间的通信网关端的服务都没有正常启动是什么原因?

用于双路1.2V/5A应用的DC-DC POL模块参考设计包含BOM,PCB文件及光绘文件

描述 PMP4379 是一款 POL 模块参考设计,适用于直流输入为 4.5V – 15V 的 DSP 和 FPGA 应用。此设计中提供详...

发表于 08-14 07:16 136次 阅读
用于双路1.2V/5A应用的DC-DC POL模块参考设计包含BOM,PCB文件及光绘文件

嵌入式开发学习路线和学习资料

一般的应用开发,例如桌面应用的开发,移动应用的开发,通常都是在一个IDE集成开发环境中完成。 开发者,熟悉了IDE的...

发表于 08-13 17:56 166次 阅读
嵌入式开发学习路线和学习资料

ARM与嵌入式Linux的入门建议

也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理...

发表于 08-13 17:40 152次 阅读
ARM与嵌入式Linux的入门建议

Linux内核学习经验总结分享

操作系统是介于底层硬件和应用软件之间的接口,其各个子系统的实现很大程度上依赖于硬件特性。书上介绍这些....

的头像 马哥Linux运维 发表于 08-13 17:40 116次 阅读
Linux内核学习经验总结分享

鼎阳SDS1102X示波器拆解分析

用单片SoC芯片替代传统的CPU+FPGA的分立方案,也可以减少硬件布板面积,有利于将高性能处理系统....

的头像 硬件十万个为什么 发表于 08-13 17:32 362次 阅读
鼎阳SDS1102X示波器拆解分析

基于Linux操作系统内核的崩溃转储机制解析

随着嵌入式Linux系统的广泛应用,对系统的可靠性提出了更高的要求,尤其是涉及到生命财产等重要领域,....

发表于 08-13 17:00 46次 阅读
基于Linux操作系统内核的崩溃转储机制解析

关于Linux操作系统网络驱动程序编写知识详解

Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出....

发表于 08-13 16:52 54次 阅读
关于Linux操作系统网络驱动程序编写知识详解

Xilinx利用FPGA迈出了AI领域的第一步,未来前景可期

未来几年,人工智能芯片的需求将急剧上升。联合市场研究公司(Allied Market Researc....

发表于 08-13 16:49 83次 阅读
Xilinx利用FPGA迈出了AI领域的第一步,未来前景可期

FPGA巨头赛灵思收购深鉴科技,计划未来布局中国ADAS及自动驾驶

上周,刚刚收购深鉴科技的FPGA巨头:赛灵思面向媒体记者在深举行了“汽车产业最新技术与产品说明会”。....

发表于 08-13 16:40 253次 阅读
FPGA巨头赛灵思收购深鉴科技,计划未来布局中国ADAS及自动驾驶

四款炫酷Linux开源程序照亮你的生活!

许多 Linux 用户认为在终端中工作太复杂、无聊,并试图逃避它。但这里有个改善方法 —— 四款终端....

的头像 Linux爱好者 发表于 08-13 14:36 147次 阅读
四款炫酷Linux开源程序照亮你的生活!

FPGA学习系列:26. 计算器的设计

设计背景:计算器是设计中经常用到的一个操作软件,设计和学习计算器使我们亲密的联系所学的各模块, 对我....

的头像 FPGA学习交流 发表于 08-13 13:45 94次 阅读
FPGA学习系列:26. 计算器的设计

FPGA学习系列:27. VGA驱动设计

设计背景:     VGA (Video Graphics Array) 即视频图形阵列,是IBM于....

的头像 FPGA学习交流 发表于 08-13 13:45 114次 阅读
FPGA学习系列:27. VGA驱动设计

简谈FPGA/Verilog中inout端口使用方法

        大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA/Verilog中inout....

的头像 FPGA学习交流 发表于 08-13 13:45 102次 阅读
简谈FPGA/Verilog中inout端口使用方法

嵌入式AI应用,为消费者提供更多新型的AI应用程序

区别于“传统”一切都基于云的人工智能(AI),这些基于现场应用设备的神经网络计算,可以被称为嵌入式A....

发表于 08-13 10:33 66次 阅读
嵌入式AI应用,为消费者提供更多新型的AI应用程序

主流的几款国产嵌入式操作系统

SylixOS 是一个开源的跨平台的大型实时操作系统(RTOS),SylixOS 诞生于2006年,....

的头像 电子工程师时间 发表于 08-13 08:38 813次 阅读
主流的几款国产嵌入式操作系统

常见的嵌入式C语言的3道面试题含答案,快来学习吧!

题一:简述strcpy sprintf与mencpy的区别思考过后,再到下方寻找答案 题二:如何避....

的头像 嵌入式ARM 发表于 08-12 11:02 276次 阅读
常见的嵌入式C语言的3道面试题含答案,快来学习吧!

嵌入式Linux模块编译步骤详细概述让你少走弯路

今天将直接了当的带你进入linux的模块编译,当然在介绍的过程当中,我也会添加一些必要的注释,以便初....

的头像 嵌入式ARM 发表于 08-12 10:56 249次 阅读
嵌入式Linux模块编译步骤详细概述让你少走弯路

嵌入式应用开发应用架构有什么作用?嵌入式程序设计的一些思路

如果没有好的架构,移植将会是一件很痛苦的事情。如果没有好的架构,复用是最大的难题,没法更大限度的复用....

的头像 嵌入式ARM 发表于 08-12 10:49 265次 阅读
嵌入式应用开发应用架构有什么作用?嵌入式程序设计的一些思路

以FPGA为核心的多轴控制器设计

专用控制器在完成整个控制的过程中,arm只负责指令解析、控制指令发送、实时数据上传等任务,fpga才....

发表于 08-12 09:47 253次 阅读
以FPGA为核心的多轴控制器设计

如何使用云科技在线设计PCB?详细经验教程

OrCAD® Capture Cloud工具作为桌面版本的一部分被引入市场,并拥有如下优势: 无需....

的头像 CadencePCB和封装设计 发表于 08-12 09:44 225次 阅读
如何使用云科技在线设计PCB?详细经验教程

以FPGA系统为核心的1553B总线接口设计

在总线接口模块中,曼彻斯特编解码是实现功能的核心部分,所以编码数据和解码数据是进行功能验证时观察的重....

发表于 08-12 09:44 57次 阅读
以FPGA系统为核心的1553B总线接口设计

如何设计一个基于FPGA的嵌入式监控系统?

为了实现自动图像报警和图像采集,本文设计了动体检测算法,这是因为绝大多数情况下我们只对监控区域中运动....

发表于 08-12 09:39 60次 阅读
如何设计一个基于FPGA的嵌入式监控系统?

以FPGA为核心的高阶快速数字滤波器设计

本文详细讲述了通过Matlab工具设计FIR线性相位滤波器的方法, 并针对声波信号设计了优于传统结构....

发表于 08-12 09:33 56次 阅读
以FPGA为核心的高阶快速数字滤波器设计

如何利用FPGA研究CPU工作原理实现其功能?

初始时的PC 为0000H, SP为03FFH。SP的更改可通过指令sph l来执行。针对实验箱, ....

发表于 08-12 09:29 67次 阅读
如何利用FPGA研究CPU工作原理实现其功能?

以嵌入式处理器为核心的IP复用技术应用

嵌入式处理器是嵌入式系统的核心,有硬核和软核之分。其中,嵌入式处理器软核以其更大的使用灵活性,更低廉....

发表于 08-12 09:23 187次 阅读
以嵌入式处理器为核心的IP复用技术应用

如何设计一个基于嵌入式系统的智能交通灯控制系统?

电源是整个系统的动力源,对于整个系统运行过程处于至关重要的作用,系统中不同模块对供电需求也各不相同。....

发表于 08-12 09:15 83次 阅读
如何设计一个基于嵌入式系统的智能交通灯控制系统?

如何设计一个16位的嵌入式微控制器?

使用的FPGA器件是StratixⅡ型号为EP1S40F780C7。综合结果显示:A8096使用3 ....

发表于 08-12 09:11 73次 阅读
如何设计一个16位的嵌入式微控制器?

在嵌入式系统中如何利用CPLD技术来更加方便的使用DRAM?

DRAM控制器由80C186XL状态信号S2、S1和S0的解码来检测总线的开始、类型和结束。这些状态....

发表于 08-12 09:03 36次 阅读
在嵌入式系统中如何利用CPLD技术来更加方便的使用DRAM?

以C51单片机为核心的嵌入式系统实时控制设计

C8051F120芯片上本身自带了A/D转换器,但只有12位,不适合该系统的需求,故在片外另加一片A....

发表于 08-12 08:56 59次 阅读
以C51单片机为核心的嵌入式系统实时控制设计

关于FPGA的优势以及产业化的限制因素详解

可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改、配置器件内部连接结构....

发表于 08-11 11:47 56次 阅读
关于FPGA的优势以及产业化的限制因素详解

如何将气象数据运用到传热仿真中?

在设计设备或工艺流程时,除了研究系统本身之外,很重要的是还要考虑周围环境的影响。借助历史气象数据对不....

的头像 COMSOL 发表于 08-11 11:46 569次 阅读
如何将气象数据运用到传热仿真中?

各种存储器接口控制器设计所面临的挑战和Xilinx的解决方案详解

FPGA 设计人员在满足关键时序余量的同时力争实现更高性能,在这种情况下,存储器接口的设计是一个一....

发表于 08-11 11:04 1352次 阅读
各种存储器接口控制器设计所面临的挑战和Xilinx的解决方案详解

一种关于利用DSP嵌入式技术的赛车刹车控制系统的设计详解

本文在硬件电路设计上采用DSP 芯片和外围电路构成速度捕获电路,电机驱动控制器采用微控制芯片和外围....

发表于 08-11 10:46 60次 阅读
一种关于利用DSP嵌入式技术的赛车刹车控制系统的设计详解

一种基于嵌入式系统应用的机器人视觉系统设计详解

随着Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结....

发表于 08-11 10:35 272次 阅读
一种基于嵌入式系统应用的机器人视觉系统设计详解

Linux环境下对磁盘分区进行管理的一种机制

物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,....

的头像 马哥Linux运维 发表于 08-10 17:58 271次 阅读
Linux环境下对磁盘分区进行管理的一种机制

FPGA究竟是什么?能代替CPU架构吗?

FPGA全称现场可编程门阵列(Field-Programmable Gate Array),最初作为....

的头像 FPGA极客空间 发表于 08-10 17:23 370次 阅读
FPGA究竟是什么?能代替CPU架构吗?

一种通过嵌入式互联网技术控制在线嵌入式设备的远程监控系统设计

随着Internet的广泛普及和通信技术的高速发展,大量基于TCP/IP的Internet应用可以被....

发表于 08-10 17:19 554次 阅读
一种通过嵌入式互联网技术控制在线嵌入式设备的远程监控系统设计

关于嵌入式Linux系统开发学习流程详解

C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知....

发表于 08-10 17:15 89次 阅读
关于嵌入式Linux系统开发学习流程详解

浅析Linux中命令链接操作符的十个最佳实例

Linux命令中链接的意思是,通过操作符的行为将几个命令组合执行。

的头像 马哥Linux运维 发表于 08-10 15:51 136次 阅读
浅析Linux中命令链接操作符的十个最佳实例

如何实现用Python开发FPGA?

近日,想必各位科技爱好者的朋友圈都被一篇发表在第25届IEEE国际讨论会上,用Python开发FPG....

的头像 FPGA开发圈 发表于 08-10 14:57 194次 阅读
如何实现用Python开发FPGA?

Linux内核的git历史记录一些最奇怪的事情

正如我所看到的,这个有66个父节点的不同寻常的提交在某种程度上只是对于ASoc代码修改的正常合并。A....

的头像 Linux爱好者 发表于 08-10 11:22 255次 阅读
Linux内核的git历史记录一些最奇怪的事情