【问题标题】:Memory map instruction/data memory in VHDL.VHDL 中的存储器映射指令/数据存储器。
【发布时间】:2014-10-22 16:19:27
【问题描述】:

我正在设计一个基于 MIPS 的处理器,我的任务是创建一个指令内存和数据内存,并映射以下内存。

您的指令存储器应使用“altsyncram”组件实现,即 32 位输出 总线,一个 8 位地址总线,一个 256 字的容量,并映射到内存块开始 地址0x00400000。

您的数据存储器应使用“altsyncram”组件、32 位输入/输出来实现 总线,一个 8 位地址总线,一个 256 字的容量,并映射到内存块开始 地址 0x10000000。您的数据存储器还应该有 ram enable、write enable 和 byte 启用信号。

但是,我不确定如何在 VHDL 中实现这一点。

【问题讨论】:

  • 家庭作业?如果您真的想学习如何设计 CPU,包括内存映射内存,您可能需要查看之前对 Project on MIPS pipelined processor 的回答中的一些很好的参考资料。
  • 这是一个实验室。 ann.ece.ufl.edu/courses/eel4713_14fal/assignments/assign3.pdf好的,谢谢!我会检查一下。
  • 您的作业是针对单周期实施的。 Morten 的参考是用于制作流水线版本,这是学习过程中的自然进展。在 32 位 MIPS VHDL 模型中描述和显示了一个单周期实现,与您当前的作业有细微的不同(课程文本非常特别)。请注意 EEL-4713C Class Policies 中关于学术诚实的部分,它在此处为响应着色。提出具体问题,这里不是学习 VHDL 的地方。

标签: vhdl memory-mapping


【解决方案1】:

altsyncram 是 Altera 中可用的宏功能。您需要先在 Quartus II 软件中的一个工程下创建它。

您的问题范围太大,无法在一篇文章中回答。

mips 微处理器有多个部分。一个通用的RISC微处理器设计成4级流水线

1)Fetch指令:这里的指令是从程序内存中加载并推送到流水线中的

2)解码指令:这里从1)推送的信息在这里解码。例如,如果指令是 $1 add $2(寄存器 1 加上寄存器 2)那么它将被推送到管道中进行处理

3) 执行指令:这里的信息是通过 ALU 执行的。可以是算术运算、分支比较等

4) 内存回写:如果信息未在通用寄存器集中使用,则将信息回写到存储信息的数据内存中。

您的问题提示了指令获取阶段或内存写回阶段的设计。如果你不熟悉 VHDL,那么你应该先学习它。

如果您在学习计算机体系结构设计的同时尝试学习 VHDL,那么我认为您来错地方了,因为它可能是您在大学中遇到的最难的课程之一。您可以尝试使用 BDF 来查看 Schematic design。

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2022-10-01
    • 2010-09-10
    • 2020-12-12
    相关资源
    最近更新 更多