8位CPU的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理
CPU 实验题目 8位的系统设计1115106046 号学
魏忠淋姓名
B 11电子班班级凌朝东指导老师
华侨大学电子工程系
8位CPU的系统设计
一、实验要求与任务
完成从指令系统到CPU的设计,编写测试程序,通过运行测试程序对CPU设计进行正确性评定。具体内容包括:典型指令系统(包括运算类、转移类、访存类)设计;CPU结构设计;规则文件与调试程序设计;CPU调试及测试程序运行。
1.1设计指标
能实现加减法、左右移位、逻辑运算、数据存取、有无条件跳转、内存访问等指令;
1.2设计要求
画出电路原理图、仿真波形图;
二、CPU的组成结构
三、元器件的选择
1.运算部件(ALU)
ALU181的程序代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ALU181 IS
PORT (
S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 );
A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
B : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
M : IN STD_LOGIC;
CN : IN STD_LOGIC;
CO,FZ: OUT STD_LOGIC );
END ALU181;
ARCHITECTURE behav OF ALU181 IS
SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);
BEGIN
B9 <= '0' & B ; A9 <= '0' & A ;
PROCESS(M,CN,A9,B9)
BEGIN
CASE S IS
WHEN ぜ?尰=> IF M='0' THEN F9<=A9 + CN ; ELSE F9<=NOT A9; END IF;
WHEN IF M='0' THEN F9<=(A9 or B9) + CN ; ELSE
F9<=NOT(A9 OR B9); END IF;
WHEN 0 => IF M='0' THEN F9<=(A9 or (NOT B9))+ CN ; ELSE
F9<=(NOT A9) AND B9; END IF;
WHEN 1 => IF M='0' THEN F9<= ; ELSE
F9<= END IF;
WHEN 0 => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF;
WHEN 1 => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF;
WHEN 0 => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF;
WHEN 1 => IF M='0' THEN F9<=(A9 or (NOT B9)) - CN ; ELSE F9<=A9 and (NOT B9); END IF;
WHEN @0 => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9<=(NOT A9)and B9; END IF;
WHEN @1 => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF;
WHEN A0 => IF M='0' THEN F9<=(A9 or(NOT B9))+(A9 AND B9)+CN ;
ELSE F9<=B9; END IF;
WHEN A1 => IF M='0' THEN F9<=(A9 AND B9)- CN ;
ELSE F9<=A9 AND B9; END IF;
WHEN H0 => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSE
F9<= END IF;
WHEN H1 => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSE
F9<=A9 OR (NOT B9); END IF;
WHEN I0 => IF M='0' THEN F9<=((A9 or (NOT B9)) +A9) + CN ; ELSE
F9<=A9 OR B9; END IF;
WHEN I1 => IF M='0' THEN F9<=A9 - CN ; ELSE
F9<=A9 ; END IF;
WHEN OTHERS => F9<=
END CASE;
IF(A9=B9) THEN FZ<='0';END IF;
END PROCESS;
F<= F9(7 DOWNTO 0) ; CO <= F9(8) ;
COUT<=
END behav;
ALU的原理图:
2.微控制器
实现信息传送要靠微命令的控制,因此在CPU 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传