【求IC】数据输出输入引脚分离的DIP封装并行RAM或者EEPROM芯片
中文摘要
询问有没有数据输出输入引脚分离的DIP封装并行RAM芯片

做一些项目要用,最好是在输出某地址的数据的同时能修改这个地址的数据

现在找到的大部分都是一般的输入输出合并的,或者是这种


BB}RK@)(F96X[OKZ}6EQK41.png
支持双I/O的,但是不确定能不能实现我想要的功能

所以过来问问,有没有这样的RAM或者EEPROM芯片

功能类似于Logisim当中设置了“输出输入分离”的RAM

3GCXFNP6PV`5V%{IIGNZU52.png


来自:聊天生活广场 / 快乐DIY聊天生活广场 / 科创茶话
2020-2-7 22:10:27
Resbi(作者)
1楼

实在不行的话,我只能译码器和寄存器手动搭一个了(哭)

折叠评论
加载评论中,请稍候...
折叠评论
2楼

看来得找双端口的RAM,不过即使是双端口的RAM也没法一边读一边写一个地址。

是要做Register File么,有专门的这类芯片,比如74ls670

[修改于 16 天前 - 2020-02-07 22:13:47]

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
3楼
引用 radio 发表于 2 楼的内容:
看来得找双端口的RAM,不过即使是双端口的RAM也没法一边读一边写一个地址。是要做Register

谢谢(哭)我去看看

我在做一个4位CPU,每条指令只有一个微指令,所以因为指令是8Bit的所以只能用8位宽的RAM芯片

总线是4位,要在写入一个字(4Bit)的情况下保留同一个字节下的另一个字,所以要同时读出保存在这个字节的信息,然后提取另一个字,再结合要写入的字,写入到指定地址中

这样,造成了同时输出和写入的需求

[修改于 16 天前 - 2020-02-07 22:19:38]

折叠评论
加载评论中,请稍候...
折叠评论
4楼
引用 Resbi 发表于 3 楼的内容:
谢谢(哭)我去看看我在做一个4位CPU,每条指令只有一个微指令,所以因为指令是8Bit的所以只能用8.....

不是很懂,如果是为了同时读取指令并操作RAM的话错开下时序,这个时钟读指令译码第二个时钟再写RAM不就行了么

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
5楼
引用 radio 发表于 4 楼的内容:
不是很懂,如果是为了同时读取指令并操作RAM的话错开下时序,这个时钟读指令译码第二个时钟再写RAM不.....

但是每条指令我只打算给一个时钟(趴)

多给一个时钟的话压根就不会有这种问题了

造成同时输入输出的需求是在操纵RAM的时候,读取指令完全没有这个需求

折叠评论
加载评论中,请稍候...
折叠评论
6楼
引用 Resbi 发表于 5 楼的内容:
但是每条指令我只打算给一个时钟(趴)多给一个时钟的话压根就不会有这种问题了造成同时输入输出的需求是在.....

这样的话如果能在编译器或者其他阶段规避写到正在取指的这个RAM地址的话就能用双端口的RAM

或者做成哈佛结构,用俩RAM

折叠评论
加载评论中,请稍候...
折叠评论
7楼

如果你打算用FPGA或者CPLD实现这个CPU路就宽很多,哪怕没有IP核还可以自己编写这个模块。如楼上所说,一个双端口RAM就能满足要求,用VHDL之类的语言很容易实现,但是独立的物理芯片嘛,不知道。我的水货毕业设计就是关于双端口RAM实现的,也做了简单的背景调查,市场上有一些高性能的双端口RAM芯片是有的,但是用在你这上面显然有点浪费,价格不菲啊。

折叠评论
1
加载评论中,请稍候...
折叠评论
8楼

还有就是读写同一个地址恐怕不行,会有冲突的,如果要设计这样的模块,我的想法是发现这种冲突的话就先缓存写操作等到读操作完成后再在下一个时钟把缓存的数据写到之前读过的地址。

至于商品的双端口RAM是怎样处理读写冲突的,并不清楚,但可能没办法实现你的想法。

折叠评论
1
加载评论中,请稍候...
折叠评论
Resbi(作者)
9楼
引用 radio 发表于 6 楼的内容:
这样的话如果能在编译器或者其他阶段规避写到正在取指的这个RAM地址的话就能用双端口的RAM或者做成哈.....

如果要实现写入单个字保留当前字节下的另一个字的话,那对内存的需求是不变的,还是需要输出同时能写入

除非不打算保留当前字节下的所有字,写入字的同时另一个字清零,就没有这个麻烦了

取指的时候地址忽略最低一位,所以是一个字节一个字节取的,指令位置是固定的233

我的设计允许我做成冯诺依曼,而且改动也非常小,所以干脆就做冯了233

[修改于 16 天前 - 2020-02-07 22:45:47]

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
10楼
引用 0x00000000 发表于 7 楼的内容:
如果你打算用FPGA或者CPLD实现这个CPU路就宽很多,哪怕没有IP核还可以自己编写这个模块。如楼.....

双端口RAM某宝搜一下两位数,但是为了项目我觉得可以付出一下,价值观差异价值观差异,233

用FPGA来做的话确实简单了,但是因为一些原因,,个人追求吧,所以想用74搭

说出来可能又会被骂,这是我小时候的愿望之一

233

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
11楼
引用 0x00000000 发表于 8 楼的内容:
还有就是读写同一个地址恐怕不行,会有冲突的,如果要设计这样的模块,我的想法是发现这种冲突的话就先缓存.....

也就是说大概率我只能自己用寄存器造一个符合要求的RAM了?(趴)

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
12楼

那我先去买一个双端口RAM来试验一下

折叠评论
加载评论中,请稍候...
折叠评论
13楼
引用 Resbi 发表于 9 楼的内容:
如果要实现写入单个字保留当前字节下的另一个字的话,那对内存的需求是不变的,还是需要输出同时能写入除非.....

我明白你的意思了,就是写入内存这个操作需要额外的一读一写,因为要保留剩下半边

应该可以把这个指令拆开,一个指令是整个载入到一个锁存器,操作完了再用一个指令整个写回去

折叠评论
1
加载评论中,请稍候...
折叠评论
Resbi(作者)
14楼
引用 radio 发表于 13 楼的内容:
我明白你的意思了,就是写入内存这个操作需要额外的一读一写,因为要保留剩下半边应该可以把这个指令拆开,.....

对对对,我的描述太糟糕了(趴)抱歉

我觉得这个办法可行,也确实考虑过是不是真的要用这个办法,但是我还是觉得本着试一试的态度来问问有没有符合需求的RAM

这块CPU目前已经在Minecraft里面做出来了,因为游戏里可以实现符合需求的RAM

如果到最后实在不行了,你说的这样或许是最好的选择

随之而来的后果就是代码量增加

不过对比起每条指令只给单时钟对代码量造成的影响,这点影响似乎又算不了什么了

折叠评论
加载评论中,请稍候...
折叠评论
15楼
引用 Resbi 发表于 14 楼的内容:
对对对,我的描述太糟糕了(趴)抱歉我觉得这个办法可行,也确实考虑过是不是真的要用这个办法,但是我还是.....

不过我还是没搞懂每个指令单周期,内存时钟和机器同步是怎么做成冯诺依曼结构的。

这样看的话,就算不考虑这个问题,读写指令这个周期内也肯定会有一次读(取指)和一次读/写啊

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
16楼
引用 radio 发表于 15 楼的内容:
不过我还是没搞懂每个指令单周期,内存时钟和机器同步是怎么做成冯诺依曼结构的。这样看的话,就算不考虑这.....

我做的U比较简单,内存没有时钟233

这个CPU访问内存就和访问寄存器一样

折叠评论
加载评论中,请稍候...
折叠评论
17楼
引用 Resbi 发表于 16 楼的内容:
我做的U比较简单,内存没有时钟233这个CPU访问内存就和访问寄存器一样

没懂,操作寄存器也得有个CLK啊

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
18楼
引用 radio 发表于 17 楼的内容:
没懂,操作寄存器也得有个CLK啊

CPU的CU给的

233

折叠评论
加载评论中,请稍候...
折叠评论
19楼
引用 Resbi 发表于 18 楼的内容:
CPU的CU给的233

这样的话似乎还是要有两个周期才能读一次写一次啊

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
20楼
引用 radio 发表于 19 楼的内容:
这样的话似乎还是要有两个周期才能读一次写一次啊

读出的数据通过控制连接给输入,连接过程中对字的保留和拼接进行操作,只需要几个逻辑门就可

折叠评论
加载评论中,请稍候...
折叠评论
21楼
引用 Resbi 发表于 20 楼的内容:
读出的数据通过控制连接给输入,连接过程中对字的保留和拼接进行操作,只需要几个逻辑门就可

哦哦,就是有两个端口可以操作是吗

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
22楼

可以这么说吧

折叠评论
加载评论中,请稍候...
折叠评论
23楼
引用 Resbi 发表于 22 楼的内容:
可以这么说吧

这样的话考虑从内存读取指令这一步就得有三个端口了?

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
24楼
引用 radio 发表于 23 楼的内容:
这样的话考虑从内存读取指令这一步就得有三个端口了?

时钟高边沿:控制内存输出给处理模块,某个寄存器的数据通过输出给处理模块,处理模块将处理过的数据输出给内存的输入口

时钟低边沿:保留高边沿操作,同时给RAM一个clk,写入

大概就是这么一个过程,一个时钟完事

折叠评论
加载评论中,请稍候...
折叠评论
25楼
引用 Resbi 发表于 24 楼的内容:
时钟高边沿:控制内存输出给处理模块,某个寄存器的数据通过输出给处理模块,处理模块将处理过的数据输出给.....

没有把下一条指令从内存载入这个过程么

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
26楼
引用 radio 发表于 25 楼的内容:
没有把下一条指令从内存载入这个过程么

其实严格意义上来说每条指令是两个时钟

第一个时钟固定为取指时钟,是固定的两条微指令,将取得的指令代码存入解码寄存器然后PC自增一

第二个时钟是第一个时钟所取得的指令的功能性时钟,通过解码寄存器保存的指令寻址得到对应的微指令,然后执行

第二个时钟过去以后就无视解码寄存器当中的数据,重新开始取指,运行,取指,运行

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
27楼
引用 radio 发表于 25 楼的内容:
没有把下一条指令从内存载入这个过程么

我建议去看一些正经的书,我这都是常年累月积累的想法得到的IDEA,不是那么的正经,甚至可能会成为一些人的批判对象,所以,233

折叠评论
加载评论中,请稍候...
折叠评论
28楼
引用 Resbi 发表于 26 楼的内容:
有其实严格意义上来说每条指令是两个时钟第一个时钟固定为取指时钟,是固定的两条微指令,将取得的指令代码.....

好吧,看来这个单周期和通常理解的不大一样

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
29楼
引用 radio 发表于 28 楼的内容:
好吧,看来这个单周期和通常理解的不大一样

哈哈^_^

折叠评论
加载评论中,请稍候...
折叠评论
2020-02-08 00:15:35
30楼

不太明白为啥8bit指令就不能用两个4bit的 合容易 分难啊

折叠评论
加载评论中,请稍候...
折叠评论
31楼

两个4bit应该不难设计外围逻辑 在需要时候做8bit寻址和读写 在另一情况做4bit寻址和读写啊

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
32楼
引用 m24h 发表于 30 楼的内容:
不太明白为啥8bit指令就不能用两个4bit的 合容易 分难啊

在考虑

其实解决方案挺多的

折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
33楼

感谢创友们积极提供方案

这个帖子是作为试一下的尝试来问问有没有这样的IC的

也欢迎不同的解决方案,毕竟没有这样的片子的话最后还是要靠别的方法代替的

折叠评论
加载评论中,请稍候...
折叠评论
34楼

我没用过双端口SRAM

但是看了一下文档感觉应该能满足你的要求

在同一时刻读出直接回写应该是可能的

相当于内部锁存器的输出直接串入输入

但是这种用法没有文档上的保证

如果能用外部锁存器和读写时序的辅助设计

那就更稳妥了

但是我总觉得这样不是好的设计思路

即使完全满足

你还得附加设计高4位低4位区别性的逻辑

有时候回写高4位有时候低4位





折叠评论
加载评论中,请稍候...
折叠评论
Resbi(作者)
35楼
引用 m24h 发表于 34 楼的内容:
我没用过双端口SRAM但是看了一下文档感觉应该能满足你的要求在同一时刻读出直接回写应该是可能的相当于.....

肥肠感谢!

总体来看,用两个4bit凑8Bit加上外部电路这样方法可能是最优的,一不影响代码量,二省去了数据处理的那点延时

折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png