問題タブ [nand2tetris]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cpu-architecture - 実際の FPGA に nand2tetris プロセッサを実装する方法は?
実際の FPGA 上にソフト プロセッサを構築する方法を学ぶことを主な目的として、nand2tetris コース ( https://www.nand2tetris.org/course ) を受講しました。
コースは簡単でしたが、FPGA の実装から始めたので、少し戸惑いました。
Intel de10 nano FPGA ( http://de10-nano.terasic.com/ ) を購入し、Uni から Verilog の知識を得て、「Quartus Prime Lite」をダウンロードし、LED の点滅などの簡単なことでブートストラップすることができました。等...
ただし、プロセッサの実装に関しては、私には明確でないことがいくつかあります。
- データメモリを実装するにはどうすればよいですか? FPGA の HPS に DDR3 モジュールが接続されているのを見ました。これは私が直接使用する必要があるものですか?HDL で大きな 16 ビット レジスタ ベクトルを単純に使用できますか?
- プログラムが読み込まれる場所から ROM を実装するにはどうすればよいですか? アセンブルしたバイナリを保存して、フェッチ、デコード、実行ループをブートストラップするにはどうすればよいですか?
- 画面とキーボードを実装するにはどうすればよいですか? 実際、ボードには HDMI コントローラーもあります。すべてのロジックを自分で実装する必要がありますか?
これらは、私が現在苦労している主な質問です。完全な初心者に役立つリソースを教えてください。
ありがとう、
assembly - ビットローテーションを行うには?
HACK アセンブリ (nand2tetris) でビット ローテーションを実行したいと考えています。例えば:
11110000 は 11100001 になります。
どうすればいいですか?通常のアセンブリにはそれを行うrol構文があることがわかりましたが、HACKアセンブリ用の構文が見つかりません
nand2tetris - Nand to Tetris "pop this 2" を asm にコンパイルする方法
スタックから値をポップして D に入れる方法を知っている
そして、メモリの場所「this 2」を選択する方法を知っています
問題は、両方のステップで D を使用しているため、明らかに使用していることです
M=D
望む結果にはなりません。後で何か値を保持するために2番目のレジスタが必要になると思いますか、それともここに何かが欠けていますか?