- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组原课设_硬布线逻辑
评语: 课中检查完成的题号及题数: 成绩: 自评分: 95
实验报告
实验名称: 基于硬布线控制器设计并实现
带中断功能的复杂模型机 日期: 2013-12-31
本人信息 班级: 学号: 姓名: 同组同学信息 班级: 学号: 姓名:
一、实验目的: 1. 掌握硬布线的控制器的组成原理、设计方法 2. 了解硬布线的控制器和微程序控制器的各自优点 3. 用硬布线控制器实现一个带有中断功能的复杂模型机
二、实验内容: 1. 编写机器指令测试程序运行情况以及中断响应。 2. 用VHDL语言编写带有中断的硬件程序 3. 用CM3P联机调试进行中断复杂机的构造和模拟
三、项目要求及分析: 要设计实现带有中断功能的复杂模型机,可采用以下步骤完成:
1. 根据带中断功能的复杂模型机的微程序流程图,画出状态机描述图
2. 根据机器指令文件确定控制器控制信号位
3.根据定义好的控制信号位以及微程序执行流程,编写VHDL源程序,编译
4.搭建程序测试环境,分配管脚,将程序载入CM3P测试机
5.联机测试指令
四、具体实现: 应包括:状态图、控制信号表、控制引脚图、VHDL程序、机器码验证程序等。
状态图:
控制信号表:
控制引脚图:
CTRL
SIGNAL INTA WR RD IOM S3 S2 S1 S0 LDA LDB LDR0 STM LOAD LDAR LDIR ALU_B RS_B RD_B RI_B SP_B PC_B LDPC STI CLI RET T1 INS7-INS0 PIN 60 59 58 57 56 55 54 53 49 48 47 46 45 44 06 05 43 42 41 23 04 02 215 214 153 154 17-10 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 = 00000000010011010; --NOP
CUFSM = S0;
ELSIF T1EVENT AND T1 = 1 THEN
CASE CUFSM IS
WHEN S0 =
CTRL = 00000000011011001; --PC-AR,PC+1
CUFSM = S1;
WHEN S1 =
CTRL = 01000000010111010; --MEM-BUS,BUS-IR
CUFSM = S2;
WHEN S2 =
IF INS = THEN --ADD INS
CTRL = 00000001010010010; --R0-BUS,BUS-A
CUFSM = S3;
ELSIF INS =THEN -- IN INS
CTRL = 01100000010011110; --IN-BUS,BUS-R0
CUFSM = S6;
ELSIF INS =THEN -- OUT INS
CTRL = 10100000010010010; --R0-BUS,BUS-OUT
CUFSM = S7;
ELSIF INS =THEN -- HLT INS
CTRL = 00000000010011010; --NOP
CUFSM = S8;
原创力文档


文档评论(0)