当前位置:文档之家› 16位模型机的设计

16位模型机的设计

16位模型机的设计
16位模型机的设计

16位CPU的设计

要求:

此模型机的功能是将存储区的数据块复制到另一个存储区。

汇编代码如下:

START:LOADI R1,0010H ;源操作数地址送R1

LOADI R2,0030H ;目的操作数地址送R2

LOADI R6,002FH ;结束地址送R6

NEXT:LOAD R3,[R1] ;取数

STORE [R2],R3 ;存数

BRANCHGTI START ;如果R1>R6,则转向START

INC R1 ;修改源地址

INC R2 ;修改目的地址

BRANCHI NEXT ;转向NEXT

1.16位CPU的组成结构

2.指令系统的设计

一、指令格式

1)单字指令格式

2)双字指令格式

操作码指令功能

00001 LOAD 装载数据到寄存器

00010 STORE 将寄存器的数据存入到存储器

00100 LOADI 将立即数装入到寄存器

00101 BRANCHI 无条件转移到由立即数指定的地址

00110 BRANCHGTI 如果源寄存器容大于目的寄存器的容,则转移到由

立即数指定的地址

00111 INC 寄存器容加1指令

依据以上设计的指令系统,则完成数据块复制的程序如下:

地址机器码指令功能说明

0000H

0001H

2001H

0010H

LOADI R1,0010H 源操作数地址送R1

一、程序包:说明运算器的功能、移动寄存器的操作、比较器的比较类型和用于CPU控

制的状态类型。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

package cpu_lib is

subtype t_shift is unsigned (3 downto 0);

constant shftpass :unsigned(3 downto 0):="0000";

constant sftl :unsigned(3 downto 0):="0001";

constant sftr:unsigned(3 downto 0):="0010";

constant rotl :unsigned(3 downto 0):="0011";

constant rotr :unsigned(3 downto 0):="0100";

subtype t_alu is unsigned(3 downto 0);

constant alupass :unsigned(3 downto 0):="0000";

constant andOp :unsigned(3 downto 0):="0001";

constant orOp:unsigned(3 downto 0):="0010";

constant notOp :unsigned(3 downto 0):="0011";

constant xorOp :unsigned(3 downto 0):="0100";

constant plus :unsigned(3 downto 0):="0101";

constant alusub :unsigned(3 downto 0):="0110";

constant inc :unsigned(3 downto 0):="0111";

constant dec :unsigned(3 downto 0):="1000";

constant zero:unsigned(3 downto 0):="1001";

subtype t_comp is unsigned 2 downto 0);

constant eq :unsigned(2 downto 0):="000";

constant neq :unsigned(2 downto 0):="001";

constant gt:unsigned(2 downto 0):="";

constant gte :unsigned(2 downto 0):="011";

constant lt :unsigned(2 downto 0):="100";

constant lte :unsigned(2 downto 0):="101";

subtype t_reg is std_logic_vector(2 downto 0);

type state is (reset1,reset2,reset3,reset4,reset5,reset6,execute,nop,load,store,move, load2,load3,load4,store2,store3,store4,move2,move3,move4,

incPc,incPc2,incPc3,incPc4,incPc5,incPc6,loadPc,loadPc2,loadPc3,loadPc4,

bgtI2,bgtI3,bgtI4,bgtI5,bgtI6,bgtI7,bgtI8,bgtI9,bgtI10,braI2,braI3,braI4,braI5,braI6, loadI2,loadI3,loadI4,loadI5,loadI6,inc2,inc3,inc4);

subtype bit16 is std_logic_vector(15 downto 0);

end cpu_lib;

二、基本部件的设计

1)运算器的设计

功能

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use work.cpu_lib.all;

entity alu is

port(a,b:in bit16;sel:in t_alu;c:out bit16);

end alu;

architecture rt1 of alu is

begin

process(a,b,sel)

begin

case sel is

when alupass=> c<=a after 1ns;

when andop=> c<=a and b after 1ns;

when orop=> c<=a or b after 1ns;

when xorop=> c<=a xor b after 1ns;

when notop=> c<= not a after 1ns;

when plus=> c<=a + b after 1ns;

when alusub=> c<=a - b after 1ns;

when inc => c<=a +"0000000000000001" after 1ns; when dec => c<=a -"0000000000000001" after 1ns; when zero => c<="0000000000000000" after 1ns; when others => c<="0000000000000000" after 1ns; end case;

end process;

end rt1;

2)比较器

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

use work.cpu_lib.all;

entity comp is

port (a,b:in bit16;sel:in t_comp;compout:out bit); end comp;

architecture rt1 of comp is

begin

process(a,b,sel)

begin

case sel is

when eq => if a=b then compout <='1' after 1ns;

else compout<='0' after 1ns;

end if;

when neq => if a/=b then compout <='1' after 1ns;

else compout<='0' after 1ns;

end if;

when gt => if a>b then compout <='1' after 1ns;

else compout<='0' after 1ns;

end if;

when gte => if a>=b then compout <='1' after 1ns;

else compout<='0' after 1ns;

end if;

when lt => if a

else compout<='0' after 1ns;

end if;

when lte => if a<=b then compout <='1' after 1ns;

else compout<='0' after 1ns;

end if;

when others=> compout<='0' after 1ns;

end case;

end process;

end rt1;

3)移位寄存器

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use work.cpu_lib.all;

entity shift is

port(a:in bit16;sel:in t_shift;y:out bit16);

end shift;

architecture rt1 of shift is

begin

process(a,sel)

begin

case sel is

when shftpass => y<=a after 1 ns;

when sftl=> y<=a(14 downto 0) &'0' after 1 ns;

when sftr=> y<='0'& a(15 downto 1) after 1 ns;

when rotl=> y<=a(14 downto 0) & a(15) after 1 ns;

when rotr=> y<= a(0) & a(15 downto 1) after 1 ns;

when others=> y<="0000000000000000" after 1 ns; end case;

end process;

end rt1;

4)寄存器

library ieee;

use ieee.std_logic_1164.all;

use work.cpu_lib.all;

entity reg is

port(a:in bit16;clk:in std_logic;q:out bit16);

end reg;

architecture rt1 of reg is

begin

process

begin

wait until clk'event and clk='1';

q<=a after 1ns;

end process;

end rt1;

5)寄存器组

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use work.cpu_lib.all;

entity regarray is

port(data:in bit16;sel:in t_reg;en,clk:in std_logic;q:out bit16);

end regarray;

architecture rt1 of regarray is

type t_ram is array (0 to 7) of bit16;

signal temp_data:bit16;

begin

process(clk,sel)

variable ramdata:t_ram;

begin

if clk'event and clk='1' then ramdata(conv_integer(sel)):=data;

end if;

temp_data<=ramdata(conv_integer(sel)) after 1 ns;

end process;

process(en,temp_data)

begin

if en='1' then q<=temp_data after 1 ns;

else q<="ZZZZZZZZZZZZZZZZ" after 1 ns;

end if;

end process;

end rt1;

6)三态寄存器

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use work.cpu_lib.all;

entity trireg is

port(a:in bit16;en,clk:in std_logic;q:out bit16);

end trireg;

architecture rt1 of trireg is

signal val:bit16;

begin

process

begin

wait until clk'event and clk='1';

val<=a;

end process;

process(en,val)

begin

if en='1' then q<=val after 1 ns;

elsif en='0' then q<="ZZZZZZZZZZZZZZZZ" after 1 ns;

else q<="XXXXXXXXXXXXXXXX" after 1 ns;

end if;

end process;

end rt1;

7)控制器

采用状态机实现

library IEEE;

use IEEE.std_logic_1164.all;

use work.cpu_lib.all;

entity control is

port( clock,reset,compout:in std_logic; instrReg:in bit16;

progCntrWr,progCntrRd,addrRegWr,outRegWr,outRegRd:out std_logic;

shiftSel:out t_shift; aluSel:out t_alu; compSel:out t_comp;

opRegRd,opRegWr,instrWr,regRd,regWr,rw,vma:out std_logic;

regSel:out t_reg );

end control;

architecture rtl of control is

signal current_state, next_state : state;

begin

process( current_state, instrReg, compout)

begin

progCntrWr <= '0'; progCntrRd <= '0'; addrRegWr <= '0';

outRegWr <= '0';

outRegRd <= '0'; shiftSel <= shftpass; aluSel <= alupass;

compSel <= eq;

opRegRd <= '0'; opRegWr <= '0'; instrWr <= '0'; regSel <= "000";

regRd <= '0'; regWr <= '0'; rw <= '0'; vma <= '0';

case current_state is

when reset1=> aluSel<=zero after 1 ns; shiftSel<=shftpass; next_state<=reset2;

when reset2 => aluSel<=zero; shiftSel<=shftpass; outRegWr<='1'; next_state<=reset3;

when reset3 => outRegRd<='1'; next_state<=reset4;

when reset4 => outRegRd<='1'; progCntrWr<='1';addrRegWr<='1'; next_state<=reset5;

when reset5 => vma<='1'; rw <= '0'; next_state <= reset6;

when reset6 => vma<='1'; rw<='0';instrWr<='1'; next_state<=execute;

when execute => case instrReg(15 downto 11) is

when "00000" => next_state <= incPc ;-- nop

when "00001" => regSel<=instrReg(5 downto 3); regRd<='1';next_state<=load2;

when "00010" => regSel<=instrReg(2 downto 0); regRd<='1';next_state<=store2;-- store

when "00011" => regSel<=instrReg(5 downto 3); regRd<='1';

aluSel<=alupass;shiftSel<=shftpass; next_state<=move2;

when "00100" => progcntrRd<='1'; alusel<=inc; shiftsel<=shftpass;next_state<=loadI2;

when "00101" => progcntrRd<='1'; alusel<=inc; shiftsel<=shftpass;next_state<=braI2;

when "00110" => regSel<=instrReg(5 downto 3);

regRd<='1';next_state<=bgtI2;--BranchGTImm when "00111" => regSel<=instrReg(2 downto 0); regRd<='1'; alusel<=inc;

shiftsel<=shftpass; next_state<=inc2;

when others =>next_state <= incPc;

end case;

when load2 => regSel <= instrReg(5 downto 3); regRd <= '1';addrregWr <= '1';

next_state <= load3;

when load3 => vma <= '1'; rw <= '0'; next_state <= load4;

when load4 => vma <= '1'; rw <= '0'; regSel <= instrReg(2 downto 0);regWr <= '1';

next_state <= incPc;

when store2 => regSel <= instrReg(2 downto 0); regRd <= '1';addrregWr <= '1';

next_state <= store3;

when store3 => regSel <= instrReg(5 downto 3); regRd <= '1';next_state <= store4;

when store4 => regSel <= instrReg(5 downto 3); regRd <= '1'; rw <= '1'; next_state <= incPc;

when move2 => regSel <= instrReg(5 downto 3); regRd <= '1';aluSel <=alupass;

shiftsel <= shftpass; outRegWr <= '1'; next_state <= move3;

when move3 => outRegRd <= '1'; next_state <= move4;

when move4 =>outRegRd <= '1';regSel <= instrReg(2 downto 0); regWr <= '1';

next_state <= incPc;

when loadI2 => progcntrRd <= '1'; alusel <= inc; shiftsel <= shftpass;outregWr <= '1';

next_state <= loadI3;

when loadI3 => outregRd <= '1'; next_state <= loadI4;

when loadI4 => outregRd <= '1'; progcntrWr<='1'; addrregWr<='1';next_state<=loadI5;

when loadI5 => vma <= '1'; rw <= '0'; next_state <= loadI6;

when loadI6 => vma <= '1'; rw <= '0';regSel <= instrReg(2 downto 0);regWr <= '1';

next_state <= incPc;

when braI2 => progcntrRd <= '1'; alusel <= inc; shiftsel <= shftpass;outregWr <= '1';

next_state <= braI3;

when braI3 => outregRd <= '1'; next_state <= braI4;

when braI4 => outregRd<='1'; progcntrWr<='1'; addrregWr<='1';next_state<=braI5;

when braI5 => vma<='1'; rw<='0'; next_state <= braI6;

when braI6 => vma <= '1'; rw <= '0';progcntrWr <= '1'; next_state <= loadPc; when bgtI2 => regSel <= instrReg(5 downto 3); regRd <= '1';opRegWr <= '1';

next_state <= bgtI3;

when bgtI3 => opRegRd <= '1'; regSel <= instrReg(2 downto 0);regRd <= '1';

compsel <= gt; next_state <= bgtI4;

when bgtI4 => opRegRd <= '1' after 1 ns;regSel <= instrReg(2 downto 0); regRd <= '1';

compsel <= gt;

if compout = '1' then next_state <= bgtI5;

else next_state <= incPc;

end if;

when bgtI5 => progcntrRd<='1'; alusel<=inc; shiftSel<=shftpass;next_state<=bgtI6;

when bgtI6 => progcntrRd <= '1'; alusel <= inc; shiftsel <= shftpass;

outregWr <= '1'; next_state <= bgtI7;

when bgtI7 => outregRd <= '1'; next_state <= bgtI8;

when bgtI8 =>outregRd <= '1';progcntrWr <= '1'; addrregWr <= '1'; next_state <= bgtI9;

when bgtI9 => vma <= '1'; rw <= '0'; next_state <= bgtI10;

when bgtI10 => vma <= '1'; rw <= '0'; progcntrWr <= '1'; next_state <= loadPc; when inc2 => regSel <= instrReg(2 downto 0); regRd <= '1'; alusel <= inc;shiftsel <= shftpass; outregWr <= '1'; next_state <= inc3;

when inc3 => outregRd <= '1'; next_state <= inc4;

when inc4 => outregRd <= '1'; regsel <= instrReg(2 downto 0);regWr <= '1'; next_state <= incPc;

when loadPc => progcntrRd <= '1'; next_state <= loadPc2;

when loadPc2 => progcntrRd <= '1'; addrRegWr <= '1'; next_state <= loadPc3; when loadPc3 => vma <= '1'; rw <= '0'; next_state <= loadPc4;

when loadPc4 => vma <= '1'; rw <= '0'; instrWr <= '1'; next_state <= execute;

when incPc => progcntrRd<='1'; alusel<=inc; shiftsel<=shftpass;next_state<=incPc2;

when incPc2 => progcntrRd <= '1'; alusel <= inc; shiftsel <= shftpass;outregWr <= '1'; next_state <= incPc3;

when incPc3 => outregRd <= '1'; next_state <= incPc4;

when incPc4 => outregRd<='1'; progcntrWr<='1';addrregWr<='1'; next_state<=incPc5;

when incPc5 => vma <= '1'; rw <= '0'; next_state <= incPc6;

when incPc6 => vma <= '1'; rw <= '0'; instrWr <= '1'; next_state <= execute;

when others => next_state <= incPc;

end case;

end process;

process(clock, reset)

begin

if reset = '1' then current_state <= reset1 after 1 ns;

elsif clock'event and clock = '1'

then current_state <= next_state after 1 ns;

end if;

end process;

end rtl;

8)存储器的设计

LPM_RAM定制

首先,定制初始化数据文件,建立Memory Initialization File(.mif)文件,选择File→New 命令,并在New窗口选择Other file选项,再选择Memory Initialization File选项。容如下:

完成后,保存文件。

之后,定制LPM_RAM。设计步骤如下:

选择Tools→MegaWizard Plug-In Manager命令,打开MegaWizard Plug-In Manager 对话框,选中Create a new custom megafunction variation,单击Next,按提示选择RAM 的控制线、地址线、数据线。一步步完成。

4.顶层原理图的设计

8位模型机课程设计

xxxxx 课程设计报告学院机电信息学院 课程课程设计 专业计算机科学与技术班级xxxxx 姓名xxxxxxx x 学号xxxxxxxxxx 指导教师xxxxxx 日期201x年x月x日

目录 1.概述 0 2.总体设计 0 3.详细设计 (2) 3.1 运算器 (2) 3.2 存储器 (3) 3.3 微控制器 (5) 3.4 基本模型机设计与实现 (8) 4. 总结 (10) 参考文献 (11)

8位模型机的设计与仿真 1.概述 在掌握部件单元电路设计与仿真的基础上,进一步将其组成系统构造一台8位模型机。字长是8位纯整型,包含基本的五大件:运算器、存储器、控制器、I/O设备。它的结构框图如下图1-1所示. 这基本的五大件通过数据总线连接,实现数据的处理和控制。 部件实验过程中,各部件单元的控制信号是人为模拟产生的,而综合实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 2.总体设计 模型机主要由运算器、控制器、存储器、数据总线、输入输出和时序产生器组成,模型机的结构图如图2-1所示。 图2-1 模型机结构图 在图2-1中T1、T2、T3和T4等控制信号都是由时序产生器生产,时序产生器由时序电路实现如图2-2所示,时序产生器一个周期中产生四个脉冲信号T1~T4,这四个脉冲信号用于控制组件的执行顺序,组件在这些信号的控制下有序的执行,一个周期中完成一条微指令的执行。 图2-2 时序产生器

16位模型机的设计

16位CPU的设计 要求: 此模型机的功能是将存储区的数据块复制到另一个存储区。 汇编代码如下: START:LOADI R1,0010H ;源操作数地址送R1 LOADI R2,0030H ;目的操作数地址送R2 LOADI R6,002FH ;结束地址送R6 NEXT:LOAD R3,[R1] ;取数 STORE [R2],R3 ;存数 BRANCHGTI START ;如果R1>R6,则转向START INC R1 ;修改源地址 INC R2 ;修改目的地址 BRANCHI NEXT ;转向NEXT 1.16位CPU的组成结构

2.指令系统的设计 一、指令格式 1)单字指令格式 2)双字指令格式 操作码指令功能 00001 LOAD 装载数据到寄存器 00010 STORE 将寄存器的数据存入到存储器 00100 LOADI 将立即数装入到寄存器 00101 BRANCHI 无条件转移到由立即数指定的地址 00110 BRANCHGTI 如果源寄存器容大于目的寄存器的容,则转移到由 立即数指定的地址 00111 INC 寄存器容加1指令 依据以上设计的指令系统,则完成数据块复制的程序如下: 地址机器码指令功能说明 0000H 0001H 2001H 0010H LOADI R1,0010H 源操作数地址送R1

一、程序包:说明运算器的功能、移动寄存器的操作、比较器的比较类型和用于CPU控 制的状态类型。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; package cpu_lib is subtype t_shift is unsigned (3 downto 0); constant shftpass :unsigned(3 downto 0):="0000"; constant sftl :unsigned(3 downto 0):="0001"; constant sftr:unsigned(3 downto 0):="0010"; constant rotl :unsigned(3 downto 0):="0011"; constant rotr :unsigned(3 downto 0):="0100"; subtype t_alu is unsigned(3 downto 0); constant alupass :unsigned(3 downto 0):="0000";

基本模型机的设计与实现课程设计报告

基本模型机的设计与实现课程设计报告 https://www.doczj.com/doc/0b9629483.html,/maria87328/archive/2008/01/13/2041130.aspx 一、实验基本任务 1、由基本单元电路构成一台基本模型机。 2、设计五条机器指令,并编写相应的微程序。 3、调试指令和模型机使其在微程序的控制下自动产生各部件单元的控制信号正常工作。 二、设计方案 1、硬件设计 (1)设计微程序控制电路 微程序控制器的组成:控制存储器:EPROM2816*3,8D触发器74ls273*2,4D触发器74ls74*3;微指令寄存器格式:18位微指令,6位微地址。 (2)设计时钟信号源和时序控制电路 时钟信号源的组成:时基电路555,可触发单稳态多谐振荡器74ls237*2,输出频率为330-580Hz的方波信号。 时序控制电路:4D触发器74ls175*1组成移位寄存器电路。 (3)设计主存储器 主存电路的组成:6264存储器(8K*8位)*3,地址寄存器:74ls273*1,三态门:74ls245*1。 2、微控制设计 (1)实现存储器读操作; 拨动总清开关后,置控制开关SWC、SW A为“0 0”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。 (2)实现存储器写操作; 拨动总清开关后,置控制开关SWC、SW A为“0 1”时,按要求连线后,再按动“启动运行”开关,可对主存储器RAM 连续手动写入。 (3)实现程序运行操作。 拨动总清开关后,置控制开关SWC、SW A为“1 1”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。

嵌入式的8位CISC模型机设计报告

韶关学院 课程设计说明书(论文) 课程设计题目:嵌入式的8位CISC模型机设计 学生姓名: 学号: 院系:计算机科学学院 专业班级: 指导教师姓名及职称: 起止时间:2011 年10 月——2011 年11 月 课程设计评分:

目录 一、实验目的 二、设计题目及要求 三、设计方案: 1.模型机的总体设计 2. 微程序控制器的组成原理框图 3. 模型机机器指令格式和指令系统 4. 时序产生器的设计原理及时序波形图 5. 微程序流程图 6. 微程序控制器单元 7. 汇编语言源程序 8. 机器语言的源程序 四、设计的过程与步骤 五.模型机系统顶层电路图 六.模型机的时序仿真波形图七.设计总结 八.参考文献

韶关学院课程设计任务书 学生姓名专业班级09科学与技术2班学号 指导教师姓名及职称设计地点信息418 设计题目嵌入式的8位CISC 本课程设计课题任务的内容和要求: 设计一台嵌入式的8位CISC模型计算机,并运行能完成一定功能的机器语言程序进行验证,程序功能可以是以下两个之一: ?求出1到任意一个整数N之间的所有奇数之和并输出显示,和为单字长。 说明:N从开关输入,和从数码管输出,然后输出显示停止。 对本课程设计工作任务及工作量的要求: 课程设计完成工作任务内容如下: (1)完成系统的总体设计,画出模型机数据通路框图。 (2)设计微程序控制器(CISC模型计算机)的逻辑结构图。 (3)设计机器指令格式和指令系统。 (4)设计时序产生器电路。 (5)设计所有机器指令的微程序流程图(CISC模型计算机) (6)设计操作控制单元。 ●设计的是CISC模型计算机,设计微指令格式(建议采用全水平型微指令),并根据微程序流程图和微指令格 式设计微指令代码表。根据微程序控制器的逻辑结构框图、微指令格式和微指令代码设计微程序控制器,包 括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器。 (7)设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件——图形描述文件)对模型机中的各个部件进行编程,并使之成为一个的整体,即形成顶层电路或顶层文件。 (8)由给出的题目和设计的指令系统编写相应汇编语言源程序(验证程序)。 (9)根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机的ROM中。(10)使用EDA软件MAX+plusII进行功能仿真,要保证其结果满足题目的要求(其中要利用MAX+plusII提供的波形编辑器,选择合适的输入/输出信号及中间信号进行调试)。 (11)选用给定的FPGA芯片——EP1K30TQC144进行器件编程和时序仿真,并将顶层电路或顶层文件下载到专用的EDA实验平台——GW48 EDA教学实验系统后进行操作演示。 课程设计应完成的图纸: (1)顶层设计的电路原理图; (2)元件(模块)符号图; (3)仿真波形图。 进度安排: 时间为18学时,分散在9周进行,每周2学时。 1、第1--4周:EDA技术基础知识教学讲座; 2、第5—8周:MAX+PLUS基础实验,确定课程设计题目,进行资料收集和学习、设计方案确定、电路设计、 程序设计与计算机仿真; 3、第9周:编写课程设计实验报告。 主要参考文献: [1] ]陈智勇等编. 《计算机原理课程设计》. 西安电子科技大学. 2006年6月 [2] 潘松黄继业编. 《EDA技术实用教程》(第二版). 科学出版社 2005年2月 [3] 罗克露等编. 《计算机组成原理》. 电子工业出版社 2004年8月 [4] 江国强编. 《EDA技术习题与实验》. 电子工业出版社 2005年1月 [5] 彭玄璋编《基于EDA技术的组成原理课程设计实验指导书》(自编教材) 2010年3月

计算机硬件课程设计--简单模型机设计

计算机硬件课程设计--简单模型机设计

计算机硬件综合课程设计报告

简单模型机设计 一、设计要求 硬件:TDN-CM+计算机组成原理实验系统一台,PC机一台,排线若干,串口线一根。 软件:CMP软件 二、设计目的 1.通过对一个简单计算机的设计,对计算机的基 本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。 2.通过这次课程设计,建立整机的概念,对程序 进行编辑,校验,锻炼理论联系实际的能力。 3.通过本次课程设计熟悉和训练设计思路与实 现方法。 4.通过本次课程设计锻炼团队合作的能力和团 队问题的解决。

三、设计电路及连线 设计电路及连线实验图如下图1-1所示。 图1-1 简单模型机连线图 四、设计说明 本次课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器

来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 本次课程设计采用五条机器指令:IN (输入)、ADD (二进制加法)、STA (存数)、OUT (输出)、JMP (无条件转移),其指令格式如下(前4位为操作码): 助记符 机器指令码 说 明 微程序入口地址 IN 0000 0000 “INPUT DEVICE ”中 10 的开关状态→R0 0001 0000 ×××× ×××× R0+[addr]→R0 11 0010 0000 ×××× ×××× R0→[addr] 12 0011 0000 ×××× ×××× [addr]→BUS 13 0100 0000 ×××× ×××× addr →PC 14 ADD addr STA

计算机组成—复杂模型机方案

课程设计:计算机组成原理 题目名称:复杂模型机的设计 姓名: 学号:1108020184 1108020185 班级:网络工程1101班 完成时间:2018年1月6日1设计目的:建立清晰完善的整机概念; 学习设计与调试计算机的基本方法;培养严谨的科研作风和独立工作能力。 2设计任务: 综合运用所学的计算机原理知识,按给定的指令系统分和数据格式,在所提供的设备范围内,设计一台字长八位的由微程序控制器来控制的模拟计算机。设计并实现较为完整的八位模型计算机。 设计微程序控制器的逻辑原理电路图;

设计微地址转移的逻辑电路图; 设计微程序流程图; 设计说明书。 3设计指标: 字长八位; 时钟源MF=QB=1us 内存容量不得小于2 8; 指令系统不得小于十四条。要求算术逻辑指令七条、访问内存和控制指令四条、输入输出指令两条、其他指令一条。 4设计说明: 4.1数据格式 模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下: 其中,第7位为符号位,数值的表示范围是:-1乞X <1 模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。 [1]算术逻辑指令 设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址, 其格式如下: 其中,OP-COD为操作码,Rs为源寄存器,Rd为目的寄存器,并规定: [2]访存指令及转移指令 模型机设计两条访问指令,即存数(STA>、取数(LDA>,两条转移指令, 即无条件转移(JMP>结果为零或有进位转移指令(BZC>。其格式如下:

D 其中,OP-CODE^操作码,Rd为目的寄存器,D为位移量(正负均可>, M为寻址方式,其定义如下: 本模型机规定变址寄存器RI指定为寄存器R2 [3]I/O 指令 输入v IN)和输出<OUT)指令采用单字节指令,其格式如下: 其中,addr=01时,表示选中“输入单元”中的开关组作为输入设备, addr=10时,表示选中“输出单元”中的数码管作为输出设备。 [4]停机指令 这类指令只有1条,即停机指令HALT用于实现停机操作,指令格式如 4. 2系统指令 本模型机共有1 4条基本指令。其中,算术逻辑指令6条,移位指令2条,访问内存指令和程序控制指令3条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。

模型机实验报告

哈尔滨工程大学 实验报告 实验名称:复杂模型机设计与实现 班级: 学号: 姓名: 实验时间: 成绩: 指导教师:程旭辉附小晶 实验室名称:计算机专业实验中心 一、实验名称:复杂模型机的设计与实现 二、实验目的:

1.综合运用所学计算机原理知识,设计并实现较为完整的计算机。 2.设计指令系统。 3.编写简单程序,在所设计的复杂模型计算机上调试运行。 三、实验设备: GW-48CPP系列计算机组成原理实验系统。 四、实验原理: 1.数据格式 8位,其格式如下: 其中第7位为符号位,数值表示范围是:-1≤1。 2.指令格式 所设计的指令分为四大类共十六条,其中包括算术逻辑指令、I/O指令、访问、转移指令和停机指令。 (1)算术逻辑指令 设计9条算术逻辑指令并用单字节表示,采用寄存器直接寻址方式,其格式如下: 其中, (2)访问指令及转移指令 访问指令有2条,即存数(STA)、取数(LDA);2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC) 其中,OP-CODE指令)。D为位移量(正负均可),M为寻址模式,其定义如下: 在本模型机中规定变址寄存器RI为寄存器R2。 (3)I/O指令 输入(IN)和输出( 其中,addr=01时,选中“OUTPUT DEVICE”中的LCD

点阵液晶屏作为输出设备。 (4)停机指令 指令格式如下: 3.指令系统 共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入/输出指令2条,其

本模型机的数据通路框图如图7-1。根据机器指令系统要求,设计微程序流程图及确定微地址,如图7-2。 图7-2 微程序流程图 五、实验内容: 按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。 微代码定义如表7-1所示。

基本模型机设计及实现

基本模型机设计及实现文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

课程设计任务书课程名称:计算机组成原理 设计题目:(共3个课题,最多3人一组,每组任选一题) 1.基本模型机设计与实现; 2.带移位运算的模型机的设计与实现; 3.复杂模型机的设计与实现。 已知技术参数和设计要求: 内容和技术参数: 利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验系统,微机,虚拟软件。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。 1.基本模型机设计与实现 指令系统至少要包括六条不同类型指令:如一条输入指令,一条减法指令,一条加法指令,一条存数指令,一条输出指令和一条无条件转移指令。 2. 带移位运算的模型机的设计与实现 在基本模型机的基础上增加左、右循环和左、右带进位循环四条指令 3. 设计不少于10条指令的指令系统。其中,包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。重点是要包括直接、间接、变址和相对寻址等多种寻址方式。 以上数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

具体要求: 1、确定设计目标 确定所设计计算机的功能和用途。 2、确定指令系统 确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。 3、总体结构与数据通路 总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。 综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。 4、设计指令执行流程 数据通路确定后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。 5、确定微程序地址 根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。 6、微指令代码化 根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。

实验六 复杂模型机的设计与实现

实验五 复杂模型机的设计与实现 一、实验目的 综合运用所学计算机原理知识,设计并实现较为完整的计算机。 二、实验设备 Dais-CMX16+计算机组成原理教学实验系统一台,实验用导线若干。 三、数据格式及指令系统 1. 数据格式 8 其中第7位为符号位,数值表示范围是:≤<。2. 指令格式 模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O 指令、访问及转移指令和停机指令。 ⑴ 算术逻辑指令 设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下: 其中,OP-CODE 为操作码,Rs 为源寄存器, Rd 为目的寄存器,并规定: 其中9条算术逻辑指令的名称、功能和具体格式见表5-1。 ⑵ 访问指令及转移指令 模型机设计2条访问指令,即存数(STA )、取数(LDA ),2条转移指令,即无条件转移(JMP )、 结果为零或有进 位转移指令(BZC ),指令格式为: 其中“0 0 M ”为源码段,2OP-CODE 为目的码段(LDA 、STA 指令使用)。D 为十六位地址段(低八在前,高八随后),M ⑶ I/O 指令

输入(IN)和输出(OUT ⑷停机指令 指令格式如下: HALT指令,用于实现停机操作。 3.指令系统 本模型机共有16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。下表列出了各条指令的格式、汇编符号、指令功能。 图5-1复杂模型机微程序流程图 按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码,并将二进制代码表转换成十六进制格式文件。 源编码目的编码

实验七基本模型机的设计与实现

实验七 基本模型机的设计与实现 一、实验目的 ⒈在掌握部件单元电路实验的基础上,进一步将其组成系统地构造 一台基本模型计算机。 ⒉为其定义5条机器指令,并编写相应的微程序,上机调试掌握整机 概念。 二、实验设备 Dais-CMH+/CMH 计算器组成原理教学实验系统一台,实验用扁平 线、导线若干。 三、实验原理 部件实验过程中,各部件单元的控制信号是以人为模拟产生为主,而 本次实验将能在微程序控制下自动产生各部件单元的控制信号,实现特 定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完 成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全 部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 本实验采用五条机器指令:IN(输入)、ADD(二进制加法)、 STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下 (前三位为操作码): ==========================================================助记符 机器指令码 说 明 -------------------------------------------------- ------------- IN R0,SW 0010 0000 数据开关状态 →R0 ADD R0,[addr] 0100 0000 XXXXXXXX R0+[addr]→R0 STA [addr],R0 0110 0000 XXXXXXXX R0→[addr] OUT [addr],LED 1000 0000 XXXXXXXX [addr]→LED JMP addr 1010 0000 XXXXXXXX addr→PC ==========================================================其中IN为单字节(8位),其余为双字节指令,XXXXXXXX为addr对 应的二进制地址码。 根据以上要求设计数据通路框图,如图7-10-1所示。系统涉及到的 微程序流程见图7-7-3,当拟定“取指”微指令时,该微指令的判别测试 字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指 令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前3位 (IR7~IR5)作为测试条件,出现8路分支,占用8个固定微地址单元。 当全部微程序设计完毕后,应将每条微指令代码化,表7-10-1即为 将图7-10-2的微程序流程图按微指令格式转化而成的“二进制微代码

计算机组成原理-简单模型机设计课设

目录 摘要 (2) 前言 (3) 正文 (4) 一、设计目的和设计原理 (4) 1.1设计目的 (4) 1.2设计原理 (4) 二、总体设计 (7) 三、详细设计 (8) 3.1运算器的物理结构 (8) 3.2存储器系统的组成与说明 (11) 3.3指令系统的设计与指令分析 (12) 3.4微程序控制器的逻辑结构及功能 (14) 3.5微程序的设计与实现 (18) 四、系统调试 (27) 总结 (29) 参考文献 (30) 致谢 (31)

摘要 根据设计任务书要求,本设计要实现完成一个简单计算机的设计,主要设计部分有运算器,存储器,控制器以及微指令的设计。 其中运算器由运算芯片和寄存器来完成,存储器由总线和寄存器构成,使用硬布线的方式实现控制器,从而完成设计要求。 : 关键词:基本模型机的设计;运算器;存储器;控制器;

前言 计算机组成原理是计算机科学技术学科的一门核心专业基础课程。从课程的地位来说,它在先导课程和后续课程之间起着承上启下的作用。 计算机组成原理讲授单处理机系统的组成和工作原理,课程教学具有知识面广,内容多,难度大,更新快等特点。此次课程设计目的就是为了加深对计算机的时间和空间概念的理解, 增强对计算机硬件和计算机指令系统的更进一步了解。 计算机组成原理课程设计目的是为加深对计算机工作原理的理解以及计算机软硬件之间的交互关系。不仅能加深对计算机的时间和空间的关系的理解,更能增加如何实现计算机软件对硬件操作,让计算机有条不紊的工作。

正文 一、设计目的和设计原理 1.1设计目的 融会贯通计算机组成原理课程中各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识,建立清晰的整机概念。对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。 在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。 1.2设计原理 (1)运算器 设计中所用的运算器数据通路,其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,测试时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。 算术逻辑运算功能发生器 74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,测试时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、

8位模型计算机的设计

石家庄经济学院 华信学院 计算机组成原理课程设计报告 题目 8位模型计算机的设计 姓名 学号 班号 4064170801 指导老师关文革尹立洁赵洋 成绩 2009年1月 目录 1. 课程设计目的 52 2. 开发工具选择 52 3. 方案选择 52 4.指令系统设计 52 5. 模型机框图设计 52 6. 指令流程图 52 7. 指令操作时间表(组合逻辑控制器)或者微指令格式(微程序控制器)设计 52 8. 微操作信号综合与优化(组合逻辑控制器)或者微程序(微程序控制器)设计 52 9. VHDL实现 52 10. 调试仿真 52 11. 课程设计回顾总结 52 参考文献 52 附录 52 一、课程设计目的 1、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。

2、通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。 二、开发工具选择 以TEC-CA教学实验系统为平台,采用硬件描述语言 VHDL为设计工具,应用QUARTUSⅡ5.1环境进行大规模集成电路的功能设计仿真。 三、方案选择 应用微程序控制器来实现8位模型计算机的设计。 四、指令系统设计 所要设计的微程序控制器是由七条指令来完成的,即:load,sta,add,sub,and1,nop,jmp。实现功能分别如下:load指令是公操作,实现取数据的功能;sta指令实现存操作;add指令实现加法操作;sub指令实现减法操作;and指令实现与操作; nop指令实现空操作;jmp指令实现无条件跳转操作。 其中add,sub,and1,属于双操作数指令,其指令格式如下图: 目的 源 其中jmp属于转移指令,其指令格式如下图: 转移条件 转移地址 五、模型机框图设计 I/O 六、指令流程图 Addr_bus load_MAR CS R_NW 3 OP

计算机组成原理课程设计基本模型机设计与实现

课程设计(大作业)报告课程名称:计算机组成原理 设计题目:基本模型机设计与实现 院系:信息技术学院 班级:计算机科学与技术3班 设计者: 学号: 指导教师: 设计时间: 昆明学院 信息技术学院 课程设计(大作业)任务书

目录 课程设计(大作业)报告 一、课程设计的教学目的 1. 在“微程序控制器的组成与微程序设计实验”的基础上,进一步将其中各单元组成系统构造一台模型计算机。 2. 本实验定义五条机器指令,编写相应的微程序,并上机调试运行,形成整机概念。 课程设计内容设计一台基本模型机,并实现相关的指令。 二、课程设计任务和基本要求 本课程设计以TDN-CM++计算机组成原理教学实验系统为平台设计完成。 1.按给定的数据格式和指令系统,设计一个微程序控制器。 2.设计给定机器指令系统以及微程序流程图,按微指令格式写出微 程序的为指令代码。

3.连接逻辑电路完成启动,测试,编程,测试,效验和运行,并观测运 行过程及结果。 4.将微程序控制器模块与运算器模块,存储器模块联机,组成一台 模型计算机。 5.用微程序控制器控制模型机的数据通路。 6.通过在模型机上运行由机器指令组成的简单程序,掌握机器指令 与微指令的关系,建立计算机整机的概念,掌握计算机的控制机制。 7.按指定的应用项目进行汇编指令格式及功能设计,并设计相应的 机器指令代码,按照模型机数据通路设计实现机器指令功能的微程序.在 PC机上编辑机器指令和微程序,装载代码到TDN-CM++实验系统并运行,实现应用要求。 三、设计任务及分析 (1)设计任务: 从输入设备读取数据X并将其存入以A为间接地址的 内存单元,将X与R 0. 寄存器中的内容Y执行X ⊕,结果送到以B为直接地址的内存单元保存。 (2)分析: A:给R 寄存器直接置入01H. B:从数据开关给间接地址为0CH的内存单元置数,(03H). C:给R 0中的内容取反,结果存在R 中. D:将间接地址0CH中直接地址0EH中的内容(03H)放入DR1中, R 中的内容 放入DR2中,将DR1和DR2种的数进行异或运算,结果放在R 中. E:将R 中的内容存在直接地址为0DH的内存单元中. 四、设计原理 模型机在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。 本实验采用五条机器指令: IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):

基本模型机设计与实现.

课程设计 课程名称:计算机组成原理 设计题目:基本模型机设计与实现 学院:信息工程与自动化 专业:计算机科学与技术 年级: 学生姓名: 指导教师:王海瑞 日期: 教务处制

课程设计任务书 信息工程与自动化学院计算机专业年级 学生姓名: 课程设计题目:基本模型机设计与实现 课程设计主要内容: 利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微 程序。将所设计的微程序在计算机组成原理教学实验系统环境中进行测试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计报告。 首先要确定所设计计算机的功能和用途,设计中根据功能和用途确定指令系统, 数据的表示格式,位数,指令的编码,类型,需要设计那些指令和寻址方式。确定相 对应指令所包含的微操作以及总体结构设计之间的数据通路结构,在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微指令。 设计指导教师(签字): 教学基层组织负责人(签字): 年月日

目录 一、基本模型机的设计,,,,,,,,,,,,,,,, 4 1、程序设计目的,,,,,,,,,,,,,,,, 4 2、程序设计任务和基本要求,,,,,,,,,,,, 4 3、实验原理,,,,,,,,,,,,,,,,,,,,,,, 5 二、实验内容及步骤,,,,,,,,,,,,,,,8 1.实验内容,,,,,,,,,,,,,,,,,,,8 2.实验步骤,,,,,,,,,,,,,,,,,10 3.实验情况及记录,,,,,,,,,,,,,,,14 三、总结体会,,,,,,,,,,,,,,,,,,15 四、参考文献,,,,,,,,,,,,,,,,,,16 一、基本模型机的设计 1、程序设计目的 (1)掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握信息流和控制信息流的流动过程,

计算机组成原理-简单模型机设计课设

兰州理工大学技术工程学院 计算机组成原理课程设计任务书(09级)题目:模型机设计—1 学生姓名:学号: 班级:计算机科学与技术(2)班指导老师: 一、计算机组成原理课程设计题目简介 该设计要求学成根据计算机组成原理课程所学知识,设计、开发一套简单的模型就算计。 通过对一个简单计算机的设计,以达到对计算机的基本组成、部件的功能与设计、微程序控制器的设计,微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。通过模型机的设计和调试,连贯运用计算机组成原理课程学到的知识,建立计算机整体概念,加深计算机时间与空间概念的理解。 二、计算机组成原理课程设计任务 1、查阅文献资料,一般在5篇以上; 2、以教学实验用模型机为背景,通过调研、分析现有的模型机,建立带有带8位自增、自减指令的整机模型; 3、完成系统编程与测试工作; 4、撰写设计说明书; 5、做好答辩工作。 三、计算机组成原理课设设计的主要内容、功能及指标 1、根据任务要求设计整体系统的方案。 2、存储系统:使用模型机的存储模块,说明存储器的输入输出时序,模块连接方式等。 3、运算器:使用模型机的器件,组成带有片间串行进位8位移位运算功能的运算器。 4、微程序控制器模块:使用教学机的系统,设计微程序控制器。 5、设计模型机指令系统:(含设计微指令格式,微程序流程图,每条指令所对

应的微程序等)。指令系统包括下列指令:IN、OUT、STA、LDA、JMP、BZC、CLR、MOV、 ADD、SUB、ADC、ADT、INC、DEC、SBT、SBC 6、了解并说明教学模型机的输入输出模块。 7、在自己设计的指令系统基础上,编制一个汇编语言小程序并进行调试通过。 8、整机设计分模块进行,说明模块中数据和控制信号的来源、去向、功能、时序、以及模块间数据和控制信号的来源、去向、功能、时序等。 四、完成课程设计报告 1、设计题目、设计任务、实验设备与器材; 2、整体设计方案,设计原理与内容; 3、画出模型机数据通路图; 4、画出设计的模型机微程序流程图和微程序; 5、说明指令系统的格式; 6、说明模块中数据和控制信号的来源、去向、功能、时序、以及模块间数据和控制信号的来源、去向、功能、时序等。 7、调试情况,调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论和分析;改进设想;经验和体会等; [1]计算机组成原理课程设计提交的成果 1.设计说明书一份,内容包括: 1)中文摘要100字;关键词3-5个; 2)前言; 3) 设计的目的及设计原理; 4)模型机的逻辑结构及框架; 5) 运算器的物理结构; 6)存储器系统的组成与说明; 7)指令系统的设计与指令格式分析; 8) 微程序控制器的逻辑结构及功能; 9)微程序的设计与实现(含微指令格式、后续地址产生方法以及微程序入口地址的形式)

八位模型机设计

八位模型机设计 | | 实验名称八位模型机设计 课程名称计算机组成原理程序设计 | | 专业班级:计算计科学与技术 学生姓名: 实验日期:2015年5月 验证性、综合性实验报告应含的主要内容: 一、实验目的及要求 二、所用仪器、设备

三、实验原理 四、实验方法与步骤 五、实验结果与数据处理 六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见) 七、所附实验输出的结果或数据 设计性实验报告应含的主要内容: 一、设计要求 二、选择的方案 三、所用仪器、设备 四、实验方法与步骤 五、实验结果与数据处理 六、结论(依据“设计要求”) 七、所附实验输出的结果或数据

目录 一、摘要....................................................................................................... 错误!未定义书签。 二、前言....................................................................................................... 错误!未定义书签。 三、设计目的、任务与内容....................................................................... 错误!未定义书签。 3.1设计目的.......................................................................................... 错误!未定义书签。根据计算机组成原理课程所学知识,设计一个8位的模型计算机。 .. 错误!未定义书签。 3.2设计任务.......................................................................................... 错误!未定义书签。 3.3设计内容.......................................................................................... 错误!未定义书签。 四、八位模型机整体设计........................................................................... 错误!未定义书签。 4.1总体结构.......................................................................................... 错误!未定义书签。 4.2指令系统 (9) 4.3运算器 (10) 4.4存储器 (11) 4.5控制器 (12) 4.6指令流程图和操作时间表 (15) 4.7微指令码 (15) 五、实验感想与讨论 (21) 六、参考文献 (22)

模型机课程设计

哈尔滨理工大学 软件学院 课程设计报告 课程片上计算机系统 题目 CPU模型机设计 班级集成12-1班 专业集成电路设计与集成系统学生张铭 学号 1214020130 指导教师崔林海 2014年07 月02日

索引: 1.课程设计的目的及要求 (3) 2.处理器的设计思想和设计内容 (3) 3.设计处理器的结构和实现方法 (3) 4.模型机的指令系统 (4) 5.处理器的状态跳转操作过程 (4) 6. CPU的VHDL代码 (7) 7. 模型机在Quartus II环境下的应用 (32) 8. 仿真波形 (33) 9. 课程设计的总结 (35)

一.课程设计的目的及要求: 1.目的:了解Quartus II软件的应用,学习Quartus II环境下设计CPU的基本过程;掌握CPU设计代码的含义以及CPU的工作原理;了解CPU与内存RAM 间的连接数据的传输过程;学习在Quartus II环境下建立模型机的具体过程。融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。 2.要求:以《计算机组成与设计》书中123页的简化模型为基础,更改其指令系统,形成设计者的CPU,在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达到设计构想。 二.处理器的设计思想和设计内容: 处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括6个状态。 关于CPU: 操作码5位,一共设计20条指令,主要包括空操作指令、中断指令、加法指令、减法指令、三种逻辑运算指令、循环移位操作指令,数据传输指令,转移类指令,特权指令,取反,取绝对值等等。 关于RAM: 地址线设置成16bits,主存空间为64words。 书中原CPU的主要修改: (1)模型机CPU指令集中的逻辑左移与逻辑右移改成逻辑循环右移与逻辑循环左移。 (2)模型机CPU指令集中的or改成not。 (3)模型机CPU指令的执行流程及状态跳转。 三.设计处理器的结构和实现方法: (指令格式) 格式1:寄存器寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

计算机组成原理课程设计报告_基本模型机的设计与实现

本次课程设计的任务是完成一个基本模型机的设计与实现。设计经过综合运用了以前所学计算机原理的知识,依照设计要求和指导,实现了一个基本的模型计算机。 本模型机实现的功能有:IN(输入),OUT(输出),ADD(加法),SUB(减法),STA(存数),JMP(跳转)。设计进行开始,在了解微程序的基本格式, 及各个字段值的作用后, 按微指令格式参照指令流程图,设计出程序以及微程序,将每条微指令代码化,译成二进制代码表,并将二进制代码转换为联机操作时的十六进制格式文件。根据机器指令系统要求,设计微程序流程图及确定微地址。设计的加法和减法中, 被加数和被减数都由调试人员输入, 而加数和减数都从存储器中读取. 最后上机调试,各个功能运行结果正确。 关键词:基本模型机;机器指令;微指令 目录

1、课程设计题目-----------------------------------------------1 2、实验设备---------------------------------------------------1 3、课程设计步骤-----------------------------------------------1 3.1、所设计计算机的功能和用途------------------------------1 3.2、指令系统----------------------------------------------2 3.3、总体结构与数据通路------------------------------------2 3.4、设计指令执行流程--------------------------------------3 3.5、微指令代码化------------------------------------------4 3.6、组装和调试----------------------------------------------5 4、课程设计总结-----------------------------------------------7 5、附录-----------------------------------------------------------------------------------8 附录1:数据通路图----------------------------------------------------------8 附录2:微程序流程图--------------------------------------------------------9 附录3:实验接线图------------------------------------------------------------10 附录4:实验程序及微程序---------------------------------------------------11 附录5:参考文献(资料)-----------------------------------12

相关主题
文本预览
相关文档 最新文档