嵌入式CISC模型机设计
更新时间:2024-04-28 01:46:01 阅读量: 综合文库 文档下载
目录
1:课程设计题目 ............................................................................................................................. 1 2:嵌入式CISC模型机数据通路框图 ........................................................................................... 1 3:操作控制器的逻辑框图 ............................................................................................................. 1 4:模型机的指令系统和所有指令的指令格式 ............................................................................. 2 5:所有机器指令的微程序流程图或CPU操作流程图 ................................................................. 3 6: 操作控制器单元 ......................................................................................................................... 4 7:嵌入式CISC模型计算机的顶层电路图 ................................................................................... 6 8:汇编语言源程序 ......................................................................................................................... 6 9:机器语言源程序 ......................................................................................................................... 7 10:机器语言程序的功能仿真波形图及结果分析 ....................................................................... 8 11:进行时序仿真是芯片的引脚分配 ........................................................................................... 8 12:故障现象和故障分析 ............................................................................................................... 8 13:软件清单,含各个部件的VHDL源程序(.VHD)或图形描述文件(.gfd) ............................. 8
13.1:ALU单元 .......................................................................................................................... 8 13.2: 状态条件寄存器单元 ................................................................................................. 11 13.3: 暂存寄存器单元 ......................................................................................................... 12 13.4: 3选1数据选择器 ...................................................................................................... 13 13.5:5选1数据选择器 ...................................................................................................... 14 13.6: 程序计数器单元 ......................................................................................................... 15 13.7: 地址寄存器单元 ......................................................................................................... 17 13.8: 主存储器单元 ............................................................................................................. 17 13.9: 指令寄存器单元 ......................................................................................................... 18 13.10: 时序产生器单元 ....................................................................................................... 19 13.11: 微程序控制器单元 ................................................................................................... 20
13.11.1: 地址转移逻辑电路 ........................................................................................ 21 13.11.2: 微地址寄存器 ................................................................................................ 23 13.11.3: 微地址转换器 ................................................................................................ 25 13.11.4: 控制存储器 .................................................................................................... 26 13.11.5: 微指令寄存器 ................................................................................................ 28 13.11.6: 微地址转换器 ................................................................................................ 30 13.11.7: 指令代码转换器 ............................................................................................ 31
1
1:课程设计题目
设计一台嵌入式CISC模型计算机:采用定长CPU周期、联合控制方法,并完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:
输入5个有符号整数(8位二进制补码表示),求所有正数的平方和并输出显示。
2:嵌入式CISC模型机数据通路框图
模型机由CISC微处理器、地址寄存器AR、ROM存储器组成。微处理器有算数逻辑单元ALU、状态条件寄存器、累加器AC、数据暂存器R、通用寄存器R0~R3、程序计数器PC、指令寄存器IR、操作控制器和时序产生器组成。模型机数据通路如图2-1所示:
图2-1 模型机数据通路框图
说明:外部时钟信号上边沿有效。
3:操作控制器的逻辑框图
微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑电路三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。微程序控制器在T4内形成微指令的微地址,并访问控制存储器,在T2的上边沿到来时,将读出的微指令打入微指令寄存器,即图中的微命令寄存器和微地址寄存器。微程序控制器组成原理框图如下图3-1所示。
1
图3-1 微程序控制器组成原理框图
4:模型机的指令系统和所有指令的指令格式
为了完成求和功能,系统设计了9条指令:IN(输入指令),MOV(将一个数送入寄存器),CMP(完成比较功能),JB(小于等于跳转),ADD(两数相加),DEC(自减1),JMP(无条件跳转),MUL(两数相乘),OUT(输出)。
助记符号 IN Rd 指令格式 1 0 0 0 ×× 1 1 1 1 功 能 Rd ×× Rd Rd Rd Rd 将数据存到Rd寄存器 (Rs)→LED (Rs)+(Rd) →Rd (Rs)-(Rd),锁存CY和ZI (Rd)+1→Rd data→Rd OUT Rs ADD Rs,Rd CMP Rs,Rd Rs 1 1 0 0 ×× 1 0 1 0 Rs DEC Rd 1 1 0 1 ×× 1 0 0 1 ×× data MOV Rd,data JMP addr 1 1 1 0 ×××× addr addr→PC JB addr 1 0 1 1 ×××× addr 若小于,则addr→PC MUL Rs,Rd 0001 Rs Rd (Rs)*(Rd)→Rd 说明:①对Rs和Rd的规定:
2
Rs或Rd 0 0 0 1 1 0 1 1 选定的寄存器 R0 R1 R2 R3 ②模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:
7 符号位 6 5 4 3 2 1 0 尾数 5:所有机器指令的微程序流程图或CPU操作流程图 微程序控制器的设计过程如下:
(1)根据指令格式和指令系统设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;
(2)设计微指令格式和微指令代码表; (3)设计地址转移逻辑电路;
(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;
(5)设计微程序控制器的顶层电路(由多个模块组成)。
3
00 PC→AR PC+1 02 READ M BUS→IR P(1) MUL 01 RS→BUS BUS→AC IN 08 SW→BUS BUS→Rd MOV 09 PC→AR PC+1 CMP 0A Rs→BUS BUS→AC JB 0B PC→AR PC+1 ADD 0C RS→BUS BUS→AC DEC 0D Rd→BUS BUS→AC JMP 0E PC→AR PC+1 OUT 0F Rs→LED 15 Rd→BUS BUS→DR 03 00 ROM→BUS BUS→Rd 04 Rd→BUS BUS→DR 06 Rd→BUS BUS→DR 12 AC-1→BUS BUS→Rd 13 ROM→BUS BUS→PC 00 16 AC*DR→Rd 05 00 AC→DR 锁存FC、FZ P(2) 07 AC+DR→Rd 00 00 00 00 FS=0 20 ROM→BUS BUS→PC FS=1 00 30 00 00
6: 操作控制器单元
(1)设计微指令格式和微指令代码表
CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LOAD LDPC LDAR LDIR LDRi RD_B RS_B S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P2 后继微地址
由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR。
4
微命令字段 微地址 LOAD LDPC LDAR LDIR LDRi RD_B RS_B S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P1 后继位地址 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 000010 010101 001000 000000 000101 000000 000111 000000 000000 000011 000100 100000 000110 010010 010012 000000 000000 000000 010110 000000 000000 000000 000000 000001 000010 000011 000100 000101 000110 000111 001000 001001 001010 001011 001100 001101 001110 001111 010010 010011 010101 010110 100000 110000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1
(2)设计地址转移逻辑电路
地址转移逻辑电路是根据微程序流程图3-2中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。
由于微地址寄存器中的触发器异步置“1”端低电平有效,与μA4~μA0对应的异步置“1”控制信号SE5~SE1的逻辑表达式为:
SE5=(FC+FZ)?P(2)?T4 SE4=I7?P(1)?T4 SE3=I6?P(1)?T4 SE2=I5?P(1)?T4
5
SE1=I4?P(1)?T4
7:嵌入式CISC模型计算机的顶层电路图
在MAX+plusⅡ下设计的CISC模型机的顶层电路图如下图7-1所示。
图7-1嵌入式CISC模型计算机的顶层电路图
8:汇编语言源程序
MOV R1MOV R2MOV R3
0 --R1置为0,保存累加结果
0 --R2置为0,判输入数据正负性,计输入数据的次数 5 --R3置为5,计输入次数
L1: IN R0 --外部输入数据存到R0DEC R3 --R3减1
CMP R2,R0 --比较R2和R0的大小
JB L2 --若R2小于R0则跳转L2 CMP R2,R3 --判断次数,若不到5次返回L1 JB L1 --跳转到L1
JMP L3 --若次数达到5次,跳转到L3,输出结果,程序结束 L2: MUL R0,R0 -- R0大于0,做平方运算,存到R0中
ADD R0,R1 --R1用来存累加结果的,故将R0中的平方和R1的值相加
6
CMP R2,R3 --判断次数,若不到5次返回L1 JB L1 --跳转到L1
L3: OUT R1 --将正数的平方和输出
9:机器语言源程序
根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去。与汇编语言源程序对应的机器语言源程序如下:
助记符 地址(十六进制) MOV1 R0,0 00 10010001 00H 01 00000000
MOV1 R1,0 02 10010010 00H 03 00000000
MOV1 R2,5 04 10010011 05H 05 00000101
L1:IN R0 06 10000000 (SW) DEC R3 07 11010011 (R0)-1CMP R2,R0 08 10101000 (R2)-(R0) JB L2 09 10110000 0A 00010000
CMP R2,R3 0B 10101011 (R2)-(R3) JB L1 0C 10110000 L1 OD 00000110 JMP L3 0E 11100000 L3 0F 00010101
L2: MUL R0,R0 10 00010000 (R0)*(R0) ADD R0,R1 11 11000001 (R0)+(R1) CMP R2,R3 12 10101011 (R2)-(R3) JB L1 13 10110000 L114 00000110
L3: OUT R1 15 11110100 (R1)
机器代码 7
功能 →R0
→R1
→R2
→R0 →R3 若小于,L2 →PC
→PC
→PC →R0 →R1 →PC
→LED
10:机器语言程序的功能仿真波形图及结果分析
结果分析:输入的整数依次为01H,FFH,01H,02H,FFH。 结果输出:06H。
计算结果与事实相符,程序正确执行
11:进行时序仿真是芯片的引脚分配
在进行仿真时主要的引脚分配为:
PC 26 AR 23 IR 22 CROM R0 5 15 R1 16 R2 17 R3 18 MUX1 28 MUX2 30 ALU 2 PSW 3 ROM 1 12:故障现象和故障分析 1. CMP指令一开始设为CMP R0,R2导致结果出错。原来JB指令是小于等于的时候跳
转,所以导致结果取反。之后将CMP指令改为CMP R2,R0,结果程序正确。 2. 微程序控制器中采用全水平微指令,在设计AC*DR→Rd指令时忘记设计S0,S1为1,1,
即控制为乘法时,变成了加法,导致结果出错。在仿真时发现结果不对,算的是加法,然后通过修改为乘法,结果正确。
13:软件清单,含各个部件的VHDL源程序(.VHD)或图形描述文件(.gfd)
13.1:ALU单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
8
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_SIGNED.ALL; --有符号型 ENTITY ALU IS PORT(
A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S1,S0:IN STD_LOGIC;
BCDOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); CY,ZI:OUT STD_LOGIC );
END ALU;
ARCHITECTURE A OF ALU IS
SIGNAL AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN
PROCESS(S1,S0)
BEGIN
IF(S1='0' AND S0='0')THEN --加法
AA<='0'&A; BB<='0'&B; TEMP<=AA+BB;
BCDOUT<=TEMP(7 DOWNTO 0); CY<=TEMP(8);
IF(TEMP=\
ZI<='1';
ELSE
ZI<='0';
END IF;
ELSIF(S1='0' AND S0='1')THEN --减法
BCDOUT<=A-B;
IF(A
9
CY<='1';
ZI<='0';
ELSIF(A=B)THEN
Y<='0';
ZI<='1';
ELSE
CY<='0';
ZI<='0';
END IF;
ELSIF(S1='1' AND S0='1')THEN --乘法
AA<='0'&A; BB<='0'&B; TEMP<=AA*BB;
BCDOUT<=TEMP(7 DOWNTO 0); CY<=TEMP(8);
IF(TEMP=\
ZI<='1';
ELSE
ZI<='0';
END IF;
ELSIF(S1='1' AND S0='0')THEN --自减1
AA<='0'&A;
TEMP<=AA-1;
BCDOUT<=TEMP(7 DOWNTO 0); CY<=TEMP(8);
IF(TEMP=\
ZI<='1';
ELSE
ZI<='0';
10
END IF;
ELSE
BCDOUT<=\CY<='0'; ZI<='0';
END IF;
END PROCESS;
END A;
13.2: 状态条件寄存器单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY LS74 IS PORT(
LDFR:IN STD_LOGIC; CY,ZI:IN STD_LOGIC; FC,FZ:OUT STD_LOGIC );
END LS74;--状态寄存器 ARCHITECTURE A OF LS74 IS BEGIN
PROCESS(LDFR)
BEGIN
IF(LDFR'EVENT AND LDFR='1')THEN
11
FC<=CY;
FZ<=ZI;
END IF;
END PROCESS;
END A;
13.3: 暂存寄存器单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY LS273 IS PORT(
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK:IN STD_LOGIC;
O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
END LS273;--通用寄存器 ARCHITECTURE A OF LS273 IS BEGIN
PROCESS(CLK) BEGIN
IF(CLK'EVENT AND CLK='1')THEN O<=D; END IF; END PROCESS; END A;
12
13.4: 3选1数据选择器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX3 IS PORT(
ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SW_B,CS:IN STD_LOGIC;
N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0); EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
END MUX3;--3选1数据选择器单元 ARCHITECTURE A OF MUX3 IS BEGIN
PROCESS(SW_B,CS) BEGIN
IF(SW_B='0')THEN
EW<=ID;--从输入设备输入数据 ELSIF(CS='0')THEN
EW<=N2;--将ROM中读出的指令代码送入内部数据通路 ELSE
EW<=N1;--将5选1多路选择器的输出送入内部数据通路
13
END IF; END PROCESS; END A;
13.5:5选1数据选择器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX5 IS PORT( );
END MUX5;--5选1数据选择器单元 ARCHITECTURE A OF MUX5 IS
SIGNAL SEL: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN
14
C,D,E,F,G: IN STD_LOGIC;
X1,X2,X3,X4,x5: IN STD_LOGIC_VECTOR(7 DOWNTO 0); W: out STD_LOGIC_VECTOR(7 DOWNTO 0)
SEL<=G&F&E&D&C; PROCESS(SEL) BEGIN
IF(SEL=\ --输出R0的内容 W<=X1;
ELSIF(SEL=\ --输出R1的内容 W<=X2;
ELSIF(SEL=\ --输出R2的内容 W<=X3;
ELSIF(SEL=\ --输出R3的内容 W<=X4;
ELSIF(SEL=\ --输出ALU的内容 W<=X5; ELSE null; END IF; END PROCESS; END A;
13.6: 程序计数器单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;
15
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PC IS PORT(
LOAD,LDPC,CLR:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
END PC;--程序计数器 ARCHITECTURE A OF PC IS
SIGNAL QOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN
PROCESS(LDPC,CLR,LOAD) BEGIN
IF(CLR='0')THEN
QOUT<=\将pc清0 ELSIF(LDPC'EVENT AND LDPC='1')THEN IF(LOAD='0')THEN
QOUT<=D; --将数据总线的内容送入pc ELSE
QOUT<=QOUT+1; --PC+1 END IF; END IF; END PROCESS; O<=QOUT; END A;
16
13.7: 地址寄存器单元
13.8: 主存储器单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ROM16 IS PORT( );
END ROM16;--主存储器单元ROM16 ARCHITECTURE A OF ROM16 IS BEGIN
DOUT<=\ -- MOV R1,00
\
\ --MOV R2,00
17
DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CS:IN STD_LOGIC
\
\ --MOV R3,05 \
\ -- L1: IN R0 \ -- DEC R3
\ -- CMP R2,R0 \ --JB L2
\
\ -- CMP R2,R3 \ -- JB: L1 \
\ -- JMP L3 \ --
\ --L2:MUL R0,R0
\ --ADD R0,R1 \ --CMP R2,R3 \ --JB L1 \ --
\ --L3:OUT1 R1 \END A;
13.9: 指令寄存器单元
18
13.10: 时序产生器单元
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNTER IS PORT(
Q,CLR:IN STD_LOGIC; T2,T3,T4:OUT STD_LOGIC );
END COUNTER;--时序产生器单元 ARCHITECTURE A OF COUNTER IS
SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN
PROCESS(Q,CLR) BEGIN
IF(CLR='0')THEN T2<='0'; T3<='0'; T4<='0'; X<=\
ELSIF(Q'EVENT AND Q='1')THEN--当出现时钟Q上边沿时,计数器的值X+1 X<=X+1;--由当前值X译码后产生节拍脉冲信号T2,T3,T4.
19
T2<=(NOT X(1))AND X(0); T3<=X(1)AND (NOT X(0)); T4<=X(1)AND X(0); END IF; END PROCESS; END A;
13.11: 微程序控制器单元
微程序控制器单元
20
微程序控制器的内部结构
13.11.1: 地址转移逻辑电路
21
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADDR IS PORT(
I7,I6,I5,I4:IN STD_LOGIC; FZ,FC,T4,P1,P2:IN STD_LOGIC;
SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC );
END ADDR;--地址转移逻辑电路 ARCHITECTURE A OF ADDR IS BEGIN SE6<='1';
SE5<=NOT ((NOT FC OR FZ ) AND P2 AND T4); SE4<=NOT(I7 AND P1 AND T4); SE3<=NOT(I6 AND P1 AND T4); SE2<=NOT(I5 AND P1 AND T4); SE1<=NOT(I4 AND P1 AND T4); END A;
22
13.11.2: 微地址寄存器
23
微地址寄存器内部结构
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY MMM IS PORT(
SE:IN STD_LOGIC; T2:IN STD_LOGIC; D:IN STD_LOGIC; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC );
END MMM;--带有异步清零和异步置一功能的触发器,由多个mmm组成微地址寄存器aa
ARCHITECTURE A OF MMM IS BEGIN
PROCESS(CLR,SE,T2) BEGIN
24
IF(CLR='0')THEN UA<='0'; ELSIF(SE='0')THEN UA<='1';
ELSIF(T2'EVENT AND T2='1')THEN UA<=D; END IF; END PROCESS; END A;
13.11.3: 微地址转换器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY F1 IS PORT(
UA5,UA4,UA3,UA2,UA1,UA0:IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );
END F1;--微地址转换器 ARCHITECTURE A OF F1 IS
25
BEGIN
D(5)<=UA5; D(4)<=UA4; D(3)<=UA3; D(2)<=UA2; D(1)<=UA1; D(0)<=UA0; END A;
13.11.4: 控制存储器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CONTROM IS
PORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); D:OUT STD_LOGIC_VECTOR(18 DOWNTO 0) );
END CONTROM;--操作控制器单元 ARCHITECTURE A OF CONTROM IS
SIGNAL DATAOUT: STD_LOGIC_VECTOR(24 DOWNTO 0); BEGIN
PROCESS(ADDR)
26
BEGIN
CASE ADDR IS
WHEN \ WHEN \取指 WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \
WHEN \
WHEN \
WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS => DATAOUT<=\ END CASE;
UA(5 DOWNTO 0)<=DATAOUT(5 DOWNTO 0); D(18 DOWNTO 0)<=DATAOUT(24 DOWNTO 6); END PROCESS; END A;
27
13.11.5: 微指令寄存器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY MCOMMAND IS PORT(
T2,T3,T4,I3,I2,I1,I0:IN STD_LOGIC; O:IN STD_LOGIC_VECTOR(18 DOWNTO 0);
P1,P2,LOAD,LDPC,LDAR,LDIR,LDR0,LDR1,LDR2,LDR3,R0_B,R1_B,R2_B,R3_B,S1,S0,ALU_B,LDAC,LDDR,WR,CS,SW_B,LED_B,LDFR:OUT STD_LOGIC );
END MCOMMAND;--微地址寄存器 ARCHITECTURE A OF MCOMMAND IS
28
SIGNAL DATAOUT:STD_LOGIC_VECTOR(18 DOWNTO 0); BEGIN
PROCESS(T2) BEGIN
IF(T2'EVENT AND T2='1')THEN
DATAOUT(18 DOWNTO 0)<=O(18 DOWNTO 0); END IF;
P2<=DATAOUT(0); P1<=DATAOUT(1);
LDFR<=DATAOUT(2) AND T4; LED_B<=DATAOUT(3); SW_B<=DATAOUT(4); CS<=DATAOUT(5);
WR<=DATAOUT(6)OR(NOT T3); LDDR<=DATAOUT(7) AND T4; LDAC<=DATAOUT(8) AND T4; ALU_B<=DATAOUT(9); S0<=DATAOUT(10); S1<=DATAOUT(11);
R3_B<=(DATAOUT(13)OR(NOT I1)OR (NOT I0))AND(DATAOUT(12)OR(NOT I3)OR (NOT I2));
R2_B<=(DATAOUT(13)OR(NOT I1)OR I0)AND(DATAOUT(12)OR(NOT I3)OR I2); R1_B<=(DATAOUT(13)OR(NOT I0)OR I1)AND(DATAOUT(12)OR(NOT I2)OR I3); R0_B<=(DATAOUT(13)OR I1 OR I0)AND(DATAOUT(12)OR I3 OR I2); LDR3<=T4 AND DATAOUT(14)AND I1 AND I0; LDR2<=T4 AND DATAOUT(14)AND I1 AND (NOT I0); LDR1<=T4 AND DATAOUT(14)AND (NOT I1) AND I0; LDR0<=T4 AND DATAOUT(14)AND (NOT I1) AND (NOT I0); LDIR<=DATAOUT(15)AND T3; LDAR<=DATAOUT(16)AND T3;
29
LDPC<=DATAOUT(17)AND T4; LOAD<=DATAOUT(18); END PROCESS; END A;
13.11.6: 微地址转换器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY F2 IS PORT(
D:IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA5,UA4,UA3,UA2,UA1,UA0:OUT STD_LOGIC );
END F2;--微地址转换器 ARCHITECTURE A OF F2 IS BEGIN
UA5<=D(5); UA4<=D(4); UA3<=D(3); UA2<=D(2);
30
UA1<=D(1); UA0<=D(0); END A;
13.11.7: 指令代码转换器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY F3 IS PORT(
D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
UA7,UA6,UA5,UA4,UA3,UA2,UA1,UA0:OUT STD_LOGIC );
END F3;--指令代码转换器,8位 ARCHITECTURE A OF F3 IS BEGIN
UA7<=D(7); UA6<=D(6); UA5<=D(5); UA4<=D(4); UA3<=D(3);
31
UA2<=D(2); UA1<=D(1); UA0<=D(0); END A;
32
正在阅读:
嵌入式CISC模型机设计04-28
天然气站安全操作规程11-27
专升本英语复习资料一05-05
空间缆索悬索桥的主缆线形分析_罗喜恒05-18
缓蚀剂研究进展05-12
初中教师专业技术工作总结03-23
汇贤公学高三数学复习(突破高考系列—函数的图像与性质)10-02
试卷数据库09-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 嵌入式
- 模型
- 设计
- CISC
- 市政道路及给排水工程可研报告
- 2017年高速公路收费站年终工作总结1 精品
- c++语言程序设计课后答案
- 计组复习题(选做)
- 慢性主观性眩晕的生物反馈治疗
- lab15 语义分析与中间代码生成2
- 卢氏县十二五发展规划纲要
- 数据库第一、二、三章课后习题答案
- 2018-2019学年高中新创新一轮复习地理中图版: 外力作用与岩石圈
- java课程设计 - 图文
- 2010年注册规划师规划原理真题
- 临高县科技管理2018年工作总结和2019年工作计划
- 居家养老服务规范doc
- 计算机网络工程4、5次作业
- 村镇银行的背景、意义及概况
- 机电一体化毕业设计论文2012
- 电力公司变电工作票管理规定
- ORBAN 2300压限器说明书
- 一下数学 - 图文
- 江苏省(土建)施工员考试习题集答案土建实务部分(1)