新闻  |   论坛  |   博客  |   在线研讨会
HESG440355R3 内核发出写地址和写数据
15359029662 | 2023-04-14 16:28:01    阅读:124   发布文章

HESG440355R3 内核发出写地址和写数据

DI93a HESG440355R3 (4).jpg

我提出这一切来开始另一个故事。

让我们回到上面提到的善良绅士Pi的故事。Pi 想为他购买的一些硬件构建一个ZipCPU设计。我没有他的硬件副本,但可以肯定的是,继续,复制我的一个设计并将其放置到您的硬件上。上帝保佑,并有一个冒险!

他的硬件需要一个 SDRAM 控制器。我提出了我自己的一个,但警告他:并非所有的 SDRAM 芯片和协议都是相同的。所需的时序可以从一个芯片改变到另一个。内存大小可以更改等。

我不确定他是怎么做到的,但他确实设法让它发挥作用。

后来,我对 ZipCPU做了一些更新。这些更改包括错误修复,因此值得为新的 ZipCPU升级他的设计。问题是,当他升级他的设计时,它停止工作了。他说,你的 CPU 是问题所在。

好吧,如果ZipCPU有错误,那么我想修复它。

也就是说,这让我有点进退两难:这是一位善良的退休绅士。他没钱雇工程师。我花在修复他的错误上的时间永远不会得到报酬,而且当时我的盘子里有要求很高的工作。另一方面, ZipCPU中的错误 会影响我的工作,我会努力让我的 github 存储库正常工作和调试。

所以,我花了一个星期六来调试他的问题。

果然,这不是 ZipCPU中的错误。是的, ZipCPU测试用例不再在他的硬件上运行,但问题不在 ZipCPU 他的问题是由于他复制的 SDRAM 控制器配置错误,然后更改以匹配他的芯片。那是在对 SDRAM 的工作原理了解甚少(如果有的话)的情况下进行的复制和更改。

这是最好的巫术工程:

Voodoo Engineering,Defn: 改变未损坏的,试图修复损坏的。

更糟糕的是,SDRAM RTL 被以一种方式修改,SDRAM 仿真模型 不再匹配。

因此,作为一位好心的老师,我试图指出,如果他的设计在仿真中不起作用,他就没有必要在硬件上运行或调试他的设计。

事实上,我走得更远:我指出他设计的 SDRAM 部分有一个错误。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客