{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,21]],"date-time":"2026-01-21T08:54:48Z","timestamp":1768985688776,"version":"3.49.0"},"reference-count":33,"publisher":"Association for Computing Machinery (ACM)","issue":"4","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2025,12,31]]},"abstract":"<jats:p>\n                    We propose\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    , a synthesizable high-performance DDR4 DRAM soft Memory Controller (MC) for FPGAs. Since DRAMs usually operate at a higher frequency compared to MCs (usually\n                    <jats:inline-formula content-type=\"math\/tex\">\n                      <jats:tex-math notation=\"LaTeX\" version=\"MathJax\">\\(4\\times\\)<\/jats:tex-math>\n                    <\/jats:inline-formula>\n                    ), to fully utilize DRAM\u2019s bandwidth, the hardened DDR4 physical interface expects the controller to issue four DRAM commands in a single clock cycle.\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    is a modular, extensible MC, implementing high-performance bank-parallel schedulers. We detail the design of\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    \u2019s logic blocks in RTL and their integration with existing AMD\u2019s Memory Interface Generator (MIG) modules for initialization, maintenance, and interfacing. The integrated project was comprehensively validated on an AMD Virtex UltraScale+ FPGA. We evaluate and compare the performance of\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    with AMD\u2019s MIG controller and another open source controller, OPRECOMP, using synthetic and accelerator kernels. Results show that\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    surpasses both commercial and open source counterparts, offering performance improvements of up to 157% over AMD\u2019s MIG and 267% over OPRECOMP, primarily owing to its reordering and scheduling mechanisms. To demonstrate its research use case, we prototype five distinct command schedulers, exploring tradeoffs between scheduling aggressiveness and maximum frequency, and show how FPGA-aware design can enhance timing closure. Finally, we release\n                    <jats:sans-serif>OpenDRAM<\/jats:sans-serif>\n                    as the first high-performance, extensible, open source MC for researchers to utilize, extend, and build upon.\n                  <\/jats:p>","DOI":"10.1145\/3772724","type":"journal-article","created":{"date-parts":[[2025,10,23]],"date-time":"2025-10-23T14:20:31Z","timestamp":1761229231000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["OpenDRAM: A Modular, High-performance Soft Memory Controller for DDR4 DRAM"],"prefix":"10.1145","volume":"18","author":[{"ORCID":"https:\/\/orcid.org\/0009-0002-0832-2189","authenticated-orcid":false,"given":"Ali","family":"Abbasi","sequence":"first","affiliation":[{"name":"Department of Electrical and Computer Engineering, McMaster University, Hamilton, Ontario, Canada"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-5085-9101","authenticated-orcid":false,"given":"Danesh","family":"Germchi","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, University of Waterloo, Waterloo, Ontario, Canada"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-9757-0570","authenticated-orcid":false,"given":"Amin","family":"Katani","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, McMaster University, Hamilton, Ontario, Canada"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5926-5861","authenticated-orcid":false,"given":"Mohamed","family":"Hassan","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, McMaster University, Hamilton, Ontario, Canada"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7331-804X","authenticated-orcid":false,"given":"Rodolfo","family":"Pellizzoni","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, University of Waterloo, Waterloo, Ontario, Canada"}]}],"member":"320","published-online":{"date-parts":[[2025,12,4]]},"reference":[{"key":"e_1_3_1_2_2","unstructured":"AMD. 2015. AXI4 to AHB-Lite Bridge v3.0 Product Guide (PG177). Retrieved from https:\/\/docs.amd.com\/v\/u\/en-US\/pg177-axi-ahblite-bridge"},{"key":"e_1_3_1_3_2","unstructured":"AMD. 2025. UltraScale Architecture-Based FPGAs Memory IP LogiCORE IP Product Guide (PG150). Retrieved from https:\/\/docs.amd.com\/r\/en-US\/pg150-ultrascale-memory-ip\/"},{"key":"e_1_3_1_4_2","unstructured":"JEDEC Solid State Technology Association. 2012. DDR4 SDRAM Standard (JESD79-4). JEDEC Standard JESD79-4. Retrieved from https:\/\/www.jedec.org\/sites\/default\/files\/docs\/JESD79-4.pdf"},{"key":"e_1_3_1_5_2","unstructured":"EnjoyDigital. 2022. LiteDRAM: A Small Footprint and Configurable DRAM Core Powered by Migen and LiteX. Retrieved from https:\/\/github.com\/enjoy-digital\/litedram"},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2017.62"},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2857379"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECRTS.2020.23"},{"key":"e_1_3_1_9_2","unstructured":"Intel Corporation. 2023. External Memory Interfaces Intel\u00ae Agilex\u00ae 7 M-Series FPGA IP User Guide. Intel Corporation. Retrieved from https:\/\/cdrdv2-public.intel.com\/780941\/ug-772538-780941.pdf"},{"key":"e_1_3_1_10_2","unstructured":"TU Kaiserslautern. 2022. DDR4 Memory Controller. Retrieved from https:\/\/github.com\/oprecomp\/DDR4_controller"},{"key":"e_1_3_1_11_2","unstructured":"Florent Kermarrec S\u00e9bastien Bourdeauducq Jean-Christophe Le Lann and Hannah Badier. 2020. LiteX: An open-source SoC builder and library based on Migen Python DSL. arXiv:2005.02506. Retrieved from https:\/\/arxiv.org\/abs\/2005.02506"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2014.6925998"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2010.5416658"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.51"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2015.2414456"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2020.2973991"},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2023.3333759"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/LCA.2020.3008288"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2007.21"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.7"},{"key":"e_1_3_1_21_2","first-page":"C242","volume-title":"2013 Symposium on VLSI Circuits","author":"Na Taesik","year":"2013","unstructured":"Taesik Na, Yong Shim, Indal Song, Jeong-Kyoum Kim, Seokhun Hyun, Jun-Bae Kim, Jung-Hwan Choi, Chi-Wook Kim, Jung-Bae Lee, and Joo Sun Choi. 2013. A heterogeneous dual DLL and quantization error minimized ZQ calibration for 30nm 1.2V 4Gb 3.2Gb\/s\/pin DDR4 SDRAM. In 2013 Symposium on VLSI Circuits. IEEE, Kyoto, Japan, C242\u2013C243."},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.24"},{"key":"e_1_3_1_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/3563697"},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2006.870808"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2019.2912307"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2007.4336216"},{"key":"e_1_3_1_27_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2004.22"},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/339647.339668"},{"key":"e_1_3_1_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2016.2526003"},{"key":"e_1_3_1_30_2","unstructured":"Synopsys. 2023. DDR5\/4 Controller IP. Retrieved from https:\/\/www.synopsys.com\/dw\/doc.php\/ds\/c\/dwc_ddr5_4_ctlr_ds.pdf"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669119"},{"key":"e_1_3_1_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2013.6531079"},{"key":"e_1_3_1_33_2","unstructured":"ZipCPU. 2024. UberDDR3. Retrieved from https:\/\/github.com\/AngeloJacobo\/UberDDR3"},{"key":"e_1_3_1_34_2","unstructured":"W. K. Zuravleff and T. Robinson. 1997. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order. Retrieved from https:\/\/patents.google.com\/patent\/US5630096A\/en"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3772724","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,12,4]],"date-time":"2025-12-04T14:41:52Z","timestamp":1764859312000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3772724"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,12,4]]},"references-count":33,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2025,12,31]]}},"alternative-id":["10.1145\/3772724"],"URL":"https:\/\/doi.org\/10.1145\/3772724","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"value":"1936-7406","type":"print"},{"value":"1936-7414","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,12,4]]},"assertion":[{"value":"2025-06-26","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-10-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-12-04","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}