个人介绍
SOC微体系结构设计

主讲教师:张剑贤、刘锦辉

教师团队:共1

  • 刘锦辉
学校: 西安电子科技大学
开课院系: 计算机科学与技术学院
课程编号: CS205403
学分: 4
课时: 56
课程介绍
    计算机技术与微电子技术的快速发展,对处理器及计算机系统产生重要的影响。随着FPGA技术的发展,基于FPGA的SoC系统设计为计算机结构及系统验证提供了有效的途径。本课程注重基础知识的应用、理论到实践的转化。课程在深入分析SoC系统的基本结构、系统研究内容以及关键技术等基础知识的基础上,讲述基于硬件描述语言的数字系统基本逻辑电路设计方法、基于硬件描述语言的SoC系统中算术运算部件原理及设计方法以及存储器结构及设计方法等内容。重点讨论基于FPGA的SoC系统设计方法以及各个功能部件的设计开发,包括指令集、程序指针、指令寄存器、算术逻辑单元、通用寄存器、程序存储器、数据存储器、堆栈指针以及通用IO接口等功能模块设计实现。最后探讨SoC测试验证方法以及典型SoC系统和最新技术进展情况。
    本课程设计了多个与课程内容相配套的实验。学生需要采用硬件描述语言完成8位SoC系统功能模块设计及综合仿真验证,并按要求完成基于FPGA的原型验证。通过实验使学生能充分了解和掌握计算机内部工作原理及结构,掌握硬件描述语言设计方法及FPGA设计验证方法,为学生从事计算机系统结构的设计、分析、开发与优化等相关工作打下坚实的基础。
教师团队

刘锦辉

职称:副教授

教学方法

通过本课程的学习可系统掌握硬件描述语言设计方法、EDA软件仿真验证、FPGA设计验证方法、总线结构、数据总线、控制总线和控制时序等工程设计概念与方法,综合运用数字逻辑电路、计算机组织与体系结构、微机原理与系统设计、硬件描述语言及FPGA等多门课程知识完成SoC微体系结构设计实现与测试验证。其教学目标是培养学生理论联系实际的能力,提高学生对计算机体系结构的认知能力和核心知识的掌握程度,培养学生的创新能力以及综合运用基础知识的实践动手能力。

课程目标与毕业要求如下:

1. 能够综合运用数字逻辑电路、计算机组织与体系结构、微机原理与系统设计、硬件描述语言及FPGA等基础理论对计算机领域复杂工程问题进行文献分析,寻求解决方案并进行正确表达,并具备认识并评估计算机复杂工程问题的多种解决方案的能力。(支撑毕业要求2.22.3

2. 能够设计实现基于FPGASoC微体系结构,并能正确采集、整理SoC设计实验数据,对实验结果进行关联、分析和解释,获取合理有效的结论。(支撑毕业要求4.4 

3.了解SoC领域主要资料来源及获取方法,能够利用网络查询、检索本领域内专业文献、资料及相关软件工具,并能够使用和开发现代工具,对SoC微体系结构的复杂工程问题进行预测与模拟。(支撑毕业要求5.15.2



教学内容及要求

(一)SoC基本概念 ( 2学时 )

基本内容包括:

1SoC微体系结构的概念;

2SoC关键技术分析;

3SoC设计方法;

4SoC总线结构。

1.基本要求

1)了解SoC的基本概念及常见分类,熟悉SoC的基本结构与特点,了解SoC课程与其他课程衔接关系以及SoC系统级研究内容;

2了解SoC设计关键技术,熟悉设计重用技术、低功耗设计技术、软硬件协同设计技术,掌握IP芯核的分类及特点;

3)掌握SoC系统级设计方法,熟悉SoC设计开发流程;

4)掌握SoC总线结构,熟悉典型SoC片上总线分类及特点。

2.重点、难点

重点:SoC基本结构、设计关键技术以及总线结构

难点:SoC设计方法的理解与应用

3.作业及课外学习要求:

复习SoC基本概念及结构,查找SoC设计方法相关资料,建立SoC微体系结构的概念。

(二)VHDL硬件描述语言( 12学时 )

基本内容包括:

1VHDL的语法结构,包括VHDL语言概述、VHDL程序结构、VHDL语言元素、VHDL基本逻辑语句和VHDL描述方式等;

2)组合逻辑电路设计,包括组合逻辑电路设计方法、编码器设计、多路选择器设计、比较器设计与数码转换电路设计等;

3)时序逻辑电路设计,包括时序逻辑电路特点及设计方法、触发器设计、分频电路设计等;

4)有限状态机设计,包括有限状态机分类及编码、有限状态机程序结构、MooreMealy状态机设计、状态机应用实例分析等。

1.基本要求

1)了解VHDL语法结构及程序构成,掌握VHDL实体、结构体、配置、库及程序包的设计及使用方法,了解VHDL数据对象的特点、数据类型及操作符号,掌握数据对象、数据类型及操作符号的使用场合及方法

2了解VHDL基本逻辑语句的特点、并行处理与顺序处理语句的区别,掌握blockprocess、子程序及顺序执行语句和并行处理语句的使用方法;

3)了解VHDL不同描述方式的特点及使用场合,掌握行为描述、数据流描述和结构描述等三种VHDL描述方法

4)了解组合逻辑电路的基本结构与特点,掌握组合逻辑电路的设计方法,熟悉编码器、多路选择器、比较器与数码转换电路等组合电路的设计方法;

5)了解时序逻辑电路的基本结构与特点,掌握时序逻辑电路的设计方法、触发器、偶数分频器、奇数分频器等分频电路的设计;

6)了解有限状态机的编码方式、分类方法以及基本结构,掌握有限状态机的程序设计结构,了解MooreMealy状态机的原理及特点,掌握MooreMealy状态机的设计方法。

2.重点、难点

重点:VHDL程序结构、数据对象使用方法;顺序执行语句和并行处理语句的使用方法, VHDL描述方式的使用方法,组合逻辑电路、时序逻辑电路及有限状态机的设计方法

难点:变量与信号的使用方法、并行处理语句的设计方法、VHDL结构描述方法、时序逻辑电路设计方法、有限状态机设计方法、MooreMealy状态机的设计及应用场合。

3.作业及课外学习要求:

分析变量与信号之间的区别,分析结构描述方式信号传递关系,设计实现奇数50%占空比的分频电路,设计MooreMealy状态机并分析两者之间的区别。

(三)FPGA结构分析(2学时 )

基本内容包括:

1PLD原理与结构,包括与阵列与或阵列的基本原理及结构;

2PLD发展及分类,包括PROM(可编程只读存储器)EPROM(紫外线可擦除存储器)E2PROM(电可擦除存储器)PLA(可编程逻辑阵列)、PAL(可编程阵列逻辑)GAL(通用阵列逻辑)CPLD(复杂可编程逻辑器件)FPGA(现场可编程门阵列)等;

3CPLD原理与结构,包括宏功能模块、I/O控制块和连线阵列等;

4FPGA原理与结构,包括可编程逻辑模块CLB、输入/输出模块IOB、互连资源IRFPGA器件型号、软件使用等;

5FPGA的发展,包括可编程片上系统SoPC、基于IP库的设计方法、FPGA的动态可重构技术等。

1.基本要求

1)了解PLD原理及分类,熟悉PLD的基本结构,掌握PLD不同分类的异同点;

2了解CPLDFPGA的原理,熟悉CPLDFPGA结构的区别,掌握FPGA的基本结构,了解不同EDA厂商的软件开发平台;

3了解FPGA的发展情况,掌握SoPC基本结构、FPGA嵌入式软核和硬核的分析

2.重点、难点

重点:PLD基本结构、CPLD基本结构、FPGA基本结构、CPLDFPGA结构的区别;

难点:FPGA可编程逻辑块的优化使用,可编程输入输出模块的优化,可编程互连资源的优化配置。

3.作业及课外学习要求:

熟悉FPGA的基本结构及EDA工具的使用。

(四)定点/浮点加法器设计( 2学时 )

基本内容包括:

1)定点加法器设计,包括定点数表示方法、进位链、串行进位、并行进位、加法器的硬件描述结构等;

2)浮点加法器设计,包括浮点数表示方法、浮点数规格化、浮点数硬件描述结构等。

1.基本要求

1)熟悉定点/浮点加法器的基本原理,掌握定点数与浮点数加法器硬件描述方法;

2)掌握串行进位和并行进位设计方法以及浮点数的规格化实现。

2.重点、难点

重点:使用硬件描述语言设计定点和浮点加法器

难点:行波进位、先行进位加法器的硬件实现。

3.作业及课外学习要求:

分析与查询现在加法器进位结构的设计思路及实现方法。

(五)定点乘/除法器设计( 4学时 )

基本内容包括:

1)常用机器数编码方式,包括原码、补码、反码、移码等;

2)定点数乘法器原理及硬件实现结构,包括硬件描述语言设计方法、原码一位乘法器原理及硬件实现、原码二位乘法器的原理及硬件实现、布斯补码一位乘法器的原理及硬件实现以及阵列乘法器的原理及硬件实现;

3定点数除法器原理及硬件实现结构,包括加减交替除法器原理及硬件实现、补码除法器的原理及硬件实现以及阵列除法器的原理及硬件实现。

1.基本要求

1定点数乘法器的硬件描述语言实现方法

2定点数除法器的硬件描述语言实现方法;

3了解各种乘法器、除法器的性能比较。

2.重点、难点

重点:硬件描述语言设计实现原码/补码乘法器、除法器

难点:多位乘法器的设计与实现

3.作业及课外学习要求:

熟悉原码/补码乘法器、除法器原理及硬件描述语言设计方法。

(六)存储器设计( 2学时 )

基本内容包括:

1)随机存取存储器(RAM)设计,包括RAM基本结构分析及实现方法、SRAM读写时序分析、SRAM读写接口设计实现和SRAM硬件描述设计实现等

2)只读存储器(ROM)设计,包括ROM基本结构分析及实现方法、ROM数据初始化、ROM硬件描述语言设计实现等

3)双端口RAM设计,包括双端口RAM基本结构分析及实现方法、双端口RAM读写接口设计实现硬件描述语言设计实现等

4)先进先出队列(FIFO)设计,包括FIFO基本结构及实现方法、FIFO读写接口设计实现硬件描述语言设计实现等

5CRC校验电路设计,包括CRC基本结构及实现方法、CRC读写接口设计实现硬件描述语言设计实现等

1.基本要求

1)熟悉SRAM结构及读写时序,根据时序要求编写SRAM硬件描述语言程序;

2)熟悉ROM、双端口RAMFIFO存储结构,掌握存储器的硬件描述语言设计方法,掌握ROM数据初始化方法,采用硬件描述语言设计ROMFIFO程序;

3)了解CRC校验原理及校验过程,掌握CRC硬件结构及设计方法。

2.重点、难点

重点:片内RAMROMFIFO的硬件描述语言设计方法;

难点:片内RAMROMFIFO的硬件描述语言设计实现。

3.作业及课外学习要求:

熟悉片内RAMROMFIFO的硬件描述语言设计方法,编写SRAMROMFIFO硬件描述语言程序。

(七)SoC系统设计实现( 10学时 )

基本内容包括:

1CPU组成结构,包括控制部件、运算部件和寄存器组等;

2CPU典型案例分析,包括CPU结构、指令集、指令编码、设计思路、时钟节拍、指令译码和微控制器等模块分析;

3 SoC系统设计,包括CPU设计方法、CPU基本结构、指令集设计、指令编码、指令节拍设计、SoC功能模块等设计内容,以及硬件描述语言设计实现时钟节拍产生、程序计数器、程序存储器、指令寄存器、通用寄存器、算术逻辑单元、堆栈指针、数据存储器、通用IO接口和微程序控制器等模块。

1.基本要求

1)了解CPU基本结构,熟悉CPU设计方法及时序分析方法,掌握SoC系统的硬件描述语言设计方法;

2)熟悉时钟分频电路设计,掌握时钟节拍功能及硬件描述语言实现方法;

3掌握SoC系统简单指令集设计方法,熟悉取指令及指令译码执行过程,掌握程序计数器功能与指令关系,熟悉程序存储器、程序计数器及指令寄存器的功能结构及硬件描述语言实现方法;

4掌握通用寄存器、算术逻辑单元、堆栈指针、数据存储器、通用IO接口和微程序控制器的功能结构及硬件描述语言设计实现方法;

5掌握SoC系统各个功能模块间信号传递关系及控制时序关系,掌握SoC系统的综合及仿真验证方法。

2.重点、难点

重点:SoC系统各个功能模块设计实现方法及硬件描述语言的设计实现;

难点:SoC系统各个功能模块的硬件描述实现、模块间信号传递关系、控制信号时序关系、功能模块的综合测试验证。

3.作业及课外学习要求:

熟悉SoC系统设计方法以及各个功能模块的硬件描述语言编程实现

(八)SoC测试验证及技术展望( 2学时 )

基本内容包括:

1SoC系统验证方法,包括验证方法基本原理、硬件仿真器、协同验证与仿真、硬件仿真、系统级时序验证和物理验证等;

2SoC系统测试原理及方法,包括测试的基本原理、测试方法分析、VLSI与系统可测性设计等;

3SoC技术展望,包括基于ARMSoC系统、图形图像处理与GPU的系统、基于PowerPCSoC系统、多核处理器、众核处理器及并行处理系统和片上网络拓扑结构等新技术分析。

1.基本要求

1掌握SoC系统验证方法和SoC系统测试原理及方法;

2了解ARMGPUPowerPC等系统结构及应用实例,了解并行处理器及并行处理技术,了解片上网络基本结构及关键技术。

2.重点、难点

重点:SoC系统验证及测试方法、并行处理器结构、片上网络结构及通信协议;

难点:系统综合测试验证及片上网络结构。

3.作业及课外学习要求:

掌握SoC系统验证测试方法,分析和查阅SoC系统技术新进展


教学效果

本课程是一门以实践为主,注重理论与实践紧密结合的课程。自2012年在计算机科学与技术专业嵌入式方向开始试点实施。经过多年的教学实施及验证,教学内容和实验不断地完善,形成了具有计算机专业鲜明特色的综合设计实践类课程,受益学生1000多人。通过课程的实施,使学生能够将数字电路、计算机组织与体系结构、微机原理与系统设计、硬件描述语言和可编程逻辑器件等课程知识融会贯通,深入了解掌握计算机内部工作原理及功能模块相互关系,建立较完整的计算机专业硬件类知识体系结构。

课程立足本专业学科特点,在SoC系统综合设计项目实现过程中引导学生深入了解计算机内部原理及结构。通过硬件描述语言设计实现SoC微体系结构的方法,实现了计算机专业多门硬件课程的有机结合。在实施过程中引导学生根据任务需求设计功能结构,并通过测试与分析提高学生对计算机体系结构的认知能力、关键原理的掌握程度以及综合实践能力。

课程的教学改革工作得到了校内同行及领导的认可和支持,获得了5项教改项目以及西安电子科技大学教育教学改革案例二等奖。此外,课程改革创新的成果受到了国内高校同行的广泛认可及好评,发表了教改论文1篇,获得了全国电工电子基础课程实验教学案例设计竞赛全国一等奖(1次)和二等奖(3次),全国计算机类课程实验教学案例设计竞赛全国一等奖(1次)和二等奖(2次)。2020年《SOC微体系结构设计》在线课程获得全国高等院校计算机基础教育研究会2020在线教学优秀案例。

获得学校教学出版立项,2024年由西安电子科技大学出版社出版《基于FPGA的自主可控SOC设计》教材一部。

参考教材

 使用教材:

《基于FPGA的自主可控SOC设计》,张剑贤等编著,西安电子科技大学出版社、,2024.01.

参考教材:

       1.《计算机组成与系统结构(第二版)》,裘雪红等编著,西安电子科技大学出版社,2020.08.

2.CPU设计实践教程——从数字电路到计算机组成》,杨全胜等编著,清华大学出版社,2020.01.

3.FPGA现代数字系统设计——基于Xilinx可编程逻辑器件与Vivado平台》,孟宪元等编著,清华大学出版社,2019.04.

4.《计算机组成原理实践教程——从逻辑门到CPU》,谭志虎等编著,清华大学出版社,2018.10.

5.SoC设计方法与实现(第4版)》,魏继增等编著,电子工业出版社,2022.08.

 6. 计算机系统设计(下册)——基于FPGASoC设计与实现》,魏继增等编著,电子工业出版社,2022.02。

7.FPGA实战训练精粹》,张晋荣等编著,清华大学出版社,2019.02.

 8.SoC设计方法与实现》,郭炜等编著,电子工业出版社,2017.08.

9.Vivado入门与FPGA设计实例》,廉玉欣编著,电子工业出版社,2018.09.

10.《数字电路的FPGA设计与实现--基于XilinxVHDL》,董磊电子工业出版社2021.09.

11.  CPU设计实战》,汪文祥等编著,机械工业出版社,2021.04.

课程评价

教学资源
课程章节 | 文件类型   | 大小 | 备注
1.1 SoC基本概念
文档
.pdf
1.71MB
 
视频
.mp4
305.02MB
1.2 SoC设计关键技术
视频
.mp4
599.96MB
1.3 SoC设计方法
视频
.mp4
81.24MB
1.4 SoC总线结构
视频
.mp4
305.26MB
1.5 FPGA结构分析
文档
.ppt
2.40MB
 
视频
.mp4
585.28MB
2.1 VHDL程序结构
文档
.ppt
3.94MB
 
视频
.mp4
56.30MB
 
视频
.mp4
173.05MB
2.2 VHDL基本元素
视频
.mp4
237.33MB
2.3 VHDL基本逻辑语句
视频
.mp4
216.80MB
2.4 VHDL描述方式
视频
.mp4
344.11MB
2.5 组合逻辑电路设计
视频
.mp4
361.27MB
2.6 时序逻辑电路设计
视频
.mp4
327.81MB
2.7 有限状态机设计
视频
.mp4
286.56MB
2.8 EDA工具使用
文档
.ppt
3.28MB
 
文档
.pdf
5.58MB
 
视频
.mp4
279.58MB
3.1 定点加法器设计
文档
.ppt
1.21MB
 
视频
.mp4
313.93MB
3.2 浮点加法器设计
视频
.mp4
220.04MB
4.1 定点乘法器设计
文档
.ppt
1.56MB
 
视频
.mp4
87.83MB
 
视频
.mp4
361.60MB
 
视频
.mp4
361.91MB
4.2 定点除法器设计
视频
.mp4
346.43MB
5.1 随机存取存储器(RAM)设计
文档
.ppt
2.32MB
 
视频
.mp4
364.04MB
5.2 只读存储器(ROM)设计
视频
.mp4
267.82MB
5.3 双端口RAM设计
视频
.mp4
126.22MB
5.4 先进先出队列(FIFO)设计
视频
.mp4
381.30MB
5.5 CRC校验电路设计
视频
.mp4
253.48MB
6.1 CPU组成结构
文档
.ppt
3.83MB
 
视频
.mp4
151.68MB
6.2 Richard CPU分析
视频
.mp4
463.51MB
6.3 CPU设计方法
视频
.mp4
92.44MB
6.4 指令系统设计
视频
.mp4
183.80MB
6.5 CPU设计思路
视频
.mp4
160.24MB
6.6 SOC功能模块设计
视频
.mp4
262.74MB
6.6.1 CPU数据通路设计
视频
.mp4
323.37MB
 
视频
.mp4
521.96MB
6.6.2 ALU模块设计
视频
.mp4
334.03MB
 
视频
.mp4
666.99MB
6.6.3 RAM、SP、IO模块设计
视频
.mp4
418.01MB
6.6.4 微程序控制器设计
视频
.mp4
468.86MB
 
视频
.mp4
545.46MB
 
视频
.mp4
473.01MB
 
视频
.mp4
365.37MB
6.6.5 CPU时钟信号时序分析
视频
.mp4
627.92MB
7.1 SoC系统验证方法
文档
.ppt
573.50KB
 
视频
.mp4
463.40MB
7.2 SoC系统测试原理及方法
视频
.mp4
222.90MB
8.1 基于ARM的SOC设计
文档
.ppt
1.18MB
 
视频
.mp4
118.34MB
8.2 GPU系统
视频
.mp4
107.60MB
8.3 基于Power的SOC系统设计
视频
.mp4
47.76MB
8.4 众核处理系统
视频
.mp4
61.71MB
8.5 片上网络
视频
.mp4
387.03MB
9.1 同步电路优化设计
文档
.ppt
1.46MB
 
视频
.mp4
145.37MB
 
视频
.mp4
324.06MB
9.2 异步电路优化设计
视频
.mp4
276.56MB
 
视频
.mp4
259.99MB
10.1 SOC课程思政
文档
.pptx
4.74MB
11.1 SOC设计绪论--教案设计
文档
.docx
31.98KB
11.2 VHDL程序设计--教案设计
文档
.docx
31.48KB
11.3 组合逻辑电路设计--教案设计
文档
.docx
30.41KB
11.4 时序逻辑电路--教案设计
文档
.docx
31.02KB
11.5 有限状态机设计--教案设计
文档
.docx
31.46KB
11.6 定点乘除法器设计--教案设计
文档
.docx
42.77KB
11.7 FPGA设计开发--教案设计
文档
.docx
32.12KB
11.8 存储器设计--教案设计
文档
.docx
184.26KB
11.9 经典CPU分析--教案设计
文档
.docx
30.25KB
11.10 指令系统设计--教案设计
文档
.docx
271.50KB
11.11 指令数据通路设计--教案设计
文档
.docx
31.09KB
11.12 算术逻辑单元设计--教案设计
文档
.docx
382.03KB
11.13 微程序控制器设计--教案设计
文档
.docx
1.38MB
12.1 基于FPGA的自主可控SOC设计
文档
.pdf
5.73MB
课程章节
提示框
提示框
确定要报名此课程吗?
确定取消

京ICP备10040544号-2

京公网安备 11010802021885号