课程背景 |
片上可编程系统(System On Programmable Chip,SOPC)已经成为嵌入式系统的发展方向。本书介绍基于源代码开放的OpenRisc1200(以下简称OR1200)软核处理器的SOPC设计方法。本书分为两部分,第一部分介绍OR1200软核处理器的架构和配置、Wishbone总线的标准及OR1200软核处理器软硬件开发环境的建立;第二部分以具体实例说明如何使用OR1200软核处理器完成嵌入式设计,其中包括:调试接口的实现、OR1200控制片内存储器和I/O、串口、SDRAM、外部总线、以太网、LCD及SRAM;另外还介绍如何在OR1200上运行嵌入式Linux,并针对第二部分给出部分源代码。 |
培养对象 |
具备一年左右的FPGA系统或者硬件系统开发设计经验的工程师,或者具有一定基础的电子类专业的大学生和研究生,对SOPC或OR1200软核处理器感兴趣的。 |
入.学.要.求 |
学员学习本课程应具备下列基础知识:
◆已经参加过FPGA应用设计初级班的学习,或者了解FPGA的开发设计流程;
◆具备一定的FPGA设计基础,熟悉VHDL或者Verilog
HDL语言。 ☆注重质量
☆边讲边练
☆合格学员免费推荐工作
★实验设备请点击这儿查看★ |
班.级.规.模.及.环.境 |
坚持小班授课,为保证培训效果,增加互动环节,每期人数限3到5人。 |
时间地点 |
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:电影大厦(地铁一号线大剧院站)/深圳大学成教院 【北京分部】:北京中山/福鑫大楼 【南京分部】:金港大厦(和燕路) 【武汉分部】:佳源大厦(高新二路) 【成都分部】:领馆区1号(中和大道) 【沈阳分部】:沈阳理工大学/六宅臻品 【郑州分部】:郑州大学/锦华大厦 【石家庄分部】:河北科技大学/瑞景大厦 【广州分部】:广粮大厦 【西安分部】:协同大厦
最近开课时间(周末班/连续班/晚班):OpenRisc班开课:2024年1月8日(请抓紧报名)
本课程每期班限额5名,报满即停止报名,请提前在线或电话预约
|
学时和费用 |
☆资深工程师授课
|
.最.新.优.惠. |
◆团体报名优惠措施:两人95折优惠,三人或三人以上9折优惠 。注意:在读学生凭学生证,即使一个人也优惠500元。
|
.质.量.保.障. |
1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
2、培训结束后免费提供半年的技术支持,充分保证培训后出效果;
3、培训合格学员可享受免费推荐就业机会。 |
师资团队 |
◆【赵老师】
FPGA课程金牌讲师,项目经验非常丰富,15年FPGA/DSP系统硬件开发工作经验。熟悉整个EDA设计流程,熟练使用Alter、Xinlinx,ModelSim开发工具,精通Verilog
HDL语言和VHDL语言,精通Nios II EDS/SOPC、、IP核、PCI PLX 9054数据采集卡等开发。
◆【陈老师】
资深FPGA开发工程师,FPGA培训课程金牌讲师,有8年的FPGA和DSP系统硬件开发经验,最近4年来一直从事视频和图像处理领域的高速DSP系统硬、软件和FPGA系统的设计和开发,具有非常丰富的高速系统设计经验,精通TI公司的C6000系列高速DSP和Altera公司的全系列FPGA/CPLD。
更多师资力量请参见曙海师资团队,请点击这儿查看。 |
课程进度安排 |
.课.程.大.纲. |
|
|
第1部分 SOPC及常用软核处理器概述
1.1 从SoC到SOPC
1.3 常用软核处理器概述
1.2.1 LEON系列
1.2.2 Altera公司的NiosII
1.2.3 OpenCores组织的OpenRisc系列
第2部分 OR1200软核的配置
2.1 OR1200软核的架构
2.2 OR1200软核的组成
2.3 OR1200软核的配置
第3部分 Wishbone片上总线
3.1 Wishbone总线概述
3.2 Wishbone总线信号和时序
3.2.1 Wishbone总线信号
3.2.2 Wishbone总线循环
3.2.3 Wishbone互连接口、结构及工作原理
3.2.4 Wishbone主设备和从设备模型
第4部分 软件开发工具的安装和使用
4.1 GNU交叉编译环境的组成和建立
4.1.1 交叉编译
4.1.2 binutils
4.1.3 GCC
4.1.4 GDB
4.1.5链接描述文件
4.2 make和Makefile的使用
4.2.1 Makefile的基本结构
4.2.2 Makefile的变量
4.2.3 隐含规则
4.2.4 make的命令行选项
4.3 加深对Makefile的理解
4.3.1 汇编语言
4.3.2 C语言
4.4 ORlk系列CPU的体系结构模拟器orlksim
第5部分 片内存储器和I/O控制器的设计
5.1 FPGA内部的RAM块资源
5.1.1 RAM块的使用
5.1.2 CyelonelI的RAM块
5.1.3 单口RAM块的描述方法
5.1.4 简单双口RAM块的描述方法
5.1.5 单口ROM块的描述方法
5.2 I/O控制器的结构和功能
5.2.1 通用I/O控制器
5.2.2 最简I/O控制器
5.3 ORP概念及其定义
5.4 设计与Wishbone兼容的RAM和ROM模块
5.4.1 RAM模块
5.4.2 ROM模块
5.5 最简I/O控制器及综合结果分析
5.5.1 最简I/O控制器
5.5.2 综合结果分析
5.6 最小系统的建立、编译和仿真
5.6.1 最小系统的建立
5.6.2 编写程序
5.6.3 仿真
第6部分 Debug接口的实现
6.1 JTAG原理和标准
6.1.1 JTAG简介
6.1.2 基本单元
6.1.3 总体结构
6.1.4 TAP状态机
6.1.5 应用
6.2 调试模块的结构及其与OR1200的连接方法
6.2.1 DBGI简介
6.2.2 DBGI结构
6.2.3 I/O端口
6.2.4 内部寄存器
6.2.5 链结构
6.2.6 未来发展
6.3 DBGI的集成和板级功能仿真
6.3.1 DBGI的集成
6.3.2 板级功能仿真
6.4 GDB、JTAG、GDBServer、orlksim的工作原理
6.4.1 GDB
6.4.2 GDB和JTAG Server
6.4.3 GDB和GDBServer
6.4.4 GDB和orlksim
6.4.5 JTAG协议
6.5 使用GDB和JTAG Server进行Debug接口的调试
6.6 使用DDD进行可视化调试
第7部分 UARTl6550内核的结构和使用
7.1 UART的概念、功能和发展
7.2 UART的通信模式、数据格式和流控制
7.2.1 通信模式
7.2.2 数据格式
7.2.3 流控制
7.3 工业标准UART 16550
7.3.1 特性
7.3.2 接口和结构
7.3.3 寄存器
7.4 兼容16550的UART IP Core
7.5 OR1200的异常和外部中断处理
7.6 集成带有UART的系统
7.6.1 集成
7.6.2 编程
7.7 仿真带有UART的系统
7.8 验证带有UART的系统
第8部分 SDRAM的时序和控制器
8.1 SRAM与DRAM
8.1.1 SRAM
8.1.2 IS61LV25616
8.1.3 DRAM
8.1.4 SRAM和DRAM比较
8.2 SDRAM的内部结构和控制时序
8.2.1 结构
8.2.2 命令和初始化
8.2.3 模式寄存器
8.2.4 Bank行激活
8.2.5 读/写时序
8.2.6 自动刷新
8.3 SDRAM控制器wb_sdram
8.4 集成和仿真存储系统
8.4.1 存储器模型
8.4.2 system_sdram.v
8.4.3 ar2000_sdram.v
8.4.4 ar2000_sdram_bench.v
8.4.5 结构
8.4.6 仿真
8.5 验证存储系统
第9部分 外部异步总线控制器的设计
9.1 异步总线控制器的结构和功能
9.1.1 异步总线的组成
9.1.2 异步总线的读/写时序
9.2 编写异步总线控制器
9.2.1 编写代码
9.2.2 I/O端口
9.3 异步总线控制器的仿真
9.4 集成和仿真存储系统
9.4.1 存储器模型
9.4.2 system_eabus.v
9.4.3 ar2000_eabus.v
9.4.4 ar2000_eabus_bench.v
9.4.5 结构
9.4.6 编程
9.4.7 仿真
第10部分 ORPMon的功能和实现
10.1 C语言函数接口
10.1.1 寄存器使用
10.1.2 堆栈帧
10.1.3 参数传递和返回值
10.2 ORPMon的基本功能及其实现方法
10.2.1 ORPMon
10.2.2 ORPMon基本工作原理
10.2.3 特殊功能寄存器操作
10.3 ORPMon的移植
10.3.1 源代码
10.3.2 链接文件
10.4 ORPMon的仿真
10.5 ORPMon的运行
10.6 使用Flash运行ORPMon
第11部分 以太网控制器的结构和Linux驱动
11.1 以太网的CSMA/CD原理和MII接口
11.1.1 CSMA/CD
11.1.2 MII接口
11.1.3 CSMA/CD的帧接收和发送过程
11.2 OpenCores的以太网控制器
11.2.1 以太网控制器简介
11.2.2 以太网控制器的接口
11.2.3 以太网控制器的寄存器
11.2.4 缓冲描述符
11.3 以太网控制器的内部结构
11.3.1 控制器总体结构
11.3.2 MII管理模块
11.3.3 接收模块
11.3.4 发送模块
11.3.5 控制模块
11.3.6 状态模块
11.3.7 寄存器模块
11.3.8 Wishbone接口模块
11.4 嵌入式Linux简介
11.5 对Linux进行配置、修改、编译、下载和运行
11.6 使用0RPMon启动Linux
11.6.1 设计可以启动Linux的ORPMon
11.6.2 固化Linux
11.7 集成以太网控制器
11.7.1 system_eth.v
11.7.2 ar2000_eth.v
11.7.3验证以太网控制器
第12部分 LCD控制器的使用
12.1 OpenCores的VGA/LCD控制器
12.2 VGA/LCD控制器的接口与寄存器
12.2.1 VGA/LCD控制器的接口
12.2.2 VGA/LCD控制器的寄存器
12.3 VGA/LCD控制器的使用方法
12.3.1 视频时序
12.3.2 像素色彩
12.3.3 带宽需求
12.4 集成和仿真VGA/LCD控制器
12.5 验证VGA/LCD控制器
第13部分 SBSRAM的时序和控制器设计
13.1 SBSRAM控制器的结构和功能
13.1.1 SBSRAM的概念
13.1.2 SBSRAM控制器的读/写操作和时序
13.2 编写SBSRAM控制器
13.3 SBSRAM控制器的仿真
13.4 集成SSRAM控制器
13.4.1 system_ssram.v
13.4.2 ar2000_ssram.v
13.5 验证SSRAM控制器 |
|
|
实验:
1、or1200 的GNU交叉编译环境的组建
2、总线实验
3、一步一步建立32位CPU or1200
4、Modelsim仿真实验
4、Modelsim仿真实验 |