首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在实际的FPGA上实现nand2tetris处理器?

如何在实际的FPGA上实现nand2tetris处理器?
EN

Stack Overflow用户
提问于 2021-03-14 17:17:29
回答 2查看 829关注 0票数 1

我学习了nand2tetris课程(https://www.nand2tetris.org/course),主要目的是学习如何在一个真正的FPGA上构建一个软处理器。

虽然课程很简单,但现在我从FPGA实现开始,我感到有点迷茫。

我买了一个英特尔de10纳米FPGA(http://de10-nano.terasic.com/),我从Uni获得了一些Verilog的知识,我可以下载"Quartus Prime“,用简单的东西如led闪烁等进行引导。

然而,当涉及到实现处理器时,有几件事情我不太清楚:

  • 如何实现数据内存?我看到有一个DDR3模块附加在FPGA的HPS上。这是我需要直接使用的东西吗?我能否简单地使用HDL中的16位寄存器向量?
  • 如何从程序读取的位置实现ROM?如何存储我组装好的二进制文件,然后引导提取解码执行循环?
  • 如何实现屏幕和键盘?事实上,董事会上还有一个HDMI控制器:我必须自己实现所有的逻辑吗?

这些是我目前正在努力解决的主要问题。你能告诉我任何对新手有用的资源吗?

谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-16 09:16:49

对于像nand2tetris中的CPU这样简单的东西,您可以使用块RAMs,DE10Nano上有足够多的块RAMs,可以满足您的所有需求。再加上一些分布式内存。

如果您仍然希望访问DDR,则DE10Nano是一个由处理器子系统管理的硬DDR控制器的SoC。在Avalon总线上与它进行接口非常容易(除非您确实需要最大的性能,否则不要费心使用AXI )。

对于ROM,只需使用LUTs。在Verilog中的一个简单的静态案例将被转换成一个高效的基于LUT的ROM.

为了在DE10Nano上访问HDMI,您可以查看这个示例:https://github.com/combinatorylogic/soc/blob/a1d282d793548030cba940496bed90ff3a29c0ba/backends/c2/hw/de10nano/vga1080p.v (您还可以查看同一个项目中的DDR )。在使用HDMI之前,您需要在ADV7513上设置i2c芯片,请参阅同一个项目下来自Terasic的库的副本。

对于单色800x600视频,您可以使用块RAM。为了获得更高的分辨率,如上面的示例所示,您必须使用DDR。

票数 5
EN

Stack Overflow用户

发布于 2021-03-18 14:19:52

我在一个小型nand2tetris (ice40HX8K)上完成了ice40HX8K硬件的实现,下面是我的建议:

A.内存原始nand2tetris使用两个内存部分:

  1. ROM用于指令代码
  2. RAM用于数据存储器

两者都可以用fpga的BRAM单元来实现.它们有一个很好的特性,BRAM可以在启动时预装数据。这是有用的预加载ROM与您的指令代码。如果你有很多布拉姆,你会没事的。我的板(从Olimex来的ice40HX8K-EVB)只有8Kx16bit的BRAM。所以我做了以下几件事:

  1. I使用512x16位的BRAM作为ROM预加载一个引导加载器(用BRAM的
  2. 写为RAM (7680x16位)
  3. ,我的板上有一个外部SRAM芯片(256 kx16位)。我用这个作为指令存储器。在启动时,引导加载程序使用应用程序代码填充SRAM,而不是将SRAM“切换”为指令内存。

你的板上有一个分开的DRAM芯片。您也可以使用DRAM作为内存,但请注意:使用DRAM比使用SRAM要复杂得多。

输入/输出nand2tetris有一个屏幕和一个键盘。

一个容易实现的替代方案可以是:实现一个小的UART,这样您就可以通过终端连接您的PC (例如屏幕/devttyACM0)。现在,您可以在运行时与您的Hack-CPU (在fpga中运行)交谈。我还使用UART在启动时上传Hack-Application。

看看我的回购:https://gitlab.com/x653/nand2tetris-fpga

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

https://stackoverflow.com/questions/66627417

复制
相关文章

相似问题

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