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

 
 
> Block RAM initilization files, Как сократить время разработки ?
Rok
сообщение Mar 17 2006, 07:05
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 62
Регистрация: 11-01-05
Из: Беларусь, Минск
Пользователь №: 1 894



В системе нужно использовать RAM.
Coregen'ом генерю Block RAM. К этим BRAM использую init. files.
Делаю проект синтеза в Synplify. Затем, соответственно ISE и ...
Большой проект, Place and Route только занимает минимум часа 2,5.
А, кристал Virtex-II используется.

Так вот потом мне нужно использовать другой init. file, т.е. снова с самого начала генерю BRAM с новым init. file, Synplify, ISE ......т.е. делаю тот же проект, то же самое, только память чуток другая.

Вопрос в следующем:
Как использовать все вот это с наименьшими затратами по времени, очень уж долго ожидать приходится.
Как сократить время разработки ?
Может кто сталкивался, подскажите.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
andrew_b
сообщение Mar 17 2006, 07:51
Сообщение #2


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Rok @ Mar 17 2006, 10:05) *
только память чуток другая.

"Другая" в смысле инициализирована по-другому? А размеры те же самые?

Самое простое, что вы можете сделать --- это пропустить этап повторного синтеза. Память вставляется в hdl-код как black box. Синтезатор про содержимое памяти ничего не знает, поэтому с его точки зрения проект не меняется совершенно.

Результат работы CoreGen'а --- EDIF .edn. Это текстовый файл, если открыть его любым текстовым редактором, то можно найти инициализационные значения памяти. Например:
Код
(property INIT_00 (string "002d002a002700240021001e001b001800150012000f000c0009000600030000"))
(property INIT_01 (string "002d002a002700240021001e001b001800150012000f000c0009000600030000"))
(property INIT_02 (string "0096008c00820078006e0064005a00500046003c00320028001e0014000a0000"))
(property INIT_03 (string "0096008c00820078006e0064005a00500046003c00320028001e0014000a0000"))
(property INIT_04 (string "fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffff0000"))
(property INIT_05 (string "fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffff0000"))
(property INIT_06 (string "0000000000000000000000000000000000000000000000000000000000000000"))
(property INIT_07 (string "0000000000000000000000000000000000000000000000000000000000000000"))
(property INIT_08 (string "002d002a002700240021001e001b001800150012000f000c0009000600030000"))
(property INIT_09 (string "fffdfffafff7fff4fff1ffeeffebffe800150012000f000c0009000600030000"))
(property INIT_0A (string "0096008c00820078006e0064005a00500046003c00320028001e0014000a0000"))
(property INIT_0B (string "fff6ffecffe2ffd8ffceffc4ffbaffb00046003c00320028001e0014000a0000"))
(property INIT_0C (string "fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffff0000"))
(property INIT_0D (string "00010002000300040005000600070008fff9fffafffbfffcfffdfffeffff0000"))
(property INIT_0E (string "0000000000000000000000000000000000000000000000000000000000000000"))
(property INIT_0F (string "0000000000000000000000000000000000000000000000000000000000000000"))

Поэтому, если меняете "прошивку", можно сформировать эти строчки вручнуюили какой-то программой (Matlab, ...)(формат у них простой, ищите в xapp. Нужный вам номер xapp для Virtex-II не знаю, по рукой есть xapp130 "Using the Virtex Block SelectRAM+ Features", таблица 4 "RAM Initialization properties"), и просто в том же редакторе руками ихпоменять. А можно написать скрипт на shell+sed/awk/perl, который будет менять одни значения string на другие,...

Сообщение отредактировал andrew_b - Mar 17 2006, 07:54
Go to the top of the page
 
+Quote Post
Azazella
сообщение Mar 17 2006, 08:04
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-02-06
Из: Украина
Пользователь №: 13 850



Редактировать (обновлять) содержимое блочной памяти можно прямо в .bit файле,
пропуская все этапы синтеза и имплементации, как и поступает EDK при обновлении программ
под MicroBlaze.
Данная операция производится при помощи програмки Data2MEM.
Попробуйте почитать мануалы и хелп, там ве просто: указываете файл с данными (.mem),
формат и расположение блоков памяти (.bmm) и сам файл прошивки (.bit).
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 17 2006, 08:06
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Rok @ Mar 17 2006, 10:05) *
Так вот потом мне нужно использовать другой init. file, т.е. снова с самого начала генерю BRAM с новым init. file, Synplify, ISE ......т.е. делаю тот же проект, то же самое, только память чуток другая.

Вопрос в следующем:
Как использовать все вот это с наименьшими затратами по времени, очень уж долго ожидать приходится.
Как сократить время разработки ?
Может кто сталкивался, подскажите.


Как я понял Вам нужна внешняя загрузка памяти.
1. Делается проект с первичной инициализацией, которая скажем будет эквивалентом команды NOP, и в проект надо добавить нечто, что принимало бы данные из внешнего интерфейса, например JTAG, и грузило бы эти данные в BRAM, и далее надо перестартовать устройство.
2. Возможно BRAM надо сделать двухпортовой для отладки.
3. Сделать сплиттер, который бы делал "прошивку" из ваших задач, а лучше всего сделать объединный софтовый инструмент: от набивки init'ов до загрузки прошивки.

Вот при таком подходе только один раз компилите проект, а потом работаете только с разными прошивками памяти. При этом всегда есть возможность "отката назад".

Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Rok
сообщение Mar 17 2006, 09:11
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 62
Регистрация: 11-01-05
Из: Беларусь, Минск
Пользователь №: 1 894



Всем огромное спасибо. Буду разбиратьсяsmile3046.gif
cheers.gif
Go to the top of the page
 
+Quote Post

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

 


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


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