东北大学秦皇岛分校 - 组成原理课设

发布时间:2015-01-09 15:19:34   来源:文档文库   
字号:

东北大学秦皇岛分校

计算机与通信工程学院

计算机组成原理课程设计

指令系统及数据总线设计

东北大学秦皇岛分校
课程设计任务书

专业:计算机科学与技术 学号 学生姓名:

设计题目:指令系统及数据总线设计

一、 设计实验条件

综合楼试验室808

硬件:PC

软件:Xilinx ISE ModelSim

编程语言:VHDL

二、设计任务及要求

1. 10号指令;

2. 27号指令;

3. 35号指令;

4. 37号指令;

5. 数据总线DBUS

6. 6. 74LS138译码器。

三、设计报告的内容

1.设计题目与设计任务

题目:指令系统及数据总线设计

116位模型机设计-指令系统及计数器设计

1.指令系统设计

2、模型机硬件设计: 数据总线DBUS

3、逻辑电路设计: 74LS138译码器

2.前言

1.融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;

2.学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;

3.培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。

3.设计主体

【模型机设计】

1. 指令系统设计:

10号指令: 助记符:ADDC A, @R?

格式:操作码和地址码

操作码:ADDC

地址码:A, @R?

功能:将间址存储器的值加入累加器A,带进位

寻址方式:直接寻址

27号指令: 助记符:OR A, MM

格式:操作码和地址码

操作码:OR

地址码:A,MM

功能:累加器A“或”存储器MM地址的值

寻址方式:直接寻址

35号指令: 助记符:MOV MM, A

格式:操作码和地址码

操作码:MOV

地址码:MM,A

功能:将A中的值送入存储器MM地址中

寻址方式:直接寻址

37号指令: 助记符:READ MM

格式:操作码和地址码

操作码:READ

地址码:MM

功能:从外部地址MM读入数据,存入累加器A

寻址方式:直接寻址

系统设计

1. 模型机逻辑框图

1 整机逻辑框图

2 芯片引脚逻辑框图

3 CPU逻辑框图

【设计指令系统】

1、 指令系统设计

2

2、微操作控制信号

1XRD 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。

2EMWR 程序存储器EM写信号。

3EMRD 程序存储器EM读信号。

4PCOE 将程序计数器PC的值送到地址总线ABUS(MAR)

5EMEN 将程序存储器EM与数据总线DBUS接通,由EMWREMRD 决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS

6IREN 将程序存储器EM读出的数据打入指令寄存器IR

7EINT 中断返回时清除中断响应和中断请求标志,便于下次中断。

8ELP PC打入允许,与指令寄存器IR3IR2位结合,控制程序跳转。

9FSTC:进位置1CY=1

10 FCLC:进位置0CY=0

11MAREN:将地址总线ABUS上的地址打入地址寄存器MAR

12MAROE:将地址寄存器MAR的值送到地址总线ABUS上。

13OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。

14STEN 将数据总线DBUS上数据存入堆栈寄存器ST中。

15 RRD 读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。

16 RWR 写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。

17 CN 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。

18 FEN 将标志位存入ALU内部的标志寄存器。

19 WEN 将数据总线DBUS的值打入工作寄存器W中。

20 AEN 将数据总线DBUS的值打入累加器A中。

21-23: X2~ X0 X2X1X0三位组合来译码选择将数据送到DBUS上的寄存器。

24-26: S2~ S0 S2S1S0三位组合决定ALU做何种运算。

3、指令执行流程

3

以流程图表示如下:

T2 PCOE, MARIEN

T1 EMEN; EMR,WEN

To IREN

Add mov or read

(二) 硬件测试三态双向数据总线DBUS

1模型机实现

1.逻辑电路设计

4三态双向数据总线DBUS

2.VDHLM描述如下

l;LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY tri_bibus IS

PORT(

EN : IN STD_LOGIC;

DIR : IN STD_LOGIC;

A,B : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END tri_bibus;

ARCHITECTURE tri_bibus_arch OF tri_bibus IS

SIGNAL aout,bout :STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

PROCESS (A,EN,DIR)

BEGIN

IF((EN='0')AND(DIR='1')) THEN

bout<=A;

ELSE

bout<="ZZZZZZZZ";

END IF;

B<=bout;

END PROCESS;

PROCESS (B,EN,DIR)

BEGIN

IF((EN='0')AND(DIR='0')) THEN

aout<=B;

ELSE

aout<="ZZZZZZZZ";

END IF;

A<=aout;

END PROCESS;

END tri_bibus_arch;

2系统实现

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity ls139 is

port(

G1,A1,B1,G2,A2,B2 :STD_LOGIC;

Y1 :OUT STD_LOGIC_VECTOR(0 TO 3);

Y2 :OUT STD_LOGIC_VECTOR(0 TO 3)

);

end ls139;

architecture Behavioral of ls139 is

SIGNAL IN1 :STD_LOGIC_VECTOR(1 DOWNTO 0);

SIGNAL IN2 :STD_LOGIC_VECTOR(1 DOWNTO 0);

begin

IN1 <= B1&A1;

IN2 <= B2&A2;

P1:PROCESS(G1,IN1)

BEGIN

IF(G1='0')THEN

CASE IN1 IS

WHEN "00" => Y1 <="0111";

WHEN "01" => Y1 <="1011";

WHEN "10" => Y1 <="1101";

WHEN "11" => Y1 <="1110";

WHEN OTHERS => Y1 <="XXXX";

END CASE;

ELSE

Y1 <="XXXX";

END IF;

END PROCESS;

P2:PROCESS(G2,IN2)

BEGIN

IF(G2='0')THEN

CASE IN2 IS

WHEN "00" => Y2 <="0111";

WHEN "01" => Y2 <="1011";

WHEN "10" => Y2 <="1101";

WHEN "11" => Y2 <="1110";

WHEN OTHERS => Y2 <="XXXX";

END CASE;

ELSE

Y2 <="XXXX";

END IF;

END PROCESS;

end Behavioral;

模型机测试三态双向数据总线DBUS

功能仿真

仿真过程如下:

sources窗口处右击,加入新的源文件

创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名test_alu

初始化时钟周期及相关参数→finash

右侧会出现 .tbw文件窗口,设置输入引脚的值,存盘

左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动出现"Modelsim Simulator"

双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确

5三态双向数据总线DBUS时序图

通过仿真证实:上述程序能够实现三态双向数据总线DBU的设计。

RTL级逻辑电路

6 RTL逻辑电路

)硬件测试74LS138译码器)

1、设计构思

引脚:

一个输出端口

时钟信号控制引脚 时钟信号禁止端 移位装载控制 复位

功能:数据并行的输入,串行的输出 实现所谓的并串变化

输入引脚 a,b,c,d,e,f,g,h 8位并行输入信号

se 串行输入信号

输出引脚:q 串行输出信号

控制引脚: clk 时钟信号

fe 时钟信号禁止端

s1 移位装载控制端

reset 复位信号

4 控制信号功能表

2VHDL源程序设计过程

包括三个部分,即库和程序包调用、实体部分、结构体部分

程序包调用:LIBRARY ieee;

use ieee.std_logic_1164.all;

实体部分一般格式:

entity 实体名is

类型参数说明

端口说明

end 实体名

注意:实体名与保存的源文件名相同

结构体部分一般格式:

Architecture 结构体名 of 实体名 is

定义语句

Begin

并行处理语句

End结构体名

3.VDHLM描述如下

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity decoder_d is

PORT ( en : in std_logic;

a : in std_logic_vector(2 downto 0);

y : out std_logic_vector(7 downto 0)

);

end decoder_d;

architecture Behavioral of decoder_d is

begin

process (a,en)

begin

if(en='1')

then

case a is

when "000" =>y<="00000001";

when "001" =>y<="00000010";

when "010" =>y<="00000100";

when "011" =>y<="00001000";

when "100" =>y<="00010000";

when "101" =>y<="00100000";

when "110" =>y<="01000000";

when "111" =>y<="10000000";

when others =>y<="00000000";

end case;

else y<="00000000";

end if;

end process;

end Behavioral;

仿真测试

仿真过程如下:

sources窗口处右击,加入新的源文件

创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名 test_74ls

初始化时钟周期及相关参数→finash

右侧会出现 .tbw文件窗口,设置输入引脚的值,存盘

左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动 出现"Modelsim Simulator"

双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确

7 74LS138译码器输入三态门时序图

4.逻辑电路图

8 RTL逻辑电路

9 RTL逻辑电路局部

四、结束语

这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们学生能综合应用LIBRARY ieee;

所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。

但是在此过程中也遇到了很多困难,比如在设计开始的阶段对于XILINX ISE Modelsim SE这两个软件就不会用,通过和同学交流我大概了解了软件的用法,在进行ALU仿真时,总是运行不了,经过仔细分析,才发现可能是我的Modelsim SE版本的问题。

在本次设计中,遇到了很多问题,开始有些迷茫,在老师的分析以及同学的帮助下,相关资料的查阅,先了解了整个设计的总体设计思路,然后查了很多关于输出寄存器以及计数器的资料,从它的根本设计原理出发,比如计数器的过程为减的过程等等。

经过努力调试修改把这个设计大部分完成,虽然里面还存在很多问题,但感觉自己在计算机组成原理的知识海洋里懂的是那么的少,还需要多学点。

总之,这次的课程设计不仅让我有动手实践的机会,也让我对之前的知识进行加深学习,使我对完成一个项目有个比较具体的认识,对以后完成这方面的事情打下基础。再次感谢老师同学的帮忙!

五、参考资料

[1] []克莱茨 著,李慧军 VHDL数字电子学

[2] 袁静波,丁顺利,宋欣,王和兴 计算机组成与结构 机械工业出版社,2011

[3]陈耀和.VHDL语言设计技术[M]. 北京:电子工业出版社,2004. 

[4]李云松,宋锐.Xilinx FPGA 数据基础(VHDL)版[M] .陕西:西安电子科技大学出版社,2008.

[5] 百度文库

六、设计时间与安排

1、设计时间: 2

2、设计时间安排:

熟悉实验设备、收集资料: 3

设计图纸、实验、计算、程序编写调试: 5

编写课程设计报告: 2

答辩: 1

本文来源:https://www.2haoxitong.net/k/doc/a7ee4204f46527d3240ce071.html

《东北大学秦皇岛分校 - 组成原理课设.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式