Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Building SDRAM Controller in Verilog from Scratch
Rating: 4.5 out of 5(19 ratings)
225 students

Building SDRAM Controller in Verilog from Scratch

Using Vivado 2024
Created byKumar Khandagle
Last updated 4/2025
English
English

What you'll learn

  • Architecture of 3rd Gen SDRAM memories
  • Building Initialization, Write, Read modules from scratch
  • Building Self refresh & Auto refresh modules
  • Mode Register usage & Understanding Write and Read transactions of SDRAM
  • Use Micron SDRAM model to test codes

Course content

10 sections102 lectures4h 48m total length
  • DRAM Resources0:04
  • How Single DRAM Cell write operate3:54

    Explore how a single sdram cell stores data using an NMOS switch and a capacitor, with a bit line and a word line enabling write and read operations.

  • How Single DRAM Cell read operate P14:30

    Learn how a single DRAM cell reads and writes data by charging or discharging its capacitor via word and bit lines, with pre-charge to VDD/2 and a sense amplifier.

  • How Single DRAM Cell read operate P23:10

    Reading a single dram cell is destructive: the process precharges the bit line, senses one or zero, then refreshes by applying vdd for a one or zeroing the line.

  • Why periodic refresh is required in DRAM P12:40

    Explain why DRAM capacitors leak and how SDRAM uses auto refresh and self-refresh to refresh 4096 rows within 64 milliseconds, triggering refresh by an internal counter at 15.62 microseconds.

  • Why periodic refresh is required in DRAM P21:39

    Learn why DRAM requires periodic refresh to preserve data, since reads are destructive and capacitors leak charge, a concept extended in SDRAM. Refresh every 15.62 microseconds for 4096 rows.

  • Understanding First Generation DRAM controllers P13:06

    Understand how first generation DRAM stores 1024 bits with a 10-bit address bus (5 row, 5 column) across 32×32 intersections, and timing constraints like TAC and TAAW.

  • Understanding First Generation DRAM controllers P23:09

    Explore how first generation asynchronous DRAM uses a C pin to separate refresh from read/write, with manual row addressing and three-transistor cells.

  • Understanding First Generation DRAM controllers P31:19

    Compare first-generation DRAM with 1024 cells, each 3T, featuring independent word and bit lines and asynchronous operation. Explain second generation with a single transistor and capacitor, address multiplexing, and array.

  • Understanding First Generation DRAM controllers P42:35

    Identify how row and column addresses select a specific cell for write and read operations. Highlight how first generation limits—capacity, independent address lines, timing, and refresh—shaped SDRAM improvements.

  • Self Evaluation Exercise0:03

Requirements

  • Fundamentals of Digital Electronics and Verilog

Description

This course offers a comprehensive journey into SDRAM controller design, starting with Day 1, where learners explore the fundamentals of DRAM cell operation, including how read and write operations work and why periodic refresh is mandatory, followed by an overview of the evolution of DRAM controller generations and the basics of first-generation controller design. Day 2 delves deeper into the architecture of second and third-generation DRAMs, introduces the internal block diagram of an SDRAM controller, and outlines the course design roadmap. On Day 3, participants learn the importance of SDRAM initialization, build flowcharts and FSMs, and implement the INIT module with complete testbench coding. Day 4 focuses on auto-refresh mechanisms, covering the design and verification of the refresh FSM and control logic. Day 5 explains how SDRAM enters low-power self-refresh mode, guiding learners through FSM design and testbench development for the self-refresh generator. Day 6 explores mode register programming, detailing the transactions and configuration of key parameters such as burst length and CAS latency. Day 7 covers write path design, highlighting DQM pin usage, write timing, FSM construction, and testbench verification. Day 8 addresses read path design by teaching SDRAM read timing and the development and testing of the read module. Day 9 introduces enhanced write control by addressing how to manage write operations during auto-refresh events and building a refresh-aware write controller. Finally, Day 10 brings all components together—INIT, AREF, SREF, WRITE, READ, and MODE—into a unified SDRAM controller design, preparing learners with the foundational knowledge required to transition confidently into DDR-based memory system design.

Who this course is for:

  • Anyone wish to work with modern memories.