1、1 用硬件描述语言设计 CPU 摘要 本次设计完全用 verilog 硬件描述语言编写微处理器的各个部件,在顶层文 件里将各个部件连接起来,形成一个简单的微处理器,加上一些外围模块来实现 一些功能。本次设计在合理性与实用性上没有考虑。只为了达到技术指标,从原 理上完成一个简单的 cpu 设计。 关键字关键字:verilog,微处理器,CPU 设计 2 Design CPU In Hardware Description Language Abstract The design completely microprocessor verilog hardware description lang
2、uage in all parts, the top file in the various components connected together to form a simple microprocessor, plus some peripheral modules to achieve some functionality. The design does not have a reasonable and practical considerations. Only to achieve technical indicators, from the principles of t
3、he cpu to complete a simple cpu design. Key Words:verilog, microprocessor, CPU design 目录 3 第1章 设计任务和技术指标.5 第2章 简单介绍.6 2.1 微处理器硬件系统及原理6 2.1.1 内部组成.6 2.1.2 外围模块.8 2.2 处理器指令系统及功能8 第3章 各模块的设计及实现.9 3.1 时钟发生器的设计及实现9 3.2 程序计数器的设计及实现.12 3.3 指令寄存器的设计及实现.13 3.4 运算器的设计及实现.14 3.5 累加器的设计及实现.16 3.6 地址选择器的设计及实现.17
4、 3.7 数据选择器的设计及实现.17 3.8 控制器的设计及实现.18 3.9 ROM 的设计及实现25 3.10 RAM 的设计及实现.26 第 4 章 CPU 的测试.27 4.1 乘法测试.29 4.2 除法测试.29 4.3 减 1 测试.29 4.4 加、减 1 测试.30 4.5 测试结果.30 第5章 总结33 第6章 参考文献34 4 第 1 章 设计任务和技术指标 运用在“数字电路与逻辑设计”课程中学过的基本理论知识,设计并用可编 程逻辑器件实现一个简单的八位操作数的微处理器。完成微处理器硬件系统设计 和指令系统设计两个方面的任务,使微处理器能实现。 5 第 2 章 简单介
5、绍 本次设计完全用 verilog 硬件描述语言编写微处理器的各个部件,在顶层文件 里将各个部件连接起来,形成一个简单的微处理器,加上一些外围模块来实现一 些功能。本次设计在合理性与实用性上没有考虑。只为了达到技术指标,从原理 上完成一个简单的 CPU 设计。 2.1 微处理器硬件系统及原理 2.1.1 内部组成 微处理器硬件由以下八个基本部件组成: 运算器、控制器、指令寄存分离器、时钟发生器、程序计数器、累加器、地 址选择器、数据选择器。 时钟发生器 clk-gen:利用输入时钟信号生成三个时钟信号送往对应的部件。 程序计数器 PC:存放将要执行的指令地址。 指令寄存器 IR:存放被执行的操
6、作码和操作数的地址,直接供运算器与控制器。 控制器 CON:根据操作码产生一系列时序逻辑信号,控制微处理器各个部件协调 一致地完成每条指令相应的操作。 运算器 ALU:当时钟上升沿来时对累加器与数据总线上的数进行加减乘除或逻辑 运算。 累加器 ACC:暂时存放运算结果。 地址选择器:选择输出到地址总线上的地址,是 PC 还是操作数地址。 数据选择器:选通 ALU 的运算结果输出到数据总线上去。 下面是内部连接图: 6 图 2-1 图 2-2 7 2.1.2 外围模块 程序存储器 ROM:存放程序指令。 数据存储器 RAM:读取存放运算中间变量等临时数据。 输入输出特殊寄存器:数据的输入输出。 外部部分连接图: 外围设备通过总线连接 CPU 2.2 处理器指令系统及功能 处理器的基本指令字长为位,指令的每一位从高到低用 DW,DW-1,D1, D0表示, 有些微处理器的一条指令包括多个指令字长, 即每条指令的长度不一样, 例如 intel 的 80386 等。本实验为了简化设计,规定所有的指令都是单指令字的指 令,且所有指令的长度都是 8,即一个字节。因此可以有 8 种操作,5 根