SOPC 系统设计入门教程.pdf-FPGA CPLD资料源码分享社区-FPGA CPLD-ChipDebug

SOPC 系统设计入门教程.pdf

该帖子部分内容已隐藏
付费阅读
3积分
此内容为付费阅读,请付费后查看

前言
目录
第一章 概述
1.1 SOPC 的概念
1.2 SOPC 系统设计流程
1.2.1 SOPC Builder 的设计流程
1.2.2 SOPC Builder 的设计阶段
1.2.3 SOPC 系统开发流程
1.3 SOPC 系统开发环境
1.4 本书中的系统配置
第二章 SOPC 系统构架
2. 1 系统模块框图
2. 2 Nios CPU
2.2.1 指令总线主端口
2.2.2 数据总线主端口
2.2.3 缓冲存储器
2.2.4 移位单元
2.2.5 乘法支持
2.2.6 中断支持
2.2.7 Nios 片上调试模块
2.2.8 开发环境
2. 3 Avalon 总线
2.3.1 基本概念
2.3.2 Avalon 总线传输
2.3.3 Avalon 三态接口
2.3.4 地址对齐
2. 4 外设 IP 模块
2.4.1 通用异步串行接口(UART)
2.4.2 可编程并行输入/输出模块(PIO)
2.4.3 定时器
2.4.4 DMA 控制器
第三章 系统硬件开发
3.1 硬件开发流程
3.2 创建 Quartus II 工程
3.3 创建 Nios 系统模块
3.3.1 开始使用 SOPC Builder
3.3.2 系统频率
3.3.3 添加 CPU 和外设模块
3.3.4 指定基地址
3.3.5 生成系统模块
3.3.6 添加符号到 BDF 中
3.4 编译设计(Compilation)
3.5 编程(Programming)
3.5.1 配置 FPGA
3.5.2 用户微控制器
3.5.3 在 Nios 系统上运行软件
3.6 下载设计到 Flash 存储器
第四章 系统软件开发
4.1 软件开发流程
4.2 软件开发环境
4.3 文件系统
4.4 软件开发工具
4.4.1 GNUPro 工具
4.4.2 Nios OCI 调试模块
4.4.3 Nios OCI 调试控制台
4.4.4 Nios SDK Shell
4.5 可配置的处理器硬件属性
4.5.1 乘法器
4.5.2 数据和指令高速缓冲器
4.5.3 用户指令
4.5.4 同时执行的多主(Multi-Master)总线结构和 DMA
4.5.5 数据和指令高速缓冲器
4.5.6 外设和存储器接口
4.6 Nios SDK
4.6.1 inc 目录
4.6.2 lib 目录
4.6.3 src 目录
4.7 软件开发应用
4.7.1 开始前的准备
4.7.2 打开 Nios SDK Shell
4.7.3 编译程序
4.7.4 用 insight 下载、运行和调试程序
4.7.5 用 Nios OCI 调制控制台下载、运行和调试程序
4.7.6 重建(rebuild)软件
4.7.7 下载软件到 Flash
4.7.8 第三方开发和调试工具
4.8 使用.hexout
4.9 其它的开发板通信和调试方法
4.9.1 GERMS 监视器
4.9.2 Insight:GNU 调试器
4.9.3 Gprof:GNU Profiler
4.10 Nios SDK Shell 提示信息
4.11 在 Nios 系统中实现中断服务程序(ISR)
4.12 用户自定义指令
4.12.1 用户自定义指令的概念
4.12.2 加速效果
4.12.3 用户自定义指令应用
第五章 系统模拟与调试
5.1 软件配置
5.2 模拟设置
5.2.1 存储器初始化
5.2.2 UART 外设模拟设置
5.2.3 SOPC Builder 模拟设置
5.2.4 通用系统模拟文件
5.3 ModelSim 模拟
5.4 模拟结果分析
5.4.1 通过 UART 外设同 GERMS 监控程序交互
5.4.2 执行 PIO 外设操作的 C 程序
5.5 增加/删除波形图信号
5.6 片外存储器模拟
5.6.1 使用自动产生的存储器模块
5.6.2 指定一个定制模块
5.6.3 定义存储器模块内容
5.7 调试
5.7.1 使用 SignalTap II 逻辑分析器
5.7.2 使用 SignalProbe
5.7.3 使用 Chip Editor
第六章 系统设计实例
6.1 建立硬件需求
6.2 创建一个基本的 Nios 设计
6.3 GDB 调试
6.4 添加用户外设
6.5 RTL 仿真
6.6 Flash 编程
6.7 用户指令和 DMA
6.8 MP3 播放器
附录 1:Nios 嵌入式处理器 32 位指令集
附录 2:Nios 嵌入式处理器开发板-APEX 20K200E
附录 3:Nios 嵌入式处理器开发板-Cyclone_1C20
附录 4:Nios 嵌入式处理器开发板-Stratix_1S10
附录 5:Nios 嵌入式处理器开发板-Stratix_1S40

 

第一章 概述
1.1 SOPC 的概念

在二十世纪九十年代末,可编程逻辑器件(PLD)的复杂度已经能够在单个可编程器件
内实现整个系统,完整的单芯片系统(SOC)概念是指在一个芯片中实现用户定义的系统。
在一个SOC设计中,将涵盖到包括微处理器、DSP芯片、存储器件、I/O、控制逻辑、混合信
号模块(Mixed-Signal Blocks )等在内的许多部分。
在系统设计复杂度不断的提高及新产品市场周期不断缩短的压力下,把FPGA及微处理器
的核心内嵌在同一芯片上,构建成为一个可编程的SOC系统体系框架结构,建成所谓的可编
程芯片系统SOPC(System on a Programmable Chip),从而为系统设计者提供了又一灵活快
捷的设计方法与途径。
SOPC 是一种新的系统设计技术,也是一种新的软硬件综合设计技术。通过它,可以很
快地将硬件系统(包括微处理器,存储器,外设以及用户逻辑电路等)和软件设计都放在一
个可编程的芯片中,以达到系统的 IC 设计。这种设计方式,具有开发周期短以及系统可修
改等优点。设计完成的 SOPC 可以通过 HARDCOPY 转为 ASIC 芯片,从而可以实现快速量产。
在 2000 年,Altera 发布了 Nios 软核 RISC 处理器,这是 Altera Excalibur 嵌入处理
器计划中第一个产品,它成为业界第一款为可编程逻辑优化的可配置处理器。Altera 把可
编程逻辑的固有的优势集成到嵌入处理器的开发流程中,一旦定义了处理器之后,设计者就
“具备”了体系结构,可以马上开始设计软件原型。CPU 周边的专用硬件逻辑可以慢慢地集
成进去,在每个阶段软件都能够进行测试,解决遇到的问题。另外,软件组可以对结构方面
提出一些建议,改善代码效率和/或处理器性能,这些软件/硬件权衡可以在硬件设计过程中
间完成。
为了减轻设计者的负担,最佳的途径是把所有和处理器子系统相关的底层详细资料集中
到单个工具中。Altera 提供了这样的工具 SOPC Builder,它包括两方面的内容:第一,它
具有直观的图形用户接口(GUI),便于设计者准确地添加和配置系统所需的外设(包括存
储器,定制外设和 IP 模块)。第二,它会自动完成系统集成工作,这样设计者不必拘泥于
定义存储器映射,中断控制和总线控制这样的工作。
GUI 以直观的方式允许设计者配置复杂的系统。除了提供软件和集成的 OS 之外,这还
包括定义具有多总线主设备,总线仲裁和 DMA 控制的系统。通过这样的“库-表接口”,它
能自动地把部件添加到系统中。用户从有效外设库中来选择,这个库在 SOPC Builder 窗口
的左边,如图 1-1。然后,外设出现在当前系统的部件表中,这个表在 SOPC Builder 窗口
的右边。每个外设可能会启动一个配置向导,指导用户为这个系统配置外设的功能。
部件表 GUI 允许用户输入每个外设基地址和中断优先级(SOPC Builder 也可以自动进
行分配)。最后,通过窗口中部的“接插板”功能,设计者可以直观地连接总线体系,分配
从设备端的仲裁优先级。其中,垂直线代表主设备;水平线代表从设备。接插板让用户制定
主设备和从外设之间的连接,还可以为不同的主设备分配权重。这些权重定义了每个竞争主
设备如何访问从设备。
当用户点击“Generate”按钮时,SOPC Builder 会生成每个硬件部件以及连接部件的
片内总线结构,仲裁和中断逻辑。SOPC Builder 也会产生系统可仿真的 RTL 描述,以及为
特定硬件配置设计的测试平台,能够(可选)把硬件系统综合到单个网表中。
拥有了这些合适的部件,自动硬件生成的过程基本就可以完成,但是还需要满足软件设
计者的要求。利用设计过程中采集的信息,SOPC Builder 能够生成 C 和汇编头文件,这些
头文件定义了存储器映射,中断优先级和每个外设寄存器空间的数据结构。这样的自动生成
过程帮助软件设计者处理硬件潜在的变化性。如果硬件改变了,SOPC Builder 会自动更新
这些头文件。SOPC Builder 也会为系统中现有的每个外设生成定制的 C 和汇编函数库 。例
如,如果系统包括一个 UART,然后 SOPC Builder 就会访问 UART 的寄存器定义一个 C 结构,
生成通过 UART 发送和接收数据的 C 和汇编例程。

请登录后发表评论

    没有回复内容