|
Работа с флэш-памятью, Или какие еще способы проверки декодера? |
|
|
|
Nov 2 2010, 16:45
|

Местный
  
Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382

|
Те, кто видел мои прошлые темы, наверное уже догадался, что я снова про декодер Витерби :-) Я дописал HDL код, погонял его, все работает Ок. Перехожу к синтезу и отладке в железке. И возникает вот какой вопрос. Последовательность из демодулятора для проверки декодера я моделирую в матлабе, записать их можно в каком угодно виде. Сейчас я объявил их в виде константы в упаковке Код type Ara is array (NATURAL RANGE <>) of std_logic_vector (Input_Bits-1 downto 0); constant InP: Ara:=("011111","000111","000001","101000",..............................,"000000"); Далее описал генератор, который читает эти данные и выдает на кодер. Все работает Ок. Теперь вопрос, каким образом тестировать реальную ПЛИС Имеется отладочная плата http://www.actel.com/products/hardware/dev...sic3l.aspx#docsНа ней есть встроенная флэш-память, есть 2 USB порта, один для программирования, вторым собсно можно пользоваться. У меня нет никакого опыта в работе с флэш-память, в книгах тоже пока ничего не нашел. Подскажите какой нибудь материал по тому, как работать с памятью? Я это вижу так, что предварительно во флэш записываются кодированные символы, затем небольшой блок внутри самого ПЛИСа обращается к этой памяти и подает данные на вход кодера. Как это сделать? Ткните пальцем что ли. Вариант второй, с использованием порта. Распайку ног нашел, но вот каким образом с компьютера подавать символы на этот порт? Как там всякие прерывания и прочие радости? Можно ли делать это из среды Матлаб или САПРа ПЛИС? Спасибо
--------------------
Because it's there
|
|
|
|
|
Nov 7 2010, 05:58
|

Местный
  
Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382

|
Прошу прощения, я не обратил внимание, что по приведенной выше ссылке документация доступная только после регистрации. Разводка ног памяти http://dl.dropbox.com/u/2827213/Different/...heets/Flash.pngСхематик-лист http://dl.dropbox.com/u/2827213/Different/..._KIT_SCS_SS.pdf(Распайка флэш - лист 3, секция B-5) Мануал на весь кит http://dl.dropbox.com/u/2827213/Different/...uide%20v1.4.pdfМан на флэшку http://dl.dropbox.com/u/2827213/Different/...Flash%20J3D.pdfВ общих чертах становится понятно, но не ясен механизм. С оперативной памятью более менее ясно - подводится счетчик, выставляется WE и пишем. А тут сигналы, назначение которых не вполне ясно. Я еще конечно покопаюсь, но думаю, что кто то уже решал подобную задачу, хотелось бы почитать какую нибудь статью про практику работы с флэш-памятью и примерами кода.
--------------------
Because it's there
|
|
|
|
|
Nov 7 2010, 09:14
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Посмотрел. Цитата В общих чертах становится понятно, но не ясен механизм. Механизм подробно описан в DS на флешку (глава 9 и приложение A). В двух словах - читается как обычная SRAM память. Пишется с помощью специальных серий обычных записей и чтений (что и куда писать описано в DS). Перед записью необходимо стереть блок/сектор (так же спец. последовательностью записей/чтений) Цитата А тут сигналы, назначение которых не вполне ясно. Это какие например? По моему там все кристально ясно: FLASH_RST_N - Сброс управляющих схем флэша (рекомендуется подавать вначале работы) FLASH_LCE_N - Выборка м/сх (сюда нужно подать 0, что бы данный флэш откликался на следующие сигналы  FLASH_WE_N - Запись (нулем) FLASH_OE_N - Чтение (нулем) MEM_ADDR - Шина адреса MEM_DATA - Шина данных Да, по замыслу авторов борды FLASH вместе с SRAM подключался ко встроенному Cortex'у
|
|
|
|
|
Nov 7 2010, 19:20
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 14-03-06
Пользователь №: 15 223

|
Muscat, я не тестировал декодер Витерби, и с Actel не работал, но имеется небольшой опыт тестирования других декодеров на Virtex5... Честно, я не вникал в архитектуру Actel, но в Virtex есть блочная память, думаю она есть и у Actel. так вот, я всегда использовал для теста эту самую память... Организую её как ROM и либо файлом, либо из vhd файла определяю начальные значения ячеек, а потом просто счётчиком по порядку перебираю ячейки... но всё это получится если длина кодового слова у Вас вместится в неиспользуемую память... И, если не секрет, для каких кодов Витерби делаете?? А то у меня тоже этот тип в дальнейшем, похоже, намечается...
|
|
|
|
|
Nov 8 2010, 10:42
|

Местный
  
Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382

|
Про кортекс да,хорош вопрос был, вчера уже мозги туго соображали. В любом случае спасибо за ссылки =) _ANDREW, я тоже уже склоняюсь к тому, чтобы попробовать положить все на блочную память. Как это лучше сделать в HDL коде? 1) Внутри архитектуры сигнала объявить сигнал типа массив с предварительным заданием значений 2) Внутри процесса объявить переменную, с предварительным заданием 3) Оставить все, как есть у меня сейчас - массив входных данных объявлен константой в упаковке Насколько я помню из описаний, синтезатор игнорирует все предварительные задания сигналов вида Код signal A: std_logic_vector(2downto0) :="111"; Кодер стандартный 7(133,171), реализация алгоритма на трейбеке (меня тут помнится уверяли, что трейкбек обязателен, так вот если что трейбек это просто один из вариантов реализации), мягкие решения по 3 бита, глубина 64.
Сообщение отредактировал Muscat - Nov 8 2010, 10:42
--------------------
Because it's there
|
|
|
|
|
Nov 8 2010, 10:50
|

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

|
Цитата(Muscat @ Nov 8 2010, 12:42)  Про кортекс да,хорош вопрос был, вчера уже мозги туго соображали. В любом случае спасибо за ссылки =) _ANDREW, я тоже уже склоняюсь к тому, чтобы попробовать положить все на блочную память. Как это лучше сделать в HDL коде? 1) Внутри архитектуры сигнала объявить сигнал типа массив с предварительным заданием значений 2) Внутри процесса объявить переменную, с предварительным заданием 3) Оставить все, как есть у меня сейчас - массив входных данных объявлен константой в упаковке Насколько я помню из описаний, синтезатор игнорирует все предварительные задания сигналов вида Код signal A: std_logic_vector(2downto0) :="111"; Кодер стандартный 7(133,171), реализация алгоритма на трейбеке (меня тут помнится уверяли, что трейкбек обязателен, так вот если что трейбек это просто один из вариантов реализации), мягкие решения по 3 бита, глубина 64. Как Вы будете в HDL коде описывать блочную память для ПЛИС Actel? Меня также интересует описание для Flash и SRAM памяти, которые имеются в ПЛИС. Примеры описаний... PS Мои попытки успехом не увенчались...
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Nov 8 2010, 13:37
|

Местный
  
Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382

|
Описание блочной RAM памяти присутствует в CodingStyle Guide. http://dl.dropbox.com/u/2827213/Different/...yle%20Guide.pdfСтраница 78 Если что, то видя большой блок триггерной памяти, синтезатор все равно делает его на встроенной RAM. О встроенной в ПЛИС флэш памяти не слышал, я хотел заюзать ту мелкосхему флэш, которая уже стоит на отладочной плате. Так как объявить значение RAM?
--------------------
Because it's there
|
|
|
|
|
Nov 8 2010, 15:10
|

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

|
Цитата(Muscat @ Nov 8 2010, 15:37)  О встроенной в ПЛИС флэш памяти не слышал, я хотел заюзать ту мелкосхему флэш, которая уже стоит на отладочной плате. Например здесь - смотрим таблицу. Цитата(Muscat @ Nov 8 2010, 15:37)  Так как объявить значение RAM? Я пока использую - SmartGen RAM. Это на стр. 78 документа "Actel HDL Coding Style Guide" и показано... PS Я писал письмо по этому поводу в Actel. Ответил, что вышлет описание на HDL.
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|