第2节 FPGA高级应用
第2节 FPGA高级应用
复杂数字系统设计

可编程逻辑器件上的处理器核
-
Altera:
--Nios/Nios II (soft)
--ARM922T (hard) 5阶段流水线 -
Xilinx:
--MicroBlaze (soft)
--PicoBlaze (soft)
--PowerPC (hard) 5阶段流水线 -
优势:
--可定制、可重配置;
--可构成单片处理器网络;
--片内连接,速度和稳定性较好;
--集成开发环境、开发周期短、成本较低、…… -
缺点:
--成本、功耗、速度、处理能力
处理器核--Altera
Altera Nios/Nios II处理器核
- 处理器软核;
- 指令集、数据通道、地址空间为32bit;
- 32个通用寄存器;
- 可扩展,增加用户自定义指令;
- 可配置:
--Nios II有”fast”、”standard”、”economy”三种类型;
--可选存储器容量;
--可选外设接口; - 使用汇编/C/C++编程
处理器核--Altera Nios结构


Altera嵌入式处理器开发工具
- SOPC Builder是Altera公司提供的一种可加快在可编程逻辑器件上实现嵌入式处理器相关设计的系统级开发工具。
--SOPC Builder提供了一个强大的平台,用于组建一个在模块级和组件级定义的系统。SOPC Builder的组件库包含了从简单的固定逻辑的功能块到复杂的、参数化的子系统等一系列的组件。 - Nios II集成开发环境(IDE)是Nios II系列嵌入式处理器的基本软件开发工具,所有软件开发任务都可以在Nios II IDE下完成,包括编辑、编译、调试程序、下载。Nios II IDE为软件开发提供了四个主要功能:
--工程管理器
--程序编辑与编译
--软硬件调试
--闪存编程器 - SOPC Builder(硬件定制)

-
Nios II IDE(软件开发)

处理器核--Xilinx

处理器核--Xilinx PicoBlaze
- PicoBlaze微控制器软核
--8bit微控制器;
--支持Xilinx Virtex/Virtex-E, Spartan-II/E, Virtex-II/Pro, Virtex-4等系列FPGA器件;
--占用芯片面积(逻辑资源)较少: 84 Virtex-II slices, 33% of XC2V40;
--在Virtex™-II系列FPGA上性能可达66 MIPS ;
--可以在PicoBlaze上用软件,方便快捷的实现对实时性要求不是很高的状态机;
--快速的中断响应,响应时间可预测. - 应用举例
--机顶盒显示控制;IEEE 1394 接口链路层控制;存储卡读写控制;通信控制器;网络设备中的预处理部分;电机控制电路;…… - 32 个8-Bit通用寄存器;
- Arithmetic Logic Unit (ALU)
--操作数保存在寄存器中;
--包含逻辑、算术、移位等操作; - 标志位 (可用来控制程序流程)
- 输入/输出
--256个输入端口、 256个输出端口 (8 bits); - 中断
--一个中断信号,可复用 - 可预测的执行时间
--每个指令的执行时间为2个时钟周期;

PicoBlaze指令集:


处理器核--Xilinx MicroBlaze
-
32 bit RISC, Harvard 结构软核
-
3阶段流水线,32个32bit通用寄存器
--1000~1500 slices (10% of XC4V-LX25)
--We can put about 8 CPUs in an FPGA
-处理器阵列、处理器网络 -
可定制,可配置
--Caches
--ALU, FPU -
Memory/bus interfaces
--Local memory bus (LMB)
--On-chip Peripheral Bus (OPB)
--Fast Simplex Links (FSL)


-
处理器阵列

-
内部结构:

-
系统框图

- RISC处理器
--哈佛结构
--32-bit ALU, 32-bit data bus, 32-bit instruction word, 32 x 32 General Purpose Register file
--3 阶流水线 - 指令集: only 54 instructions in total
--Default execution - 1 cycle
--Load/store - 2 clock cycles
--Multiply - 3 clock cycles
--Branches - 3 clock cycles - 中断处理
--1 interrupt port exists on the core
-32 interrupts and masking supported through interrupt controller(s)
-Interrupts can be edge or level triggered
--Interrupt latency
-4 clock cycles (1 for detecting, 3 for branching)



