计算机系统实验:时序电路实验
2019年3月21日
题目:时序电路实验
解释:时序电路的实现相对来讲较为简单,并没有什么特别的东西,唯一需要新学的就是如果用quartus画一张状态机图,并产生相应的vhdl文件。如图所示:
生成的vhdl文件如图所示:
题目:微程序控制器实验1
解释:
首先通过模拟器进行操作,模拟器的文件下载下来后如图所示:
其中HexEdit可执行程序是用来对user_prog文件进行查看后修改,查看之后的文件如图所示:
之后运行simple cpu emulator.exe可执行文件进行运行
start上面是我们的文件,start后开始运行,现在是初始状态,其中pc是计数器,op是指令代码,addr是当前微指令地址,nxt是下一微指令地址,ar是地址寄存器,dr1是暂存器1,dr2是暂存器2,r5是寄存器
初始状态 | |
---|---|
执行pc->ar,pc+1 | |
执行ram->ir进行译码 | |
执行pc->ar,pc+1 | |
执行ram->ar | |
执行ram->r5 | |
执行pc->ar,pc+1 | |
执行ram->ir | |
执行pc->ar,pc+1 | |
执行ram->ar | |
执行ram->dr2 | |
执行r5->dr1 | |
执行alu->r5 | |
执行pc->ar,pc+1 | |
执行ram->ir | |
执行pc->ar,pc+ | |
执行ram->ar | |
执行r5->ram | |
执行pc->ar,pc+1 | |
执行ram->ir | |
执行pc->ar,pc+1 | |
执行ram->ar |
下略
流程图为:
最终结果为:
到此为止结束,结果存放在ram地址为10的位置中
题目:微程序控制器实验2
解释:
下面是rom的excel表格实现:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY rom IS
PORT
(address : IN STD_LOGIC_VECTOR (4 DOWNTO 0);q : OUT STD_LOGIC_VECTOR (27 DOWNTO 0));
END rom;
ARCHITECTURE SYN OF rom IS
SIGNAL sub_wire0 : STD_LOGIC_VECTOR (27 DOWNTO 0);
BEGIN
sub_wire0<=
"1010111100000000000000000001" WHEN address= "00000" ELSE
"1111111000001000000000000010" WHEN address= "00001" ELSE
"1001111100000100000001001000" WHEN address= "00010" ELSE
"1001111100000100000001100000" WHEN address= "01000" ELSE
"1011111000001000000000010101" WHEN address= "01001" ELSE
"1011111000001000000000010111" WHEN address= "01010" ELSE
"1011111000001000000000011001" WHEN address= "01011" ELSE
"1001101100010000000000011011" WHEN address= "01100" ELSE
"1011111000001000000000011100" WHEN address= "01101" ELSE
"1011111000001000000000000011" WHEN address= "01110" ELSE
"1011111000001000000000011101" WHEN address= "01111" ELSE
"1001111100001000000001010110" WHEN address= "10101" ELSE
"1001111110000000000001000001" WHEN address= "10110" ELSE
"1001111100001000000001011000" WHEN address= "10111" ELSE
"1001101100000000000010000001" WHEN address= "11000" ELSE
"1001111100001000000001011010" WHEN address= "11001" ELSE
"1000111100000000000010000001" WHEN address= "11010" ELSE
"1001110110000000000000000001" WHEN address= "11011" ELSE
"1011111100000000000001000001" WHEN address= "11100" ELSE
"1001111100000100000001000100" WHEN address= "00011" ELSE
"1001111100100000000001000101" WHEN address= "00100" ELSE
"1001101100010000000000000110" WHEN address= "00101" ELSE
"1001110110000000000000000001" WHEN address= "00110" ELSE
"1001111100001000000001011110" WHEN address= "11101" ELSE
"1001111100100000000001011111" WHEN address= "11110" ELSE
"1001101100010000000000000111" WHEN address= "11111" ELSE
"1001110110000000000000000001" WHEN address= "00111" ELSE
"1010111100000000000000010001" WHEN address= "10000" ELSE
"1111111000001000000000010010" WHEN address= "10001" ELSE
"1111111000001000000000010100" WHEN address= "10011" ELSE
"1000111100000000000010010001" WHEN address= "10010" ELSE
"1000111100000000000001010011" ;q <= sub_wire0(27 DOWNTO 0);
END SYN;
这是rom的vhdl语言
其中address表示的是当前输入的五位地址,而之前的一个长字符串表示的就是二十八位输出信号,其中包括控制信号,下址信号等等,用来控制当前电路和为下一个时钟周期提供指令的地址。
可以看出是对输入的五位控制信号进行一个判断,根据不同的信号组合产生不同的28位信号输出
以下是电路图截图:
其中第一张表示的是ROM的输出以上部分,包含ROM的输出,其中主要有ROM,用来产生28位输出信号,以及三组八位寄存器用来存储当前输出的信号
其中第二张表示的是ROM的输出以下部分,包含ROM的输入,其中主要有一个八位的寄存器,但我们只用了其中的三位用来存储外部给予的ir三位控制信号以及三组二位D触发器,用来存储输入的五位指令信号,还有一个节拍器,通过外部给予时钟信号,产生四个节拍,使整个控制器有序工作。
现以指令add为例进行分析
add是一条双字节指令,在t1时进行给出当前微地址的微指令,然后在t2时给出下址,放入到7474地址寄存器组中,在t3时取出指令,从IR7…5进行输入,将结果输入到74244寄存器中进行存储,在t4时通过给rom进行译码操作给出相应的下址重新返回给7474地址寄存器组。具体操作如下:
比方说add指令的前地址为0FH
进入之后先执行pc->ar和pc+1操作,用来从RAM中取出完整的ADD指令,此时的下址为03H
然后执行RAM->AR操作,将RAM中的数据取出放入AR中,此时的下址为04H
然后再执行RAM->DR2操作,将RAM中的数据取出放入DR2暂存器,用来进行计算,此时的下址为05H
再进行R5->DR1操作,将R5寄存器中的数据取出放入DR1暂存器,用来后续进行计算,此时的下址为06H
再进行ALU->R5操作,将DR1和DR2两个暂存器中的数据进行相加操作后将结果放入R5寄存器中,此时的下址为01H
此时再进行跳转,整个指令执行结束。
以下为仿真文件以及仿真结果:
以下为下载结果:
计算机系统实验:时序电路实验相关推荐
- 实验三 时序电路实验
一.实验步骤与实验结果 第一步:创建一个工程项目.首先实现连续节拍脉冲发生器电路. 电路图如下: 图1.1 连续节拍脉冲发生器电路 仿真图如下: 图1.2 节拍脉冲发生器工作波形 分析此仿真图:当R ...
- 模拟电子技术实验,模拟电路实验课程装置
模拟电路主要指电压(或电流)对于真实信号成比例的再现.其主要特点是:1.函数的取值为无限多个;2.当图像信息和声音信息改变时,信号的波形也改变,即模拟信号待传播的信息包含在它的波形之中(信息变化规律直 ...
- 山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路
山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路实验, 山东大学计算机组成与设计实验, 山东大学计算机组成与设计实验报告, 计算机组成原理实验报告, 山东大学计算机组成原理实验报告 文章目录 实 ...
- 数电实验(组合逻辑电路、时序电路,555定时器)
本文章为数电实验整理内容,其电路仿真资料可以在我的资料中自行下载,其包括所说内容全部仿真内容. 一.组合逻辑电路的设计与验证 利用 二输入四与非门74LS00和二输入四异或门74LS86和LED来达到 ...
- EDA实验(Quartus Ⅱ+fpga) (二)---时序电路的设计-模可变计数器设计
前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码.使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6. (一)实验目的 (1)进一步熟悉E ...
- 双 JK 触发器 74LS112 逻辑功能。真值表_数电实验 | 时序逻辑电路
实验仪器 Multisim电路仿真 逻辑分析仪 函数发生器 单刀双掷开关 74LS73 双J-K触发器 3片 74LS175 四D触发器 1片 74LS160 十进制计数器 1片 74LS08 二输入 ...
- 信号完整性分析心得体会_电路实验的实验心得体会
电路分析的实验心得怎么写 一般对学生严格些的老师,都想看到学生真正学到了哪些东西,所以写实验心得不要写虚的内容. 1. 在这次实验中对XX原理(具体的内容,不要很空洞的)有新的认识:(. 不要再写原理 ...
- 计算机组成原理时序部件实验,计算机组成原理课设计报告时序发生器.doc
计算机组成原理课设计报告时序发生器,时序发生器,时序脉冲发生器,时序信号发生器,内存的原理和时序,sdram原理与时序,时序图的主要组成要素,组成时序图的元素包含,内存原理和时序,组成时序图的元素 计 ...
- 实验三 可综合时序逻辑电路实验
实验三 可综合时序逻辑电路实验 由于typora无法直接向CSDN导入图片,所以删掉了时序仿真以及使用步骤中的图片. 一 .实验目的 掌握可综合Verilog语言进行时序逻辑设计的使用: 学习测试模块 ...
最新文章
- 2017云计算及工业物联网论坛即将于广州开幕
- html中实现th标签添加分页,html – 如何在Angular 4中为表添加分页?
- python3.6 安装Scrapy
- 【NLP】Kaggle从零到实践:Bert中文文本分类
- android nio debug模式正常 release包crash_Flutter包大小治理上的探索与实践
- 投入10个亿,每人奖300万,腾讯给科学界发奖了!
- CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
- 小米随身wifi的linux驱动,小米随身wifi驱动
- Python 算法设计(2) - 大数运算 - 基于字符串的数字运算和进位
- Java Socket 编程学习(5) TCP UDP总结
- python隐藏窗口_python怎么隐藏界面?
- 不知道照片如何拼图?这3个方法能帮上你
- 嚣张!泡沫见到橡胶硫化消泡粉还不跪地求饶
- 几个比较好的国外网站
- 大数据基础教程丨TiDB数据库从入门到实践
- Markdown书写软件Typora的使用 -- 渲染(让你的Typora更上档次)
- 79g道闸雷达_79GHz道闸雷达调试软件
- Cannot access ‘state‘ before initialization
- MySQL使用GROUP BY分组时如何留下指定的行
- android studio环境下如何修改app名字