TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Using SDRAM in FPGA Designs

127 pointsby nullobjectover 5 years ago

10 comments

myelinover 5 years ago
Thank you for releasing this! Last time I needed an SDRAM controller, I had trouble finding anything that was open source, readable, under a permissive license, and published on GitHub. I ended up using this one by Matthew Hagerty in 2014: <a href="http:&#x2F;&#x2F;codehackcreate.com&#x2F;archives&#x2F;444" rel="nofollow">http:&#x2F;&#x2F;codehackcreate.com&#x2F;archives&#x2F;444</a><p>The notes on getting the clocking right are also very much appreciated; that&#x27;s always tricky with SDRAM.
评论 #21612967 未加载
leetbulbover 5 years ago
This is very interesting and well put together. The diagrams are great. Very easy to read and understand as a software developer that rarely interacts with such low level things. Likely because you&#x27;re also a software developer :)<p>I&#x27;m curious about introducing a phase shifted clock with a PLL in order to get the rise&#x2F;fall timings correct. Is that standard in other controller implementations? Is that technique something that&#x27;s used in other, similar situations? It sounds like a pretty generic and simple way to solve timing issues of that nature. I guess I&#x27;m mostly wondering how you came up with that solution and if there are any alternatives? The minds of EE people intrigue me :)
评论 #21614703 未加载
ameliusover 5 years ago
Why isn&#x27;t more of the control logic inside the sdram chip&#x2F;package? Even if you want to save pins it seems the interface could be much simpler.
评论 #21611709 未加载
评论 #21610191 未加载
评论 #21610758 未加载
jdsullyover 5 years ago
SDRAM is cool but DDR3 is better! With LiteDRAM there is even an open source controller. LiteDRAM also works with SDRAM too.
评论 #21610583 未加载
robomartinover 5 years ago
SDRAM control is fairly simple to implement almost right from the state diagrams. Squeezing performance out of the chips is a different matter.<p>Looking at my own controller code from about 15 years ago, you need a 34 state one-hot state machine and the rest comes right out of the diagram and data sheets. Careful placement and layout (I&#x27;m talking both about within the FPGA and on the PCB) does the rest. For example, for best performance you want some of the flip-flops located right at the IOB&#x27;s.<p>Still, it&#x27;s cool that something like this is available for those who, for whatever reason, might choose not to undertake writing their own. Nice.
allenrbover 5 years ago
This is outstanding, thanks Josh! I’ve been getting started with FPGAs and a simple dynamic memory interface with comments and discussion is a huge help.
fargleover 5 years ago
Awesome job. I particularly like the size of the code. When I see that state diagram, or think about what you have to do to control DRAM, or look at other COTS and OpenSource controller cores, I always was super leery of the complexity. This is very tight and clean!<p>Looks like you used wavedrom for timing diagrams. What did you use to make the state diagrams?
bisrigover 5 years ago
As an aside: it looks like the timing diagrams in this article were created with a tool called WaveDrom. I&#x27;ve used this tool in the past and been impressed with what it&#x27;s able to do in terms of creating nice timing diagrams for digital design documentation, a critical part of communicating how these designs (and interfaces!) are supposed to work.
panpannaover 5 years ago
This is very well written and the code looks very clean!<p>It&#x27;s a bit verbose, but mostly because he makes everything parametrized so you can easily customize it for different targets.<p>There are only two things I don&#x27;t like: he is calling some registers latches and he is mixing std_logic_vector and unsigned in the interface.
ameliusover 5 years ago
What compilers are people using for FPGAs? It seems all the compilers are proprietary, and not much fun to use on Linux.
评论 #21610270 未加载
评论 #21610394 未加载
评论 #21612635 未加载