简单CPU系统设计与实现 下载本文

北京邮电大学数字电路与逻辑设计实验报告

根据波形图可以看出状态机的运行,其中一个状态占两个时钟周期。

该仿真相当于CPU执行指令的时序图,反映了程序运行情况。还包括了辗转相减法的仿真,和rst的清零仿真。可以看出该CPU系统的仿真结果正确,达到下载的要求。

北京邮电大学数字电路与逻辑设计实验报告

4 源程序(含注释)

各个部件对应的源程序如下(最后的连接是用图形连接完成的):

4.1 DIV(分频器)

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity DIV is port (

clk_in:in std_logic; clk_out1:out std_logic; clk_out2:out std_logic ); end DIV;

北京邮电大学数字电路与逻辑设计实验报告

architecture behave of DIV is

signal tmp:std_logic_vector(15 downto 0); begin

process(clk_in,tmp) begin

if(clk_in'event and clk_in='1')then tmp<=tmp+1; end if;

clk_out1<=tmp(0); clk_out2<=tmp(1); end process; end behave;

4.2 MCU (控制器)

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity MCU is

北京邮电大学数字电路与逻辑设计实验报告

port (

clk:in std_logic; start:in std_logic;

opcode:in std_logic_vector(3 downto 0); cmp:in std_logic;

ctr:out std_logic_vector(10 downto 0) ); end MCU;

architecture behave of MCU is begin

process(clk,start)

variable status:std_logic_vector(4 downto 0):=\begin

if(start='1')then status:=\ elsif(clk'event and clk='1')then case status is

when\ --MBR<-RAM

when\