1. fpga
    +关注
    关注 188
    文章 6072
    浏览量 339971
  2. 嵌入式
    +关注
    关注 68
    文章 3323
    浏览量 76923
  3. Linux
    +关注
    关注 20
    文章 2058
    浏览量 81040

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

FPGA2嵌入式 2018-02-05 10:49 次阅读
    大多数FPGA设计者从逻辑设计做起,对软件级设计接触不多,但目前的项目中都少不了处理器软件C的设计,下面接着看下《UltraFast 嵌入式设计方法指南》中关于软件设计方面的内容,主要分3部分:软件设计需要考虑的事项、设计流程及调试等。 1. 软件设计考虑事项     软件设计时,需要先搭建一个处理器到系统中,处理器可以是硬核(如ZYNQ的ARM),也可以是软核(如NIOS II),所有的内容均围绕处理器方面设计展开:处理器配置,操作系统选择,库和中间件,启动加载器,软件开发工具(SDK)。
  1. 处理器配置:配置核心频率、多处理单元协调和数据程序存储空间分配、中断等;
  2. 操作系统选择:选择操作系统活着裸跑;
  3. 库和中间件:方便设计者高效的使用底层硬件的过渡层接口;
  4. 启动加载器:方便操作系统的BOOT设计;
  5. 软件开发工具:C开发环境,类似NIOS IDE开发环境。
    当我们自己在逻辑部分设计了一个底层逻辑后通过接口(一般是总线接口)连接到处理器后,也可以自定义自己的操作接口,通过SDK来操作底层逻辑。如三角函数处理器运算太慢,可以在逻辑中设计一个三角函数后SDK中只需将运算的数据写入对应reg中后得到运算结果,这就实现了硬软件协调处理功能。 2. 软件设计流程     软件设计流程如下图: 其中:
  1. 板启动开发工作包括开发低级固件、设置启动次序、针对接口和外设的基本测试,划分了下列阶段:PS 初始化 ,PL 配置 ,储存器和外设测试,软件和硬件调试;
  2. 驱动开发为 SoC 和板载外设开发软件驱动,用于为OS或裸机应用等更高软件层建立接口;
  3. 针对裸机或 Linux 或 FreeRTOS 等操作系统开发出了相关可运行应用。
    设计中要注重层次,多学习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嵌入式】欢迎添加关注!文章转载请注明出处。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

FPGA基础知识及其工作原理与基本的功能块案例

高端设计工具为少有甚是没有硬件鸿运国际手机版的工程师和科学家提供现场可编程门阵列(FPGA)。无论你使用图....
的头像 传感器技术 发表于 02-17 19:38 次阅读 0条评论
FPGA基础知识及其工作原理与基本的功能块案例

Stratix IV内嵌DPA电路的基本结构分析

不论从哪个角度看,今天的现场可编程门阵列(FPGA),都显得鹤立鸡群,真是非常棒的器件。如果在这个智....
的头像 FPGA极客空间 发表于 02-16 17:38 次阅读 0条评论
Stratix IV内嵌DPA电路的基本结构分析

低成本FPGA中实现动态相位调整方案

在FPGA中,动态相位调整(DPA)主要是实现LVDS接口接收时对时钟和数据通道的相位补偿,以达到正....
的头像 FPGA极客空间 发表于 02-16 17:32 次阅读 0条评论
低成本FPGA中实现动态相位调整方案

SoC FPGA的DSP能力应对新兴的小型基站需求

虽然推动业界向小型基站转变的因素众多,但可能最重要的是,消费者想要随时随地都能快速有效地连接到服务提....
的头像 电子发烧友网工程师 发表于 02-20 09:21 次阅读 0条评论
SoC FPGA的DSP能力应对新兴的小型基站需求

基于QPSK数字调制解调的FPGA实现

随着FPGA技术的发展,数字通信技术与FPGA的结合体现了现代数字通信系统发展的一个趋势。为了使高速....
的头像 电子发烧友网工程师 发表于 02-20 07:50 次阅读 0条评论
基于QPSK数字调制解调的FPGA实现

浅谈Linux touch命令实例

touch命令可以用来修改文件的访问/修改时间戳,使用touch命令创建一个空白文件,需要的语法是“....
的头像 人间烟火123 发表于 02-13 14:08 次阅读 0条评论
浅谈Linux touch命令实例

linux发行版排行 2018大盘点

2018年最受欢迎的 Linux 发行版本将会是什么呢?近日2018 最佳 Linux 发行版排行榜....
的头像 人间烟火123 发表于 02-13 13:52 次阅读 0条评论
linux发行版排行 2018大盘点

进入Linux命令行的简单方法 ​为什么要这样做?

需要访问 GRUB 启动菜单时,需要选择 Linux 发行版条目,按下 e 编辑引导参数。如何进入进....
的头像 人间烟火123 发表于 02-13 13:14 次阅读 0条评论
进入Linux命令行的简单方法 ​为什么要这样做?

基于FPGA的多通道频率测量系统设计方案介绍

FPGA及其外围电路是整个测量系统的核心。外围电路包括以下几个部分:1)电源转换电路,将5V电源转换....
发表于 02-17 03:02 次阅读 0条评论
基于FPGA的多通道频率测量系统设计方案介绍

FPGA和多DSP的高速视觉测量系统

随着检测节点的增多,视觉测量系统需要处理的数据量也不断增大,对视觉测量系统的测量速度提出了更高的要求....
发表于 02-10 13:21 次阅读 0条评论
FPGA和多DSP的高速视觉测量系统

linux之父是谁_linux之父简介

林纳斯·托瓦兹,linux之父是一位著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。....
的头像 lhl545545 发表于 02-10 10:10 次阅读 0条评论
linux之父是谁_linux之父简介

基于FPGA的实时视频图像采集处理系统

设计了一种基于FPGA的实时视频图像采集处理电路系统。采用FPGA作为整个系统的控制和图像数据处理中....
发表于 02-10 02:43 次阅读 0条评论
基于FPGA的实时视频图像采集处理系统

可编程硬件发展路线分析:eFPGA还是FPGA SoC

eFPGA IP和FPGA SoC,谁将在未来更受欢迎呢?笔者认为,这两种生态都表明了SoC在摩尔定....
发表于 02-10 01:30 次阅读 0条评论
可编程硬件发展路线分析:eFPGA还是FPGA SoC

使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹的步骤解析

使用 Shell 脚本在 Linux 服务器上能够控制、毁坏或者获取任何东西,通过一些巧妙的攻击方法....
的头像 马哥Linux运维 发表于 02-09 15:23 次阅读 0条评论
使用 Shell 脚本掩盖 Linux 服务器上的操作痕迹的步骤解析

VI 编辑器的命令、模式和选项介绍

VI 编辑器是一个基于命令行的、功能强大的文本编辑器,最早为 Unix 系统开发,后来也被移植到许多....
的头像 Linux爱好者 发表于 02-09 15:11 次阅读 0条评论
VI 编辑器的命令、模式和选项介绍

使用ECP5 FPGA解决网络边缘 智能、视觉和互连应用设计挑战

随着传感器、低成本摄像头和显示屏在当今嵌入式设计中的使用量飞速增长,市场上出现了许多激动人心的全新智....
的头像 人间烟火123 发表于 02-09 10:55 次阅读 0条评论
使用ECP5 FPGA解决网络边缘 智能、视觉和互连应用设计挑战

解析修改CentOS7网卡名字的步骤

CentOS7网卡名字不再是之前版本的eth0,eth1这样的名字了,而是enoxxx,比较长,不太....
的头像 阿铭linux 发表于 02-09 09:09 次阅读 0条评论
解析修改CentOS7网卡名字的步骤

简单介绍MySQL延迟主从复制

MySQL 5.6 已经支持延迟复制, 可设置备节点的延迟时间, 延迟复制是有意义的,例如防止主节点....
的头像 阿铭linux 发表于 02-09 09:05 次阅读 0条评论
简单介绍MySQL延迟主从复制

介绍两种方法来避免正在执行中的任务中断

有时我们也许会有这样的需求:要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就....
的头像 阿铭linux 发表于 02-09 08:56 次阅读 0条评论
介绍两种方法来避免正在执行中的任务中断

执行rsync的任务的2种方式解析

前面介绍的rsync 5种方式当中,第二、第三(1个冒号)就属于通过ssh的方式,这种方式其实就是让....
的头像 阿铭linux 发表于 02-09 08:48 次阅读 0条评论
执行rsync的任务的2种方式解析
鸿运国际手机版