基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx

上传人:b****2 文档编号:3320278 上传时间:2023-05-01 格式:DOCX 页数:40 大小:677.38KB
下载 相关 举报
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第1页
第1页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第2页
第2页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第3页
第3页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第4页
第4页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第5页
第5页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第6页
第6页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第7页
第7页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第8页
第8页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第9页
第9页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第10页
第10页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第11页
第11页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第12页
第12页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第13页
第13页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第14页
第14页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第15页
第15页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第16页
第16页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第17页
第17页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第18页
第18页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第19页
第19页 / 共40页
基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx

《基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx》由会员分享,可在线阅读,更多相关《基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx(40页珍藏版)》请在冰点文库上搜索。

基于MIPS指令的单周期微控制器设计 哈工大Word下载.docx

参考《计算机组成与设计—硬件/软件接口》,进行模块划分和设计微控制器整体结构,设计支持load、store指令的数据通路,并比较各种实现的效率、面积和速度。

(2)算术逻辑运算设计

设计支持add、sub、multi、or等指令的数据通路。

(3)流程控制设计

设计支持branch、jump等指令的数据通路。

(4)基于MIPS指令的单周期微控制器设计

同组同学共同完成具有10条左右指令的单周期微控制器设计。

基本要求:

1)确定设计采用的结构

2)划分所确定的结构,画出模块图,确定模块间的连接关系,端口方向及宽度

3)确定设计的验证方案,验证点及验证向量

4)完成设计的RTL建模及测试平台建模

5)完成设计的验证、逻辑综合,给出设计的评价(面积、速度)

6)完成设计报告

工作量:

本课程设计按照每4人一组分工协作完成。

每位成员完成设计要求中的

(1)~(3)任务之一,作为独立完成项,在完成个人项目基础上共同完成设计要求中的第(4)项。

熟悉开发环境、学习EDA工具使用:

10学时

分析题目、确定设计方案:

5学时

设计、验证、综合以及结果分析、整理数据:

25学时

工作计划安排:

2015.7.27—2015.7.28学习modelsim、DesignCompiler使用方法

2015.7.29—2015.7.30分析设计题目,确定结构及模块划分

2015.7.31—2015.8.6完成设计、验证、综合与性能分析

2015.8.7提交课程设计报告

同组设计者及分工:

指导教师签字___________________

年月日

教研室主任意见:

教研室主任签字___________________

年月日

*注:

此任务书由课程设计指导教师填写。

一、功能描述

基于MIPS指令的单周期微控制器设计:

l_w和s_w指令的实现:

控制器实现支持loadword(lw)、storeword(sw)指令的MIPS单周期数据通路:

l_w:

寄存器rs中的数据和立即数imm相加,得到存储器地址,用这个地址访问存储器,把得到的存储器数据写入寄存器rt中。

把PC+4写入PC。

s_w:

寄存器rs中的数据和立即数imm相加,得到存储器地址,把寄存器rt中的数据写入这个地址的存储器中。

二、设计方案:

1.整体框图:

2.模块划分:

下图中,各个大模块中还包含:

立即数符号位扩展,寄存器堆,存储器,ALU,指令寄存器,PC,控制部件

3.模块连接框图:

4.总体设计思想:

我设计的部分主要包三四部分,分别为:

指令寄存器、寄存器堆、和存储器,额外还有一个Alu,即加法器和一个pc,即程序计数器,是借助同组同学编译的程序。

存取指令需要两个状态单元,计算下一个指令地址需要一个加法器,两个状态单元分别是指令寄存器和程序寄存器。

指令寄存器是制度的,任意时刻的输出都反映了输入的地址的内容,而不需要读控制信号。

程序计数器是一个32位的寄存器,让在每个时钟周期末都会被写入。

加法器被设计为只进行加法运算的ALU,他将输入的俩个32位数相加将结果输出。

Mips指令执行时,首先需要的是指令存储器,用来存储指令,并根据所给地址提供指令,指令地址存放在pc中,pc的设计还需要一个加法器来指向下一个指令的地址。

在执行R型指令时,读两个寄存器,对他们中的内容进行Alu操作,再写出结果。

处理器的32个寄存器组成一个寄存器堆的结构,即register。

在读取指令的时候,一般形式为:

oprsrtimm,此时需要将一个16位的立即数带符号扩充为32位,然后和rs地址内的内容通过Alu加法器相加,如果是读取指令即loadword,即得出的是存储器地址,将得出的存储器地址内的内容写入rt所指的寄存器地址处,如果是存储指令即storeword,即得出的存储器地址用来写入rt地址内的所存内容。

5.PC程序计数器:

6.L_w电路图:

7.L_w的设计思想:

swrt,imm(rs);

memory[rs+(sign)imm]<

--rt

op

rs

rt

imm

101011

rs

6bits

5bits

16bits

8.S_w电路图:

9.S_w的设计思想:

Op

100011

三、验证方案与结果分析:

L_w和s_w的仿真验证:

以下为指令寄存器中内容:

register[17]=8'

b0000_0001;

//lw

register[18]=8'

b0000_0000;

register[19]=8'

b0010_0101;

register[20]=8'

b1000_1100;

register[21]=8'

b0000_0010;

register[22]=8'

register[23]=8'

b0010_0110;

register[24]=8'

register[25]=8'

b0000_0011;

register[26]=8'

register[27]=8'

b0010_0111;

register[28]=8'

以第一个地址指令为例:

前六位1000_11为load指令,之后五位00001为rs,取出存储器中地址为1的内容,register[1]=1,后16位为立即数,将register[1]和立即数相加,此时为2,然后取出存储器地址为2处的内容,此时为register[2]=12'

b101001_100000,再过4s,执行第二条指令,每过4s,执行下一条指令。

register[1]=8'

//sw

register[2]=8'

register[3]=8'

b0010_0010;

register[4]=8'

b1010_1100;

register[5]=8'

register[6]=8'

register[7]=8'

register[8]=8'

register[9]=8'

register[10]=8'

register[11]=8'

register[12]=8'

register[13]=8'

b0000_0100;

register[14]=8'

register[15]=8'

register[16]=8'

以store第一个指令为例:

前六位1010_11为store指令,之后五位00001为rs,取出寄存器地址为rt中内容中地址为1的内容,register[1]=1,后16位为立即数,将register[1]和立即数相加,此时为2,然后取出存寄存器地址为2处的内容,将其存入2地址的存储器,将其再过4s,执行第二条指令,每过4s,执行下一条指令。

整体功能验证:

b0010_0000;

//add

b0100_0000;

b0110_0010;

//sub

b0010_0100;

//and

//or

register[17]=8'

b0100_0110;

//xor

register[29]=8'

b0000_1001;

//bne

register[30]=8'

register[31]=8'

register[32]=8'

b0001_0100;

register[69]=8'

b0000_1000;

//beq

register[70]=8'

register[71]=8'

register[72]=8'

b0001_0000;

register[73]=8'

//j

register[74]=8'

register[75]=8'

register[76]=8'

register[81]=8'

//jr

register[82]=8'

register[83]=8'

register[84]=8'

四、逻辑综合及性能分析:

1.Regfile寄存器堆节选:

2.立即数扩展:

3.ALU综合验证:

4.Control综合验证:

5.PC:

6.pc_next:

7.2选1:

8.整体cpu模块连接:

9.DC综合:

design_vision>

read_file-formatverilog{/home/homeO5/user1/dbf4/alu.v/home/homeO5/user1/dbf4/control.v/home/homeO5/user1/dbf4/cpu_top.v/home/homeO5/user1/dbf4/l_s.v/home/homeO5/user1/dbf4/pc.v/home/homeO5/user1/dbf4/regfile.v}

Loadingverilogfiles:

'

/home/homeO5/user1/dbf4/alu.v'

/home/homeO5/user1/dbf4/control.v'

/home/homeO5/user1/dbf4/cpu_top.v'

/home/homeO5/user1/dbf4/l_s.v'

/home/homeO5/user1/dbf4/pc.v'

/home/homeO5/user1/dbf4/regfile.v'

Detectinginputfiletypeautomatically(-rtlor-netlist).

RunningDCverilogreader

ReadingwithPrestoHDLCompiler(equivalentto-rtloption).

RunningPRESTOHDLC

Compilingsourcefile/home/homeO5/user1/dbf4/alu.v

Compilingsourcefile/home/homeO5/user1/dbf4/control.v

Warning:

/home/homeO5/user1/dbf4/alu.v:

13:

Thestatementsininitialblocksareignored.(VER-281)

/home/homeO5/user1/dbf4/control.v:

7:

Portalucisimplicitlytyped(VER-987)

8:

Portpcsourceisimplicitlytyped(VER-987)

29:

theundeclaredsymbol'

i_lw'

assumedtohavethedefaultnettype,whichis'

wire'

.(VER-936)

30:

i_sw'

Compilingsourcefile/home/homeO5/user1/dbf4/cpu_top.v

/home/homeO5/user1/dbf4/cpu_top.v:

16:

wmem'

23:

Compilingsourcefile/home/homeO5/user1/dbf4/l_s.v

61:

/home/homeO5/user1/dbf4/l_s.v:

11:

Compilingsourcefile/home/homeO5/user1/dbf4/pc.v

/home/homeO5/user1/dbf4/pc.v:

4:

Portpcinisimplicitlytyped(VER-987)

5:

Portpc4isimplicitlytyped(VER-987)

17:

Portpc_inisimplicitlytyped(VER-987)

Portqaisimplicitlytyped(VER-987)

18:

Portimm1isimplicitlytyped(VER-987)

19:

Portimm2isimplicitlytyped(VER-987)

21:

Portpc_outisimplicitlytyped(VER-987)

22:

Portselectisimplicitlytyped(VER-987)

Compilingsourcefile/home/homeO5/user1/dbf4/regfile.v

/home/homeO5/user1/dbf4/regfile.v:

Statisticsforcasestatementsinalwaysblockatline13infile

===============================================

|Line|full/parallel|

|23|auto/auto|

Potentialsimulation-synthesismismatchifindexexceedssizeofarray'

register'

.(ELAB-349)

14:

Inferredmemorydevicesinprocess

inroutineDataMemline12infile

.

===========================================================================

|RegisterName|Type|Width|Bus|MB|AR|AS|SR|SS|ST|

|register_reg|Latch|32|Y|N|N|N|-|-|-|

StatisticsforMUX_OPs

===========================================================

|blockname/line|Inputs|Outputs|#selinputs|MB|

|DataMem/11|256|32|8|N|

158:

do[20:

16]'

isbeingread,butdoesnotappearinthesensitivitylistoftheblock.(ELAB-292)

159:

do[15:

11]'

Statisticsforcasestatementsinalwaysblockatline154infile

=========

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2