首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CPU设计中ROM延迟是如何计算的

问在CPU设计中ROM延迟是如何计算的
EN

Stack Overflow用户
提问于 2016-03-11 13:32:16
回答 1查看 602关注 0票数 2

我正试图为Altera FPGA设计一个简单的VHDL CPU。然而,我正试图让我的头脑如何解释的延迟引起的ROM块。ROM块本身可以同时具有输入地址和输出数据,或者仅仅是输入地址时钟,在数据请求(设置地址)之间给出一个或2个时钟周期延迟,并返回数据。

我可以理解,如果ROM本质上是一个庞大的数据穆X,做一些像跳转这样的事情是微不足道的,因为你只是设置了地址,到了下一个时钟周期,正确的指令就会出现!我只是不太明白如何在ROM和CPU之间使用延迟来管理这个问题。据我所知,每条指令都需要知道是取一条新指令,修改PC程序计数器(跳转)还是停滞(保持PC机不变),但如果有两个周期的延迟,指令还需要知道两个周期吗?

如何为这种系统编写一台PC?

作为参考,内存数据宽度将与指令大小相同,因此每个内存位置存储一条指令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 14:37:02

在FPGA上,只要输入地址寄存器的延时为1个时钟周期,几乎就足够了。然后,您可以使用PC寄存器的下一个值而不是当前值来寻址ROM。

下一个值是将被加载到寄存器中的值,该值具有下一个上升(或下降)时钟边缘。下一个值也将被加载到具有相同时钟边缘的ROM地址寄存器中。因此,这两个寄存器将有相同的内容和ROM实际上交付数据(新的) PC后,时钟边缘。

ROM输出存储在指令寄存器中,如果您有两个以上的流水线级。在这种情况下,您将自动拥有一个ROM输出寄存器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35941578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档