第二次实验 原理讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相同输入信号,是否能产生相同输出结果。
若输出结果相同,说明电路1的自主实现方法正确。
输 入 信 号
电路1 (标准IP核实 现) 替换 电路1 (自主实现)
电路2 (标准IP核实 现) 电路2 (标准IP核实 现)
输出结果1 输出结 果比较 输出结果2 相同 对电路1的 Verilog编程 实现方法正确
第二次实验
IP核集成SOC实验原理讲解
回顾:第一次实验
用IP核(函数库)集成了一个SOC微型计算机。 从实验二开始,实验重点将集中在SOC系统的CPU设计上,将自主设计并实现CPU。
问题1:
CPU是一个非常负责的计算机系统,该如何去实现?
实现方案设计:层次化的实现方法
将CPU逐步分解为各个简单的小模块,先实现各小模块功能,再对各小模块进行综合, 从而实现CPU。
• “操作码解析”电路称为“CPU控制器”部分
• “数据解析”电路称为“CPU数据通路”部分 因此,CPU体系结构可分为“控制器”与“数据通路”两大部分。
实验内容结构设计
实验一:用IP核集成SOC
实验二、三、四:集中研究CPU
对复杂系统进行分解
IP核集成实现CPU控制器
实验二
IP核集成实现CPU数据通路 实验四: 用Verilog编程实现CPU数据通 路
实验三: 用Verilog编程实现CPU控制器
实验五:电路扩展
实验二介绍
实验二内容:
将CPU分解为控制器与数据通路两部分,并采用IP核实现此两部分。
实验二内容:
将CPU分解为控制器与数据通路两部分,并采用IP核实现此两部分。
问题3:
实现一个组件后,如何验Βιβλιοθήκη Baidu此组件是否正确?
替换验证法:
去掉数据通路部分IP核,用Verilog语言编程实现数据通路部分。
后续各实验工程上该如何操作?
实验三内容:
去掉控制器部分IP核,用Verilog语言编程实现CPU控制器部分。
实验三内容:
去掉控制器部分IP核,用Verilog语言编程实现CPU控制器部分。
实验四内容:
去掉数据通路部分IP核,用Verilog语言编程实现数据通路部分。
实验四内容:
CPU的功能:运行指令机器码
1110 0001 1000 0100 1. 指令解析:LDI指令 2. 查看LDI指令的格式 3. 解析指令格式
1110 LDI指令 0001 0100 K值为0x14
1000 偏移量为8 (d=24)
LDI
R24, 0x14
CPU系统结构的初步划分:
可以将CPU分解为:“操作码解析”以及“数据解析”两大部分。
问题2:
如何对CPU进行分解?
回顾:CPU的工作原理
指令:操作码 + 数据
操作码 d = fun(a, b); 4a: 60 91 02 02 4e: 70 91 03 02 52: 80 91 00 02 56: 90 91 01 02 5a: 0e 94 38 00 5e: 20 91 08 02 62: 33 27 64: 27 fd 66: 30 95 68: 28 0f 6a: 39 1f lds lds lds lds call lds eor com add adc 操作数据 r22, 0x0202 r23, 0x0203 r24, 0x0200 r25, 0x0201 0x70 ; 0x70 <fun> r18, 0x0208 r19, r19 sbrc r18, 7 r19 r18, r24 r19, r25
若输出结果相同,说明电路1的自主实现方法正确。
输 入 信 号
电路1 (标准IP核实 现) 替换 电路1 (自主实现)
电路2 (标准IP核实 现) 电路2 (标准IP核实 现)
输出结果1 输出结 果比较 输出结果2 相同 对电路1的 Verilog编程 实现方法正确
第二次实验
IP核集成SOC实验原理讲解
回顾:第一次实验
用IP核(函数库)集成了一个SOC微型计算机。 从实验二开始,实验重点将集中在SOC系统的CPU设计上,将自主设计并实现CPU。
问题1:
CPU是一个非常负责的计算机系统,该如何去实现?
实现方案设计:层次化的实现方法
将CPU逐步分解为各个简单的小模块,先实现各小模块功能,再对各小模块进行综合, 从而实现CPU。
• “操作码解析”电路称为“CPU控制器”部分
• “数据解析”电路称为“CPU数据通路”部分 因此,CPU体系结构可分为“控制器”与“数据通路”两大部分。
实验内容结构设计
实验一:用IP核集成SOC
实验二、三、四:集中研究CPU
对复杂系统进行分解
IP核集成实现CPU控制器
实验二
IP核集成实现CPU数据通路 实验四: 用Verilog编程实现CPU数据通 路
实验三: 用Verilog编程实现CPU控制器
实验五:电路扩展
实验二介绍
实验二内容:
将CPU分解为控制器与数据通路两部分,并采用IP核实现此两部分。
实验二内容:
将CPU分解为控制器与数据通路两部分,并采用IP核实现此两部分。
问题3:
实现一个组件后,如何验Βιβλιοθήκη Baidu此组件是否正确?
替换验证法:
去掉数据通路部分IP核,用Verilog语言编程实现数据通路部分。
后续各实验工程上该如何操作?
实验三内容:
去掉控制器部分IP核,用Verilog语言编程实现CPU控制器部分。
实验三内容:
去掉控制器部分IP核,用Verilog语言编程实现CPU控制器部分。
实验四内容:
去掉数据通路部分IP核,用Verilog语言编程实现数据通路部分。
实验四内容:
CPU的功能:运行指令机器码
1110 0001 1000 0100 1. 指令解析:LDI指令 2. 查看LDI指令的格式 3. 解析指令格式
1110 LDI指令 0001 0100 K值为0x14
1000 偏移量为8 (d=24)
LDI
R24, 0x14
CPU系统结构的初步划分:
可以将CPU分解为:“操作码解析”以及“数据解析”两大部分。
问题2:
如何对CPU进行分解?
回顾:CPU的工作原理
指令:操作码 + 数据
操作码 d = fun(a, b); 4a: 60 91 02 02 4e: 70 91 03 02 52: 80 91 00 02 56: 90 91 01 02 5a: 0e 94 38 00 5e: 20 91 08 02 62: 33 27 64: 27 fd 66: 30 95 68: 28 0f 6a: 39 1f lds lds lds lds call lds eor com add adc 操作数据 r22, 0x0202 r23, 0x0203 r24, 0x0200 r25, 0x0201 0x70 ; 0x70 <fun> r18, 0x0208 r19, r19 sbrc r18, 7 r19 r18, r24 r19, r25