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

 
 
> Непонятная проблема с Digilent Spartan-3 starter Kit и евойной Ext. SRAM, То ли не пишет, то ли не читает... Ай нид ХЕЕЕЛП!!!
Мастер-Ломастер
сообщение Feb 21 2007, 23:43
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 24-01-07
Пользователь №: 24 706



help.gif
Понадобилось мне задействовать большой объём памяти, больший, нежели чем BlockRAM. На вышеуказанной плате (S3Board) есть два чипа шустрой асинхронной SRAM по 256к 16-битных слов в каждой. Шина адреса запараллелена, шины данных раздельные, управление ножками #WE и #OE запараллелено, ножки #CE, #UB и #LB раздельные.

Всё вроде просто.

Интерфейс модуля, который я использую для работы с этими чипами, примерно такой (опускаю незначительные детали):
Код
...
SRAM_ADDR: out std_logic_vector (17 downto 0);
SRAM_DATA: inout std_logic_vector (15 downto 0);
SRAM_OE: out std_logic;
SRAM_WE: out std_logic;
SRAM_UB: out std_logic;
SRAM_LB: out std_logic;
SRAM_CE: out std_logic;
...
ADDR : in std_logic_vector (17 downto 0);
DATA_READ: out std_logic_vector (15 downto 0);
DATA_WRITE: in std_logic_vector (15 downto 0);
...


На управляющих ножках стоят PULLUP, на адресе и данных для SRAM пробовал ставить и PULLUP, и PULLDOWN, и KEEPER ... впрочем, я чуть забегаю

Когда я делаю вот примерно так:
Код
SRAM_ADDR <= ADDR;
SRAM_OE <= '1';
SRAM_WE <= '0';
SRAM_CE <= '0';
SRAM_LB <= '0';
SRAM_UB <= '0';
SRAM_DATA <= DATA_WRITE;

Смотрю, что появилось на ножках адреса и данных (для отладки, на младшие биты этих шин, повесил светодиоды, через буфер), там всё правильно: установился адрес, есть данные для записи, логические уровни на пинах управления по нулям (там, где надо). Т.е. должен записаться кусок данных в указанную ячейку памяти. Отлаживаюсь чуть ли не в статическом режиме - т.е. несмотря на отсутствие работы с таймингами, всё должно работать (промежутки между подачей и снятием управляющих сигналов просто _гигантские_ по сравнению с теми, что указаны в даташите на чипы памяти).

Далее делаю так:
Код
--SRAM_ADDR <= ADDR; -- адрес не переключаю, на шине - KEEPER
SRAM_OE <= '0';
SRAM_WE <= '1';
SRAM_CE <= '0';
SRAM_LB <= '0';
SRAM_UB <= '0';
DATA_READ <= SRAM_DATA;


Всё вроде замечательно - на выходе DATA_READ модуля появляется то, что я прежде записал.

Но.

Если же я раскомментарю присвоение SRAM_ADDR и поставлю туда какой-нибудь _другой_ адрес - то считается опять то же самое! sad.gif

Т.е. читается не значение из памяти, на которое указывает адрес, а последнее "записанное" значение. Какой бы я адрес не ставил - читается не то, что там должно быть, а то, что было куда-нибудь последним записано.

Я вертел эту схему и так, и сяк, и наперекосяк.
Алгоритм (если это можно назвать алгоритмом) прекрасно работает на BlockRAM, что внутри ПЛИС, но не работает на внешней.

Сначала я думал, что микросхема памяти просто не успевает за ПЛИС (изначально работал на 50 МГц, чипы памяти - 10 нс). Оные чипы грелись, но... Дело оказалось не в этом. Снизив частоту до долей Гц делением, чтобы наблюдать перетикивание светодиодов "вживую", я не добился продвижения в понимании оного глюка. angry.gif

Если поставить PULLUP на выходы SRAM_DATA - читается FFFF. Если поставить PULLDOWN - читается 0000. Если KEEPER - последнее записанное. Уровни на управляющих ножках - правильные. Адрес выставляется. Что ей ещё надо, блин? blink.gif

Пробовал даже делать так:
Код
SRAM_DATA<="ZZ...ZZ";
DATA_READ <= SRAM_DATA;

с тем же результатом (с никаким, т.е.).
  • Может такое быть, что сами микросхемы не работают? Мне кажется, что это очень маловероятно - всё ведь, кроме них, работает прекрасно.
  • Как это проверить другим способом?
  • Кто-нибудь на этой плате вообще внешнюю память использовал?
Перепаивать микросхемы не предлагайте, заменить их не на что (и ОЧЕНЬ не хочется портить плату).

Сообщение отредактировал Мастер-Ломастер - Feb 22 2007, 00:25
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Мастер-Ломастер   Непонятная проблема с Digilent Spartan-3 starter Kit и евойной Ext. SRAM   Feb 21 2007, 23:43
- - denisys   При работе с двунаправленной внешней шиной данных ...   Feb 22 2007, 10:48
|- - Мастер-Ломастер   Цитата(denisys @ Feb 22 2007, 10:48) При ...   Feb 22 2007, 16:29
- - Vovs   Запись в SRAM происходит по переднему фронту WE. Н...   Feb 23 2007, 10:58
|- - Мастер-Ломастер   Цитата(Vovs @ Feb 23 2007, 10:58) Запись ...   Feb 26 2007, 12:08
- - Мастер-Ломастер   Новости с фронтов. На сайте Xilinx нашёл референс...   Feb 28 2007, 21:27
- - Мастер-Ломастер   Кстати, из даташита на эти чипы памяти следует, чт...   Mar 3 2007, 21:35
|- - 0xFF   Цитата(Мастер-Ломастер @ Mar 3 2007, 22...   Mar 16 2007, 04:03
- - demi   Прошу прощения за вопрос не по теме ...... Хочу ку...   Mar 6 2007, 10:55
|- - Мастер-Ломастер   Цитата(demi @ Mar 6 2007, 10:55) Прошу пр...   Mar 6 2007, 18:24
- - neptune-1   Цитата(Мастер-Ломастер @ Feb 21 2007, 23...   Mar 15 2007, 22:32
|- - Мастер-Ломастер   Цитата(neptune-1 @ Mar 15 2007, 22:3...   Mar 20 2007, 00:43
||- - neptune-1   Цитата(Мастер-Ломастер @ Mar 20 2007, 00...   Mar 20 2007, 14:25
|- - Мастер-Ломастер   Цитата(neptune-1 @ Mar 15 2007, 22:3...   Mar 20 2007, 00:45
- - Microwave Engineer   [/quote]Короче говоря, проклятущие микросхемы клал...   Mar 19 2007, 14:22
- - khach   Попробуйте вот этот http://www.cmosexod.com/sdram....   Mar 21 2007, 16:10
|- - Мастер-Ломастер   Цитата(khach @ Mar 21 2007, 16:10) Попроб...   Mar 21 2007, 19:26
- - Artem_Petrik   Действительно странные проблемы на ровном месте. У...   Mar 25 2007, 20:53
|- - Мастер-Ломастер   Цитата(Artem_Petrik @ Mar 25 2007, 20:53)...   Mar 28 2007, 02:17
- - Artem_Petrik   Цитатачуть-чуть раскрыть тему можно? Проблема была...   Mar 29 2007, 19:50
- - Artem_Petrik   Вобщем вот такой нехитрый код у меня в железе рабо...   Mar 31 2007, 19:48
- - Мастер-Ломастер   Цитата(Artem_Petrik @ Mar 31 2007, 19:48)...   Apr 4 2007, 22:49


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 13:06
Рейтинг@Mail.ru


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