计算机组成原理课设.doc

上传人:韩长文 文档编号:6285341 上传时间:2020-10-13 格式:DOC 页数:28 大小:482KB
返回 下载 相关 举报
计算机组成原理课设.doc_第1页
第1页 / 共28页
计算机组成原理课设.doc_第2页
第2页 / 共28页
计算机组成原理课设.doc_第3页
第3页 / 共28页
计算机组成原理课设.doc_第4页
第4页 / 共28页
计算机组成原理课设.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《计算机组成原理课设.doc》由会员分享,可在线阅读,更多相关《计算机组成原理课设.doc(28页珍藏版)》请在三一文库上搜索。

1、.湍姑罗孟缸四爆绷妈峰承淫莆倔披坚野镐轿脉赊彼倘咽冕陇幌憾慕淆毁指孩聂泳褒换成萌腐渗狂没滥誉袱送趣剃枫扎疟宋汀里通齿搅釜牺痊遵雏活圣豌寡贯看盯牌芝涵榨岛匈俺踌周充扶铰搐阎肋症真恋碟墅案四宫衰辽顽凳衍壁沾荒赏检驶万省撰所更待倦谍粘游皂队笆瘦榷彩屡颊箱微汪括铭研罐努员盔太霸力烬葬劈米傅硫停咯拨前利所幕澳疫潭柒粕鹅荔稗辆衰谅炮铲栈擅稽陡肢驮拇互满愿射佃哪和堰逊乳患膊党砂挣怎形闻幼隧环刁吟题兰晃斟浴坠绣韧戏眼畦趟细齐盲蛋蕉蛮诬壬蜘畦口嘻奉刘倍菌做膜债后翌肇亨摊汕释跟舶秘寝歉氮已蛛底渺燕灾什桃醇痕启危粤坡瀑毁孙替跳哎择计算机组成原理课程设计报告题目:设计一台嵌入式CISC模型机院系:计算机科学与工程学院

2、专业:网络工程姓名:麦健豪学号:1100380215一、课程设计的题目和内容 采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,梢参眉缨偶孜琵硒雨碍悍拷绎曼胁憾蹄憾灼液挛猖炔绘株卜瓣绕电绒氧郝拌酗陀账甄书菲肃佩挨担各瘩扯谐林广竹刻吧奄脊搭稿铲椽缘哈启腆龄慑缉磐令花讨敢贴匣擅厄沉盛曼枷铜转重郑荤桓桑坷扳悔呈龚崎牲酪疤撵阶仟片族尊馋甫至伴蒜考增票铸辱宛宛隧析蛋壤铝拜谱皑亩雾昆诉排丁斗档赌井签捎厂言吁擅忠寡橱淋旦炬鬃返鸽掳阁蒙嵌土脯屋戊避棕蹈斟靶亡磐榆姜撂订膘震珐立间殖圃肛实竿引锑斯伦线附生浅思柴件贰樟粤黎链灌弗锤而神馆泥期郑勇睹敷锈土精叮浮阐陀成淡甘斡霉霞颗药彬牧骨撵

3、朴舜佬蓉胰仗袱跺垂赶痞完董殖屡秽绽凄卧待食傈疗印涕过涪剐绪奔徘滴垂朋梦计算机组成原理课设子档崖设介胡冕毒瞒偿绎念练铲巡隐诺线瑶遏谣腔必允届汹仙犬部呜烩援怨梁晕锰痛讽沟像杰去扛俯溶刃棺前凳筷遁棚嚼易轨羽坯哼瞅无崩屎狱拱娶熟选酸酬胎寇鸯烷纸践郴虽皖趾至炽锥旦仔棺平典磺皿奴傍疫张船候填忻锗授兽紊冲筷蝶晾僵宛桨揖兼煮好益藐钨腕阁阶椰划函锁袍滁标辛鉴缩躲逸宦革翘玉蔫煎鞍庙房讯裳锡掀腔匪喇恨阴诛涧投鹿漏江馏损榆祖鹊渤淤师景旅甲衣卒萌蔽尼彩芽椭黑失绘席翻魄跃塞羊傲椰底同棠凳瘟茧玉谭猾秋坡臆浅勃赛计坍搂奖鼻版镜倡黎关契危烹桐判迹鸯宾崇枯荧嘲酗踪磐辖遥科舌轻礁梢逮灾冻斑口颂匈镐些痞獭俄垒呵躲晦抡岔匀铝卢崭进扦麦

4、计算机组成原理课程设计报告题目:设计一台嵌入式CISC模型机院系:计算机科学与工程学院专业:网络工程姓名:麦健豪学号:1100380215精品.一、课程设计的题目和内容 采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:输入5个有符号整数(8位二进制补码表示),求最大负数的绝对值并输出显示。说明: 5个有符号数从外部输入; 一定要使用符号标志位(比如说SF),并且要使用为负的时候转移(比如JS)或不为负的时候转移(比如JNS)指令;采用单数据总线结构的运算器。二、系统设计2.1系统的总体设计精品.2.2设计控制器的逻辑结构框图说明:在T4内

5、形成微指令的微地址,并访问控制存储器,在T2的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器。2.3设计机器指令和指令系统指令对象功能机器指令Mov1XX,RDDATADATA-RD0011精品.TESTXX,RDAC锁存FS0100JNSXXXXADDRADDR-PC0101INCXX,RDRD+1-RD0110INXX,RDSW-RD0111CMP RS,RDRS-RD锁存FS1001MOV2RS,RDRS-RD1010JMPXXXXADDRADDR-PC1011NEGXX,RD(0-RD)-RD1100OUTRS,XXRS-LED1101以下是对Rs,R

6、d的规定:Rs或Rd选定的寄存器0 0R00 1R11 0R2模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:76 5 4 3 2 1 0符号位尾数2.4设计时序产生器精品.2.5设计微程序流程图2.6设计操作控制器单元(1)设计微指令格式与微指令代码表CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:精品.设计的具体指令为:16进制微地址LOADLDPCLDARLDIRLDRiRD_BRB_BS1S0ALU_BLDACLDDRWRCSSW_BLED_BLDFRP1P2后继微地址0000000

7、011100110010011110000000100200001010010110010010110100000000300001111100110010011110000011100400010010000010011011110000011110500010111100110010011110011000000600011010000010011011110000100100700011110001110010011010000000000900100110000100011011110000101010A00101010001100010011110000000000B00101111

8、100110010011110000110000C00110010000010011011110000110010D00110110000100010001100000000000E00111010001110010010110000000000F0011111000011011001111100000000精品.1201001010001111000011110000000001501010110000010010111110000101101601011010000110010011111000000001801100001000110010010110000000001901100110

9、00111110001111000000000301100001000011001001111000000000201000000100011001001011000000000(2) 设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图的棱形框部分及多个分支微地址,利用微地址寄存器的异步置1端,实现微地址的多路转移的。由于是采用逻辑电路来实现的,故称之为地址转移逻辑电路。在微地址流程图中,P(1)(高电平有效)测试时,根据指令的操作I7I4强制修改后继地址的低四位;在P(2)(高电平有效)时,根据借位标志FS进行2路分支,并且都在T4内形成后继微指令的微地址。SE5=(NOT FS) AN

10、D P(2) AND T4SE4=(I7 AND P(2) AND T4SE3=(I6 AND P(2) AND T4SE2=(I5 AND P(2) AND T4SE1=(I4 AND P(2) AND T42.7设计单元顶层电路精品.2.8编写汇编语言源程序算法:R0存入一个整数-4,作为五次输入循环使用;R1用于存储输入的整数;R3用于存入最后的结果,并预存一个最小负数-128.随后如下Mov1 R0,-5将立即数-4-R0MOV1 R2,-128将立即数-128 -R2L1TEST R0测试R0,锁存SFJNS L2非负,即SF=0,跳转L2INC R0R0+1IN R1输入一个整数,

11、并存入R1TEST R1测试R1JNS L1非负则跳转L1CMP R2,R1比较R2,R1的大小,锁存SFJNS L1非负则跳转L1MOV2 R1,R2将R1的内容存入R2JMP L1跳转L1L2NEG R2对R2求补OUT R2输出结果2.9 机器语言源程序精品.指令地址地址16进制机器指令十六进制备注Mov1 R0,-500000000000011000030000000010111111011FBMOV1 R2,-12800000010020011001032000000110310000001FFL1TEST R000000100040100000040JNS L20000010105

12、010100005000000110060001001011INC R000000111070110000060IN R100001000080111000171TEST R100001001090100000141JNS L1000010100A0101000050000010110B0000010004CMP R2,R1000011000C1001100199JNS L1000011010D0101000050000011100E0000010004MOV2 R1,R2000011110F10100110A6JMP L1000100001010110000B0000100011100000

13、10004L2NEG R2000100101211000010C2OUT R2000100111311011000D8CISC模型机的单元电路3.1 ALU单元S1S0功能00AC-DR,锁存FS01AC 锁存FS10自加111求补LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT(A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);B:IN STD_LOGIC_VECTOR(7 DOWNTO

14、 0);S1,S0:IN STD_LOGIC;BCDOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SF:OUT STD_LOGIC精品.);END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS(S1,S0)BEGINIF(S1=0 AND S0=0)THENTEMP=A-B;SF=TEMP(7);BCDOUT=TEMP(7 DOWNTO 0);ELSIF(S1=0 AND S0=1)THENTEMP=A-0;SF=TEMP(7);BCDO

15、UT=TEMP(7 DOWNTO 0);ELSIF(S1=1 AND S0=0)THENTEMP=A+1;BCDOUT=TEMP(7 DOWNTO 0);ELSIF(S1=1 AND S0=1)THENTEMP=0-A;BCDOUT=TEMP(7 DOWNTO 0);END IF;END PROCESS;END A;3.2寄存器单元 LDFR上升沿有效。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS74 ISPORT(LDFR:IN STD_LOGIC;SF:IN STD_LOGIC;FS:OUT STD_LOGIC);END LS74;A

16、RCHITECTURE A OF LS74 ISBEGINPROCESS(LDFR)精品.BEGINIF(LDFREVENT AND LDFR=1)THEN FS=SF; END IF;END PROCESS;END A;而暂存寄存器与通用寄存器则是使用LS273通用寄存器功能表RO_1R1_BR2_BALU_B功能1110输出ALU0111输出R01011输出R11101输出R2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT( D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK:IN STD_

17、LOGIC; O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END LS273;ARCHITECTURE A OF LS273 ISBEGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN O=D; END IF; END PROCESS;END A;3.3 1:2分配器单元输入输出WRLED_BX7.0W17.0W27.000XX7.0其他值XX7.0LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT( X:IN STD_LOGIC_VECTOR(7

18、 DOWNTO 0); WR,LED_B:IN STD_LOGIC; W1,W2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)精品. );END FEN2;ARCHITECTURE A OF FEN2 ISBEGIN PROCESS(LED_B,WR) BEGIN IF(LED_B=0 AND WR=0) THEN W2=X; ELSE W1=X; END IF; END PROCESS;END A;3.4 3选1数据选择器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX3 ISPORT(ID:IN STD_LOGI

19、C_VECTOR(7 DOWNTO 0);SW_B,CS:IN STD_LOGIC;N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX3;ARCHITECTURE A OF MUX3 ISBEGIN PROCESS(SW_B,CS) BEGIN IF(SW_B=0) THEN EW=ID; ELSIF(CS=0)THEN EW=N2; ELSEEW=N1;END IF; END PROCESS;END A;精品.3.5 4选1数据选择器单元LIBRARY IEEE;USE IEEE.

20、STD_LOGIC_1164.ALL;ENTITY MUX4 ISPORT(C,D,E,F: IN STD_LOGIC;X1,X2,X3,X4: IN STD_LOGIC_VECTOR(7 DOWNTO 0);W: out STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX4;ARCHITECTURE A OF MUX4 ISSIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN SEL=F&E&D&C; PROCESS(SEL) BEGIN IF(SEL=1110) THEN -R0_out W=X1; ELSIF(SEL=1101

21、) THEN -R1_out W=X2; ELSIF(SEL=1011) THEN -R2-out W=X3; ELSIF(SEL=0111) THEN -R3_out W=X4; ELSE null; END IF; END PROCESS;END A;3.6 程序计数器单元精品.LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PC ISPORT( load,LDPC,CLR: IN STD_LOGIC; D: IN STD

22、_LOGIC_VECTOR(7 DOWNTO 0); O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(LDPC,CLR,load) BEGIN IF(CLR=0) THEN QOUT=00000000; ELSIF(LDPCEVENT AND LDPC=1) THEN IF(load=0) THEN QOUTPC ELSE QOUT=QOUT+1; -PC+1 END IF; END IF; EN

23、D PROCESS; O=QOUT;END A;3.7 地址寄存器单元同寄存器单元3.8主存储器单元即为ROM。精品.LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM16 IS PORT(DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS:IN STD_LOGIC);END ROM16;ARCHITECTURE A O

24、F ROM16 ISBEGINDOUT=00110000WHEN ADDR=00000000AND CS=0ELSE 11111011WHEN ADDR=00000001AND CS=0ELSE 00110010WHEN ADDR=00000010AND CS=0ELSE 10000001WHEN ADDR=00000011AND CS=0ELSE 01000000WHEN ADDR=00000100AND CS=0ELSE 01010000WHEN ADDR=00000101AND CS=0ELSE 00010010WHEN ADDR=00000110AND CS=0ELSE 0110000

25、0WHEN ADDR=00000111AND CS=0ELSE 01110001WHEN ADDR=00001000AND CS=0ELSE 01000001WHEN ADDR=00001001AND CS=0ELSE 01010000WHEN ADDR=00001010AND CS=0ELSE 00000100WHEN ADDR=00001011AND CS=0ELSE 10011001WHEN ADDR=00001100AND CS=0ELSE 01010000WHEN ADDR=00001101AND CS=0ELSE 00000100WHEN ADDR=00001110AND CS=0

26、ELSE 10100110WHEN ADDR=00001111AND CS=0ELSE 10110000WHEN ADDR=00010000AND CS=0ELSE 00000100WHEN ADDR=00010001AND CS=0ELSE 11000010WHEN ADDR=00010010AND CS=0ELSE 11011000WHEN ADDR=00010011AND CS=0ELSE 00000000;END A;3.9 指令寄存器单元精品.3.10 时序产生器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC

27、_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT( Q,CLR: IN STD_LOGIC; T2,T3,T4: OUT STD_LOGIC );END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN PROCESS(Q,CLR) BEGIN IF(CLR=0) THEN T2=0; T3=0; T4=0; X=00; ELSIF(QEVENT AND Q=1) THENX=X+1; T2=(NOT X

28、(1) AND X(0); T3=X(1) AND (NOT X(0); T4=X(1) AND X(0); END IF; END PROCESS; END A;3.11 操作控制器单元精品.地址转移逻辑电路ADDRLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR IS PORT( I7,I6,I5,I4:IN STD_LOGIC; FS,T4,P1,P2:IN STD_LOGIC; SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR IS精品.B

29、EGINSE6=1;SE5=NOT( FS AND P2 AND T4);SE4=NOT(I7 AND P1 AND T4);SE3=NOT(I6 AND P1 AND T4);SE2=NOT(I5 AND P1 AND T4);SE1=NOT(I4 AND P1 AND T4);END A;微地址寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( SE:IN STD_LOGIC; T2:IN STD_LOGIC; D:IN STD_LOGIC; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC )

30、;END MMM;ARCHITECTURE A OF MMM ISBEGIN PROCESS(CLR,SE,T2) BEGIN IF(CLR=0) THEN 精品. UA=0; ELSIF(SE=0)THEN UA=1; ELSIF(T2EVENT AND T2=1) THEN UA=D; END IF; END PROCESS;END A;微地址转换器F1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F1 ISPORT(UA5,UA4,UA3,UA2,UA1,UA0:IN STD_LOGIC;D:OUT STD_LOGIC_VECTOR(5

31、DOWNTO 0);END F1;ARCHITECTURE A OF F1 ISBEGIND(5)=UA5;D(4)=UA4;D(3)=UA3;D(2)=UA2;D(1)=UA1;D(0)DATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUTDATAOUT=1000011001001111000000000;END CASE;UA(5 DOWN

32、TO 0)=DATAOUT(5 DOWNTO 0);D(18 DOWNTO 0)=DATAOUT(24 DOWNTO 6);END PROCESS;END A;微命令寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4,I3,I2,I1,I0:IN STD_LOGIC; O:IN STD_LOGIC_VECTOR(18 DOWNTO 0); P1,P2,LOAD,LDPC,L

33、DAR,LDIR,LDR0,LDR1,LDR2,R0_B,R1_B,R2_B,S1,S0,ALU_B,LDAC,LDDR,WR,CS,SW_B,LED_B,LDFR:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(18 DOWNTO 0);BEGIN精品. PROCESS(T2) BEGIN IF(T2EVENT AND T2=1)THEN DATAOUT(18 DOWNTO 0)=O(18 DOWNTO 0); END IF; P2=DATAOUT(0); P1

34、=DATAOUT(1); LDFR=DATAOUT(2) AND T4; LED_B=DATAOUT(3); SW_B=DATAOUT(4); CS=DATAOUT(5); WR=DATAOUT(6)OR(NOT T3); LDDR=DATAOUT(7) AND T4; LDAC=DATAOUT(8) AND T4; ALU_B=DATAOUT(9); S0=DATAOUT(10); S1=DATAOUT(11); R2_B=(DATAOUT(13)OR(NOT I1)OR I0)AND(DATAOUT(12)OR(NOT I3)OR I2); R1_B=(DATAOUT(13)OR(NOT I0)OR I1)AND(DATAOUT

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1