Resbi发表回复 6年3个月前
肥肠感谢!总体来看,用两个4bit凑8Bit加上外部电路这样方法可能是最优的,一不影响代码量,二省去了数据处理的那点延时
m24h
m24h发表回复 6年3个月前
我没用过双端口SRAM但是看了一下文档感觉应该能满足你的要求在同一时刻读出直接回写应该是可能的相当于内部锁存器的输出直接串入输入但是这种用法没有文档上的保证如果能用外部锁存器和读写时序的辅助设计那就更稳妥了但是我总觉得这样不是好的设计思路即使完全满足你还得附加设计高4位低4位区别性的逻辑有时候回写高4位有时候低4位
Resbi发表回复 6年3个月前
感谢创友们积极提供方案这个帖子是作为试一下的尝试来问问有没有这样的IC的也欢迎不同的解决方案,毕竟没有这样的片子的话最后还是要靠别的方法代替的
Resbi发表回复 6年3个月前
😅在考虑其实解决方案挺多的
m24h
m24h发表回复 6年3个月前
两个4bit应该不难设计外围逻辑 在需要时候做8bit寻址和读写 在另一情况做4bit寻址和读写啊
m24h发表回复 6年3个月前
不太明白为啥8bit指令就不能用两个4bit的 合容易 分难啊
Resbi发表回复 6年3个月前
哈哈^_^
zx-16533
power_rdx发表回复 6年3个月前
后抓的公松鼠因为没精力照顾,送给朋友养了,结果朋友照顾不周,松鼠中暑挂了
脉冲宽度
zx-16533发表回复 6年3个月前
好吧,看来这个单周期和通常理解的不大一样😂
Resbi
Resbi发表回复 6年3个月前
我建议去看一些正经的书,我这都是常年累月积累的想法得到的IDEA,不是那么的正经,甚至可能会成为一些人的批判对象,所以,233
zx-16533
93师长发表回复 6年3个月前
天气,,就像北方冬天没有蚊子苍蝇,中医讲五运六气,疫情就算不控制,麦收也会结束,就是代价太大了。
Resbi发表回复 6年3个月前
有其实严格意义上来说每条指令是两个时钟第一个时钟固定为取指时钟,是固定的两条微指令,将取得的指令代码存入解码寄存器然后PC自增一第二个时钟是第一个时钟所取得的指令的功能性时钟,通过解码寄存器保存的指令寻址得到对应的微指令,然后执行第二个时钟过去以后就无视解码寄存器当中的数据,重新开始取指,运行,取指,运行
zx-16533
zx-16533发表回复 6年3个月前
没有把下一条指令从内存载入这个过程么
Resbi
Resbi发表回复 6年3个月前
时钟高边沿:控制内存输出给处理模块,某个寄存器的数据通过输出给处理模块,处理模块将处理过的数据输出给内存的输入口时钟低边沿:保留高边沿操作,同时给RAM一个clk,写入大概就是这么一个过程,一个时钟完事
zx-16533
zx-16533发表回复 6年3个月前
这样的话考虑从内存读取指令这一步就得有三个端口了?
Resbi
Resbi发表回复 6年3个月前
可以这么说吧
zx-16533发表回复 6年3个月前
哦哦,就是有两个端口可以操作是吗
Resbi
Resbi发表回复 6年3个月前
读出的数据通过控制连接给输入,连接过程中对字的保留和拼接进行操作,只需要几个逻辑门就可
zx-16533
zx-16533发表回复 6年3个月前
这样的话似乎还是要有两个周期才能读一次写一次啊
Resbi
Resbi发表回复 6年3个月前
CPU的CU给的233
zx-16533
zx-16533发表回复 6年3个月前
没懂,操作寄存器也得有个CLK啊
Resbi
Resbi发表回复 6年3个月前
我做的U比较简单,内存没有时钟233这个CPU访问内存就和访问寄存器一样
zx-16533
zx-16533发表回复 6年3个月前
不过我还是没搞懂每个指令单周期,内存时钟和机器同步是怎么做成冯诺依曼结构的。这样看的话,就算不考虑这个问题,读写指令这个周期内也肯定会有一次读(取指)和一次读/写啊
Resbi
Resbi发表回复 6年3个月前
对对对,我的描述太糟糕了(趴)抱歉我觉得这个办法可行,也确实考虑过是不是真的要用这个办法,但是我还是觉得本着试一试的态度来问问有没有符合需求的RAM这块CPU目前已经在Minecraft里面做出来了,因为游戏里可以实现符合需求的RAM如果到最后实在不行了,你说的这样或许是最好的选择随之而来的后果就是代码量增加不过对比起每条指令只给单时钟对代码量造成的影响,这点影响似乎又算不了什么了
zx-16533
zx-16533发表回复 6年3个月前
我明白你的意思了,就是写入内存这个操作需要额外的一读一写,因为要保留剩下半边应该可以把这个指令拆开,一个指令是整个载入到一个锁存器,操作完了再用一个指令整个写回去
Resbi发表回复 6年3个月前
那我先去买一个双端口RAM来试验一下
Resbi发表回复 6年3个月前
也就是说大概率我只能自己用寄存器造一个符合要求的RAM了?(趴)
0x00000000
Resbi发表回复 6年3个月前
双端口RAM某宝搜一下两位数,但是为了项目我觉得可以付出一下,价值观差异价值观差异,233用FPGA来做的话确实简单了,但是因为一些原因,,个人追求吧,所以想用74搭说出来可能又会被骂,这是我小时候的愿望之一233
0x00000000
0x00000000发表回复 6年3个月前
还有就是读写同一个地址恐怕不行,会有冲突的,如果要设计这样的模块,我的想法是发现这种冲突的话就先缓存写操作等到读操作完成后再在下一个时钟把缓存的数据写到之前读过的地址。至于商品的双端口RAM是怎样处理读写冲突的,并不清楚,但可能没办法实现你的想法。
0x00000000发表回复 6年3个月前
如果你打算用FPGA或者CPLD实现这个CPU路就宽很多,哪怕没有IP核还可以自己编写这个模块。如楼上所说,一个双端口RAM就能满足要求,用VHDL之类的语言很容易实现,但是独立的物理芯片嘛,不知道。我的水货毕业设计就是关于双端口RAM实现的,也做了简单的背景调查,市场上有一些高性能的双端口RAM芯片是有的,但是用在你这上面显然有点浪费,价格不菲啊。
zx-16533发表回复 6年3个月前
这样的话如果能在编译器或者其他阶段规避写到正在取指的这个RAM地址的话就能用双端口的RAM或者做成哈佛结构,用俩RAM
Resbi
竹林听雨发表回复 6年3个月前
难道用音频CODEC零中频采样??采样率够么
dddggg412
脉冲宽度发表回复 6年3个月前
后来抓的公松鼠和第一次抓的母松鼠关系如何了?又下崽了吗?还是分着养呢?
Resbi发表回复 6年3个月前
但是每条指令我只打算给一个时钟(趴)多给一个时钟的话压根就不会有这种问题了造成同时输入输出的需求是在操纵RAM的时候,读取指令完全没有这个需求
zx-16533
zx-16533发表回复 6年3个月前
不是很懂,如果是为了同时读取指令并操作RAM的话错开下时序,这个时钟读指令译码第二个时钟再写RAM不就行了么
Resbi
Resbi发表回复 6年3个月前
谢谢(哭)我去看看我在做一个4位CPU,每条指令只有一个微指令,所以因为指令是8Bit的所以只能用8位宽的RAM芯片总线是4位,要在写入一个字(4Bit)的情况下保留同一个字节下的另一个字,所以要同时读出保存在这个字节的信息,然后提取另一个字,再结合要写入的字,写入到指定地址中这样,造成了同时输出和写入的需求
zx-16533
zx-16533发表回复 6年3个月前
看来得找双端口的RAM,不过即使是双端口的RAM也没法一边读一边写一个地址。是要做Register File么,有专门的这类芯片,比如74ls670
Resbi发表回复 6年3个月前
实在不行的话,我只能译码器和寄存器手动搭一个了(哭)
Resbi发表文章 6年3个月前
【求IC】数据输出输入引脚分离的DIP封装并行RAM或者EEPROM芯片
做一些项目要用,最好是在输出某地址的数据的同时能修改这个地址的数据现在找到的大部分都是一般的输入输出合并的,或者是这种支持双I/O的,但是不确定能不能实现我想要的功能所以过来问问,有没有这样的RAM或者EEPROM芯片功能类似于Logisim当中设置了“输出输入分离”的RAM
delta1017发表文章 6年3个月前
整理下各和谐试剂制法
论坛里搜索了下几个和谐试剂的制备,有很多帖子,但很多无疾而终,没有最终结果,在这里整理下成功的,弄出个目录,供在帝都等特别和谐地区的人参考。后续还有一些氧化剂/还原剂还有几个nc的原料,但帖子太多,还需要一定时间。硫酸I.硫酸铜电解法 2CuSO4 + 2H2O = 2Cu+ 2H2SO4 + O2↑ 原料:硫酸铜,水,铂电极,铜电极离子反应方程式为:阳极:4OH—+4e—=2H2O+O2↑ 阴极...
dddggg412发表回复 6年3个月前
这种不可能用内置AD,都是用的外置AD.
竹林听雨
dddggg412发表回复 6年3个月前
JLINK次次被很快破解,这玩意也不会例外。
actionchen