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

17 hours ago, Worldmaster said:

Так памяти но не контроллера же который от корки. Ну подождал 2 сек. Состояние линий не изменилось.

Это вы имеете в виду тот что зашифрованый ??Так как я его добавлю если он шифрованый. Добавить то я добавлю но моделсим сказал что там ошибки и компилировать отказался.

Где то в темах кто то говорил что якобы все эти файлы уже расшифровали и где то в секретном месте их можно взять. Может вы знаете где это?

Такую же модель как для памяти у говина я не нашел. Поделитесь пожалуйста если такая имеется.

Нашел в папках IDE либу SDRC_HS.dll . Это та самя либа контроллера для моделирования или что?

 

Можно линк на нее с лекарством?? Наверняка тут на внутреннем хранилище есть?

 

des00 имел ввиду скорее всего что будет Ваша корка SDRAM соедениться с моделью микросхемы. Начнете симуляцию ....

Но для начала Вам надо скомпилировать библиотеку корок для симулятора - делается в среде разработки...

Потом пути прописать....

например в вивадо 

image.thumb.png.b9cdd3eba3ada6ec232bcfc54365fec8.png

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


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

В общем корка работает

 image.thumb.png.c99fbdef628814cfa3d5234207428849.png

для того что бы в этом убедиться надо: 

1. генерируем контроллер sdram_controller_hs.v

2. компилируем его функциональный нетлист sdram_controller_hs.vo 

3. чтобы он работал компилируем библиотеки Gowin_V1.9.8.07\IDE\simlib\gw1n\prim_sim.v  и Gowin_V1.9.8.07\IDE\simlib\gw1n\prim_tsim.v 

4. берем архив в атаче, комплируем модель памяти mt48lc2m32b2.v и тестбенч tb.sv

5. запускаем тестбенч vsim -novopt tb GSR (GSR это модуль глобального сброса, он должен запускаться для моделирования на уровне топа, без него работать не будет, этож классика зайлинкс)

6. делаем run 350us

Всё, наблюдаем запись/чтение в один ряд одного банка и в разные ряды одного банка. Также думаем какое это ущербное изделие:

1. Конфигурировать не надо, настраивается все при генерации. Работает он всегда в режиме burst=1. 

2. Отслеживать открытые банки надо, подавая отдельно команду активации. При этом шину адреса он нарезает сам, делать ему rowa/cola не надо. 

3. Закрыть банки можно только операцией чтения/записи в режиме auto_precharge. По другому он не умеет. Отдельно команду PRE/PRE_ALL он не обрабатывает. Естественно что отслеживать tras в таком виде нужно самостоятельно исходя из размера бурста. 

В даташите всего этого нет. Кому интересно можете сами поиграться с файлами. 

Собственно всё. На все про все часа два, большая часть понять что же именно имел в виду сумрачный китайский гений, автор этого контроллера) Ему можно было и по интереснее сделать)

ЗЫ. На VHDL переделывать не буду, это уж сами. Код читаем, и так понятно что в нем происходит.  

 

gowin_sdram.7z

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


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

Отлично. Спасибо. 

По этому примеру сделал свой комплект для VHDL. 

Только файлы брал из папки gw2a. У меня этот чип.

С верилогом оказывается все просто. Можно просто также как в вхдл пихать модуль и связывать с имеющимися линиями. 

 

Единственное что при компиляции он ругается на время 

Цитата

 ** Fatal: (vsim-3693) The minimum time resolution limit (1ps) in the Verilog source is smaller than the one chosen for SystemC or VHDL units in the design. Use the vsim -t option to specify the desired resolution.

Это видимо из за этой строчки:

`timescale 1ns/1ns

Но чего то не вижу как мне это изменить для VHDL?? 

Или что это значит то?

 

Вот сделал вот так и запустилсь 

vsim -t ps 

 

И еще моментик.

Он ругается на модуль памяти 

image.thumb.png.beb639280f468d7ce4d8febfd1e1dee1.png

Вроде бы на работоспособность не влияет но все таки. Что это значит?? Я не правильно поставил время?

Изменено пользователем Worldmaster

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


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

48 minutes ago, Worldmaster said:

Он ругается на модуль памяти 

image.thumb.png.beb639280f468d7ce4d8febfd1e1dee1.png

Вроде бы на работоспособность не влияет но все таки. Что это значит?? Я не правильно поставил время?

Это нарушение по th по входным данным, модель в том числе временные ошибки проверяет. У себя я просто задержал на 2нс тактовую на память, чтобы в нужном окне встать. Нас же интересуют логические ошибки.  А так, по идее, в контроллере памяти должен быть корректно организован вывод/ввод данных: триггеры, задержки, констрейны, но это надо проводить уже временное моделирование(с подключением sdf файлов), а не логическое.

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


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

В 28.08.2023 в 13:04, des00 сказал:

Это нарушение по th по входным данным, модель в том числе временные ошибки проверяет.

Вот в примере работы с рамой видимо для этого и сделали сдвиг по фазе для сигналов тактирования и памяти. 

Печально что ленивые китайцы не описали этого всего в даташите. 

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


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

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

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

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

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

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

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

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

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

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