Git Product home page Git Product logo

jtsdram's Introduction

JTSDRAM

Checks the sanity of the SDRAM module on MiST and MiSTer systems

Compilation

Add the JTFRAME git submodule following the standard procedure. Read the README file in it to learn about how to compile JTFRAME projects in general.

In summary, you will need to be doing this from a linux workstation and from the project root folder type:

. setprj.sh
jtcore sdram

That is all

Usage

The FPGA will constantly fill the first 8MB of each memory bank with pseudorandom data at a fast pace, but without bank interleaving. Then it will read it back at full speed; that means 96MB/s at 48MHz operation. It will stop during vertical blanking to issue autorefresh commands. Each memory filling is checked four times. Then a new round begins.

If a problem occurs, the screen will turn red, the LED will blink and a high pitch tone will replace the normal one. If only part of the screen turns red, it means that the problem only occured in one bank.

Simulation

Use the macro ONEBANK to simulate only with a single bank. This speeds up simulation.

Phase Invertion

Phase inversion of the SDRAM clock is done in MiSTer by using the altddio_out primitive. This method does not seem to be so different from using phase shifting at the PLL.

SDRAM clock path delay examples:

Clock DDIO/PLL Min Max Delta
48 DDIO 6.2 11.6 5.4
48 PLL 6.8 12.9 6.1
96 DDIO 4.2 8.5 4.3

Clock in MHz, time values in ns.

I don't think instantiating a DDIO cell changes the clock path delay. Quartus seems to promote the PLL output to a global clock net anyway, so there is no reason why the delay should be different.

On top of the delay, the PLL will add a given precise phase shift, and the DDIO will add a fixed 180º shift. In practice, it is not possible to control the phase of the SDRAM clock using either method. Feeding back the delay to the PLL is the only way of doing it and that seems to require an extra pin of the FPGA. The pin must be left unconnected to the PCB as well so it doesn't get loaded.

At the end, it is the synthesis tool that checks that SDRAM I/O constraints are met. Sometimes the extra 180º provided by DDIO may provide better STA results, on other occasions, it will a given phase shift produced at the PLL.

Support

The jotego nickname had already been used by other people so on some networks you will find me as topapate.

Contact via:

You can show your appreciation through

jtsdram's People

Contributors

jotego avatar

Stargazers

Nicolas Sauzede avatar Timothy avatar Brandon Dowdy avatar

Watchers

James Cloos avatar  avatar Kevin Coleman avatar  avatar

Forkers

somhi

jtsdram's Issues

Load a ROM and verify it

Instead of testing with random patterns, use a ROM file: read it, write it and then the next time compare with it. This branch has some work done towards achieving that but it didn't work well.

Update to latest JTFRAME

These FPGA cores are not using the latest JTFRAME with the sdram64 controller. There is a branch to update it but the process is not complete yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.