组合逻辑控制器设计_第1页
组合逻辑控制器设计_第2页
组合逻辑控制器设计_第3页
组合逻辑控制器设计_第4页
组合逻辑控制器设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内蒙古大学计算机组成原理实验设计报告设计题目:组合逻辑控制器设计班级:13软件二班小组组长:张曦(0131124497)小组成员:李聪、高浪、沈冲、王佳煜、罗旭亮指导老师:刘彩霞一. 实验设计目的:设计一个指令格式如下图的组合逻辑控制器o直接导址地址cr98710操作码寻址方式寄存器编号0: cla0:寄存器直接0: r01: r1二、实验设计原理及思路:1、cup数据通路图如下:1bi ac ift./jialugr (ro;r1)sb2指令微流程图如下:tl>:pc-sb,sb-ar,rdtl:dr-sb,sbrlrt2:pc+1(cla)lrp)=l(add)1r(8)=1(存储器

2、直接寻址)1r(k)=0(寄存器直接寻址ru:d-acrd:(ir(»)-sb,sbralu.r,ac-alu.l11: add, alu.o-acri):lr(i> 7)-sk,sb-ar,rdt1:dr-siksb-alu.r,ac-alu.ln:add,alu.o-ac其屮微命令如f:pc-sbdr-sbir(o)-sbir(0-7)-sbsb-arsb-irsb-alu. ro-acalu.o-ac ac-alu. lpc+1rdadd3微命令编码设计3221 11 14、此地址部分设计:nac字段:2位00:顺序;01:无条件跳转;10:指令跳转;11: add寻址方

3、式跳转na字段:4位共9跳微指令所以na占4位5、控制存储器存储空间分配0123456789004 04 00 0 0 1 0 00 xxxx 010 10 00 0 0 0 0 00 xxxx 000 00 00 0 1 0 0 40 0100 000 00 01 0 0 0 0 01 0000 000 00 00 0 0 0 0 11 0111 011 11 00 1 0 0 0 00 xxxx 000 0010 0 0 0 4 04 0000 100 01 00 0 0 1 0 01 0111 010 11 00 1 0 0 0 01 1000 000 00 10 0 0 0 1 01

4、0000取指clr执行add存储器直 接寻址执行add寄存器直 接寻址执行sbinsboutacinac-alu.lpc+1rdaddnacna32224三、实验代码(c+):# include<iostream>#include<string> using namespace std;int findchar(char ch,char strjnt n) int i=0;while(stri!=ch&&ivn)i+;if(j=n) i=l;return 1;return 0;void caozuo(int wcx1017,int zl)int i=0;

5、for(i=0;i<17;i+)cout«wcx0i;cout«endl«hpc->sb,sb->ar,rdm«endl; for(i=0;i<17;i+)cout«wcxli;cou t«end 1« h dr->sb ,sb ->ir h «endl; for(i=0;i<17;i+)cout«wcx2i;cout«endl«hpc+l n«endl;if(zlol=l)for(i=0;i<17;i+)cout«w

6、cx4i;cout«endi«hadd jmpu«endl;if(zll=l)for(i=0;i<17;i+)cout«wcx7i;cout«endl«mir(0-7)->sb,sb->ar,rdn«endl; for(i=0;i<17;i+)cout«wcx8i;coutvvendlvv”dr>sb,sb alur,acalul'vvendl; for(i=0;i<17;i+)cout«wcx9hil;cout«endl«hadd,alu.

7、o->acm«endl; return;for(i=0;i<17;i+)cout«wcx5i;cout«endl« ,ir(0-7)->sb,sb->alu.r,ac->alu.l,«endl; for(i=0;i<17;i+)cout«wcx6i;coutvvendlvv”add,alu0>ac'vvendl;return;for(i=0;i<17;i+)cout«wcx3i;cout«endl«no->ach«endl;retur

8、n;void add_l(int r0,int ac)int i,cn=0;for(i=0;i<8;i+)cn=(roi&aci+l)l(roiaaci+l)&cn);for(i=0;i<8;i+)aci+l=r0i&aci+l;ac0=cn;return;void add_2(int ac,int r0,int n=0)int i;for(i=0;i<8;i+)r0i=aci+lj;return;main()int wcx1017=0,0,1,0,1,0,0,0,0,1,0,0,0,-1,-1,-1,-1,0,1,0,1,0,0,0,0,0,0,0,

9、0,0,0,(),0,0,0,0,(),0,1,0,0,1,0,0,1,0,0, 取指0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0, /clr0,0,0,0,0,0,0,0,0,0,0,1,1,0,1 丄 1, /add 寻址0,1,1,1,1,0,0,1,0,0,0,0,0,-1,-1,-1,-m/add 寄存器0,0,0,0,0,l ,0,0,0,0,1,0,1,0,0,0,0,1,(),0,0,1,0,0,0,(),1,0,0,1,0,1,1,1,/add 存储器0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,(),0,0,1,0,0,0

10、,0,1,0,1,0,0,0,0char ch1000;char s31000;const char *d = "char *p;while(l)int i=0,n=0;int r08=0,rl8=0),ac9=0;int x100,e;int zl10=0;int zl210=0;cout«"请输入命令:*«endl;gets(ch);if(ch0=*d break; if(strcmp(ch,hclrm)=ollstrcmp(ch,hclrm)=o) zloj=o;zl20=0;cout«m 指令:”;for(i=0;i<10;i+)

11、 cout«zli; cout«endl; caozuo(wcx,zl);elseif(findcharc ' ,ch,strlen(ch)!=0) n=l;if(findchar(*,',ch,strlen(ch)!=o) n=2;else n=3;p = strtok(ch,d);for(i=0;i<n;i+)strcpy(si,p);p=strtok(null,d);e=n;/while(l)if(strcmp(sojadd”)=ollstrcmp(so畀 add”)=o)zl01=l;z!20=l;if(e=l) break;if(e=2)if

12、(strcmp(sl,"ro")=ollstrcmp(sl,hro")=o) zll=o;zl9=0;add_1(r(),ac);else if(strcmp(sl,krlk)=ollstrcmp(sl,"rlm)=o)zll=o;zl9=l;add_1(r1,ac);elsezll=l;for(i=0;i<strlen(s l);i+)xi=int(sli)-48;for(intj=2;j<10;j+)zlj=l;break;if(e=3)if(strcmp(s2,r0h)=0llstrcmp(s2,hr0k)=0) zl2l=0;z!29

13、=0;else if(strcmp(s2,krlk)=0llstrcmp(s2,"rlh)=0)zl2l=0;zl29=l;elsezl2l=l;for(i=0;i<strlen(s l);i+)xi=int(sli)-48; for(intj=2;j<10;j+)zl2uj=l;e-;cout«'* 指令:";for(i=0;i<10;i+) cout«zli;if(n=3)cout«m 指令:"; for(i=0;i<10;i+) cout«zl2i;cout«endl;caoz

14、uo(wcx,zl);if(n=3)cout«m 操作二:,«endl; caozuo(wcx,z!2);if(n=2)cout«endl«tfro:h; for(i=0;i<8;i+) cout«roi;cout«endl;cout«endl;if(n=3)add_1(ro,ac);add_1(r1,ac);add_2(ac,r0,0); cout«endl«hro:" for(i=0;i<8;i+)cout«roi;cout«endl; cout«&

15、quot;rl:m; for(i=0;i<8;i+)cout«rli;cout«endl;return 0;三、实验结果图如下:请输入命令:clr指令:00000000000010100001000-1-1-1-1pc->sb, sb->ar, rd0101000000000-1-1-1-1dr->sb, sb-mr 00000000100100100pc+1000000100000100000->acac:00000000请输入命令:add rl 指令:1000000001 0010100001000-1-1-1-1 pc->sb, s

16、b->ar, rd 0101000000000-1-1-1-1dr->sb, sb->ir00000000100100100pc+100000000000110111add jmp0111100100000-1-1-1-1ir(0-7)->sb, sb->alu. r, ac->alu. l00000100001010000add, alu. 0->acro:00000000请输入命令:add ro, r1指令:1000000000指令:10000000010010100001000-1-1-1-1pc->sb, sb->ar, rd oioiooooooooo-i-i-i-idr->sb, sb->ir00000000100100100pc+100000000000110111add jmp0111100100000-1-1-1-1ir(0-7)->sb, sb->alu. r, ac->alu. l00000100001010000m)d, alu. 0->ac操作二:0010100001000-1-1-1-1pc->sb, sb->ar, rd oioiooooooooo-i-i-i-idr->sb, sb->i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论