桂林电子科技大学系统实验报告_第1页
桂林电子科技大学系统实验报告_第2页
桂林电子科技大学系统实验报告_第3页
桂林电子科技大学系统实验报告_第4页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成系统实验课程设计报告题目嵌入式 CISC 模型计算机设计( B 类)院 (系):研究生学院专业:计算机应用技术学生姓名:周 洁学号:102031129指导教师:陈智勇职称:副教授2011年 05月 22日目录1.1实验题目 .11.1.1实验的题目 .11.2实验的具体步骤 .11.2.1 CISC 模型机数据通路框图 .11.2.2操作控制器的逻辑结构框图 .11.2.3机器指令格式和指令系统 .11.2.4时序产生器电路 .21.2.5微程序流程图 .21.2.6操作控制器单元(即微程序控制器).31.2.7嵌入式 CISC 模型计算机的顶层电路图 .41.2.8汇编语言源程序

2、.51.2.9机器语言源程序 .51.2.10机器语言源程序的功能仿真波形图及结果分析.61.2.11故障现象和故障分析 .61.2.12心得体会 .61.2.13软件清单 .61.1实验题目1.1.1 实验的题目设计一台嵌入式程序功能为:输入包含CISC 模型计算机 (采用定长CPU周期),并运行能完成一定功能的机器语言程序进行验证,10 个整数( 8 位二进制补码表示)的数组M(不采用RAM),输出最小负数。( 要求采用p3 测试 )1.2实验的具体步骤1.2.1 CISC 模型机数据通路框图说明:范例中设计时,外部时钟信号上边沿有效。1.2.2操作控制器的逻辑结构框图说明:在T4 内形成

3、微指令的微地址,并访问控制存储器,在指令寄存器,即图中的微命令寄存器和微地址寄存器。T2 的上边沿到来时,将读出的微指令打入微1.2.3 机器指令格式和指令系统由此可见,本模型机中的指令系统中共有8 条基本指令,下表列出了每条指令的格式、汇编符号和指令功能。助记符号指令格式功能IN1 Rd1000××Rd将数据存到 Rd 寄存器OUT1 Rs1111Rs××(Rs) LEDCMP Rs,Rd1010RsRd(Rs)-(Rd), 锁存 CY和 ZI,SFINC Rd1101××Rd(Rd)+1 RdMOV Rd,data1001

4、5;×Rddata RddataJMP addr1110××××addr PCaddrJB addr1011××××若小于,则 addr PCaddrMov1 Rs,Rd1100RsRd(Rs) Rd说明:对 Rs 和 Rd 的规定:Rs 或 Rd选定的寄存器00R001R110R211R3模型机规定数据的表示采用定点整数补码表示,单字长为8 位,其格式如下:76543210符号位尾数1.2.4 时序产生器电路T1、 T2、 T3、 T4 与 CLR、Q之间的关系图如下图所示:CLRQT1T2T3T4一个

5、 CPU周期图一1.2.5 微程序流程图微程序控制器的设计过程为:( 1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;( 2)设计微指令格式和微指令代码表;( 3)设计地址转移逻辑电路;( 4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;( 5)设计微程序控制器的顶层电路(由多个模块组成)。00PCARPC+102RD MBUSIR08P(1)IN1MOV1CMPJBMOV2INCJMPOUT108090A0BOC0D0E0FSWBUSPCARRsBUSPCARRsBUSRdBUSPCARRsLEDBUS R

6、dPC+1BUSACPC+1BUSRDBUS ACPC+103041506121300ROMBUSRdBUSP(3)00AC+1BUSROMBUS00BUSRdBUS DRBUSRdBUSPC050700AC-DR0000锁存 FC和 FZFS=1FS=0001530ROMBUSBUSPC0000图二CISC模型机中所有机器指令的微程序流程图1.2.6 操作控制器单元(即微程序控制器)(1)设计微指令格式和微指令代码表CISC 模型机系统使用的微指令采用全水平型微指令,字长为 25 位,其中微命令字段为 17 位, P 字段为 2 位,后继微地址为 6 位,其格式如下:242322212019

7、18 1716151413 1211 10987 6543210LOAD LDPC LDAR LDIR LDRi RD_B RS_B S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P2后继微地址由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为: LOAD、 LDPC、LDAR、 LDIR、 LDRi、 RD_B、 RS_B、 S1、 S0、ALU_B、 LDAC、 LDDR、 WR、CS、 SW_B、LED_B、 LDFR。微地址微命令字段P1P2P3后继微地址0000001110

8、011001001111000000001000001010010110010010110100001000000011100011100100101100000000000001001000001001011111000000010100010110000110110011111000000000001000100011100100110100000000000010011110011001001111000000001100101010000100011011110000000100001011111001100100111100010011110011001000110001001111

9、000000000000110110000010011011110000010010001110111001100100111100000100110011111000010001000110000000000001001010001111000011110000000000010011010001100100101100000000000011110100011001001011000000000010001110000110010011110000000000(2)设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图 3-2 中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“ 1

10、”端,实现微地址的多路转移。由于微地址寄存器中的触发器异步置“ 1”端低电平有效,与 A4 A0对应的异步置“ 1”控制信号 SE5SE1的逻辑表达式为: ( A5的异步置“ 1”端 SE6实际未使用)SE6= FS· P(3) · T4SE5=(FC+FZ)· P(2) ·T4SE4=I7· P(1) · T4SE3=I6· P(1) · T4SE2=I5· P(1) · T4SE1=I4· P(1) · T41.2.7 嵌入式 CISC 模型计算机的顶层电路图图三1.2.

11、8 汇编语言源程序由给出的题目和设计的指令系统编写相应的汇编语言源程序。算法思想为:采用R1 寄存器存放从开关输入的任意一个整数,R3存放输入的最小负数,R0 和 R2 用于控制循环,用一个循环程序实现如下:MOV1 R0,OOH将 0 存入寄存器R0MOV1 R1,OAH将 10 存入寄存器R0MOV1 R2,FFH将 -1 存入寄存器R0L1:IN1 R3将输入的数存入R3INC R0R0中的数自加1CMP R0,R1比较 R0 和 R1 的大小JB L2若 R0 小于 R1,跳转到L2OUT R2输出 R2L2:CMP R2,R3比较 R2 和 R3 的大小JB L3若 R2 小于 R3

12、,跳转到L3JMP L1无条件跳转到L1MOV2 R3,R2将 R3 中的内容移到R2JMP L1无条件跳转到L11.2.9机器语言源程序根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。与 1.2.8中汇编语言源程序对应的机器语言源程序如下:助记符地址(十六进制)机器代码功能MOV1 R0,OOH001001000000H R00100000000MOV1 R1,OAH02100100010AH R10300001010MOV1 R2,FFH0410010010FFH R20511111111L1:IN1 R30610000011(SW) R3I

13、NC R00711010000(R0)+1 R0CMP R0,R10810100001(R0)-(R1)JB L20910110000若小于, L2 PC0A00001100OUT R20B11111000(R2) LEDL2: CMP R2,R30C10101011(R2)-(R3)JB L30D10110000L3PCOE00010001JMP L10F11100000L1 PC1000000110L3: MOV2 R3,R21111001110(R3) (R3)JMP L11211100000L1 P2.10 机器语言源程序的功能仿真波形图及结果分析图四结果分析

14、:输入的整数依次为81H,80H, 34H, 88H,99H, 23H, 12H, 37H, 65H,86H。结果输出: 80H。计算结果与事实相符,程序正确执行。1.2.11 故障现象和故障分析1在编译仿真过程中,发现指令寄存器IR 中的汇编指令执行步骤发生错误。由于顶层电路的设计并没有错误,所以分析应该是ROM里的指令跳转发生错误,后来发现: 在 ROM器件的 VHDL编程发生错误, 跳转指令JMP的跳转地址错误,导致了程序执行步骤的错误。2仿真时,输入几个十六进制整数补码,发现输出的执行结果并不是最小负数。后来根据观察仿真波形图中寄存器 R3 中存放的负数,可能是因为输入的整数时,并未经

15、过数据总线传送并存放于寄存器 R3 中。最后分析得出故障原因是:每次输入的整数,需要对应 IR 中的输入指令 81H,这样才能够成功输入整数,从而进行整数之间的比较大小。1.2.12 心得体会通过这次实验, 我基本上了解了 CISC 模型机各个部件的具体工作原理, 也对计算机组成原理有了进一步的理解掌握。在实验过程中,遇到了一些故障,主要还是对理论的认识不太深刻。在不断的发现问题和解决问题的过程中,我感觉这次实验不仅让我学到了许多理论知识,同时也让我明白了:不论做什么事,都要认认真真、踏踏实实的去做,终究会取得成功。1.2.13 软件清单1 ALU 单元ALU单元LIBRARY IEEE;US

16、E 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 0);S1,S0:IN STD_LOGIC;BCDOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CY,ZI,SF:OUT STD_LOGIC);END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB

17、,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINPROCESS(S1,S0)BEGINIF(S1='0' AND S0='0')THENAA<='0'&A;BB<='0'&B;TEMP<=AA+BB;BCDOUT<=TEMP(7 DOWNTO 0);CY<=TEMP(8);IF(TEMP="100000000" OR TEMP="000000000")THENZI<='1'ELSEZI<

18、='0'END IF;ELSIF(S1='0' AND S0='1')THENBCDOUT<=A-B;IF(A(7)='0' AND B(7)='0') OR (A(7)='1' AND B(7)='1')THENIF(A<B)THENCY<='1'ZI<='0'SF<='1'ELSIF(A=B)THENCY<='0'ZI<='1'SF<='0

19、9;ELSECY<='0'ZI<='0'SF<='0'END IF;ELSIF(A(7)='0') AND (B(7)='1')THENCY<='1'ZI<='0'SF<='0'ELSIF(A(7)='1') AND (B(7)='0')THENCY<='0'ZI<='0'SF<='1'END IF;ELSIF(S1='1

20、9; AND S0='0')THENAA<='0'&A;TEMP<=AA+1;BCDOUT<=TEMP(7 DOWNTO 0);CY<=TEMP(8);IF(TEMP="100000000")THENZI<='1'ELSEZI<='0'END IF;ELSEBCDOUT<="00000000"CY<='0'ZI<='0'END IF;END PROCESS;END A;2 状态条件寄存器单元状态条件

21、寄存器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LS74 ISPORT(LDFR:IN STD_LOGIC;CY,ZI:IN STD_LOGIC;FS,FC,FZ:OUT STD_LOGIC);END LS74;ARCHITECTURE A OF LS74 ISBEGINPROCESS(LDFR)BEGINIF(LDFR'EVENT AND LDFR='1')THENFC<=CY;FZ&

22、lt;=ZI;FS<=SF;END IF;END PROCESS;END A;3 暂存寄存器单元暂存寄存器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK:IN STD_LOGIC;O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END LS273;ARCHITECTURE A OF LS273 ISBEGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')

23、THENO<=D;END IF;END PROCESS;END A;43 选 1数据选择器3 选 1 数据选择器MUX3LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MUX3 ISPORT(ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0);SW_B,CS:IN STD_LOGIC;N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);EW:OUT STD_LOGIC_VECTO

24、R(7 DOWNTO 0);END MUX3;ARCHITECTURE A OF MUX3 ISBEGINPROCESS(SW_B,CS)BEGINIF(SW_B='0')THENEW<=ID;ELSIF(CS='0')THENEW<=N2;ELSEEW<=N1;END IF;END PROCESS;END A;55 选 1数据选择器5 选 1 数据选择器MUX5LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX5 ISPORT(C,D,E,F,G:IN STD_LOGIC;X1,X2,X3,

25、X4,X5:IN STD_LOGIC_VECTOR(7 DOWNTO 0);W:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX5;ARCHITECTURE A OF MUX5 ISSIGNAL SEL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSEL<=F&E&D&C;PROCESS(SEL)BEGINIF(SEL="1110") THENW<=X1;ELSIF(SEL="1101") THENW<=X2;ELSIF(SEL="1011&quo

26、t;) THENW<=X3;ELSIF(SEL="0111") THENW<=X4;ELSIF(SEL="01111") THENW<=X5;ELSENULL;END IF;END PROCESS;END A;6 程序计数器单元程序计数器单元PCLIBRARY 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:

27、IN STD_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);BEGINPROCESS(LDPC,CLR,LOAD)BEGINIF(CLR='0')THENQOUT<="00000000"ELSIF(LDPC'EVENT AND LDPC='1') THENIF(LOAD='0')THENQOUT<

28、;=D; -BUS->PCELSEQOUT<=QOUT+1; -PC+1END IF;END IF;END PROCESS;O<=QOUT;END A;7 地址寄存器单元地址寄存器单元8 主存储器单元主存储器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM16 ISPORT(ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS:IN STD_LOGIC;DOUT:OUT S

29、TD_LOGIC_VECTOR(7 DOWNTO 0);END ROM16;ARCHITECTURE A OF ROM16 ISBEGINDOUT<="10010000"WHEN ADDR="00000000" AND CS='0' ELSE-MOV1 R0, 00H "00000000"WHEN ADDR="00000001" AND CS='0' ELSE "10010001"WHEN ADDR="00000010" AND CS=&

30、#39;0' ELSE-MOV1 R1, 0AH "00001010"WHEN ADDR="00000011" AND CS='0' ELSE "10010010"WHEN ADDR="00000100" AND CS='0' ELSE-MOV1 R2, FFH "11111111"WHEN ADDR="00000101" AND CS='0' ELSE "10000011"WHEN ADDR=&qu

31、ot;00000110" AND CS='0' ELSE-IN1 R3 "11010000"WHEN ADDR="00000111" AND CS='0' ELSE-INC R0 "10100001"WHEN ADDR="00001000" AND CS='0' ELSE-CMP R0,R1 "10110000"WHEN ADDR="00001001" AND CS='0' ELSE-JB L2 &qu

32、ot;00001100"WHEN ADDR="00001010" AND CS='0' ELSE "11111000"WHEN ADDR="00001011" AND CS='0' ELSE-OUT R3 "10101110"WHEN ADDR="00001100" AND CS='0' ELSE-CMP R3,R2 "10110000"WHEN ADDR="00001101" AND CS=

33、9;0' ELSE-JB L3 "00010001"WHEN ADDR="00001110" AND CS='0' ELSE "11100000"WHEN ADDR="00001111" AND CS='0' ELSE-JB L1 "00000110"WHEN ADDR="00010000" AND CS='0' ELSE"11001110"WHEN ADDR="00010001"

34、 AND CS='0' ELSE-MOV2 R3,R2 "11100000"WHEN ADDR="00010010" AND CS='0' ELSE-JMP L1"00000110"WHEN ADDR="00010011" AND CS='0' ELSE"00000000"END A;9 指令寄存器单元指令寄存器单元10 时序产生器单元时序产生器单元LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.

35、STD_LOGIC_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);BEGINPROCESS(Q,CLR)BEGINIF(CLR='0')THENT2<='0'T3<='0'T4<='0'X<

36、;="00"ELSIF(Q'EVENT AND Q='1')THENX<=X+1;T2<=(NOT X(1) AND X(0);T3<=X(1)AND (NOT X(0);T4<=X(1)AND X(0);END IF;END PROCESS;END A;11 微程序控制器单元微程序控制器单元微程序控制器的内部结构11.1地址转移逻辑电路地址转移逻辑电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR ISPORT(I7,I6,I5,I4:IN STD_LOGIC;FZ,

37、FC,FS,T4,P1,P2,P3:IN STD_LOGIC;SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGINSE6<=NOT(NOT FS AND P3 AND T4);- Fs=0, 跳转 SE5<=NOT(NOT FC AND FZ )AND P2 AND T4);- FZ=0, 跳转 SE4<=NOT(I7 AND P1 AND T4);SE3<=NOT(I6 AND P1 AND T4);SE2<=NOT(I5 AND P1 AND T4);SE1

38、<=NOT(I4 AND P1 AND T4);END A;11.2微地址寄存器微地址寄存器微地址寄存器内部结构LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM ISPORT(SE:IN STD_LOGIC;T2:IN STD_LOGIC;D:IN STD_LOGIC;CLR:IN STD_LOGIC;UA:OUT STD_LOGIC);END MMM;ARCHITECTURE A OF MMM ISBEGINPROCESS(CLR,SE,T2)BEGINIF(CLR='0')THENUA<='0'

39、;ELSIF(SE='0')THENUA<='1'ELSIF(T2'EVENT AND T2='1')THENUA<=D;END IF;END PROCESS;END A;11.3微地址转换器微地址转换器LIBRARY 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 DOWNTO 0);END F1;ARCHITECTURE A OF F1 ISBEGI

40、ND(5)<=UA5;D(4)<=UA4;D(3)<=UA3;D(2)<=UA2;D(1)<=UA1;D(0)<=UA0;END A;11.4控制存储器控制存储器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROM ISPORT(ADDR:IN STD_LOGIC_VECTOR(5 DOWNTO 0);UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);D:OU

41、T STD_LOGIC_VECTOR(19 DOWNTO 0);END CONTROM;ARCHITECTURE A OF CONTROM ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(25 DOWNTO 0);BEGINPROCESS(ADDR)BEGINCASE ADDR ISWHEN"000000"=>DATAOUT<="11100110010011110000000010" -00(02)WHEN"000010"=>DATAOUT<="100101100100101101

42、00001000" -02(08)WHEN"000011"=>DATAOUT<="10001110010010110000000000" -03(00)WHEN"000100"=>DATAOUT<="10000010010111110000000101" -04(05)WHEN"000101"=>DATAOUT<="10000110110011111000000000" -05(00)-WHEN"000110"

43、=>DATAOUT<="10000010010111110000000111"-WHEN"000111"=>DATAOUT<="10001110000011110000000000"WHEN"001000"=>DATAOUT<="10001110010011010000000000" -08(00)WHEN"001001"=>DATAOUT<="11100110010011110000000011" -09(

44、03)WHEN"001010"=>DATAOUT<="10000100011011110000000100" -0A(04)WHEN"001011"=>DATAOUT<="11100110010011110001010101" -0B(15)WHEN"001100"=>DATAOUT<="10001100010011110000000000" -0C(00)CHANGEWHEN"001101"=>DATAOUT<="10000010011011110000010010" -0D(12)WHEN"001110"=>DATAOUT<="11100110010011110000010011" -0E(13)WHEN"001111"=>DATAOUT<="10000100010001100000000000" -0F(00)WHEN"010010"=>DATAOUT<="10001111000011110000000000"

温馨提示

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

评论

0/150

提交评论