- -
一、 实验目的
1. 了解微处理器的根本构造。 2. 掌握哈佛构造的计算机工作原理。 3. 学会设计简单的微处理器。 4. 了解软件控制硬件工作的根本原理。
二、 实验任务
利用HDL语言,基于Xilinx FPGA nexys4实验平台,设计一个能够执行以下MIPS指令集的单周期类MIPS处理器,要求完成所有支持指令的功能仿真,验证指令执行的正确性,要求编写汇编程序将本人学号的ASCII码存入RAM的连续内存区域。
〔1〕支持根本的算术逻辑运算如add,sub,and,or,slt,andi指令 〔2〕支持根本的内存操作如lw,sw指令 〔3〕支持根本的程序控制如beq,j指令
三、 实验过程
1、建立工程
在ISE 14.7软件中建立名为Lab1 的工程文件。芯片系列选择Artix7,具体芯片型号选择XC7A100T,封装类型选择CSG324,速度信息选择-1。
- -可修编-
- -
2、分模块设计
1) 指令存储器ROM设计
新建IP core Generator,命名为irom。设定的指令存储器大小为128字,指令存储器模块在顶层模块中被调用。输入为指令指针〔PC〕与时钟信号〔clkin〕,输出为32位的机器指令,并将输出的机器指令送到后续的存放器组模块、控制器模块、立即数符号扩展模块进展相应的处理。
然后制作COE文件。先使用UltraEdit编辑代码,代码如下
main:
addi $2,$0,85 sw $2,0($3) addi $2,$0,50 sw $2,4($3) addi $2,$0,48 sw $2,8($3) addi $2,$0,49 sw $2,12($3) addi $2,$0,53 # sw $2,16($3) addi $2,$0,49 # sw $2,20($3) addi $2,$0,51 # sw $2,24($3) addi $2,$0,52 # sw $2,28($3) addi $2,$0,54 # sw $2,32($3) addi $2,$0,52 # sw $2,36($3) j main
- -可修编-
- -
将其导入QtSpim中,选中机器码,加上前缀并将最后一行0x08100009修改为0x08000000,代码如下
MEMORY_INITIALIZATION_RADIX=16; MEMORY_INITIALIZATION_VECTOR= 20020055, ac620000, 20020032, ac620004, 20020030, ac620008, 20020031, ac62000c, 20020035, ac620010, 20020031, ac620014, 20020033, ac620018, 20020034, ac62001c, 20020036, ac620020, 20020034, ac620024, 08000000,
保存为.coe文件,在ROM模块里调用。
2) 数据存储器RAM设计
新建IP core Generator,命名为dram。数据存储器为RAM类型的存储器,并且需要独立的读写信号控制。因此其对外的接口为clk、we、datain、addr;
- -可修编-
相关推荐: