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 连续节拍脉冲发生器电路 仿真图如下: 图1.2  节拍脉冲发生器工作波形 分析此仿真图:当R ...

  2. 模拟电子技术实验,模拟电路实验课程装置

    模拟电路主要指电压(或电流)对于真实信号成比例的再现.其主要特点是:1.函数的取值为无限多个;2.当图像信息和声音信息改变时,信号的波形也改变,即模拟信号待传播的信息包含在它的波形之中(信息变化规律直 ...

  3. 山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路

    山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路实验, 山东大学计算机组成与设计实验, 山东大学计算机组成与设计实验报告, 计算机组成原理实验报告, 山东大学计算机组成原理实验报告 文章目录 实 ...

  4. 数电实验(组合逻辑电路、时序电路,555定时器)

    本文章为数电实验整理内容,其电路仿真资料可以在我的资料中自行下载,其包括所说内容全部仿真内容. 一.组合逻辑电路的设计与验证 利用 二输入四与非门74LS00和二输入四异或门74LS86和LED来达到 ...

  5. EDA实验(Quartus Ⅱ+fpga) (二)---时序电路的设计-模可变计数器设计

    前言: 本文主要介绍了EDA原理与应用这门课程的相关实验及代码.使用的软件是Quartus Ⅱ,该实验使用fpga芯片为cycloneⅤ 5CSEMA5F31C6. (一)实验目的 (1)进一步熟悉E ...

  6. 双 JK 触发器 74LS112 逻辑功能。真值表_数电实验 | 时序逻辑电路

    实验仪器 Multisim电路仿真 逻辑分析仪 函数发生器 单刀双掷开关 74LS73 双J-K触发器 3片 74LS175 四D触发器 1片 74LS160 十进制计数器 1片 74LS08 二输入 ...

  7. 信号完整性分析心得体会_电路实验的实验心得体会

    电路分析的实验心得怎么写 一般对学生严格些的老师,都想看到学生真正学到了哪些东西,所以写实验心得不要写虚的内容. 1. 在这次实验中对XX原理(具体的内容,不要很空洞的)有新的认识:(. 不要再写原理 ...

  8. 计算机组成原理时序部件实验,计算机组成原理课设计报告时序发生器.doc

    计算机组成原理课设计报告时序发生器,时序发生器,时序脉冲发生器,时序信号发生器,内存的原理和时序,sdram原理与时序,时序图的主要组成要素,组成时序图的元素包含,内存原理和时序,组成时序图的元素 计 ...

  9. 实验三 可综合时序逻辑电路实验

    实验三 可综合时序逻辑电路实验 由于typora无法直接向CSDN导入图片,所以删掉了时序仿真以及使用步骤中的图片. 一 .实验目的 掌握可综合Verilog语言进行时序逻辑设计的使用: 学习测试模块 ...

最新文章

  1. 2017云计算及工业物联网论坛即将于广州开幕
  2. html中实现th标签添加分页,html – 如何在Angular 4中为表添加分页?
  3. python3.6 安装Scrapy
  4. 【NLP】Kaggle从零到实践:Bert中文文本分类
  5. android nio debug模式正常 release包crash_Flutter包大小治理上的探索与实践
  6. 投入10个亿,每人奖300万,腾讯给科学界发奖了!
  7. CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
  8. 小米随身wifi的linux驱动,小米随身wifi驱动
  9. Python 算法设计(2) - 大数运算 - 基于字符串的数字运算和进位
  10. Java Socket 编程学习(5) TCP UDP总结
  11. python隐藏窗口_python怎么隐藏界面?
  12. 不知道照片如何拼图?这3个方法能帮上你
  13. 嚣张!泡沫见到橡胶硫化消泡粉还不跪地求饶
  14. 几个比较好的国外网站
  15. 大数据基础教程丨TiDB数据库从入门到实践
  16. Markdown书写软件Typora的使用 -- 渲染(让你的Typora更上档次)
  17. 79g道闸雷达_79GHz道闸雷达调试软件
  18. Cannot access ‘state‘ before initialization
  19. MySQL使用GROUP BY分组时如何留下指定的行
  20. android studio环境下如何修改app名字

热门文章

  1. 联想复兴,Q2电脑销量升1.5%,稳居全球PC榜首
  2. 调用系统的警告框(MessageBoxButtons)
  3. open cv roi提取_使用pytesseract open cv从扫描的pdf中提取文本
  4. OpenCV 答题卡识别
  5. 马云:网络借钱很方便,1分钟到账,年轻一代从不担心钱的问题
  6. Linux 修改局域网内ip地址
  7. linux ip地址文件夹,linux设置IP地址
  8. 离线安装Oracle数据库
  9. matlab中plot函数用法
  10. 李权晟:11.23今日黄金行情走势分析及布局策略