用RAM存储器构造能够依次读取各存储单元内容的电路

本文介绍了一种使用RAM存储器构建电路的方法,该电路能够依次读取存储单元内容。通过不断改进电路设计,实现了地址写入、数据读出及地址刷新的自动化操作。

1 用RAM存储器构造能够依次读取各存储单元内容的电路

首先看一下我们的RAM存储器:
在这里插入图片描述
为了读取其中的内容,我们可以构造如下的电路:
在这里插入图片描述
对于上述电路我们需要不停的点击各个按键,为了能够简化操作,我们继续对电路进行改进:
在这里插入图片描述
RR的初始值为001。点击第一次按键完成写入地址的操作,点击第二次按键完成读出数据的操作,点击第三次按键完成刷新地址的操作。


参考资料:

  1. 深度学习:C/C++、计算机体系
计算机组织与体系结构课程设计\n\n一、实验目的\n\n1.深入理解基本模型计算机的功能、组成知识;\n\n2.深入学习计算机各类典型指令的执行流程;\n\n3.学习微程序控制器的设计过程和相关技术,掌握LPM_ROM的配置方法。\n\n4.在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。\n\n5.定义五条机器指令,并编写相应的微程序,上机调试,掌握计算机整机概念。掌握微程序的设计方法,学会编写二进制微指令代码表。\n\n6.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。\n\n二、实验原理\n\n课程设计提供了1个基础的CPU平台,允许使用存储在ROM中的24位微代码对数据通路、下一指令系统进行控制以达到运算能力。\n\n\n\n图1  数据通路框图\n\n其中对微代码的定义为:\n\n表1  24位微代码定义:\n\n24\n\n23\n\n22\n\n21\n\n20\n\n19\n\n18\n\n17\n\n16\n\n15 14 13\n\n12 11 10\n\n987\n\n6\n\n5\n\n4\n\n3\n\n2\n\n1\n\nS3\n\nS2\n\nS1\n\nS0\n\nM\n\nCn\n\nWE\n\nA9   A8\n\nA\n\nB\n\nC\n\nuA5\n\nuA4\n\nuA3\n\nuA2\n\nuA1\n\nuA0\n\n                 \n\n式内S、M、Cn指示了ALU操作,WE指示了对RAM的读写操作选择。\n\nA9A8指示了系列操作,00时使得通路接受input内容,01时使得通路接受RAM的读操作,10时使得通路向LED传递消息,11时无相关操作,可以向RAM进行写操作。\n\nA指示了对通路其他部件的写入操作,000时无操作,001时允许写入通用寄存器,010时允许写入LDDR1,011时允许写入LDDR2,100时允许写入IR寄存器,101时使得PC寄存器自增,110时允许写入AR。\n\nB指示了通路其他部件的读出操作,000时无操作,001时使得通路读取通用寄存器内容,101时读取ALU输出内容,110时读取PC寄存器内容。\n\n关于通用寄存器的读写将遵从IR寄存器的下4位,分别指示了来源寄存器和目的寄存器,支持r0,r1,r2。\n\nC指示了分支操作与其他,000时无操作,001时进入P(1)分支,进行1次IR寄存器的判断: 若高4位为0H,1H,2H,3H,4H,则跳转到当前指令、偏移1,2,3,4条指令进行执行,100时进行P(4)分支,将对外部所输入的key4,key3指示进行指令的偏移跳转与执行,101时使得通路读取AR寄存器,110时使得通路读取PC寄存器。\n\n最后6位uA指示了下一指令地址。\n\n三、实验步骤\n\n该微程序实现了算数运算和逻辑运算以及栈模拟。SUB指令实现了输入的数据和ram中固定位置的一个数的相减,NOT实现了取反运算,Make允许在指定的RAM地址上建立向高地址生长的栈。Push允许在指定的RAM地址上的栈的存储输入内容,同时使栈顶指针+1。Pop允许危险地在指定的RAM地址上的栈弹出内容,并使栈顶指针减1。\n\n\n\n图2  rom.mif\n\n\n\n图3 ram.mif\n\n\n\n图4 流程图\n\n四、实验要求\n\n1.实验之前应认真准备,写出实验步骤和具体设计内容;\n\n2.实验前应掌握所有控制信号的作用;\n\n3.掌握在QuartusII环境下,采用图形编辑方法的设计技术;\n\n4.掌握在微程序控制下机器指令的写入、读出、和程序执行方法;\n\n5.掌握LPM_RAM的配置方法,实现对机器指令输入;\n\n6.掌握微程序的设计方法,学会编写二进制微指令代码表。\n\n7.掌握对LPM_ROM的配置方法,实现微指令代码表的输入。\n\n8.通过液晶屏,观察各相关寄存器、ALU、DR1、PC、IR、AR、BUS等内容的变化情况,根据表6-2微程序控制流程,单步跟踪微程序的执行情况。通过INPUT(键2、键1)输入运算数据,跟踪程序的执行情况,并详细记录每条微指令执行后,相关单元输出数据的变化情况,依次执行机器指令,从而验证所设计的正确性。在完成基本验证实验后,根据这5条指令,自行设计程序、输入和调试,记录实验数据。\n\n       \n\n        在课程验收时展示了任意输入下、安全数值的SUB、NOT、MAKE、PUSH、POP。\n\n五、实验总结\n\n本实验让我从计算机的最底层开始设计指令,其中可用的资源很有限,与一般的语言编写十分不同,这次是直接通过指令的位来操作寄存器,每一个位都有关键的作用,容错率非常低,比如说在模拟栈运行的过程中,就会出现栈顶指针的操作不及时导致在错误的地址取数的情况。应该在程序设计阶段就考虑程序的严谨性,避免在指令编写阶段失误
最新发布
09-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值