DLR 0 21 марта, 2005 Опубликовано 21 марта, 2005 · Жалоба <_< Подскажите пожалуйста как описать работу с блочной памятью VirtrexE 300 в ISE 6.3 на языке VHDL, если мне надо использовать её всю (16K) для одного буффера?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anatol1983 0 28 марта, 2005 Опубликовано 28 марта, 2005 · Жалоба 1) Я не знаю как в ISE 6.3, а вот в ISE 5.1 (которой я пользуюсь) есть "Language Temlates" (у меня это лампочка в самом правом углу панели инструментов), так вот там есть папочка "Synthesis Templates",а в нём есть VHDL шаблоны памяти (как блочного так и распределённого, как одно- так и многовходового) их лишь немного надо ручками поправить (разрядности шин и т.д. и т.п.) 2) воспользоваться CoreGen (по моему она так называется в ISE 6.3) PS на случай если в ISE 6.3 нет "Language Temlates" прикрепляю сгенерированные у меня RAM.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DLR 0 29 марта, 2005 Опубликовано 29 марта, 2005 · Жалоба Большое спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petermafs 0 30 марта, 2005 Опубликовано 30 марта, 2005 · Жалоба Странные вещи творятся... Если взять код, приведенный в прикрепленном файле (RAM.txt), то ISE при синтезе использует в качестве памяти распределенную двухпортовую. Если же убрать из кода счетчик и использовать внешнее указание адреса (что для моих целей оч. неудобно), то ISE использует блочную однопортовую... Не подскажите, так как все-таки при использовани счетчика добиться использования и блочной однопортовой памяти? RAM.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 30 марта, 2005 Опубликовано 30 марта, 2005 · Жалоба В разные процессы их. Тогда и счетчик будет и память системная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petermafs 0 30 марта, 2005 Опубликовано 30 марта, 2005 · Жалоба Вынес счетчик в другой процесс. Результат, использует однопортовую распределенную, но главное в результате синтеза все ресурсы ПЛИС исчерпаны :excl: , тогда как, блочная память без проблем рнеализуется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anatol1983 0 30 марта, 2005 Опубликовано 30 марта, 2005 · Жалоба А вот вопрос, конечно оффтопик, но меня очень интересует: в BRAM или DRAM одновременно ко всем ячейкам обратится можно? Если да то как? PS: Мне одновреммено нужно считать их содержимое Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V1ad 0 31 марта, 2005 Опубликовано 31 марта, 2005 · Жалоба Вынес счетчик в другой процесс. Результат, использует однопортовую распределенную, но главное в результате синтеза все ресурсы ПЛИС исчерпаны :excl: , тогда как, блочная память без проблем рнеализуется <{POST_SNAPBACK}> Опишите память компонентом BlockRAM (RAMB*) или сгенерите ядро. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость RU3DLR 31 марта, 2005 Опубликовано 31 марта, 2005 · Жалоба Интересно, если не трудно подскажи каую библиотеку использовать, а насчет COREGENA - так он именно глючит (при трассировке не включает файл в проект) и надо из-за этого описать самому-ручками, Просто организовать массив - не нормально так как не получается BRAM, а тогда как? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V1ad 0 5 апреля, 2005 Опубликовано 5 апреля, 2005 · Жалоба Интересно, если не трудно подскажи каую библиотеку использовать, а насчет COREGENA - так он именно глючит (при трассировке не включает файл в проект) и надо из-за этого описать самому-ручками, Просто организовать массив - не нормально так как не получается BRAM, а тогда как? :) <{POST_SNAPBACK}> библиотека, конечно, того чипа, что Вы используете. virtex? к сожалению, сейчас не стоит библиотека virtex но должно быть так: --сначала подключаете библиотеку library virtex; use virtex.all; --открываете библиотеку и смотрите список компонентов --определяетесь какой тип памяти Вам нужен: двухпортовая --RAMBRAMB4_Sn_Sm или однопортовая RAMB4_Sn --где n и m разрядность шины данных памяти --в архитектуре декларируете компонент выбранный компонент, --этот текст нужно скопировать можно из исх. текста компонента в библиотеке -- component RAMB4_Sn_Sm ( ...... ); -- а потом подключаете компонент в теле кода (после begin) comp_name: RAMB4_Sn_Sm port map( ... ); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petermafs 0 6 апреля, 2005 Опубликовано 6 апреля, 2005 · Жалоба К сожалению, я не успел скачать предложенные примеры:( Поэтому не могли бы вы выложить их еще раз? Заодно привожу текст, возникающей у меня ошибки: Started process "Create Schematic Symbol". Compiling vhdl file C:/Xilinx6.3/bin/247_CB_STD/wrapped_mem.vhd in Library work. ERROR:HDLParsers:3317 - C:/Xilinx6.3/bin/247_CB_STD/wrapped_mem.vhd Line 4. Library XilinxCoreLib cannot be found. ERROR:HDLParsers:3013 - C:/Xilinx6.3/bin/247_CB_STD/wrapped_mem.vhd Line 5. Library XilinxCoreLib is not declared. vhdtdtfi:Declaration (Module bc64) not found. tdtfi(vhdl) completed with errors. ERROR: vhdtdtfi failed Здесь wrapped_mem - имя компонента. При этом библиотеки прописаны как library XilixCoreLib; и т.д. Что же это такое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 6 апреля, 2005 Опубликовано 6 апреля, 2005 · Жалоба Не устаю повторять: XilinxCoreLib --- это библиотека симуляционных моделей. Она не синтезируема, и нужна только для симуляции блоков, сгенеренных CoreGen'ом. Все эти блоки для синтеза нужно объявлять как blackbox. Пример смотрите в .vho-файле, сгенеренном опять-таки CoreGen'ом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 6 апреля, 2005 Опубликовано 6 апреля, 2005 · Жалоба По поводу размещения памяти в BRAM. Попробуйте явно указать синтезатору что это память. Для этого нужно установить соответствующий атрибут. При использовании синтезатора ISE 6.3 прикрепленный файл генерируется в двухпортовую память на BRAM. Если вы используете другой синтезатор, нужно поискать в документации, там этот атрибут звучит иначе. :glare: mem.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DLR 0 6 апреля, 2005 Опубликовано 6 апреля, 2005 · Жалоба Я уж прям и не знаю куды бечь! Пробовал все, что было здесь предложено - результат один - каждый раз глюки. Из последних: проект компалится, но блок RAM игнорируется... Может быть вы сами посмотрите, то что я написал и укажите на ошибку? Прикрепленные файлы 247_CB_STD.rar - архив всего проекта (сделан в версии 6.3) Для тех, у кого более ранняя версия: CODE.txt - VHDL код LOG.txt - то что выводитится при генерации Заранее БОЛЬШОЕ спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 7 апреля, 2005 Опубликовано 7 апреля, 2005 · Жалоба Ну какой wrapped_mem? Окуда вы его взяли? Компонент называется mem --- так, как было указано CoreGen'у. Дальше смотрим в проект 247_CB_STD.npl. Вот что нужно сделать: 1. убрать из проекта mem.xco. Это файл проета CoreGen. Он уже не нужен: CoreGen сделал свое дело, CoreGen может уходить. 2. убрать из проекта wrapped_mem.vhd. Он содержит симуляционную модель вашего компонента mem. Соответственно, для разводки он не нужен. 3. исправить BC64.vhd так, чтобы использовался компонент mem, так как показано в mem.vho. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться