реклама на сайте
подробности

 
 
> Модернизация xapp134/xapp200 (SDRAM) для конкретных задач, Прошу поддержки после попыток самонаписания SDRAM контроллера
Timon_
сообщение Apr 13 2009, 18:42
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 26-01-09
Пользователь №: 43 934



Начну с того, что принесли мне плату с запаянным на ней ПЛИС-кой XC3S200 (Spartan 3, Xilinx) и SDRAM память K4S641632K (Samsung), а в нагрузку дали побаловаться TFT дисплей фирмы NEC - NL6448BC26-09 (8.4").
Вообщем поставил себе следующую задачу: данные, поступающие из вне, записывать в СДРАМ память и выводить их на ЖКИ монитор. Причем поступать данные могут одновременно с выводом записанных данных на ТФТ матрицу.
Вообщем первой моей победой был запуск ТФТ матрицы. Здесь подробно останавливаться не буду. Проблемы начались, когда начал запускать СДРАМ. После недельки проб и ошибок и лазания по форуму удалось-таки записать и считать (и сравнить с записанными) данные, но без режима регенерации, т.е. просто однократно запись->чтение->ок->зажигаем светодиод. Побаловался с различными режимами бурста и латентностью. Но это оказалось детским лепетом. После 2-3-х недельного написания программы, исправления ошибок, синтеза вылезла проблема - проект не влазит в кристал sad.gif . Изучил форумы, дабы удостовериться - в этот кристал запихивали СДРАМ контроллер, ЛайфЕзернет, 2 RS232 и еще чего-то. В итоге "сел в лужу" и "выпал в осадок"...
... ТЕПЕРЬ ПРОШУ ПОМОЩИ У ПРОФИ.
На форуме встречал советы переделки xapp200. (xapp134 не советуют, хотя никто не объяснил толком, чем он плох, кроме упоминания фраз "горбатая корка" и "другой принцип построения контроллера").
Сам на VHDL пишу не так давно (самоучка, так что сильно не пинайте!), по образованию электроник, поэтому постоянно сталкиваюсь с проблемами...

Свой контроллер писал по следующему принципу:
Он имеет 4 состояния:

1. Инициализация: пауза 200мкс - выполнение стандартных команд с загрузкой МОДЕ-регистра.

2. Режим чтения: в этом режиме читаются данные из СДРАМ памяти по 160 16-битных слов из каждого банка (в сумме 640 = одна строка ТФТ дисплея) и заносится в блочную память на кристале. В последующем уже контроллер ТФТ дисплея читает данные из данной блочной памяти и выводит данные на экран дисплея (своеобразный ФИФО). Так повторяется 640 раз (для разрешения 640х480).

3. Режим записи: аналогично режиму чтения в этом режиме в СДРАМ записываются данные (16х640) из блочной памяти на кристале, предварительно загруженные в неё из вне.

4. Режим регенерации: в этом режиме выполняется полный цикл регенерации памяти (4095 циклов для 64Мб).

5. Режим IDLE: в этом режиме происходит проверка заполненности блочной памяти на кристалле (для записи и для чтения). Если из блочной памяти считана информация (строка) и выведена на дисплей - то выполняется загрузка следующей строки в блочную память. Если заполнена блочная память для записи (640 слов) то выполняется режим записи. Если на экран выведен полный кадр - то контроллер переходит в режим регенерации.

Вот вообщем то и все основные задачи, которые нужны мне для работы.
Некоторые пояснения: в каждом состоянии режим выполняется полностью, т.е. в режиме чтения считывается строка полностью (160+160+160+160=640). Аналогично в режиме записи записывается строка полностью (160+160+160+160=640).

Это мое видение решение задачи пока не удалось, в связи с этим встретив советы по переделке корок xapp134/200, прошу помощи по доработке указанных корок......

Хотя в них после изучения для меня есть еще много непонятного.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 14)
DmitryR
сообщение Apr 14 2009, 05:17
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



А поискать готовый контроллер религия не позволяет?
Go to the top of the page
 
+Quote Post
Александр_Алексе...
сообщение Apr 14 2009, 05:30
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-12-07
Из: Тверь
Пользователь №: 33 140



На opencores.org есть проект для SDRAM на VHDL, я по аналогии с ним делал. все работает.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 14 2009, 05:55
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(Timon_ @ Apr 13 2009, 21:42) *


По поводу создания контролера для работы с памятью SDRAM можете воспользоваться MIG(Memory Interface Generator) в CoreGenerator (начиная с 9-ой версии ISE, для остальных надо отдельно скачивать), который генерирует VHDL/Verilog код. Кстати там есть уже готовые реализации для некоторых микросхем памяти.


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
vik0
сообщение Apr 14 2009, 06:09
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 27-07-08
Из: теплые края
Пользователь №: 39 233



Цитата(Maverick @ Apr 14 2009, 08:55) *
По поводу создания контролера для работы памяти SDRAM можете воспользоваться MIG(Memory Interface Generator) в CoreGenerator (начиная с 9-ой версии ISE, для остальных надо отдельно скачивать), который генерирует VHDL/Verilog код. Кстати там есть уже готовые реализации для некоторых микросхем памяти.

Так он, кажется, SDR SDRAM не поддерживает.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Apr 14 2009, 07:40
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(vik0 @ Apr 14 2009, 09:09) *
Так он, кажется, SDR SDRAM не поддерживает.


DDR и SDRAM поддерживает


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 14 2009, 10:17
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Если времени жалко - мерём Миг от Xilinx и радуемся....
Если нет - охота именно самому - то вот неплохая дока - http://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm
Go to the top of the page
 
+Quote Post
Timon_
сообщение Apr 15 2009, 18:20
Сообщение #8





Группа: Участник
Сообщений: 9
Регистрация: 26-01-09
Пользователь №: 43 934



Цитата
Если нет - охота именно самому - то вот неплохая дока - http://www.dsioffe.narod.ru/mysdram/MyMicronSDRAM.htm

Эту доку знаю, изучил уже досконально...


Цитата
По поводу создания контролера для работы с памятью SDRAM можете воспользоваться MIG(Memory Interface Generator) в CoreGenerator (начиная с 9-ой версии ISE, для остальных надо отдельно скачивать), который генерирует VHDL/Verilog код. Кстати там есть уже готовые реализации для некоторых микросхем памяти.

MIG(Memory Interface Generator) у меня в версии ISE 9.1 нету sad.gif. Облазил весь CoreGenerator. На сайте Xilinx почитал про MIG - вроде не написано, что он поддерживает SDR SDRAM:
Цитата
MIG 2.3 is available via ISE® IP Update 10.1.3
Memory Interface Generator (MIG) is a free software tool used to generate memory controllers and interfaces for Xilinx® FPGAs. MIG generates unencrypted Verilog or VHDL design files, UCF constraints, simulation files and implementation script files to simplify the design process. Memory Interfaces supported are: DDR2 SDRAM, DDR SDRAM, QDRII SRAM, and DDRII SRAM, and RLDRAM II.



Цитата
На opencores.org есть проект для SDRAM на VHDL, я по аналогии с ним делал. все работает.

Полазил на opencores.org и нашел несколько проектов. Какой из перечисленных использовался?
Цитата
AMBA Slave SDRAM controller
This is an AMBA slave Controller. Implemented in VHDL.

sdram_ctrl
This is an instance of sdram controllers which is optimised for speed.

SDR SDRAM Controller
This is the implementation of an SDR (Single Data Rate, not DDR) SDRAM controller that abstracts the SDRAM as a generic block device. The user can stream blocks of data of arbitrary length to/from arbitrary address locations in the SDRAM. The controller is parameterized such that it can be for any speed or sized SDRAM. Dual port FIFOs on the read and write side allow for data on different clock domains to be read and written to the SDRAM at continuous rates. A sample application would be for an imager where an imager running at a high speed streams a frame into the SDRAM and then a PC streams the data out at a lower rate over a slower link. This controller has been used tested and used in many different Xilinx FPGAs with SDRAMs of different size, speed, and manufacturers.

High Speed SDRAM Controller With Adaptive Bank Management and Command Pipeline
HSSDRC is the configurable universal SDRAM controller with adaptive bank control and adaptive command pipeline. The main features of HSSDRC IP core are: 1. Adaptive SDRAM bank control : command sequence is depending upon previous accesses to the RAM. 2. Adaptive command pipeline control: bank control commands for following memory access commands are pipelined into previous command processing chain whenever possible. 3. Overlapping command and data processing 4. Variable transaction burst from 1 to 16 5. Full SDRAM bandwidth usage for linear sequential access without bus turnaround, bank or row change HSSDRC IP core and IP core testbench has been written on SystemVerilog and tested in Modelsim. HSSDRC IP core is licensed under MIT License

sdram control core
read and write sdram chip,can config for any sdram chip.

stone
SDRAM memory controller host model

Asynchronous WISHBONE-compatible SDRAM controller
Yet Another Dynamic Memory Controller... after various pleagues with DRAM controllers, I decided to write my own. This one is hardware-proven on the OMRP.



P.S. Спасибо всем откликнувшимся и оказывающим помощь.
Go to the top of the page
 
+Quote Post
Александр_Алексе...
сообщение Apr 16 2009, 05:56
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-12-07
Из: Тверь
Пользователь №: 33 140



Кажется второй, там два исходника на VHDL, в заголовке автор - Michal Krepa
Go to the top of the page
 
+Quote Post
Timon_
сообщение May 6 2009, 18:32
Сообщение #10





Группа: Участник
Сообщений: 9
Регистрация: 26-01-09
Пользователь №: 43 934



Александр_Алексеев, если Вам не трудно, вышлите мне на мыло проект sdram, который вы брали с opencores. У меня там нет акаунта. Вот мое мыло: dmitry_yakovtsov@mail.ru

Цитата
По поводу создания контролера для работы с памятью SDRAM можете воспользоваться MIG(Memory Interface Generator) в CoreGenerator (начиная с 9-ой версии ISE, для остальных надо отдельно скачивать), который генерирует VHDL/Verilog код. Кстати там есть уже готовые реализации для некоторых микросхем памяти.

Объясните толком где в 9-й айсе MIG. Ну в упор не вижу в своей версии 9.1 МИГа в CoreGenerator. Все облазил. Ткните носом. Или может укажите ссылочку где сие чудо можно скачать...

Спасибо.
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение May 6 2009, 19:49
Сообщение #11


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(Timon_ @ May 6 2009, 21:32) *
Объясните толком где в 9-й айсе MIG. Ну в упор не вижу в своей версии 9.1 МИГа в CoreGenerator. Все облазил. Ткните носом. Или может укажите ссылочку где сие чудо можно скачать...

А какой SP и IP Update у Вас установлены ?

Точно не помню, но что-то было нехорошее с MIG 1.7 в ISE 9.1... Вроде как он отдельно качался. Но могу точно сказать в ISE 9.1 IP Update 3 он точно есть: 9.1i IP Update #3 - Release Notes and Known Issues for CORE Generator ISE 9.1 IP Update 3 (9.1i_IP3)

Ну а качается это счастье отсюда: ISE 9.1i Windows - IP Update
Go to the top of the page
 
+Quote Post
Cont
сообщение May 8 2009, 07:58
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



1) У меня ISE 10.1 там MIG в корэгене СДРАМ не поддерживает. Что делать? ставить 9-ю?
2) Уже разрабатывал контроллер. В качестве основы взял альтеровскую корку (понятно, нехорошо это :-) ). Есть у них sdr_sdram reference design. Ссылку не помню((
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 8 2009, 15:03
Сообщение #13


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Это написано Userguide (ссылка на него ниже) для ISE 10.1.03
The Memory Interface Generator (MIG) generates DDRII SRAM, DDR SDRAM, DDR2 SDRAM, QDRII SRAM, and RLDRAM II interfaces for Virtex®-4 FPGAs and generates DDR SDRAM, DDR2 SDRAM, QDRII SRAM, and and DDRII SRAM interfaces for Virtex-5 FPGAs. It also generates DDR and DDR2 SDRAM interfaces for Spartan®-3, Spartan-3A, Spartan-3E, and Spartan-3A DSP FPGAs. The tool takes inputs such as the memory interface type, FPGA family, FPGA devices, frequencies, data width, memory mode register values, and so forth, from the user through a graphical user interface (GUI). The tool generates RTL, SDC, UCF, and document files as output. RTL or EDIF (EDIF is created after running a script file, where the script file is a tool output) files can be integrated with other design files.

ссылка

Для ускоррения разработки может стоит и поставить ISE 9.1.03 или 9.2.03 или даже более поздние версии (насколько я помню там MIG поставляется отдельно) но это Вам решать самому smile.gif

Ниже приведен скриншот где искать сам MIG в ISE 10.1.03
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Timon_
сообщение May 9 2009, 11:54
Сообщение #14





Группа: Участник
Сообщений: 9
Регистрация: 26-01-09
Пользователь №: 43 934



А что в исе10 уже другая версия МИГ? Если да, то неужели Xilinx не мог включить в эту версию поддержку SDRAM?
Go to the top of the page
 
+Quote Post
Cont
сообщение May 12 2009, 08:34
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 112
Регистрация: 10-11-06
Из: Москва
Пользователь №: 22 176



Можно ли продолжать разработку в 10-й версии, но отдельно установить MIG для 9-й и результаты использовать в 10-й? И вообще его отдельно можно поставить?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016