Перейти к содержанию
    

автоматическое применение таймингов из eeprom для DDR4

Добрый день!

Подскажите пожалуйста как подключить покупную планку памяти (sodimm, udimm) к FPGA?

как узнать тайминги? Ответ нашел здесь https://www.ixbt.com/mainboard/spd.shtml

Может ли FPGA (intel arria10) автоматически применить настройки(тайминги) из eeprom?

или надо делать отдельно вычитку настроек памяти и самому их записывать в emif IP core?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/18/2022 at 3:35 PM, Ivanii said:

Может это сигналы не DDR4, а xDIMM для SPD?

может и скорее всего так оно и есть.

Может ли FPGA (intel arria10) автоматически применить настройки(тайминги) из eeprom?

или надо делать отдельно вычитку настроек памяти и самому их записывать в emif IP core?

 

UPdate

Разобрался...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/18/2022 at 5:18 PM, Maverick_ said:

Разобрался...

И как, можно на Arria 10?

Ранее сталкивался с тем, что нельзя - тайминги вбиваются в коре на этапе генерации. Но это был Xilinx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/18/2022 at 10:24 PM, Flood said:

И как, можно на Arria 10?

Ранее сталкивался с тем, что нельзя - тайминги вбиваются в коре на этапе генерации. Но это был Xilinx.

в арии10 тоже пока это делается вручную (как я понял)

Вначале тайминги с планки считываем по I2C подобному интерфейсу из eeprom (есть исключение)

Затем считанные данные вручную ввести в корку emif

PS но Zynq MPSoC вроде уже позволяет...

 

Иначе не знаю как работать если планка памяти ddr4 (sodimm, udimm) будет покупная, а плата собственного "приготовления"...

Может есть другие варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Flood said:

Ранее сталкивался с тем, что нельзя - тайминги вбиваются в коре на этапе генерации. Но это был Xilinx.

3 hours ago, Maverick_ said:

Иначе не знаю как работать если планка памяти ddr4 (sodimm, udimm) будет покупная, а плата собственного "приготовления"...

Чтобы это было можно нужно всего-то  написать свой контроллер DDR4 который имел бы возможность динамической смены таймингов памяти. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

был не внимателен, можно и наверное с использованием внешней логики которая будет читать и потом по авалон ММ писать в  контроллер DDR4 (желтое на скрине)

image.thumb.png.1a1764d5e89c7bb90ac27486e97ce7d2.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно сделать чтение процессором епром памяти

The SPD EEPROM is accessed over a System Management Bus (SMB), which is a derivative of I2C. 
I'll use Intel's I2C master core in Platform Designer to connect to the SMB. 
This has two input signals for serial data and clock suffixed _sda_in and _scl_in, and two output signals also for serial data and clock suffixed _sda_oe and _scl_oe. 
These need to be connected to the SMB bidirectional DDR4 pins using tristate buffers. For example:

   wire i2c_sda_oe, i2c_scl_oe;
   assign DDR4B_SCL = i2c_scl_oe ? 1'b0 : 1'bz;
   assign DDR4B_SDA = i2c_sda_oe ? 1'b0 : 1'bz;

   niostest qsys0
     (
      .clk_clk           (clk_100),
      .i2c_serial_sda_in (DDR4B_SDA),
      .i2c_serial_scl_in (DDR4B_SCL),
      .i2c_serial_sda_oe (i2c_sda_oe),
      .i2c_serial_scl_oe (i2c_scl_oe),
      .reset_reset       (!reset_n_100)
      );
Варианты:
1. распарсить и вручную ввести данные в emif ddr4 контроллер
2. Попробовать использовать порт который выделен желтой подписью сообщением выше - записав по нему прчитанные данные
 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста - имеются ли у кого то парсер/декодер для вычитанных данных eeprom (serial presence detect (SPD)) ???

Serial Presence Detect (SPD) for DDR4 SDRAM Modules - документ(стандарт) во вложении

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спрашу еще раз (я не могу разобраться)

Добрый день!
Подскажи пожалуйста как подключить покупную планку памяти DDR4 (sodimm, udimm) к FPGA?
как узнать тайминги? Распарсивание содержимого из eeprom (SPD (Serial Presence Detect)) не дает всех таймингов которые необходимо внести в  External Memory Interfaces Intel Arria10. (возможно я парсер spd не правильный использовал)

Может есть какое то другое решение? Прошу хотя бы намекнуть на путь ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...