alexf 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба Кто работает с 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 - все равно не проходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bbg 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба Я делаю устройство на Spartan-3 с использованием PicoBlazer. Все классно, только каждый раз при замеме кода делать всю компиляцию долго. Есть прилада data2mem которая должна подменять инициализацию BRAM в готовом .bit файле. Если грузите через JTAG, то есть возможность на лету притормаживать пикоблэйз и перезаписывать область брамы новым контентом - подробности можно узнать у Christian Chaplin, у него есть некий дизайн такой приблуды. У меня тоже есть, но для виртекса, нету у меня пока спартанов-3 :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 22 декабря, 2004 Опубликовано 22 декабря, 2004 · Жалоба Пардон за неграмотность, а кто есть Christian Chaplin? Если я правильно понял идею, вводится инстанс JPEG и немного логики которая через второй порт меняет BRAM, так? Это конечно вполне подход. Хотелось только не вводить новых элементов которых не будет в продукте. Казалось что data2mem идеальное решение. Но Вы подтверждаете что она не поддерживает 18 битную память? Я могу конечно написать програмку которая будет подменять блок в .bit файле. Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба <Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. > Можно через UCF закрепить BRAM на кристалле, далее эмпирически отыскать место в bit. Кстати совсем неплохо будет если и PicoBlazer тоже засунете в регион поближе к BRAM, оно предсказуемее при разводке будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bbg 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Пардон за неграмотность, а кто есть Christian Chaplin? Xilinx UK's Senior Customer Applications Engineer :) Он автор теКСклюзивы "Reconfiguring Block RAMs" Если я правильно понял идею, вводится инстанс JPEG и немного логики которая через второй порт меняет BRAM, так? Именно так. Я могу конечно написать програмку которая будет подменять блок в .bit файле. Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. А разве если вам известен формат bit-файла, то это не подразумевает знания в какие гриды попадет ваш блок? К сожалению, данный процесс я не освоил, хотя планы есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба А разве если вам известен формат bit-файла, то это не подразумевает знания в какие гриды попадет ваш блок? К сожалению, данный процесс я не освоил, хотя планы есть. <{POST_SNAPBACK}> Формат известен: я аплоаднул сорс проги которая заливает .bit через Линуксовский пар. порт. Там есть код который парсит .bit файл. См. в "есть программа" форуме. Проблема то в том что я могу с использованием этой информации подменить биты которые попадут скажем в BRAM X1Y1. Только я НЕ знаю всегда ли там окажется именно тот блок. Возможно есть грабли в виде checksum, но это врядли закрытая информация. Не смотрел еще. Не хочется изобретать велосипед когда уже написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Xilinx UK's Senior Customer Applications Engineer :) Он автор теКСклюзивы "Reconfiguring Block RAMs" Понятно почему я не нашел его. Xilinx почему-то называет его Kris Chaplin :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба <Но остается вопрос как определить на какое место на чипе попадает данный блок памяти. > Можно через UCF закрепить BRAM на кристалле, далее эмпирически отыскать место в bit. Кстати совсем неплохо будет если и PicoBlazer тоже засунете в регион поближе к BRAM, оно предсказуемее при разводке будет. <{POST_SNAPBACK}> Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле" надо знать как его иерархически зовут. Если ли лучше способ чем тыкать во все 12 блоков на floorplan editor и смотреть какое из имен похоже? На свой главный вопрос а нашел ответ у тов. Чаплина: (Note: Current restrictions prevent Virtex-II PicoBlaze systems from using DATA2BRAM, as the parity bits cannot be modified.) Так что либо писать свою приладу, или идти пить кофе после каждой смены строчки кода :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bbg 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Да, но та же проблема: чтобы "через 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, а виртекс-второй сигнализирует.. Приходится лишнюю логику городить.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба <Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле" надо знать как его иерархически зовут.> Что то не пойму. Даже если не удерживать иерархию в синтезаторе, после запуска PACE будет список всех инстансов, в том чисел и BRAM, берем мышкой ставим в нужный блок. После этого сгенерится нужное ограничение размещения BRAM, и знать имена не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба Еще вариант, сам не пробовал, но может ... Можно в опциях PAR указать Guide mode - Exact, указав сооответственно используемый NCD. Тогда теоретически PAR должен оставить всю логику как есть изменив только содержимое BRAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба <Да, но та же проблема: чтобы "через UCF закрепить BRAM на кристалле" надо знать как его иерархически зовут.> Что то не пойму. Даже если не удерживать иерархию в синтезаторе, после запуска PACE будет список всех инстансов, в том чисел и BRAM, берем мышкой ставим в нужный блок. После этого сгенерится нужное ограничение размещения BRAM, и знать имена не надо. <{POST_SNAPBACK}> Да, спасибо. Это работает. (Я только начал с Spartan работать, а раньше все больше CPLD). Еще один вопрос. Синтез решил "соптимизировать": заменил очень маленький дешифратор на целый BRAM. Пока он пустой, я не против. Но под конец проэкта пустых не будет. Я уверен что когда все будут заняты, то он откажется от этой оптимизации. А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 декабря, 2004 Опубликовано 23 декабря, 2004 · Жалоба <А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint. > Можно и даже нужно, синтексис зависит от синтезатора, подробней не скажу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexf 0 24 декабря, 2004 Опубликовано 24 декабря, 2004 · Жалоба <А нельзя ли сразу ему такую вольность запретить? Чтобы задержки сразу были как в продукте? Наверное есть какой нибуть option или constraint. > Можно и даже нужно, синтексис зависит от синтезатора, подробней не скажу. <{POST_SNAPBACK}> Я пользуюсь ISE 6.3 WebEdition с штатным синтезом. Хочу попробовать полную версию с Core Generator но еще не добрался до Горбушки :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться