哈工大计算机设计实践:VHD实现给定指令系统处理器

5星 · 超过95%的资源 需积分: 10 65 下载量 110 浏览量 更新于2024-08-02 5 收藏 156KB DOC 举报
"哈尔滨工业大学计算机设计与实践课程中关于给定指令系统的处理器设计,使用VHDL语言进行描述。设计涵盖了处理器的基本结构和接口,包括数据宽度可配置的16位机模式。" 在计算机系统设计中,处理器是核心部分,负责执行指令并控制整个系统的运行。本设计实例是针对一个基于VHDL(Very High-Speed Integrated Circuit Hardware Description Language)的处理器,用于实现特定的指令集。VHDL是一种硬件描述语言,常用于数字逻辑电路的设计、验证和实现,包括处理器、FPGA(Field-Programmable Gate Array)和ASIC(Application-Specific Integrated Circuit)等。 设计中,处理器实体名为"COP2000",其结构是通过定义实体和结构体来描述的。实体定义了处理器对外的接口,结构体则描述了处理器内部的工作原理。在这个例子中,处理器的接口包括以下几个关键部分: 1. **clk**:主时钟输入,是处理器所有操作的时间基准。 2. **rst**:复位输入,用于初始化处理器状态。 3. **keyin**:键输入,用于接收外部输入数据,数据宽度可根据`DataWidth`参数设定。 4. **portout**:端口输出,用于向外部设备发送数据。 5. **mem_d**:内存数据线,双向接口,用于与内存交换数据。 6. **mem_a**:内存地址线,用于指定内存访问的位置。 7. **mem_rd/mem_wr**:内存读/写信号,控制内存的读写操作。 8. **mem_bh/mem_bl**:内存高8位和低8位选择信号,对于16位数据宽度,可能需要分开处理。 9. **mem_cs**:内存片选信号,用于选择不同的内存芯片。 10. **i_req**:中断请求信号,当有外部中断发生时,该信号被激活。 此外,设计中还定义了一些常量,如`ALL_ZERO`、`INT_ENTER`和`INT_CODE`,它们可能与处理器的中断系统相关。例如,`INT_ENTER`和`INT_CODE`可能是中断入口地址和中断类型码,用于识别和处理中断事件。 在VHDL代码中,使用了`IEEE.STD_LOGIC_1164`和`IEEE.STD_LOGIC_UNSIGNED`库,这两个库提供了基本的逻辑类型和操作符,使得编写数字逻辑电路描述变得更加方便。通过配置`DataWidth`参数,设计可以适应不同数据宽度的处理器,如16位或8位模式。 处理器设计通常包括寄存器、ALU(算术逻辑单元)、控制单元等多个子模块。在这个实例中,虽然没有给出完整的处理器结构,但可以看出设计考虑到了内存访问、输入输出以及中断处理等功能。这样的设计有助于学生理解和掌握处理器工作原理,同时也为实现定制化的微处理器奠定了基础。在实际应用中,VHDL设计的处理器可以通过FPGA或ASIC技术实现硬件原型,进行功能验证和性能优化。
2013-06-04 上传
1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU的设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计; 设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设计ALU的方式设计; 设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
2017-04-06 上传