Перейти к содержанию
    

Xilinx data2mem

Кто работает с ISE - вопрос.

 

Я делаю устройство на Spartan-3 с использованием PicoBlazer.

Все классно, только каждый раз при замеме кода делать всю компиляцию долго. Есть прилада data2mem которая должна подменять инициализацию BRAM в готовом .bit файле.

 

ДОлго искал на сети - все работают только с MicroBlazer.

Никак не удается сделать .BMM файл. У меня только халявная версия ISE.

 

Толи я не догоняю, то ли data2mem не поддерживает вообще BRAM16_18.

 

И еще: если у меня нет FPGA editor, как можно найти иерархическое имя блока? В floorplan редакторе написано c1_ram1024_x_18.

c1 - имя модуля.

Пробовал и c1_ram1024_x_18 и c1/ram1024_x_18 - все равно не проходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я делаю устройство на Spartan-3 с использованием PicoBlazer.

Все классно, только каждый раз при замеме кода делать всю компиляцию долго. Есть прилада  data2mem которая должна подменять инициализацию BRAM в готовом .bit файле.

 

Если грузите через JTAG, то есть возможность на лету притормаживать

пикоблэйз и перезаписывать область брамы новым контентом - подробности

можно узнать у Christian Chaplin, у него есть некий дизайн такой приблуды.

У меня тоже есть, но для виртекса, нету у меня пока спартанов-3 :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пардон за неграмотность, а кто есть Christian Chaplin?

 

Если я правильно понял идею, вводится инстанс JPEG и немного логики которая через второй порт меняет BRAM, так?

 

Это конечно вполне подход. Хотелось только не вводить новых элементов которых не будет в продукте. Казалось что data2mem идеальное решение.

Но Вы подтверждаете что она не поддерживает 18 битную память?

 

Я могу конечно написать програмку которая будет подменять блок в .bit файле. Но остается вопрос как определить на какое место на чипе попадает данный блок памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. >

Можно через UCF закрепить BRAM на кристалле, далее эмпирически отыскать место в bit.

Кстати совсем неплохо будет если и PicoBlazer тоже засунете в регион поближе к BRAM, оно предсказуемее при разводке будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пардон за неграмотность, а кто есть Christian Chaplin?

 

Xilinx UK's Senior Customer Applications Engineer :)

Он автор теКСклюзивы "Reconfiguring Block RAMs"

 

Если я правильно понял идею, вводится инстанс JPEG и немного логики которая через второй порт меняет BRAM, так?

 

Именно так.

 

Я могу конечно написать програмку которая будет подменять блок в .bit файле. Но остается вопрос как определить на какое место на чипе попадает данный блок памяти.

 

А разве если вам известен формат bit-файла, то это не подразумевает знания в

какие гриды попадет ваш блок? К сожалению, данный процесс я не освоил, хотя планы есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А разве если вам известен формат bit-файла, то это не подразумевает знания в

какие гриды попадет ваш блок? К сожалению, данный процесс я не освоил, хотя планы есть.

 

Формат известен: я аплоаднул сорс проги которая заливает .bit через Линуксовский пар. порт. Там есть код который парсит .bit файл.

См. в "есть программа" форуме.

 

Проблема то в том что я могу с использованием этой информации подменить биты которые попадут скажем в BRAM X1Y1. Только я НЕ знаю всегда ли там окажется именно тот блок.

 

Возможно есть грабли в виде checksum, но это врядли закрытая информация.

Не смотрел еще. Не хочется изобретать велосипед когда уже написано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Xilinx UK's Senior Customer Applications Engineer :)

Он автор теКСклюзивы "Reconfiguring Block RAMs"

 

Понятно почему я не нашел его. Xilinx почему-то называет его

Kris Chaplin :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. >

Можно через UCF закрепить BRAM на кристалле, далее эмпирически отыскать место в bit.

Кстати совсем неплохо будет если и PicoBlazer тоже засунете в регион поближе к BRAM, оно предсказуемее при разводке будет.

 

 

Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле"

надо знать как его иерархически зовут. Если ли лучше способ чем тыкать во все 12 блоков на floorplan editor и смотреть какое из имен похоже?

 

На свой главный вопрос а нашел ответ у тов. Чаплина:

 

(Note: Current restrictions prevent Virtex-II PicoBlaze systems from using DATA2BRAM, as the parity bits cannot be modified.)

 

Так что либо писать свою приладу, или идти пить кофе после каждой смены строчки кода :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле"

надо знать как его иерархически зовут. Если ли лучше способ чем тыкать во все 12 блоков на floorplan editor и смотреть какое из имен похоже?

 

И все-таки мне настоятельно кажется, что все очень детерминированно,

но, как я и писал, конкретики не делал, так что все это требует проверок.

Займусь в новом году. А то формат есть.. а толку..

 

 

На свой главный вопрос а нашел ответ у тов. Чаплина:

 

(Note: Current restrictions prevent Virtex-II PicoBlaze systems from using DATA2BRAM, as the parity bits cannot be modified.)

 

Так что либо писать свою приладу, или идти пить кофе после каждой смены строчки кода :(

 

Ну дык. "Жызнь такой тяжолий". Кстати, загрузка/(выгрузка!) через JTAG

и все эти BSCAN_xyz очень даже меня радует своей незамутненностью, жаль

только вот, что не сигнализирует виртексовский BSCAN о попадании в

состояние capture, а виртекс-второй сигнализирует.. Приходится лишнюю логику городить..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле" надо знать как его иерархически зовут.>

Что то не пойму. Даже если не удерживать иерархию в синтезаторе, после запуска PACE будет список всех инстансов, в том чисел и BRAM, берем мышкой ставим в нужный блок. После этого сгенерится нужное ограничение размещения BRAM, и знать имена не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще вариант, сам не пробовал, но может ...

Можно в опциях PAR указать Guide mode - Exact, указав сооответственно используемый NCD. Тогда теоретически PAR должен оставить всю логику как есть изменив только содержимое BRAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле" надо знать как его иерархически зовут.>

Что то не пойму. Даже если не удерживать иерархию в синтезаторе, после запуска PACE будет список всех инстансов, в том чисел и BRAM, берем мышкой ставим в нужный блок. После этого сгенерится нужное ограничение размещения BRAM, и знать имена не надо.

 

Да, спасибо. Это работает. (Я только начал с Spartan работать, а раньше все больше CPLD).

 

Еще один вопрос. Синтез решил "соптимизировать": заменил очень маленький дешифратор на целый BRAM. Пока он пустой, я не против. Но под конец проэкта пустых не будет.

Я уверен что когда все будут заняты, то он откажется от этой оптимизации.

А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint. >

Можно и даже нужно, синтексис зависит от синтезатора, подробней не скажу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint. >

Можно и даже нужно, синтексис зависит от синтезатора, подробней не скажу.

 

Я пользуюсь ISE 6.3 WebEdition с штатным синтезом. Хочу попробовать полную версию с Core Generator но еще не добрался до Горбушки :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...