组成原理实验报告基于硬布线控制器设计并实现毕业论文文档格式.docx
- 文档编号:20485771
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:18
- 大小:86.45KB
组成原理实验报告基于硬布线控制器设计并实现毕业论文文档格式.docx
《组成原理实验报告基于硬布线控制器设计并实现毕业论文文档格式.docx》由会员分享,可在线阅读,更多相关《组成原理实验报告基于硬布线控制器设计并实现毕业论文文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
2、控制状态表:
INTAWRRDIOMS3S2S1S0LDALDBLDR0LDSPL0ADLDARLDIRALUBRSBRDBRIBSPBPCBLDPCSTICLI
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
S22
S23
S24
S25
S26
S27
S28
S29
S30
S31
S32
S33
S34
S35
S36
S37
S38
S39
S40
S41
S42
S43
S44
S45
S46
S47
S48
S49
S50
S51
S52
S53
S54
S55
S56
S57
S58
S59
S60
S61
S62
3、控制引脚图:
五、调试运行结果:
4、VHDL程序:
LIBRARYIEEE;
USEIEEE.std_logic_1164.ALL;
ENTITYCONTROLLERIS
PORT(
RESET:
INSTD_LOGIC;
T1:
INTR:
INS:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CTRL:
OUTSTD_LOGIC_VECTOR(23DOWNTO0)
);
ENDCONTROLLER;
ARCHITECTURECONTROLLER_ARCHOFCONTROLLERIS
TYPESTATEIS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,
S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32,S33,S34,S35,
S36,S37,S38,S39,S40,S41,S42,S43,S44,S45,S46,S47,S48,S49,S50,S51,S52,S53,S54,
S55,S56,S57,S58,S59,S60,S61,S62);
SIGNALCUFSM:
STATE;
--CTRL:
INTA,WR,RD,IOM,S3,S2,S1,S0,LDA,LDB,LDRI,LDSP,LOAD,LDAR,LDIR,ALU_B,RS_B,RD_B,RI_B,SP_B,PC_B,LDPC,STI,CLI
BEGIN
PROCESS(T1,RESET,INTR,INS)
BEGIN
IFRESET='
0'
THEN
CTRL<
="
"
;
--CLI
CUFSM<
=S0;
ELSIFT1'
EVENTANDT1='
1'
THEN
CASECUFSMIS
WHENS0=>
CTRL<
--中断判断
CUFSM<
=S1;
WHENS1=>
IFINTR='
THEN
CTRL<
--R0->
BUS,BUS->
A
CUFSM<
=S33;
ELSECTRL<
=S2;
ENDIF;
WHENS33=>
=S34;
WHENS34=>
=S35;
WHENS35=>
=S36;
WHENS36=>
=S37;
WHENS37=>
=S38;
WHENS38=>
WHENS2=>
=S3;
WHENS3=>
IFINS(7downto4)="
0000"
THEN--ADDINS
=S47;
ELSIFINS(7downto4)="
0001"
THEN--ANDINS
=S48;
0010"
THEN--ININS
=S49;
0011"
THEN--OUTINS
=S50;
0100"
THEN--MOVINS
=S51;
0101"
THEN--HLTINS
=S52;
0110"
THEN--LDIINS
=S53;
ELSIFINS(7downto4)="
0111"
THEN--STIINS
=S54;
1000"
THEN--CLIINS
=S55;
1001"
THEN--PUSHINS
=S56;
1010"
THEN--POPINS
=S57;
1011"
THEN--INETINS
=S58;
ELSIFINS(7downto6)="
11"
ANDINS(3downto2)="
00"
THEN--直接INS
=S59;
01"
THEN--间接INS
=S60;
10"
THEN--变址INS
=S61;
THEN--相对INS
=S62;
WHENS47=>
=S4;
WHENS4=>
=S5;
WHENS5=>
WHENS48=>
=S6;
WHENS6=>
=S7;
WHENS7=>
WHENS49=>
=S8;
WHENS8=>
=S9;
WHENS9=>
WHENS50=>
=S10;
WHENS10=>
=S16;
WHENS16=>
WHENS51=>
WHENS52=>
WHENS53=>
=S17;
WHENS17=>
WHENS54=>
WHENS55=>
WHENS56=>
=S18;
WHENS18=>
=S19;
WHENS19=>
=S20;
WHENS20=>
WHENS57=>
=S21;
WHENS21=>
=S22;
WHENS22=>
=S23;
WHENS23=>
WHENS58=>
=S24;
WHENS24=>
=S25;
WHENS25=>
=S26;
WHENS26=>
WHENS59=>
=S28;
WHENS28=>
=S29;
WHENS60=>
=S30;
WHENS30=>
=S31;
WHENS31=>
=S32;
WHENS61=>
=S39;
WHENS39=>
=S40;
WHENS40=>
=S41;
WHENS41=>
=S42;
WHENS62=>
=S43;
WHENS43=>
=S44;
WHENS44=>
=S45;
WHENS45=>
=S46;
WHENS29=>
1100"
THEN
=S12;
1101"
=S13;
1110"
=S14;
1111"
=S15;
WHENS32=>
WHENS42=>
IFINS(7downto4)="
WHENS46=>
WHENS12=>
B
WHENS13=>
WHENS14=>
WHENS15=>
IFINS="
=S11;
ELSIFINS="
=S27;
WHENS11=>
WHENS27=>
ENDCASE;
ENDIF;
ENDPROCESS;
ENDCONTROLLER_ARCH;
5、机器码验证程序:
$P0060;
LDIR0,13H将立即数13装入R0
$P0113
$P0230;
OUTC0H,R0将R0中的内容写入端口C0中,即写
$P03C0;
ICW1,边沿触发,单片模式,需要ICW4
$P0460;
LDIR0,30H将立即数30装入R0
$P0530
$P0630;
OUTC1H,R0将R0中的内容写入端口C1中,即写
$P07C1;
ICW2,中断向量为30-37
$P0860;
LDIR0,03H将立即数03装入R0
$P0903
$P0A30;
OUTC1H,R0将R0中的内容写入端口C1中,即写
$P0BC1;
ICW4,非缓冲,86模式,自动EOI
$P0C60;
LDIR0,FEH将立即数FE装入R0
$P0DFE
$P0E30;
$P0FC1;
OCW1,只允许IR0请求
$P1063;
LDISP,A0H初始化堆栈指针为A0
$P11A0
$P1270;
STICPU开中断
$P1320;
INR0,00H从端口00(IN单元)读入计数初值
$P1400
$P1541;
LOOP:
MOVR1,R0移动数据,并等待中断
$P16E0;
JMPLOOP跳转,并等待中断
$P1715
;
以下为中断服务程序:
$P2080;
CLICPU关中断
$P2161;
LDIR1,01H将立即数01装入R1
$P2201
$P2304;
ADDR0,R1将R0和R1相加,即计数值加1
$P2430;
OUT40H,R0将计数值输出到端口40(OUT单元)
$P2540
$P2670;
$P27B0;
IRET中断返回
$P3020;
IR0的中断入口地址20
初始化8259,然后原地踏步等待中断,每中断一次R0+1,把R0输出到OUT单元
计算了14次,如out单元:
六、所遇问题及解决方法:
VHDL语言编程主要实现各个分支,这里要参照流程图,细心不出错后面实现就比较简单了。
由于刚接触这种语言,开始犯了很多语法错误,后来在老师的帮助下逐一修改了过来。
后面遇到最多的问题还是实验的接线,由于没有标准的接线图,又没有自己画出模拟图,导致接线错误频出,后来也在老师的帮助下改正了过来。
七、实验总结:
本次实验由于内容较多,编程、设计也十分繁琐,导致小错不断,以后再做类似的工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理 实验 报告 基于 布线 控制器 设计 实现 毕业论文