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

 
 
> Непонятная проблема с 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
 
Start new topic
Ответов
demi
сообщение Mar 6 2007, 10:55
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 2-11-06
Пользователь №: 21 897



Прошу прощения за вопрос не по теме ......
Хочу купить данную плату. Но возникли некоторые вопросы.Буду признателен, если Вы сможете на них ответить smile.gif
1. Пользовательские разъемы 3х40 полностью отданны разработчику, или нет? В мануале написано, что один из разъемов используется для внешней памяти. Эти пины можно использовать по своему?
2. прилигаются примеры для этой платы в поставке?

Спасибо.
Go to the top of the page
 
+Quote Post
Мастер-Ломастер
сообщение Mar 6 2007, 18:24
Сообщение #3


Участник
*

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



Цитата(demi @ Mar 6 2007, 10:55) *
Прошу прощения за вопрос не по теме ......
Хочу купить данную плату. Но возникли некоторые вопросы.Буду признателен, если Вы сможете на них ответить smile.gif
1. Пользовательские разъемы 3х40 полностью отданны разработчику, или нет? В мануале написано, что один из разъемов используется для внешней памяти. Эти пины можно использовать по своему?
2. прилигаются примеры для этой платы в поставке?

Спасибо.


1. часть пинов на одном из разъёмов расшарена с частью пинов микросхем памяти. Использовать параллельно можно, т.к. память неактивна, если нет соответствующих стробов

2. примеры на сайте производителя (Digilent Inc.)
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
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 22:12
Рейтинг@Mail.ru


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