实验07 硬布线控制器实验
实验七 硬布线控制器实验
一、实验目的
1、通过实验学习利用VHDL 语言进行有限状态机的设计。
2、通过实验了解硬布线控制器的基本工作原理。
二、实验原理
1、硬布线控制器本质上是一种由门电路和触发器构成的复杂树形网络,它将输入逻辑信号转换成一组输出逻辑信号,即控制信号。硬布线控制器的输入信号有:指令寄存器的输出、时序信号和运算结果标志状态信号等;输出的信号就是各个部件需要的各种微操作信号。
2、硬布线控制器的设计思想是:在硬布线控制器中,操作控制器发出的各种控制信号是时间因素和空间因素的函数。各个操作定时的控制构成了操作控制信号的时间特征,而各种不同部件的操作所需要的不同操作信号则构成了操作控制信号的空间特征。硬布线控制器就是时间信号和操作信号的组合,产生具有定时特点的控制信号。
3、本实验中用到的机器指令如下:
图1 设计指令格式
4、根据指令要求,得出用时钟进行驱动的状态机描述,即得出其有限状态机,如图2所示。
S0:空操作,系统复位后的状态
S1:PC->AR,PC+1
S2:MEM->BUS,BUS->IR
S3:R0->BUS,BUS->A
S4:R0->BUS,BUS->B
S5:A+B->BUS,BUS->R0
S6:IN->BUS,BUS->R0
S7:R0->BUS,BUS->OUT
S8:空操作
S9:PC->AR,PC+1
S10:MEM->BUS,BUS->PC
图2 有限状态机描述
三、实验步骤
1、建立一个Quartus II工程命名为:Con ,并在工程中新建一个VHD 文件,与工程同名:Con.vhd
2、利用VHDL 语言设计了控制器的有限状态机。其代码如下:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY CONTROLLER IS
PORT(
RESET : IN STD_LOGIC;
T1 : IN STD_LOGIC;
INS : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CTRL : OUT STD_LOGIC_VECTOR(16 DOWNTO 0)
);
END CONTROLLER;
ARCHITECTURE CONTROLLER_ARCH OF CONTROLLER IS
TYPE STATE IS (S10, S9, S8, S7, S6, S5, S4, S3, S2, S1, S0);
SIGNAL CUFSM: STATE;
--CTRL:WR,RD,IOM,S3,S2,S1,S0,LDA,LDB,LOAD,LDAR,LDIR,ALU_B,R0_B,LDR0,PC_B,LDPC
BEGIN
PROCESS (T1, RESET, INS)
BEGIN IF RESET = '0' THEN CTRL CTRL AR,PC+1 CUFSM CTRL BUS,BUS->IR CUFSM IF INS = "00000000" THEN --ADD INS CTRL BUS,BUS->A CUFSM BUS,BUS->R0 CUFSM BUS,BUS->OUT CUFSM AR,PC+1 CUFSM AR,PC+1 CUFSM CTRL BUS,BUS->B CUFSM CTRL BUS,BUS->R0 CUFSM CTRL AR,PC+1 CUFSM CTRL AR,PC+1 CUFSM CTRL AR,PC+1 CUFSM
CTRL
CUFSM
WHEN S9 =>
CTRL BUS,BUS->PC
CUFSM
WHEN S10 =>
CTRL AR,PC+1
CUFSM
END CASE;
END IF;
END PROCESS;
END CONTROLLER_ARCH ;
3、对工程已经编译,将生成的Con.sof 文件进行JTAG 下载就可以了。其引脚分配如下:
图3 引脚分配
4、实验连线:FPGA 单元71连接K7(RESET 信号),FPGA 单元72连接KK+(输入脉冲,上升沿有效),FPGA 单元93、94、96、97、99、100、101、103连接SD07-SD00(模拟指令输入),FPGA 单元3、4、7、8、9、24、25、26连接FPGA 单元L0-L7,FPGA 单元120、121、122、125、126、129、132、133连接FPGA 单元L8-L15,FPGA 单元106连接扩展单元E7。
5、实验流程:K7=0使得控制器回到初态S0,测试并验证控制信号输出;K7=1,通过SD07-SD00模拟输入指令,点击KK+,测试并验证各条指令运行过程中状态的变化和控制信号输出。