SDRAMメモ
#CPU実験
CPU実験のレイトレ(See 例のレイトレをDockerで動かす)はバイナリサイズだけで600KBくらいになりそうで(x86のバイナリサイズがこのくらい)、Artix-7クラスのFPGAボードのもつブロックRAM(100KB〜500KB)だけで動かすのは難しそう(※1)。なのでSDRAMの使い方を覚える必要がありそう。
MinCamlの実行時に「1MB」のスタック領域と「4MB」のヒープ領域を確保している。最低限でもこれくらいのメモリの確保が必要だとすると、ブロックRAMだけでは領域不足なのは確実。SDRAMは必須っぽい。
code:min-caml/stub.c
9 int main( int argc, char *argv[] ) {
10 char *hp, *sp;
11
12 sp = alloca(1000000); hp = malloc(4000000);
13 if (hp == NULL || sp == NULL) {
14 fprintf(stderr, "malloc or alloca failed\n");
15 return 1;
16 }
以下SDRAMに関する雑多なメモ。
自作CPUへのSDRAMの組み込み
Zucker の SDRAM コントローラを自作CPUへ組み込んだよ
Zucker が利用している PicoRV32 と同じメモリバスを採用していたおかげで、ほぼそのまま組み込めた
Zucker SOCのSDRAMコントローラを使えば自作CPU上でULX3SのSDRAMを利用できそう
Zucker SOCの動かし方(とSDRAMの動作確認方法)
SDRAMをメインメモリとするMIPS-CPUのFPGA化
http://aitech.ac.jp/lib/kiyou/40B/B09.pdf
先端コンピュータアーキテクチャ
http://www.ocw.titech.ac.jp/index.php?module=General&action=T0300&GakubuCD=4&GakkaCD=342323&KeiCD=23&course=23&KougiCD=201804864&Nendo=2018&lang=JA&vid=05
(第3回 記憶階層がメモリコントローラに関係ありそうな)
LiteDRAM
https://github.com/enjoy-digital/litedram
TANG PriMER搭載のSDRAMを使ってみる
http://shibatchii.cocolog-nifty.com/blog/2020/07/post-dad6f1.html
DDR3_SDRAMにおけるコマンドとオペレーション
https://ja.wikipedia.org/wiki/DDR3_SDRAMにおけるコマンドとオペレーション
DRAMに関するメモ
https://ko-burogu.blogspot.com/2014/02/blog-post.html
エルピーダ SDRAMの使い方
http://2908.work/Okiba/SDRAM_How_to_J0123N82.pdf
https://github.com/stffrdhrn/sdram-controller
https://web.archive.org/web/20140216123839/http://hamsterworks.co.nz/mediawiki/index.php/SDRAM_Memory_Controller
http://ladybug.xs4all.nl/arlet/fpga/source/sdram.v
https://github.com/nullobject/sdram-fpga
https://cse.unl.edu/~jfalkinburg/cse_courses/2017/ECE383_web/lab/lab6/lab6.html
https://github.com/alonsorb/ddr-ram-controller-mig
MAX10でSDRAMを制御
http://esyokunin.dee.cc/13x_Rx621Max10/211_Max10_SdRam_Rx231/211_Max10_SdRam_Rx231.html
ハードウェア実験 第8回 AXI-SDRAM
https://docs.google.com/presentation/d/1XxY1W8YhElLiQdcQoMi4dOgt3oedG6hMlOVcpadG6lU/mobilepresent?slide=id.p
AXI BlockRAM Controller
https://japan.xilinx.com/support/documentation/ip_documentation/axi_bram_ctrl/v4_1/pg078-axi-bram-ctrl.pdf
SDRAM付きのボードを用意するまではブロックRAMで練習すれば良いかな
vivadoでaxiバスを利用
https://dora.bk.tsukuba.ac.jp/~takeuchi/?電気回路%2FHDL%2FVivadoでAXIバスを利用
Design and implementation of SDRAM Controller
https://www.researchgate.net/profile/Sahul_Hameed6/publication/269711137_Design_and_Implementation_of_SDRAM_Controller_in_FPGAs/links/5583b66108ae8bf4ba6f9f3b/Design-and-Implementation-of-SDRAM-Controller-in-FPGAs.pdf?origin=publication_detail
SDRAM controller user guide
http://ebook.pldworld.com/_semiconductors/Agate%20Logic/20090312104529887.pdf
https://forum.digilentinc.com/topic/2827-simple-code-for-ddr3-sdram/
簡単なSDRAMコントローラの作り方