MEM in logisim
- 地址宽度2~24,地址宽度(Address Bit Width)是24位,则能够表示的地址数量是$ 2 ^ {24} = 16,777,216$,每个数值最多占用32位(Data Bit Width)。
- RAM支持修改数值,通过poke tool实现
- 内存中的值直接显示在元器件上面,地址是在每一行的开头以灰色显示。
支持三种模式,默认为:同步store/load
最右边是数据,既可以作为读也可以作为写
ld信号线=1表示从address读数据,ld=0表示往address写数据。需要配合controlled buffer来实现数据读写
controlled buffer
three state buffer:三态缓冲器,最下面是1bit控制信号,如果控制信号是1,则元器件执行buffer(左侧元器件)或非门逻辑(右侧元器件);如果控制信号是0或未知, 输出也是浮动的。
three state inverter:
Pins
A: 最左侧,决定访问哪个地址的数据
D:最左侧,这个输入线只有在"separate load and store ports"有效时才会显示
D:最右侧,如果sel和ld是1,RAM会在D口发射出选定地址的数据。如果是单一的load/store口,从这个口读出的数据会被store
sel:选择信号,如果是1,表示整块unit有效,0表示无效
三角符号:时钟信号
ld:决定是否将从A读取的地址的数据从D口输出,1表示输出,0表示不会有数据从D口输出,但如果只有一个口即作为load又作为store,那么store会被开启
例如proj3的mem.circ如下图所示
其中Write_Data有32位,是一个4B大小的数据,第8位的一个字节数据,被输入到第一块RAM中,因为一块RAM的数据单元大小是1B,所以把Write_Data的每个字节分别写入一个RAM是对的。
现在这右边的线是红的,这个clk是一个pin,固定输入0,改成clk unit后,如下
step once, 输出信号有效
时钟信号上升
数据到蓝圈处,即将得到输出,输出也是4B,每个数值是8bit,表示一个字节,共4字节组合成最终输出
本文来自博客园,作者:ijpq,转载请注明原文链接:https://www.cnblogs.com/ijpq/p/16222237.html