- 99
- 0
- 约1.13万字
- 约 21页
- 2017-05-04 发布于湖北
- 举报
单周期CPU设计教程
信息科学与工程学院
课程设计报告
课程名称: 计算机组成原理与结构
题目: 单周期CPU逻辑设计
年级/专业: XXXXXXXXXXXXXXX X
学生姓名: 王侠侠、李怀民
学号: XXXXXXXXXXXXXXXXXXX
指导老师: XXXX
开始时间:2016年9月15日
结束时间:2016年11月15日
目 录
摘 要
设计目的与目标
1.1 设计目的
1.2 设计目标
课程设计器材
2.1 硬件平台
2.2 软件平台
三、CPU逻辑设计总体方案
3.1 指令模块
3.2 部件模块
四、模块详细设计
4.1 指令设计模块
4.2 部件设计模块
五、实验数据
5.1 初始数据
5.2 指令数据
六、结论和体会
七、参考文献
摘 要
本CPU设计实验以Quartus II 9.0为软件设计平台,以Cyclone采III型号EP3C16F484C6为FPGA实测板。此CPU设计采用模块化设计方案,首先设计指令格式模块,此模块决定CPU各个部件的接口数据容量及数量,再对CPU各个部件独立设计实现,主要涉及的部件有:寄存器组、控制器、存储器、PC计数器、数据选择器、ALU单元以及扩展单元。分部件的设计通过软件平台模拟仿真各部件的功能,在确保各部件功能正确的情况下,将所有部件模块整合在一起实现16位指令的CPU功能。再按照指令格式设计的要求,设计出一套能完整运行的指令,加载到指令存储器中,最终通过在FPGA实测板上实现了加2减1的循环运算效果,若要实现其他效果,也可更改指令存储器或数据存储器的数据而不需要对内部部件进行更改元件。
关键词:CPU设计、16位指令格式、模块化设计、Quartus软件、CPU各部件
PAGE \* MERGEFORMAT17
设计目的与目标
设计目的
了解Quartus II软件的使用,学习软件环境下设计CPU的基本过程;
在Quartus II平台上完成各个单元的设计,加深对每个单元(控制器、寄存器、存储器等)工作原理的理解;
对各个单元组合而成的CPU进行指令测试,配合使用模拟仿真,了解指令和数据在各个单元中的传输过程及方向。
设计目标
设计一个单周期CPU,能实现基本的指令功能,如ADD,SUB指令实现对操作数加减功能,LW,SW指令实现从存储器取数和存数,J指令实现指令间的跳转。
采用模块化设计CPU,通过模拟仿真保证各模块的正确性,以保证最终CPU功能的正确性,能正确地在FPGA板上完成指令设计的效果。
通过设计合理的16位指令,实现从存储器取初始数和存数,对初始数进行加减操作,通过修改存储器初始数据,实现FPGA上LED显示无限加n减m的效果。
课程设计器材
2.1 硬件平台
本实验所需的硬件主要有:PC微型计算机和FPGA板--Cyclone III系列,型号EP3C16U484C6实验开发板以及USB连接线。
2.2 软件平台
操作系统:Win 7;
开发平台:Quartus II 9.0集成开发软件;
编程语言:VerilogHDL硬件描述语言。
CPU逻辑设计总体方案
单周期CPU设计方案从宏观上把握主要分为器件模块和指令/数据模块这两大模块,器件模块是指令模块的载体,指令数据在器件上流动,指令数据的格式是器件模块的主宰。所以当设计CPU时,我们采用模块化设计,单独对着两模块进行设计,考虑到指令数据模块的格式决定指令器件模块接口的数据容量大小,所以应先完成指令数据模块的格式设计。
图1 CPU宏观设计方案
指令模块
3.1.1指令格式简要设计
本CPU实验是针对16位指令数据设计的,所以应当合理划分指令数据区间段的指令相应的功能。从下图2可以看出,16位指令数据划分为5个区间段,指令的[15-12]位作为控制位传入控制器产生控制信号,指令[11-9]位作为地址1从寄存器取数输出数据到寄存器1号输出口,指令[8-6]位作为地址2从寄存器取数输出数据到寄存器2号输出口,指令[5-3]位与指令[8-6]位作为数据选择器选择地址输入寄存器写地址口,指令[5-0]位作为扩展单元输入,扩展数据成16位。另外指令[11-0]位作为扩展输入,扩展成16位数据作为PC计数器的选择器一端。
图2 指令格式简要设计图
3.2 器件单元模块
此模块的设计是CPU设计的核心部分,它主要涉及到CPU中多个器件的设计。我们依然采用模块设计方案,把总体设计拆分成多个相互独立的器件,再对每部分器件单独设计。在此模块中包括:寄存器组、控制器、存储器、PC计数器、数据选择器、ALU单元这六大主要单元。如下图2所示,展示出六大单元的设计方案以及六大单元之间的联系。
图3 器件模块设计方案图
从上图我们可以看出各单元之间的联
原创力文档

文档评论(0)