“计算机组成原理”是计算机专业的一门核心课程。传统的计算机组成原理实验是在指令格式、寻址方式、运算器、控制器、存储器等都相对固定的情况下进行,学生主要进行功能实现和验证,缺少自主设计和创新过程。 为改变这种状况,须更新现有的计算机组成原理实验系统。采用FPGA芯片作为载体,使用EDA开发工具,用硬件描述语言实现不同的硬件逻辑,再与硬件的输入输出接口线路相连,最终组成一台可用于组成实验教学的完整计算机系统。这期间学生将掌握组成原理实验系统的各个部件的功能及其相互之间如何协作。本实验系统能够让学生完成有关计算机组成原理的部件实验和整机实验:部件实验包括加法器、乘法器、除法器、算术逻辑运算单元、控制器、存储器等;整机实验可以独立实现各部件的功能描述。该系统能够帮助学生巩固课堂知识并增强设计能力。 为实现上述目的,依据EDA技术的开发流程和方法,建立了一个完整的体系,其中包括控制模块、内存模块、运算器模块、通用寄存器组及其控制部件、程序计数器、地址寄存器、指令寄存器、时序部件、数据控制部件、状态值控制部件,以及为帮学生调试而专门设计的输出观察部件。在Quartus Ⅱ开发环境下,使用Altera公司FPGA芯片,采用VHDL,语言设计并实现了上述模块。经过仿真测试,所实现的各功能模块作为独立部件时能完成各自功能:而将这些部件组合起来的整机系统,可以执行程序段和进行各种运算处理,达到了设计要求。
上传时间: 2013-06-01
上传用户:hebmuljb
作为嵌入式系统核心的微处理器,是SOC不可或缺的“心脏”,微处理器的性能直接影响着整个SOC的性能。 与国际先进技术相比,我国在这一领域的研究和开发工作还相当落后,这直接影响到我国信息产业的发展。本着赶超国外先进技术,填补我国在该领域的空白以摆脱受制于国外的目的,我国很多科研单位和公司进行了自己的努力和尝试。经过几年的探索,已经有多种自主知识产权的处理器芯片完成了设计验证并逐渐进入市场化阶段。我国已结束无“芯”的历史,并向设计出更高性能处理器的目标迈进。 艾科创新微电子公司的VEGA处理器,是公司凭借自己的技术力量和科研水平设计出的一款64位高性能RSIC微处理器。该处理器基于MIPSISA构架,采用五级流水线的设计,并且使用了高性能处理器所广泛采用的虚拟内存管理技术。设计过程中采用自上而下的方法,根据其功能将其划分为取指、译码、算术逻辑运算、内存管理、流水线控制和cache控制等几个功能块,使得我们在设计中能够按照其功能和时序要求进行。 本文的首先介绍了MIPS微处理器的特点,通过对MIPS指令集和其五级流水线结构的介绍使得对VEGA的设计有了一个直观的认识。在此基础上提出了VEGA的结构划分以及主要模块的功能。作为采用虚拟内存管理技术的处理器,文章的主要部分介绍了VEGA的虚拟内存管理技术,将VEGA的内存管理单元(MMU)尤其是内部两个翻译后援缓冲(TLB)的设计作为重点给出了流水线处理器设计的方法。结束总体设计并完成仿真后,并不能代表设计的正确性,它还需要我们在实际的硬件平台上进行验证。作为论文的又一重点内容,介绍了我们在VEGA验证过程中使用到的FPGA的主要配置单元,FPGA的设计流程。VEGA的FPGA平台是一完整的计算机系统,我们利用在线调试软件XilinxChipscope对其进行了在线调试,修正其错误。 经过模块设计到最后的FPGA验证,VEGA完成了其逻辑设计,经过综合和布局布线等后端流程,VEGA采用0.18工艺流片后达到120MHz的工作频率,可在其平台上运行Windows-CE和Linux嵌入式操作系统,达到了预计的设计要求。
上传时间: 2013-07-07
上传用户:标点符号
摘 要:提出了一种新的并联电梯控制系统.它克服了传统并联电梯调度算法中只考虑召唤的方向以及实时性差的缺陷,并利用微处理器强大的算术逻辑运算和通信功能,采用实时智能优化调度算法,实现快速服务,达到最佳运行效率.关键词:并联电梯;控制系统;调度;单片机
上传时间: 2013-11-04
上传用户:我叫李小进
单片机的硬件结构 2.3 MCS-51的CPU由运算器和控制器所构成2.3.1 运算器对操作数进行算术、逻辑运算和位操作。1.算术逻辑运算单元ALU2.累加器A使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。
上传时间: 2013-10-20
上传用户:蒋清华嗯
SPCE061A单片机硬件结构 从第一章中SPCE061A的结构图可以看出SPCE061A的结构比较简单,在芯片内部集成了ICE仿真电路接口、FLASH程序存储器、SRAM数据存储器、通用IO端口、定时器计数器、中断控制、CPU时钟、模-数转换器AD、DAC输出、通用异步串行输入输出接口、串行输入输出接口、低电压监测低电压复位等若干部分。各个部分之间存在着直接或间接的联系,在本章中我们将详细的介绍每个部分结构及应用。2.1 μ’nSP™的内核结构μ’nSP™的内核如0所示其结构。它由总线、算术逻辑运算单元、寄存器组、中断系统及堆栈等部分组成,右边文字为各部分简要说明。算术逻辑运算单元ALUμ’nSP™的ALU在运算能力上很有特色,它不仅能做16位基本的算术逻辑运算,也能做带移位操作的16位算术逻辑运算,同时还能做用于数字信号处理的16位×16位的乘法运算和内积运算。1. 16位算术逻辑运算不失一般性,μ’nSP™与大多数CPU类似,提供了基本的算术运算与逻辑操作指令,加、减、比较、取补、异或、或、与、测试、写入、读出等16位算术逻辑运算及数据传送操作。2. 带移位操作的16位算逻运算对图2.1稍加留意,就会发现μ’nSP™的ALU前面串接有一个移位器SHIFTER,也就是说,操作数在经过ALU的算逻操作前可先进行移位处理,然后再经ALU完成算逻运算操作。移位包括:算术右移、逻辑左移、逻辑右移、循环左移以及循环右移。所以,μ’nSP™的指令系统里专有一组复合式的‘移位算逻操作’指令;此一条指令完成移位和算术逻辑操作两项功能。程序设计者可利用这些复合式的指令,撰写更精简的程序代码,进而增加程序代码密集度 (Code Density)。在微控制器应用中,如何增加程序代码密集度是非常重要的议题;提高程序代码密集度意味着:减少程序代码的大小,进而减少ROM或FLASH的需求,以此降低系统成本与增加执行效能。
上传时间: 2013-10-10
上传用户:星仔
C语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便。既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。它既有高级语言的特点,又具有汇编语言的特点。运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算。并且也提供了灵活的数据结构。用C语言编写的程序表述灵活方便,功能强大。用C语言开发的程序,其结构性好,目标程序质量高,程序执行效率高。
上传时间: 2016-01-30
上传用户:aa54
实验目的 这次进行的模型机的总体设计,是在前几次实验田的基础之上进行的。前面几次实验中有算术逻辑运算单元实验,这次实验主要是完成对不带进位和带进位的加减法进行运算。这也是我们这们这次实验中的两个主要的题目。后面我们还有对通用寄存器、指令和微程序控制单元等部分的实验。而这些都是为了让我们更加了解计算机在工作时的具体运行情况,计算机在运行时,每个部分是怎样来完成自己的该完成的部分的。 这次实验主要是要我们掌握各个单元模块的工作原理,进一步将其组成完整的系统,构造一台基本的模型计算机;在本试验中,将规划读/写内存、寄存器、数值计算等功能,并且编写相应的微程序。然后具体上机调试各个模块单元以便进一步掌握整机的概念。
上传时间: 2016-08-02
上传用户:2404
c语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作.Keil C51是德国Keil Software公司出品的51系列兼容单片机c语言软件开发系统.与汇编相比,c语言在功能、结构性、可读性、可维护性上有明显的优势,因而易学易用.Keil C51继承了c语言对数据有很强的表达能力的优点,具有丰富的运算符,在算术运算和逻辑运算上更体现了汇编不可比拟的优点.由于C51语言具有强大的数据处理能力和数学运算库函数,当涉及到复杂的数学运算,使用C51语言往往会比较方便.在一般情况下,由C51编译生成的代码不论长度还是程序运行速度均能适应程序要求.利用C51开发单片机系统,不但可以使编程工作量大为减少,而且使软件维护、修改亦变得非常方便.
上传时间: 2014-01-25
上传用户:yyxy
一本很好的汇编语言教程,跟大家一起分享 课程介绍 第1章 预备知识 1.1 汇编语言的由来及其特点 1 机器语言 2 汇编语言 3 汇编程序 4 汇编语言的主要特点 5 汇编语言的使用领域 1.2 数据的表示和类型 1 数值数据的表示 2 非数值数据的表示 3 基本的数据类型 1.3 习题 第2章 CPU资源和存储器 2.1 寄存器组 1 寄存器组 2 通用寄存器的作用 3 专用寄存器的作用 2.2 存储器的管理模式 1 16位微机的内存管理模式 2 32位微机的内存管理模式 2.3 习题 第3章 操作数的寻址方式 3.1 立即寻址方式 3.2 寄存器寻址方式 3.3 直接寻址方式 3.4 寄存器间接寻址方式 3.5 寄存器相对寻址方式 3.6 基址加变址寻址方式 3.7 相对基址加变址寻址方式 3.8 32位地址的寻址方式 3.9 操作数寻址方式的小结 3.10 习题 第4章 标识符和表达式 4.1 标识符 4.2 简单内存变量的定义 1 内存变量定义的一般形式 2 字节变量 3 字变量 4 双字变量 5 六字节变量 6 八字节变量 7 十字节变量 4.3 调整偏移量伪指令 1 偶对齐伪指令 2 对齐伪指令 3 调整偏移量伪指令 4 偏移量计数器的值 4.4 复合内存变量的定义 1 重复说明符 2 结构类型的定义 3 联合类型的定义 4 记录类型的定义 5 数据类型的自定义 4.5 标号 4.6 内存变量和标号的属性 1 段属性操作符 2 偏移量属性操作符 3 类型属性操作符 4 长度属性操作符 5 容量属性操作符 6 强制属性操作符 7 存储单元别名操作符 4.7 表达式 1 进制伪指令 2 数值表达式 3 地址表达式 4.8 符号定义语句 1 等价语句 2 等号语句 3 符号名定义语句 4.9 习题 第5章 微机CPU的指令系统 5.1 汇编语言指令格式 1 指令格式 2 了解指令的几个方面 5.2 指令系统 1 数据传送指令 2 标志位操作指令 3 算术运算指令 4 逻辑运算指令 5 移位操作指令 6 位操作指令 7 比较运算指令 8 循环指令 9 转移指令 10 条件设置字节指令 11 字符串操作指令 12 ASCII-BCD码调整指令 13 处理器指令 5.3 习题 第6章 程序的基本结构 6.1 程序的基本组成 1 段的定义 2 段寄存器的说明语句 3 堆栈段的说明 4 源程序的结构 6.2 程序的基本结构 1 顺序结构 2 分支结构 3 循环结构 6.3 段的基本属性 1 对齐类型 2 组合类型 3 类别 4 段组 6.4 简化的段定义 1 存储模型说明伪指令 2 简化段定义伪指令 3 简化段段名的引用 6.5 源程序的辅助说明伪指令 1 模块名定义伪指令 2 页面定义伪指令 3 标题定义伪指令 4 子标题定义伪指令 6.6 习题 第7章 子程序和库 7.1 子程序的定义 7.2 子程序的调用和返回指令 1 调用指令 2 返回指令 7.3 子程序的参数传递 1 寄存器传递参数 2 存储单元传递参数 3 堆栈传递参数 7.4 寄存器的保护与恢复 7.5 子程序的完全定义 1 子程序完全定义格式 2 子程序的位距 3 子程序的语言类型 4 子程序的可见性 5 子程序的起始和结束操作 6 寄存器的保护和恢复 7 子程序的参数传递 8 子程序的原型说明 9 子程序的调用伪指令 10 局部变量的定义 7.6 子程序库 1 建立库文件命令 2 建立库文件举例 3 库文件的应用 4 库文件的好处 7.7 习题 第8章 输入输出和中断 8.1 输入输出的基本概念 1 I/O端口地址 2 I/O指令 8.2 中断 1 中断的基本概念 2 中断指令 3 中断返回指令 4 中断和子程序 8.3 中断的分类 1 键盘输入的中断功能 2 屏幕显示的中断功能 3 打印输出的中断功能 4 串行通信口的中断功能 5 鼠标的中断功能 6 目录和文件的中断功能 7 内存管理的中断功能 8 读取和设置中断向量 8.4 习题 第9章 宏 9.1 宏的定义和引用 1 宏的定义 2 宏的引用 3 宏的参数传递方式 4 宏的嵌套定义 5 宏与子程序的区别 9.2 宏参数的特殊运算符 1 连接运算符 2 字符串整体传递运算符 3 字符转义运算符 4 计算表达式运算符 9.3 与宏有关的伪指令 1 局部标号伪指令 2 取消宏定义伪指令 3 中止宏扩展伪指令 9.4 重复汇编伪指令 1 伪指令REPT 2 伪指令IRP 3 伪指令IRPC 9.5 条件汇编伪指令 1 条件汇编伪指令的功能 2 条件汇编伪指令的举例 9.6 宏的扩充 1 宏定义形式 2 重复伪指令REPEAT 3 循环伪指令WHILE 4 循环伪指令FOR 5 循环伪指令FORC 6 转移伪指令GOTO 7 宏扩充的举例 8 系统定义的宏 9.7 习题 第10章 应用程序的设计 10.1 字符串的处理程序 10.2 数据的分类统计程序 10.3 数据转换程序 10.4 文件操作程序 10.5 动态数据的编程 10.6 COM文件的编程 10.7 驻留程序 10.8 程序段前缀及其应用 1 程序段前缀的字段含义 2 程序段前缀的应用 10.9 习题 第11章 数值运算协处理器 11.1 协处理器的数据格式 1 有符号整数 2 BCD码数据 3 浮点数 11.2 协处理器的结构 11.3 协处理器的指令系统 1 操作符的命名规则 2 数据传送指令 3 数学运算指令 4 比较运算指令 5 超越函数运算指令 6 常数操作指令 7 协处理器控制指令 11.4 协处理器的编程举例 11.5 习题 第12章 汇编语言和C语言 12.1 汇编语言的嵌入 12.2 C语言程序的汇编输出 12.3 一个具体的例子 12.4 习题 附录
上传时间: 2013-07-05
上传用户:hw1688888
JPEG2000是新一代的静态图像压缩标准,它相比JPEG有很多新的特性,如渐进传输和感兴趣区域编码等,因而它具有广阔的应用前景,特别是在数码相机、PDA等便携式设备中。 JPEG2000的核心主要包括小波变换和基于最优化截断点的嵌入式块编码(EBCOT)算法,其计算复杂度远远高于JPEG,完全采用软件方案实现将会占用大量的处理器时间和内存开销,而且速度较慢,实时处理的能力较差。为了推广JPEG2000在便携式产品、消费类电子产品中的应用,打开巨大的潜在市场,研究硬件实现的算法实时处理方案具有重要的应用价值。 EBCOT算法是一个两层的编码引擎,其中的上下文编码的运算量约占到总运算量的50%,是提高编码速度的关键算法之一。由于上下文编码大部分都是逻辑运算,没有复杂的数学运算,但逻辑控制流程复杂繁琐,对存储器访问频繁,采用DSP或者其他的通用处理器通过指令控制实现该算法,未能显著提高编码速度。本文采用FPGA芯片,以电路逻辑的方式来实现该算法并进行优化,在研究和分析了上下文编码算法运算特点的基础上,设计了列判断和交错存储相结合的硬件实现方案,并采用硬件描述语言Verilog在寄存器传输级描述了相应的硬件电路。通过功能仿真和逻辑综合后,所获得的上下文编码模块最大时钟频率为101MHz,且能在130ms内完成对一幅512×512灰度图像的编码,性能比Jasper软件中的实现方案提高了75%。 JPEG2000的一个重要特性是其具有渐进传输的能力,而码流组织是获得渐进传输特性的技术关键。码流组织通过在输出码流中安排数据包的先后顺序来实现渐进传输的目的。本文对JPEG2000中实现渐进传输的机制进行了分析,并研究了码流组织的算法实现。 为了对JPEG2000算法实现进行验证,本文设计了基于FPGA和ARM的验证实验平台,其中FPGA主要完成算法中运算量较大的小波变换、上下文编码和算术编码,而ARM处理器则完成码流组织、数据打包以及和PC机的通信。本文在该平台上对所设计的上下文编码算法和码流组织模块的设计进行了验证,实验结果表明本文设计的算法模块功能正确,并在一定程度上提高了编码速度。
上传时间: 2013-04-24
上传用户:独孤求源