8位CPU的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 中设置微命令产生部件,根据控制信息产生微命令序列,对指令功能所要求的数据传送进行控制,同时在数据传

相关文档
最新文档