FPGA设计流程及启动方式

FPGA设计流程及启动方式

1.1 设计流程

FPGA设计流程
fpga设计流程

1.2 FPGA与各器件对比

1.2.1

FPGA与各器件对比

种类特点
FPGAField Programmable Gate Array现场可编程逻辑门阵列查找表;硬件可编程、灵活性高、功耗较低
CPUCentral Processing Unit中央处理器软件可编程、灵活性高、功耗高
DSPDigital Signal Processing数字信号处理芯片存储哈佛结构,DSP作为专门的微处理器,主要用于计算,优势是软件的灵活性
CPLDComplex Programmable Logic Device复杂可编程逻辑器件乘积项

FPGA与DSP对比

CPU/MCU指令执行流水线:取值、译码、执行、访存、写回

1.2.2

灵活性与效率之间存在矛盾,因此出现了芯片融合的方案

  • MPU+DSP+专用IP+PL(可编程逻辑)
  • Zynq(ps + pl)

1.3 FPGA启动方式

1.3.1 Xilinx fpga启动配置

Xilinx fpga启动配置详解

  • 一.主模式:可以理解为FPGA作为master,主动从外部存储器加载比特流。
  1. 配置所需的时钟信号( 称为CCLK) 由FPGA内部产生;
  2. 在主模式下,FPGA上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;
  3. 主模式根据比特流的位宽又可以分为:串行模式( 单比特流) 和并行模式( 字节宽度比特流) 两大类。
  • 二.从模式:可以理解为FPGA作为slave,由外部CPU、MCU、DSP等控制将数据下载到FPGA中。
  1. FPGA 的配置数据可以放在系统的任何存储部位,包括:Flash、硬盘、网络,甚至在其余处理器的运行代码中;
  2. 在从模式下,FPGA 作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。
  3. 从模式也根据比特流的位宽不同分为串、并模式两类。
  • 三.JTAG模式(调试模式):JTAG 模式为调试模式,可将PC 中的比特文件流下载到FPGA中,断电即丢失。
    在JTAG模式中,PC和FPGA通信的时钟为JTAG接口的TCLK,数据直接从TDI进入FPGA,完成相应功能的配置。
  • 四.系统模式(多片配置模式):为了解决大规模FPGA的配置问题,赛灵思公司推出了系统级的System ACE(Advanced Configuration Environment) 解决方案。

1.3.2 Zynq启动配置

Zynq启动配置详解
  不同于普通FPGA,zynq的启动是以ARM主导的,包括FPGA程序的加载,Zynq 的具体启动配置是分级进行的,一共可以分为3个阶段

  1. Stage 0: BootROM 阶段
  2. Stage 1: FSBL (First Stage Boot loader)阶段
  3. Stage 2: SSBL (Second Stage Boot loader)阶段

  一:Stage 0: BootROM 阶段
BootROM 在从外部存储设备读取了启动镜像后,通常会把它进行加载到 OCM 中。OCM,On Chip Memory,是Zynq 中 ARM 内核的片上存储器,也叫片上内存。自此之后,BootROM 阶段的启动任务就算是圆满结束了,接下来 BootROM 阶段就把控制权转移到了阶段1手中。
stage0

  二:Stage 1: FSBL,(First Stage Boot Loader)阶段
可以分为以下4项:

完成 PS 的初始化
加载 PL 的bit流文件,完成 PL 配置
加载 SSBL 引导程序或是ARM的裸跑程序到 DDR
跳转执行 SSBL 或裸跑程序
FSBL 的任务如上所示,整个思路还是非常清晰的。第1步就是对 PS 端初始化,包括 DDR,MIO 等。第2步就是PL的配置,也就是传统的 FPGA 下载 bit 流的过程,但要注意的是,在 Zynq 的非 JTAG 模式下,PL 是无法直接自行配置的。第3步是加载 SSBL 或裸跑程序到 DDR 内存中,其中 SSBL,Second Stage Boot Loader,是在 Zynq 需要运行操作系统时才进行加载。而像我们入门学习时做的点亮 LED 灯实验,就只是属于裸跑程序。最后第4步,ARM 会跳转到 DDR 中执行所加载的程序。
在这里插入图片描述
  三:Stage 2:SSBL阶段
SSBL 在 Zynq 的启动过程中是可选的一个阶段,就像所提到的点亮 LED 实验,包括一些其他的比较小型的程序,如果不需要用到操作系统的话,那么 Zynq 的启动流程到 FSBL 阶段就足够了。因此,SSBL 是面向于需要运行操作系统的应用场合。相信熟悉操作系统启动知识的朋友到这里应该很清楚了,SSBL 就是操作系统在启动过程中的引导程序 boot loader。对于 Linux 而言,Zynq 的 SSBL 阶段和 u-boot 的作用是相同的。具体来说,SSBL 的作用就是将 Zynq 所需要的操作系统加载到 DDR 内存之中。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值