diff --git a/example_demo/alinx_ax7103b/ax7103_ddr3.v b/example_demo/alinx_ax7103b/ax7103_ddr3.v index dd58b72..a260f41 100644 --- a/example_demo/alinx_ax7103b/ax7103_ddr3.v +++ b/example_demo/alinx_ax7103b/ax7103_ddr3.v @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/example_demo/alinx_ax7325b/ax7325b_ddr3.v b/example_demo/alinx_ax7325b/ax7325b_ddr3.v index 0773307..7f2d10d 100644 --- a/example_demo/alinx_ax7325b/ax7325b_ddr3.v +++ b/example_demo/alinx_ax7325b/ax7325b_ddr3.v @@ -17,7 +17,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/example_demo/arty_s7/arty_ddr3.v b/example_demo/arty_s7/arty_ddr3.v index d654e5f..ef299c3 100644 --- a/example_demo/arty_s7/arty_ddr3.v +++ b/example_demo/arty_s7/arty_ddr3.v @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/example_demo/enclustra_kx2_st1/enclustra_ddr3.v b/example_demo/enclustra_kx2_st1/enclustra_ddr3.v index 0574947..1df9e34 100644 --- a/example_demo/enclustra_kx2_st1/enclustra_ddr3.v +++ b/example_demo/enclustra_kx2_st1/enclustra_ddr3.v @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/example_demo/qmtech_wukong/wukong_ddr3.v b/example_demo/qmtech_wukong/wukong_ddr3.v index df9ddf5..0fc69a1 100644 --- a/example_demo/qmtech_wukong/wukong_ddr3.v +++ b/example_demo/qmtech_wukong/wukong_ddr3.v @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/example_demo/sechzig_mx2/sechzig_mx2_ddr3.v b/example_demo/sechzig_mx2/sechzig_mx2_ddr3.v index de857b6..6219492 100644 --- a/example_demo/sechzig_mx2/sechzig_mx2_ddr3.v +++ b/example_demo/sechzig_mx2/sechzig_mx2_ddr3.v @@ -16,7 +16,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // Copyright (C) 2024 Lone Dynamics Corporation // // This program is free software: you can redistribute it and/or modify diff --git a/rtl/ddr3_controller.v b/rtl/ddr3_controller.v index 4768686..ede1081 100644 --- a/rtl/ddr3_controller.v +++ b/rtl/ddr3_controller.v @@ -17,7 +17,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/rtl/ddr3_phy.v b/rtl/ddr3_phy.v index 5211865..927098e 100644 --- a/rtl/ddr3_phy.v +++ b/rtl/ddr3_phy.v @@ -11,7 +11,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/rtl/ddr3_top.v b/rtl/ddr3_top.v index 7d26733..ca7c550 100644 --- a/rtl/ddr3_top.v +++ b/rtl/ddr3_top.v @@ -10,7 +10,7 @@ // //////////////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2023-2024 Angelo Jacobo +// Copyright (C) 2023-2025 Angelo Jacobo // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/rtl/spd/spd_reader.v b/rtl/spd/spd_reader.v index 7187753..f493db9 100644 --- a/rtl/spd/spd_reader.v +++ b/rtl/spd/spd_reader.v @@ -1,3 +1,34 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Filename: spd_reader.v +// Project: Serial Presence Detect (SPD) Reader for UberDDR3 +// +// Purpose: Communicates with the SPD (Serial Presence Detect) chip on the +// DDR3 DIMM using the I2C protocol to retrieve essential timing parameters +// and configuration details required by UberDDR3. The SPD report will be +// reported via the UART line. +// +// Engineer: Angelo C. Jacobo +// +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2023-2025 Angelo Jacobo +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +//////////////////////////////////////////////////////////////////////////////// + `default_nettype none `timescale 1ns / 1ps @@ -15,15 +46,6 @@ module spd_reader ( output wire uart_tx ); - // byte 2: DRAM Device Type (DDR3 SDRAM = 0x0B) - // byte 3: Module Type (SO-DIMM = 0x03) - // byte 4: SDRAM Density and Banks ([6:4] = BA_BITS, [3:0] = SDRAM capacity) - // byte 5: SDRAM Addressing ([5:3] = Row Addr , [2:0] = Column Addr) - // byte 7: Module Organization ([5:3] = Ranks , Device Width = [2:0]) - // byte 8: Module Memory Bus Width ([2:0] = Bus Width) - // byte 10,11: Medium Timebase (MTB) Dividend (0x01), Medium Timebase (MTB) Divisor (0x08 = 0.125ns , 0x10 = 0.0625ns) (tXX = tXX(MTB) * MTB) - // byte 12: SDRAM Minimum Cycle Time tCK - localparam I2C_ADDRESS = 7'h30; localparam IDLE = 0, READ_ADDRESS = 1, diff --git a/rtl/spd/spd_reader_top.v b/rtl/spd/spd_reader_top.v index 906df0c..b7647b4 100644 --- a/rtl/spd/spd_reader_top.v +++ b/rtl/spd/spd_reader_top.v @@ -1,3 +1,29 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Filename: spd_reader_top.v +// Project: Top-level file for SPD reader (intended for AX7325B FPGA board) +// +// Engineer: Angelo C. Jacobo +// +//////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2023-2025 Angelo Jacobo +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +//////////////////////////////////////////////////////////////////////////////// + `default_nettype none `timescale 1ns / 1ps