基于VHDL的8位模型计算机的设计与实现(4)

2018-12-20 10:21

理工大学学士学位论文

3)第三条指令HALT ;运算完毕,停机。 T0:(PC)→MAR→ABUS,IMAR=0 T1:DBUS→DR,IDR=1 T2:(PC)+1→PC,IPC=1 (DR)→IR,IIR=0,HALT=1

3.5 基于VHDL8位模型机各模块的设计与实现

3.5.1 算术逻辑单元ALU模块 说明:此模块用于实现加法运算

1.逻辑框图

Isum=0NY两数相加开始

Esum=0YN输出结果结束图3.2 算术逻辑运算单元程序流程图

12

理工大学学士学位论文

说明:ALU功能部件,有两个控制信号,分别是加法运算控制信号ISUM和输出控制信号ESUM,当ISUM=0时,在CLK作用下将两数相加,当输出控制命令ESUM=0时,将相加结果读入到内部数据总线上。

2.VHDL源程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ALU IS

PORT(AC,DR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

ISUM:IN STD_LOGIC; ESUM:IN STD_LOGIC;

ALU_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ); END ALU;

ARCHITECTURE A OF ALU IS

SIGNAL:ALU_TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

ALU_TEMP<=AC+DR WHEN ISUM =’0’; ALU_OUT<=ALU_TEMP; END A;

3.ALU模块仿真波形

13

理工大学学士学位论文

图3.3 ALU功能仿真

波形分析:两个输入信号AC,DR,一个输出信号ALU_OUT和两个控制命令信号ISUM,ESUM 。在仿真设置中将AC值设为从00000000逐一递增到11111111,而DR值为了方便观察设为00000000,两个控制命令信号全部设为0即即时相加即时输出,运行后如图所示,输出结果也是从00000000到11111111由于截图大小有限只截到00001000,功能仿真成功。 3.5.2 累加器模块

说明:实现8位模型机的累加器

1.逻辑框图

14

理工大学学士学位论文

开始Clk(时钟)发生且为上升沿YIa=0YNNEa=0YData_out=regqRegq=data_inN结束

图3.4 累加器ACC程序流程图

说明:设置一个中间信号REGQ,输入信号是DATA_IN,输出信号时DATA_OUT,两个控制信号分别是IA输入控制信号和EA输出控制信号。当输入控制信号IA=0时,将输入数据DATA_IN存入到REGQ中,当输出控制信号EA=0是将以存到REGQ中的输入数据赋与输出数据DATA_OUT输出。

2.VHDL源程序设计

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

15

理工大学学士学位论文

ENTITY ACC IS

PORT(DATA_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); IA:IN STD_LOGIC; EA:IN STD_LOGIC; CLK:IN STD_LOGIC;

DATA_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ACC;

ARCHITECTURE A OF ACC IS

SIGNAL REGQ:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

PROCESS(IA,EA,CLK) BEGIN

IF(CLK’EVENT AND CLK=’1’) THEN IF(IA='0') THEN REGQ<=DATA_IN; END IF; END IF; END PROCESS;

DATA_OUT<= REGQ WHEN EA='0' ELSE ''ZZZZZZZZ'' END A;

3.ACC模块仿真波形

16


基于VHDL的8位模型计算机的设计与实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:动词ing形式做主语和宾语(课堂设计)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: