华科组成原理课程设计
- 格式:docx
- 大小:841.40 KB
- 文档页数:18
华中科技大学硬件课程设计实验报告课题:“EasyReader”电子书阅读器系统班级:通信0903作者:曾庆台阳舒梦雨学号:U200913846 U200913859 U200913849指导老师:***课设评价:课设成绩:日期:2012-7-2摘要“EasyReader”系统是一个多功能电子书阅读器,以TI公司的MSP430F149作为系统硬件核心,以DM430-L为硬件开发平台,以VS1003作为音频解码核心芯片,以IAR Embedded Workbench for MSP430 v5.30作为系统软件开发平台,使用MSP430自带操作系统,以C语言为基本编程语言。
本系统具备低功耗、小体积、轻重量、功能齐全的特点,可手动或自动翻页翻行、选择不同字体大小和背景、显示系统运行时间和文档读取进度、手动切换播放背景音乐、查看文档信息等功能。
使用便捷,可为用户提供良好的阅读体验。
本文讨论了“EasyReader”电子书阅读器的研究与设计,研究的主要内容包括系统硬件平台的设计和基于该硬件平台的软件设计。
在硬件设计方面,进行了系统的功能需求分析、方案选择和总体设计,详细设计了以MSP430F149处理器为核心,外围包括SD卡文件读取模块、VS1003音频解码播放模块和串口通信功能、人机交互功能的嵌入式系统硬件平台。
在软件设计方面,以分层分模块的思想进行设计,设计了FAT32文件系统、SD卡和TFT液晶驱动和显示程序、VS1003音乐播放程序、中断服务程序等,并进行了系统测试和结果分析,良好地实现了系统的设计目标。
关键词:电子书阅读器;MSP430F149;SD卡;FAT32文件系统;VS1003Abstract“EasyReader” system is a multi-fuctional e-book reader. It uses MSP430F149 of TI corporation as the hardware core, DM430-L as hardware developing platform, VS1003 as decoding central chip for audio file, IAR Embedded Workbench for MSP430 v5.30 as software developing platform of our system. We take the advantage of the OS in MSP430 chip itself and program with basic C language. Our system has the characteristic of low consumption, little size, light weight and versatile functions. The user can switch pages and lines by manual operation or automatic mode, choose different size of font and background, show the runtime of system and the rate of reading progress, choose manually to play the background music or not, check the information of text documents, and the like. It is convenient and easy to use, and provides the users with great reading experience.This paper discussed the research and design of “EasyReader”e-book reader. The main content of our research includes the design of hardware platform and the software design based on the hardware. In the designing of hardware, we analyzed the requirements of functions, put forward how to choose the final scheme and overall design. We also has made a detailed design of the embedded system hardware platform, that consists of the core MCU of MSP430F149, the peripheral modules of reading from SD card, VS1003 audio decoding, communication using serial port and human-computer interface. In the design of software, we utilized hierarchical and module-based thought to carry out our design. We designed FAT32 file system, SD card driven orders, TFT driven and display orders, VS1003 audio play orders and interrupt service programs. Through the tests, debug and analyses of the system, we eventually achieved the goal of our design.Key Words: E-book reader; MSP430F149; SD card; FAT32; VS1003目录1项目概述 (5)2设计目标 (5)2.1基本功能 (5)2.2扩展功能 (5)3小组成员和任务分工 (6)4系统总体设计 (6)4.1总体设计思路 (6)4.2主要器件选择 (7)5系统硬件设计与实现 (10)5.1DM430-L开发板 (10)5.2音频解码模块设计 (13)5.3TFT液晶显示模块 (14)5.4SD卡模块 (15)5.5按键电路 (16)6系统软件设计与实现 (16)6.1软件设计的主要思想 (16)6.2软件设计平台(IAR Embedded Workbench IDE) (16)6.3文件系统的选择与实现 (17)6.4SD卡模块软件设计 (18)6.5TFT液晶显示模块软件设计 (19)6.6音频模块软件设计 (23)6.7按键模块 (24)6.8软件流程说明 (25)7系统测试与结果分析 (26)7.1调试故障、产生原因及解决方法 (26)7.2测试方案与结果 (29)7.2.1 测试方案 (30)7.2.2 测试结果 (30)8心得体会与项目总结 (31)1)心得体会与总结 (31)2)项目展望 (33)9致谢 (34)10参考文献 (34)11附录 (35)1)宣传网站 (35)2)程序代码列表说明 (35)1项目概述电子书阅读器是一种便携式的手持式电子设备,专为阅读图书设计,它有大屏幕的液晶显示器,可以直接从互联网上方便的购买及下载数字化的图书,并且有大容量的内存以存储大量数字信息,一次可以存储数十本传统图书的信息,特别设计的液晶显示技术可以让人舒适的长时间阅读图书。
华科船舶设计原理课程设计一、课程目标知识目标:1. 理解并掌握船舶设计的基本原理,包括浮力、稳性、阻力等关键概念;2. 学习船舶结构、材料及动力系统的知识,并能运用到实际设计中;3. 掌握船舶设计流程和规范,能运用相关软件进行初步的船舶设计。
技能目标:1. 培养学生运用科学方法分析和解决船舶设计过程中遇到问题的能力;2. 提高学生团队协作、沟通表达及创新能力,能在设计项目中发挥个人特长;3. 培养学生运用船舶设计软件进行设计实践的能力。
情感态度价值观目标:1. 培养学生对船舶设计学科的兴趣和热情,激发学生主动探索的精神;2. 培养学生严谨的科学态度和良好的工程伦理观念,关注船舶设计对环境和社会的影响;3. 增强学生的民族自豪感,认识到我国船舶工业的发展成就,激发学生为国家和民族作出贡献的意愿。
课程性质:本课程为华科船舶工程专业核心课程,以实践性、应用性为主,注重理论联系实际。
学生特点:学生具备一定的船舶基础知识,具有较强的逻辑思维和动手能力,但对船舶设计实践尚缺乏经验。
教学要求:结合学生特点,注重启发式教学,引导学生主动参与,培养创新精神和实践能力。
通过课程学习,使学生在船舶设计方面具备一定的理论水平和实际操作能力。
二、教学内容1. 船舶设计基本原理:包括浮力、稳性、阻力的概念及其在船舶设计中的应用;讲解船舶的排水量、船体形状、船体结构对性能的影响。
教材章节:第一章 船舶设计基本原理2. 船舶结构、材料及动力系统:介绍船舶的构造、主要材料及动力系统的类型和选型原则;分析不同结构、材料和动力系统对船舶性能的影响。
教材章节:第二章 船舶结构与材料和第三章 船舶动力系统3. 船舶设计流程与规范:讲解船舶设计的基本流程、设计规范以及相关法规;指导学生如何运用规范进行船舶设计。
教材章节:第四章 船舶设计流程与规范4. 船舶设计软件应用:教授船舶设计常用软件的基本操作,如CAD、CAE 等;指导学生利用软件进行船舶设计实践。
华科操作系统课程设计一、教学目标本课程的教学目标分为知识目标、技能目标和情感态度价值观目标。
知识目标:学生需要掌握操作系统的基本概念、原理和关键技术,包括进程管理、内存管理、文件系统、输入/输出系统等。
技能目标:学生能够运用操作系统的基本原理和关键技术,分析和解决实际问题。
通过实验和项目,培养学生的动手能力和创新能力。
情感态度价值观目标:培养学生对操作系统的兴趣和热情,提高学生的问题意识和团队协作精神。
二、教学内容本课程的教学内容主要包括操作系统的基本概念、原理和关键技术。
1.操作系统概述:操作系统的定义、功能、分类和发展历程。
2.进程管理:进程的概念、进程控制块、进程调度、同步与互斥、死锁。
3.内存管理:内存分配与回收策略、内存保护、虚拟内存、页面置换算法。
4.文件系统:文件和目录的概念、文件系统的结构、文件访问控制、磁盘空间分配策略。
5.输入/输出系统:输入/输出设备管理、中断处理、直接存储器访问(DMA)、设备驱动程序。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
1.讲授法:用于传授基本概念和原理,引导学生掌握操作系统的核心知识。
2.讨论法:通过小组讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:分析实际案例,让学生了解操作系统在实际应用中的工作原理和解决问题的方式。
4.实验法:动手实践,培养学生的实际操作能力和创新能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用国内知名出版社出版的操作系统教材,如《操作系统原理与实践》。
2.参考书:提供相关领域的经典著作和最新研究成果,供学生拓展阅读。
3.多媒体资料:制作课件、视频等资料,辅助教学,提高学生的学习兴趣。
4.实验设备:配置相应的实验设备,如计算机、网络设备等,为学生提供实践操作的机会。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
1.平时表现:评估学生的课堂参与度、提问回答、小组讨论等,以考查学生的学习态度和思考能力。
华科数据结构课程设计一、课程目标知识目标:1. 学生能理解数据结构的基本概念,掌握线性表、树、图等常见数据结构的原理和应用。
2. 学生能描述不同数据结构的特点,分析其时间复杂度和空间复杂度。
3. 学生能运用所学知识解决实际问题,如查找、排序等算法。
技能目标:1. 学生能运用C/C++等编程语言实现常见数据结构及其相关算法。
2. 学生能通过分析问题,选择合适的数据结构和算法进行问题求解。
3. 学生能运用所学知识,设计并实现小型项目,提高编程实践能力。
情感态度价值观目标:1. 学生通过学习数据结构,培养逻辑思维能力和解决问题的能力。
2. 学生在学习过程中,养成积极合作、主动探究的学习态度,增强团队协作意识。
3. 学生能够认识到数据结构在实际应用中的重要性,激发对计算机科学的兴趣和热爱。
课程性质:本课程为计算机科学与技术专业核心课程,旨在帮助学生掌握数据结构的基本概念、原理和应用,提高编程实践能力。
学生特点:学生具备一定的编程基础,对数据结构有一定了解,但缺乏深入理解和实践。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生在实际问题中运用数据结构的能力。
通过课程学习,使学生能够达到上述课程目标,为后续课程和实际工作打下坚实基础。
二、教学内容1. 线性表:介绍线性表的定义、特点及其实现方法,包括顺序存储和链式存储。
分析线性表的时间复杂度和空间复杂度,探讨其应用场景。
教学内容安排:线性表章节1-2周。
2. 栈和队列:讲解栈和队列的基本概念、操作原理及其应用。
分析栈和队列在解决实际问题中的应用价值。
教学内容安排:栈和队列章节3-4周。
3. 树和二叉树:阐述树的基本概念、性质和存储结构。
重点讲解二叉树及其遍历方法,探讨二叉树在实际应用中的价值。
教学内容安排:树和二叉树章节5-7周。
4. 图:介绍图的定义、存储结构及相关算法,如深度优先搜索、广度优先搜索等。
分析图在实际应用中的重要性。
华科液压系统课程设计一、课程目标知识目标:1. 学生能理解液压系统的基本原理,掌握液压系统中各个元件的功能及工作原理。
2. 学生能描述华科液压系统的结构组成,了解不同类型液压系统的特点及应用场景。
3. 学生能掌握液压系统的主要性能参数,并运用相关公式进行计算。
技能目标:1. 学生具备分析液压系统故障的能力,能针对具体问题提出合理的解决方案。
2. 学生能运用CAD软件绘制液压系统原理图,并进行简单的系统设计。
3. 学生能操作液压实验台,进行液压系统的调试与优化。
情感态度价值观目标:1. 培养学生对液压技术的兴趣,激发他们探索液压系统奥秘的热情。
2. 培养学生的团队合作精神,让他们在液压系统设计过程中学会互相交流、协作。
3. 增强学生的环保意识,让他们了解液压系统在节能环保方面的优势。
课程性质:本课程为实践性较强的专业课程,旨在培养学生对液压系统的理论知识和实际操作能力。
学生特点:学生具备一定的机械基础知识和工程制图能力,但对液压系统了解较少。
教学要求:结合课本内容,注重理论与实践相结合,提高学生的实际操作能力和问题解决能力。
通过课程学习,使学生能够独立完成液压系统的设计与调试工作,为将来的职业发展奠定基础。
二、教学内容1. 液压系统基本原理:讲解液压系统的定义、组成及其在工程中的应用,包括帕斯卡定律、流体力学基础等,对应课本第一章内容。
2. 液压元件功能与原理:介绍液压泵、液压马达、液压缸、阀门等主要元件的结构、工作原理及功能,对应课本第二章内容。
3. 液压系统设计:讲解华科液压系统设计流程、方法及注意事项,包括系统类型选择、元件匹配、系统仿真等,对应课本第三章内容。
4. 液压系统性能参数计算:教授液压系统压力、流量、功率等主要性能参数的计算方法,对应课本第四章内容。
5. 液压系统故障分析与排除:分析液压系统常见故障及其原因,教授故障诊断与排除方法,对应课本第五章内容。
6. 液压系统实验操作:组织学生进行液压实验台的实操训练,包括系统搭建、调试、优化等,对应课本第六章内容。
华科组成原理课程设计一、课程设计概述华科组成原理课程设计旨在帮助学生深入理解和应用数字电路的基本原理,培养学生的设计能力和创新思维。
本课程设计要求学生设计一个数字电路系统,包括电路的设计、仿真和实现。
本文将详细介绍课程设计的背景、目标、任务和实施步骤。
二、背景介绍数字电路是计算机科学与技术等相关专业的基础课程之一,它涉及到数字信号的产生、传输、处理和存储等方面。
组成原理课程是数字电路的重要组成部分,通过学习该课程,学生可以了解数字电路的基本概念、逻辑门电路的设计与分析、时序电路的设计与分析等内容。
三、设计目标本课程设计的目标是让学生掌握数字电路的基本原理和设计方法,培养学生的实际动手能力和创新思维。
通过本次课程设计,学生应能够:1. 理解数字电路的基本概念和原理;2. 掌握逻辑门电路的设计与分析方法;3. 掌握时序电路的设计与分析方法;4. 运用所学知识设计一个数字电路系统;5. 利用仿真工具对设计方案进行验证;6. 实现设计方案并进行实验验证。
四、任务描述本课程设计要求学生设计一个简单的计数器电路。
具体要求如下:1. 采用基本的逻辑门电路实现一个4位二进制计数器;2. 计数范围为0-15,即0000-1111;3. 采用同步时序电路设计,使用时钟信号进行计数;4. 采用JK触发器作为计数器的存储单元;5. 设计一个使能信号,用于控制计数器的启停;6. 使用仿真工具验证设计方案的正确性;7. 实现设计方案并进行实验验证。
五、实施步骤本课程设计的实施步骤如下:1. 确定设计方案:根据任务描述,确定计数器电路的设计方案,包括逻辑门的选择、触发器的配置等。
2. 绘制电路图:使用电路设计软件,绘制计数器电路的电路图,包括逻辑门、触发器、时钟信号、使能信号等。
3. 进行仿真验证:使用仿真工具,对设计方案进行仿真验证,检查计数器电路的功能和性能是否满足要求。
4. 优化设计方案:根据仿真结果,对设计方案进行优化,以提高电路的性能和可靠性。
华北科技学院课程设计说明书班级: 计科B103 姓名:设计题目:__计算机组成原理课程设计_____ 设计时间:__2013-1-7 ____至__2013-1-18 ___ 指导教师:__ 邵铁君评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____1.课程设计目的通过计算机组成原理课程设计,进一步熟练掌握计算机各功能部件的内部构造和相互之间的联系(部件配置、相互连接和作用)、各功能部件的性能参数的相互匹配、机器指令级的各种功能和特性。
学生能够将所学知识融会贯通、进一步系统化,进一步提高硬件系统设计的能力,为以后的更高一级的硬件设计打下坚实基础。
2.课程设计任务在现有的TEC-XP+教学机系统上扩展4条指令。
要求:(1)4条指令至少要用到4种寻址方式;(2)4条指令分别由1步、2步、3步、4步完成;(3)监控命令A、U必须能够支持这4条指令。
3.系统组成原理及实现(1)运算器运算器的组成:运算器通常由执行算术逻辑运算功能的ALU线路、暂存参加ALU运算的数据和中间运算结果的通用寄存器组、支持乘除法运算的专用寄存器3部分组成,3个部分之间通过多路选择器线路实现连接,从而构成一个完整的运算器部件。
TEC-XP系统机上的运算器的逻辑图见图3-1。
从图中可以看到,运算器部件主要包括两组独立的8位字长的运算器,各自由2片位片结构的运算器AM2901组成;还有状态标志(CZVS)寄存器和教学实验所需的相关逻辑部件。
AM2901的结构如图3-1所示。
华科组原课设报告题目:5段流水CPU设计专业:计算机科学与技术班级:学号:姓名:电话:邮件:完成日期:2017-03-10 周五下午2017计算机组成原理课程设计报告目录1课程设计概述 (2)1.1课设目的 (2)1.2设计任务 (2)1.3设计要求 (2)1.4技术指标 (3)2总体方案设计 (7)2.1扩展指令的设计 (7)2.2中断机制设计 (10)2.3流水CPU设计 (11)3详细设计与实现 (14)3.1扩展指令的实现 (14)3.2中断机制实现 (20)3.3流水CPU实现 (24)4实验过程与调试 (30)4.1测试用例和功能测试 (30)4.2主要故障与调试 (37)4.3实验进度 (38)5设计总结与心得 (40)5.1课设总结 (40)5.2课设心得 (40)参考文献 (42)1 课程设计概述1.1 课设目的计算机组成原理是计算机专业的核心基础课。
该课程力图以“培养学生现代计算机系统设计能力”为目标,贯彻“强调软/硬件关联与协同、以CPU设计为核心/层次化系统设计的组织思路,有效地增强对学生的计算机系统设计与实现能力的培养”。
课程设计是完成该课程并进行了多个单元实验后,综合利用所学的理论知识,并结合在单元实验中所积累的计算机部件设计和调试方法,设计出一台具有一定规模的指令系统的简单计算机系统。
所设计的系统能在LOGISIM仿真平台和FPGA实验平台上正确运行,通过检查程序结果的正确性来判断所设计计算机系统正确性。
课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行中央处理器底层电路的实现、故障分析与定位、系统调试等环节的综合锻炼,进一步提高学生分析和解决问题的能力。
1.2 设计任务本课程设计的总体目标是利用FPGA以及相关外围器件,设计五段流水CPU,要求所设计的流水CPU系统能支持自动和单步运行方式,能正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过LED、数码管等适时的进行显示,方便监控和调试。
华中科技大学文华学院计算机组成原理课程设计学部:信息科学与技术学部专业:软件工程班级:1班学号:1001070111姓名:彭指导老师:袁目录一、课设目的 (3)二、课设任务 (3)三、使用的设备及软件 (3)设备 (3)软件 (3)四、设备连接 (4)五、编程题目 (4)六、程序流程图 (5)七、程序 (5)八、对应的微指令 (7)九、调试过程 (8)十、结果 (11)十一、总结 (11)一、课设目的通过课程设计更清楚地理解下列基本概念:1、计算机的硬件基本组成;2、计算机中机器指令的设计;3、计算机中机器指令的执行过程;4、微程序控制器的工作原理;5、微指令的格式设计原理。
6、通过使用软件HKCPT,了解程序编译、加载的过程。
7、通过微单步、单拍调试,理解模型机中的数据流向。
二、课设任务1、在掌握各模块功能的基础上,构成模型机;2、熟悉模型机的通路、微指令系统、与汇编指令的关系;3、使用微机与模型机连接调试的应用程序HKCPT;4、编辑程序,了解程序编译、加载及运行的过程。
三、使用的设备及软件设备此次课设使用HK-CPT-IV型计算机组成原理实验平台,实验平台简介如下:1.基本功能模块:运算器模块、指令部件模块、堆栈寄存器模块、存储器模块、总线传输模块、微程序模块、启停和时序模块,以及用于调试和观察数据的监控模块。
2.组成结构:采用总线结构。
总线分为:内部、外部地址总线,内部、外部数据总线。
3.监控模块:为实验调试和程序设计带来了相当的便利。
实验者可以通过监控模块来修改微程序和内存中的程序。
4.操作方式:单机方式——整个系统可单独使用;联机方式——系统可与PC机相连。
软件此次课设使用的软件为HKCPT,其使用介绍如下:1.启动HKCPT:第一次启动HKCPT,用户需设置实验平台通讯端口。
退出HKCPT 时,会自动保存用户最后一次的设置。
用户选择“设置——实验平台”菜单项,在弹出的对话框中,选择相应的通讯串口、通讯波特率和延时因子。
华科数控课程设计一、教学目标本课程的教学目标是使学生掌握华科数控的基本原理和操作方法,培养学生具备一定的数控编程和机床操作能力。
具体目标如下:1.知识目标:(1)了解数控机床的基本结构和工作原理;(2)掌握数控编程的基本指令和功能指令;(3)熟悉数控机床的操作方法和步骤;(4)了解数控技术的发展趋势和应用领域。
2.技能目标:(1)能够熟练操作数控机床进行简单零件的加工;(2)能够根据零件图编写相应的数控程序;(3)能够进行数控机床的故障分析和维修。
3.情感态度价值观目标:(1)培养学生对数控技术的兴趣和热情;(2)培养学生具备良好的职业素养和团队合作精神;(3)培养学生关注数控技术的发展和应用,具备创新意识。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.数控机床的基本原理和结构;2.数控编程的基本指令和功能指令;3.数控机床的操作方法和步骤;4.数控技术的应用领域和发展趋势;5.数控机床的故障分析和维修方法。
三、教学方法为了实现教学目标,本课程将采用以下教学方法:1.讲授法:讲解数控机床的基本原理、数控编程的基本指令等理论知识;2.讨论法:学生针对数控技术的应用领域和发展趋势进行讨论,培养学生的创新意识;3.案例分析法:分析数控机床的故障案例,培养学生具备数控机床的故障分析和维修能力;4.实验法:安排学生操作数控机床,进行实际零件的加工,提高学生的动手能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:选用华科数控教材,为学生提供系统的理论知识和实践指导;2.参考书:提供相关的数控技术参考书籍,丰富学生的知识储备;3.多媒体资料:制作课件、视频等多媒体资料,生动展示数控机床的操作和编程过程;4.实验设备:配备数控机床、示教器等实验设备,为学生提供实际操作的机会。
五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观地评价学生的学习成果。
华北科技学院计算机学院设计性实验
实验报告
课程名称计算机组成原理B 实验学期 2013 至 2014 学年第一
学期
学生所在院部计算机学院
年级 2011 专业班级计科B11-1 学生姓名 *** 学号 201107014100
任课教师席振元
实验成绩
计算机学院制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。
页面空间不够,可以顺延。
2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。
3、教师应该填写的内容包括:实验成绩、教师评价等。
4、教师根据本课程的《实验指导》中实验内容的要求,评定学生的设计性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。
设计性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。
任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、未尽事宜,请参考该课程的实验大纲和教学大纲。
《计算机组成原理B》课程设计性实验报告
程序说明:将R1初始赋值为1,然后执行ADTW指令,运行G 2000得到R1
程序说明:将R1初始赋值为1,调用ADRM指令,运行G 2000得到R1结果为。
课程实验报告课程名称:计算机组成原理专业班级:信息安全1003班学号:U**********名:***同组成员:张源信报告日期:2012年5月计算机科学与技术学院目录一、实验名称 (3)二、实验目的 (3)三、实验设备 (3)四、实验任务 (3)五、预备知识 (4)1、运算器的相关知识 (4)2、注意事项: (4)六、设计思路、电路实现与电路分析说明 (4)1、任务分析 (4)2、设计思路 (6)3、电路实现与详细分析说明 (7)七、实验结果的记录与分析 (9)八、实验中碰到的问题及解决办法 (10)九、收获与体会 (10)十、参考书目 (11)一、实验名称实验名称:运算器组成实验二、实验目的1、掌握带累加器的运算器实验2、掌握溢出检测的原理及实现方法3、理解有符号数和无符号数运算的区别4、理解基于补码的加\减运算实现原理5、熟悉运算器的数据传输通路6、利用74181和74182以及适当的门电路和多路选择器设计一个运算,要求支持有符号数和无符号数的运算支持补码加减法运算,支持有符号数溢出检测等功能三、实验设备JZYL—Ⅱ型计算机组成原理实验仪一台芯片:74LS181运算器芯片2片74LS373 8D锁存器3片四、实验任务自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果写入到存储器中。
五、预备知识 1、运算器的相关知识运算器是对数据进行加工处理的部件,它具体实现数据的算术运算和逻辑运算,所以又称算术逻辑运算部件,简称ALU ,它是中央处理器的重要组成部分。
计算机中的运算器结构一般都包含如下几个部分:加法器、一组通用寄存器、输入数据选择电路和输出数据控制电路等。
74LS181能执行16种算术运算和16种逻辑运算,当工作方式控制端(M )为低电平时执行算术运算,当工作方式控制端(M )为高电平时执行逻辑运算,运算功能由功能选择端(S0-S3)决定。
目录一、课程设计概述 (3)1 课设目的 (3)2 实验环境 (3)3 设计任务与要求 (3)二、设计原理 (3)1 MIPS概述 (3)2 MIPS指令简介 (3)3 经典5段RSIC流水线结构 (4)三、设计内容 (5)1 指令选取 (5)2 非流水5段CPU模型 (6)3 流水5段CPU模型 (8)四、实现内容与测试结果 (12)1 各模块功能 (12)2控制信号 (12)3指令操作流程 (13)4指令执行状态转换图 (14)5引脚绑定 (15)6测试程序 (15)7测试结果与仿真图 (16)五、课设总结 (17)1课设中遇到的问题 (17)2课设经历 (17)3课设感想 (18)4小组分工 (18)参考文献 (18)一、课程设计概述1.课设目的①掌握硬件描述语言与开发环境,了解硬件开发地基本过程。
②掌握流水线CPU设计方法。
③锻炼学生简单计算机系统的设计能力,并通过进行主机系统低层电路的实现、故障分析与定位、系统调试等环节的锻炼,进一步提高了学生分析和解决问题的能力。
2.实验环境①Xilinx ISE 14.2②Spartan3E实验板一块3.设计任务与要求课程设计的主要任务是设计一台支持流水线的简单计算机系统并调试通过。
要求所设计的计算机系统能正确地执行存放在指令cache中的程序的功能。
本设计基于MIPS的32位流水线架构,设计过程中力图尽可能的遵循原有的MIPS的功能和指令集。
基本做到与MIPS指令集的兼容。
具体要求包括:①支持算术运算,逻辑运算,存储器读写,寄存器间数据传送等几类指令。
②支持立即数寻址,直接寻址,寄存器寻址等几种基本的数据寻址方式和顺序寻址、跳跃寻址两种指令的寻址方式。
③支持10条或以上的指令。
④能运行由自己所设计的指令系统构成的一段程序,程序执行功能正确。
⑤具有完整的五级流水线架构。
采用独立的32位的数据总线和地址总线。
二、设计原理1.MIPS概述MIPS是高效的RISC体系结构中最优雅的一种体系结构。
其中文意思为“无内部互锁流水级的微处理器”,其机制是尽量利用软件办法避免流水线中的数据相关问题。
它最早是在80年代初期由斯坦福大学Hennessy教授领导的研究小组研制出来的。
MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。
这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
本设计将参考MIPS的CPU设计以实现自己的五段流水线CPU设计,并部分实现MIPS32指令集2.MIPS指令简介2.1 MIPS指令集特点MIPS指令集具有以下特点:①简单的LOAD/STORE结构。
所有计算类型指令均从寄存器组中读取数据并把结果写入寄存器组中。
只有LOAD和STORE指令访问存储器(数据cache)。
②易于流水线CPU的设计。
MIPS指令集的指令格式非常规整,所有的指令均为32位,而且指令操作码在固定的位置上。
③易于编译器的开发。
一般情况下,编译器在编译高级语言程序时,很难用到复杂的指令。
MIPS 指令的寻址方式与操作非常简单,便于编译器的开发。
2.2 MIPS 指令格式在本次课程设计中,在数据类型上只支持整数类型,在指令格式上直接R 、I 和J 型指令。
以下是对三型指令的简介[1]:① R (register )类型的指令从寄存器组中读取两个源操作数,计算结果写回寄存器组。
② I (immediate )类型的指令使用一个16位的立即数作为一个源操作数。
③ J (jump )类型的指令使用一个26位立即数作为跳转的目标地址。
三型指令的格式如图1所示,其中: ① op 表示指令操作码。
② rs 为源操作数的寄存器号。
③ rd 为目的寄存器号,RT 既可为源寄存器号,也可为目的寄存器号。
④ funct 可认为是扩展的操作码。
⑤ shamte 由移位指令使用,定义移位位数。
⑥ Immediate 是16位立即数,根据指令需求进行无符号或有符号扩展。
⑦ Address 是26位立即数,由J 型指令使用,用于产生跳转的目的地址。
655166555566263126 2521 2016 1503126 2521 2016 15011 106 53126 25(a)I 类指令(b)R 类指令(c)J 类指令图1. MIPS 的指令格式3. 经典5段RSIC 流水线结构经典的5段RISC 流水线如图2。
IF 段ID 段EX 段MEM 段WB 段图2. 经典5段RISC 流水线在该结构中一条指令的执行过程分为以下5个时钟周期:①取指令周期(IF):以程序计数器PC中的内容作为地址,从存储器中取出指令并放入指令寄存器IR;同时PC值加4(假设每条指令占4个字节),指向顺序的下一条指令。
②指令译码/读寄存器周期(ID):对指令进行译码,并用IR中的寄存器地址去访问通用寄存器组,读出所需的操作数。
③执行/有效地址计算周期(EX):在这个周期,ALU对在上一个周期准备好的操作数进行运算或处理。
不同指令所进行的操作不同。
④存储器访问/分支完成周期(MEM):load指令用上一个周期计算出的有效地址从存储器中读出相应的数据;store指令把指定的数据写入这个有效地址所指出的存储器单元;分支指令若分支成功就把钱一个周期中计算好的转移目标地址送入PC,否则不进行任何操作;其他类型的指令在该周期不做任何操作。
⑤写回周期(WB):把结果写入通用寄存器组。
本设计基于该经典5端流水线结构完成了MIPS的一种简单实现,并在此基础上加入了对流水线冲突(数据冲突,控制冲突)的处理,以及对中断的处理。
三、设计内容1.指令选取本系统能执行16条MIPS指令,指令基本情况如表1所示。
表1. 系统支持的MIPS指令集从指令类型来讲,这16条指令覆盖了算逻运算、访存、无条件跳转和有条件跳转,已基本覆盖一个指令集所需的所有基本指令。
从寻址方式来讲,这16条指令覆盖了寄存器寻址(R-TYPE指令),立即数寻址(I-TYPE 指令),基址偏移量寻址(LW/SW),直接寻址(J)。
16条MIPS指令并不是本设计的极限,只是受到实验板资源的限制,我们仅仅完成了MIPS32指令集中的16条而已。
本设计通过简单的拓展可以轻松实现整个MIPS32指令集。
2.非流水5段CPU模型2.1 初始数据通路设计往往都是从简单到复杂,循序渐进。
好高骛远则往往求之而不得。
因此我们并没有从流水线模型直接下手,而是首先设计了一个类似经典5段RISC流水线结构的非流水5段CPU模型。
由于不涉及流水,所以所有的指令周期均为单周期,数据通路见图3。
图3. 非流水5段CPU初始数据通路2.2 5段具体操作在这个数据通路上每条指令需要花费5个时钟周期,这5个时钟周期相应的操作如下:2.2.1取指令周期(IF)IR←Mem[PC]NPC←PC+1以PC中的值从指令cache中取出一条指令,放入指令寄存器IR;同时PC值加1,然后放入NPC,这时NPC中的值为顺序的下调指令的地址。
2.2.2指令译码/读寄存器周期(ID)A←Regs[rs]B←Regs[rt]imm←((IR16)16##IR16..31)对指令进行译码,并以指令中的rs和rt字段作为地址访问通用寄存器组,将读出的数据让如A和B寄存器中。
同时IR的低16位进行有符号或者无符号扩展,然后存入Imm寄存器2.2.3 执行/有效地址计算周期(EX)①LW和SW指令ALUo←A+ImmALU将操作数相加形成有效地址,并存入临时寄存器ALUo②R-TYPEALUo←Afunct BALU根据funct字段指出的操作类型对A和B中的数据进行运算,并将结果存入ALUo③I-TYPEALUo←A op ImmALU根据操作码op指出的操作类型对A和Imm中的数据进行运算,并将结果存入ALUo④分支指令ALUo←NPC+ImmALU将临时寄存器NPC和Imm中的值相加得到转移目标的地址,存入ALUo2.2.4 存储器访问/分支完成周期(MEM)①LW和SW指令LW:LMD←Mem[ALUo]即从存储器中读出相应数据,放入临时寄存器LMD中SW:Mem[ALUo]←B即把B中数据写入存储器②分支指令If (cond) PC←ALUo else PC←NPC若cond中的内容为真,则将ALUo中的转移目标地址放入PC,否则PC+1。
2.2.5 写回周期(WB)①R-TYPERegs[rd]←ALUo②I-TYPERegs[rt]←ALUo③LW指令Regs[rt]←LMD2.3 模型优化与最终数据通路在这部分设计的时候我们的跳转指令仅仅实现了JNZQ,因此我们对改分支指令进行了单独的优化。
在图2的设计中若分支失败,则由于新的PC在EX段产生,因此会产生2个时钟周期的延迟。
但实际上可以对这条指令进行单独的改进,将对PC的修改提前到IF段,以便PC值能够快速变化。
经过这样优化后,分支失败则只会产生1个时钟周期的延迟。
改进后的数据通路如图4所示。
图4. 非流水5段CPU最终数据通路3.5段流水CPU模型3.1 初始数据通路在实现了非流水的5段CPU模型后,5段流水CPU模型也就水到渠成了。
只需要在各段之间加入相应的流水寄存器即可。
数据通路如图5。
图5. 5段流水CPU初始数据通路3.2 5段具体操作这部分与非流水的具体操作大致相同,这里不加赘述。
3.3 流水线冲突及解决方案3.3.1 数据冲突如果上一条指令的结果还没有写入到寄存器中,而下一条指令的原操作数又恰恰是此寄存器的数据,那么它所获得的将是原来的数据,而不是更新后的数据,这样的相关问题称为数据相关。
根据在系统结构中学习到的相关知识,在我们的设计中,采用定向(forwarding )技术来解决此类相关问题。
其关键思路是:在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。
如果能够将该计算结果从其产生的地方(ALU 出口)直接送到其他指令需要它的地方(ALU 的入口),那么就可以避免停顿,如图6。
时间(时钟周期)DADD R1,R2,R3DSUB R4,R1,R5XOR R6,R1,R7AND R8,R1,R9图6. 定向技术3.3.2 控制冲突在流水线中,控制冲突可能会使数据冲突造成更大的性能损失。
执行分支指令的结果有两种,一种是“成功”,PC 值改变为分支转移的目标地址。
另一种则是“失败”,这是PC 的值保持正常递增。
本设计中采用预测分支失败的方法解决控制冲突,即允许分支指令后的指令继续在流水线中流动。
当确定分支是失败时,可以将分支指令看做一条普通指令,流水线正常流动,如表2;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行,如表3。