东北大学秦皇岛分校
计算机与通信工程学院
计算机组成与结构课程设计
指令系统及计数器设计
东北大学秦皇岛分校课程设计任务书
专业:计算机科学与技术 学号: 学生姓名:
设计题目:
一、设计实验条件
硬件:PC机
软件:Xilinx ISE ModelSim
编程语言:VHDL
二、设计任务及要求
1. 6号指令的设计;
2. 23号指令的设计;
3. 29号指令的设计;
4. 42号指令的设计;
5. 输出寄存器OUT;
6. 带异步清零和计数使能的8位二进制计数。
三、设计报告的内容
1.设计题目与设计任务
题目:
1、16位模型机设计-指令系统及计数器设计
表1.指令系统设计
2、模型机硬件设计:输出寄存器OUT
3、逻辑电路设计:带异步清零和计数使能的8位二进制计数器
2.前言
1、 融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;
2、 学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;
3、 培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
3.设计主体
【系统设计】
整机逻辑结构框图
图1
芯片引脚:
图2
cpu逻辑结构框图:
图3
【设计指令系统】
1、 指令系统设计
表2
2、微操作控制信号
1、XRD : 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
2、EMWR: 程序存储器EM写信号。
3、EMRD: 程序存储器EM读信号。
4、PCOE: 将程序计数器PC的值送到地址总线ABUS上(MAR)。
5、EMEN: 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD 决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
6、IREN: 将程序存储器EM读出的数据打入指令寄存器IR。
7、EINT: 中断返回时清除中断响应和中断请求标志,便于下次中断。
8、ELP: PC打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。
9、FSTC:进位置1,CY=1
10、 FCLC:进位置0,CY=0
11、MAREN:将地址总线ABUS上的地址打入地址寄存器MAR。
12、MAROE:将地址寄存器MAR的值送到地址总线ABUS上。
13、OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。
14、STEN: 将数据总线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 : X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
24-26: S2~ S0 : S2、S1、S0三位组合决定ALU做何种运算。
3、指令执行流程
表3
指令执行流程图
DEC R? AND A,MM MOV A,R? JZ MM
Z=1
Y N
T5 T5
T4 T4 T4
T3 T3 T3 T3
图4
二部分
【模型及实现(输出寄存器OUT)】
带清零的8位并行输入串行输出移位寄存器
1、设计构思
引脚:八个并行输入端口
一个输出端口
时钟信号控制引脚 时钟信号禁止端 移位装载控制 复位
功能:数据并行的输入,串行的输出 实现所谓的并串变化
输入引脚 :a,b,c,d,e,f,g,h 8位并行输入信号
se 串行输入信号
输出引脚:q 串行输出信号
控制引脚: clk 时钟信号
fe 时钟信号禁止端
s1 移位装载控制端
reset 复位信号
表4 控制信号功能表
2、VHDL源程序设计过程
包括三个部分,即库和程序包调用、实体部分、结构体部分
程序包调用:LIBRARY ieee;
use ieee.std_logic_1164.all;
实体部分一般格式:
entity 实体名is
类型参数说明
端口说明
end 实体名
注意:实体名与保存的源文件名相同
结构体部分一般格式:
Architecture 结构体名 of 实体名 is
定义语句
Begin
并行处理语句
End结构体名
建立过程
图5
图6
逻辑电路图
图7
图8
图9
仿真测试
图10
图11
3、VDHLM描述如下
LIBRARY ieee;
use ieee.std_logic_1164.all;
entity reg is
port(reset,s1,fe,clk,se,a,b,c,d,e,f,g,h:in std_logic;
q:out std_logic);
end reg;
architecture behave of reg is
signal tmpreg8:std_logic_vector(7 downto 0);
begin
process(clk,reset,s1,fe)
begin
if(reset='0') then
tmpreg8<="00000000";
q<=tmpreg8(7);
elsif(clk'event)and(clk='1')then
if(fe='0')then
if(s1='0')then
tmpreg8(0)<=a;
tmpreg8(1)<=b;
tmpreg8(2)<=c;
tmpreg8(3)<=d;
tmpreg8(4)<=e;
tmpreg8(5)<=f;
tmpreg8(6)<=g;
tmpreg8(7)<=h;
elsif(s1='1')then
for i in tmpreg8'high downto tmpreg8'low+1 loop
tmpreg8(i)<=tmpreg8(i-1);
end loop;
tmpreg8(tmpreg8'low)<=se;
q<=tmpreg8(7);
end if;
end if;
end if;
end process;
end behave;
三部分
【模型及实现(带异步清零和计数使能的8位二进制计数器)】
1、建立过程
图12
图13
逻辑电路图
图14
图15
图16
图17
图18
图19
图20
图21
图22
仿真测试
图23
图24
2、VDHLM描述
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity wangfang is
Port ( clk,reset,en : in STD_LOGIC;
q:out STD_LOGIC_VECTOR(7 DOWNTO 0);
bout:out STD_LOGIC );
end wangfang;
architecture Behavioral of wangfang is
signal cq :STD_LOGIC_VECTOR(7 DOWNTO 0);
begin
process(clk,reset,en)
begin
if reset='0' then cq <= "00000000";
elsif clk'event and clk = '1' then
if en = '1' then
if cq > 0 then
cq <= cq-1;
else
cq <= "11111111";
end if;
if cq = 0 then
bout <= '1';
else
bout <= '0';
end if;
end if;
end if;
q <=cq;
end process;
end Behavioral;
四、结束语
这次课程设计是在已学计算机组成原理基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
但是在此过程中也遇到了很多困难,比如在设计开始的阶段对于XILINX ISE 和Modelsim SE这两个软件就不会用,通过和同学交流我大概了解了软件的用法,在进行ALU仿真时,总是运行不了,经过仔细分析,才发现可能是我的Modelsim SE版本的问题。
在本次设计中,遇到了很多问题,开始有些迷茫,在老师的分析以及同学的帮助下,相关资料的查阅,先了解了整个设计的总体设计思路,然后查了很多关于输出寄存器以及计数器的资料,从它的根本设计原理出发,比如计数器的过程为减的过程等等。
经过努力调试修改把这个设计大部分完成,虽然里面还存在很多问题,但感觉自己在计算机组成原理的知识海洋里懂的是那么的少,还需要多学点。
总之,这次的课程设计不仅让我有动手实践的机会,也让我对之前的知识进行加深学习,使我对完成一个项目有个比较具体的认识,对以后完成这方面的事情打下基础。再次感谢老师同学的帮忙!
五、参考资料
[1] 李云松,宋锐 Xilinx FPGA 数据基础(VHDL)版[M]
西安电子科技大学出版社,2008.
[2] 袁静波,丁顺利,宋欣,王和兴 计算机组成与结构
机械工业出版社,2011
[3] 百度文库
六、设计时间与安排
1、设计时间: 2周
2、设计时间安排:
熟悉实验设备、收集资料: 3天
设计图纸、实验、计算、程序编写调试: 5天
编写课程设计报告: 2天
答辩: 1天
本文来源:https://www.2haoxitong.net/k/doc/8f33087dba1aa8114531d95d.html
文档为doc格式