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

 
 
 
Closed TopicStart new topic
> Проблема в Spartan3/3e, с использованием эл-та RAM32x1D
BSV
сообщение Jun 19 2006, 09:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



При попытке использвания в проекте эл-та RAM32x1D (для Спартана3 - примитив) возникает проблема - маппер не может упаковать этот эл-т в микросхему - вываливается с ошибкой "MapLib:662 Problem netlisting input design". Использую ISE 8.1.03. Элемент в VHDL-код вставляется в соответствии с Libraries guide. Кто-нибудь сталкивался с такой проблемой?


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jun 19 2006, 12:54
Сообщение #2


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Сталкивался. Точно причину не искали, так как быстро нашли эквивалентный обход в виде двух элементов 16X1D. Если приблизительно - то 32X1D - это два LUT, и если полученные цепи частично упрощаются (например, описана там шина и некоторые ее разряды не используются), то маппер сплющивает. У нас конкретно из похожих (64Х1D) был набран большой блок (256Х32), чтобы его в Spartan-3 подпихать поближе к нужному месту, а то блочная память там только по краям кристалла. Ну и из этих 32 разрядов посередине нексколько штук оптимизировались (в памяти хранились битовые поля, некоторые биты которых не использовались). Сообщение об ошибке было точно такое, как Вы написали.
Go to the top of the page
 
+Quote Post
BSV
сообщение Jun 19 2006, 21:51
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Хотелось бы все же по хорошему ISE уговорить. Попробую полазить по их сайту - может найду чего. Кстати, действительно, если поменять используемые элементы на RAM16X1D, то все O'k, также все замечательно, если поменять семейство на Virtex2 (от которого Spartan3 и произошел).
Если у кого есть конструктивные идеи решения проблемы, буду признателен. Сам что придумаю - отпишусь.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
BSV
сообщение Jun 19 2006, 22:24
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



Полазил, блин. Оказывается такой тип памяти как примитив в Спартане3 не поддерживается вовсе, судя по xapp464. Вот собаки страшные, а в Libraries guide слабо это было правильно описать!!! Теперь придется думать, как это объехать.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 20 2006, 04:57
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



хмм а почему не просто написать на бехавор уровне и скормить XST ?


--------------------
Go to the top of the page
 
+Quote Post
Gorby
сообщение Jun 20 2006, 07:18
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(des00 @ Jun 20 2006, 08:57) *
хмм а почему не просто написать на бехавор уровне и скормить XST ?


А потому что лень доку посмотреть.

The distributed memory module is used to create memory
structures using the Select-RAM. It can be used to create
read-only memory (ROM), single-port random-access
memory (RAM), pseudo dual-port RAM and SRL16-based
RAM with data widths up to 1024 bits and depths up to
65536 words. Options are available for simple registering of
inputs and outputs in addition to variable pipelining capabilities.
Optional asynchronous and synchronous resets are
available for the output registers. Optionally, the module can
be generated as a relationally placed macro (RPM) or as
unplaced logic.
For timing information, please see the Xilinx Product Specification
for the specific architecture being targeted.

Xilinx CORE generator. Distributed Memory v7.1.

Все само делает, только нужные поля заполнить.
И не надо нигде "лазить" blink.gif


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jun 20 2006, 07:38
Сообщение #7


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(BSV @ Jun 20 2006, 02:24) *
Теперь придется думать, как это объехать.

А чем решение заменить на 16X1D является неконструктивным?
Go to the top of the page
 
+Quote Post
BSV
сообщение Jun 20 2006, 08:08
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



2 des00:
Цитата(des00 @ Jun 20 2006, 08:57) *
хмм а почему не просто написать на бехавор уровне и скормить XST ?

Возможно, так и попробую сделать, однако, имеются сомнения по поводу интеллекта синтезатора XST, по крайней мере раньше имелись проблемы с синтезом двухпортовой (только блочной) памяти.

2 gorby:
Цитата
А потому что лень доку посмотреть.

Думаете, что Вы один такой умный? Просто стараюсь не пользоваться корегеном, так как возможны в будущем сложности при переходе на другие версии софта, а ВХДЛ-код - он и в Африке ВХДЛ-код. Оттуда обычно берется идея, и реализуется самостоятельно.

2 DmitryR:
Цитата
А чем решение заменить на 16X1D является неконструктивным?

Да, в принципе, тоже вариант - два 16X1D и на выходе мультиплексор (по ТЗ фифо должно быть глубиной 31 слово). Не лучше и не хуже других.

Речь-то не о том, что это нельзя сделать, а об отношении господ из Ксайлинкса к разработчикам - указывать в документе, который уместно использовать для оперативной справки неверные сведения, что в конечном итоге приводит к значительным потерям времени.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Gorby
сообщение Jun 20 2006, 20:41
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(BSV @ Jun 20 2006, 12:08) *
2 gorby:
Цитата

А потому что лень доку посмотреть.

Цитата
Думаете, что Вы один такой умный? Просто стараюсь не пользоваться корегеном, так как возможны в будущем сложности при переходе на другие версии софта, а ВХДЛ-код - он и в Африке ВХДЛ-код. Оттуда обычно берется идея, и реализуется самостоятельно.


Цитата
Речь-то не о том, что это нельзя сделать, а об отношении господ из Ксайлинкса к разработчикам - указывать в документе, который уместно использовать для оперативной справки неверные сведения, что в конечном итоге приводит к значительным потерям времени.



Дааа. Нечего возразить. А я-то и не знал, что кореген - западло. Только как сгенерил память, так и горя и не знаю. А вот Вы непонятно как делаете и время потеряли. Так кто здесь есть ХУ?
Уж постарайтесь пользоваться корегеном - сделать лучше Вам вряд ли удастся. А то с Вашим подходом трудности Вам гарантированы. Ведь есть достаточно много вещей, которые на VHDL просто не делаются. Например мне пришлось двунаправленный DDR регистр в IOB руками делать. Потому что господа из Ксайлинкса прямо и честно заявили - на VHDL это не делается. И пример привели, как надо сделать, вручную вставляя библиотечные примитивы. И все работает. И меня ничуть не парит, что на другом кристалле придется этот регистр переписать - это же аппаратно зависимая вещь, у каждого чипа своя.
А Вы создаете супер-пупер высокоуровневое универсальное описание. Ну и на здоровье. только нечего плакаться потом и обижаться на "господ из Ксайлинкса".

А потом корабли до Марса не долетают... и господа - в Париже cranky.gif


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
BSV
сообщение Jun 20 2006, 21:56
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 541
Регистрация: 11-04-05
Из: Москва
Пользователь №: 4 045



2 Gorby: bb-offtopic.gif Зря обижаетесь, я просто ответил на укол про лень и не хотел Вас серьезно задеть. Считаю, что кореген лучше использовать тогда, когда без него реально не обойтись (PCI, EternetMAC и т.п.) - тут я с Вами полность согласен, что пытаться переплюнуть Ксайлинкс - занятие длительное и бесперспективное. А реализовать ту же память можно и без него - я вообще стараюсь ставить синтезатор в такие условия, чтобы у него меньше было простора для самодеятельности. И потом - в VHDL можно и примитивы использовать, что я в общем и пытался сделать, когда напоролся на описываемую каку. Бывает, что без примитивов никак не обойтись.

В общем - о вкусах не спорят.
Так что, мир, дружба, сосиска cheers.gif

P.S. А для памяти сделал поведенческое описание - два процесса - и все дела. Единственнная проблема - пришлось синтезатору констрейном мозги вправить - а то он норовил эту память в BlockRAM запихать.


--------------------
Дурак, занимающий высокий пост, подобен человеку на вершине горы - все ему кажется маленьким, а всем остальным кажется маленьким он сам. /Законы Мерфи/
Go to the top of the page
 
+Quote Post
Gorby
сообщение Jun 21 2006, 10:44
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(BSV @ Jun 21 2006, 01:56) *
2 Gorby: bb-offtopic.gif Зря обижаетесь, я просто ответил на укол про лень и не хотел Вас серьезно задеть. Считаю, что кореген лучше использовать тогда, когда без него реально не обойтись (PCI, EternetMAC и т.п.) - тут я с Вами полность согласен, что пытаться переплюнуть Ксайлинкс - занятие длительное и бесперспективное. А реализовать ту же память можно и без него - я вообще стараюсь ставить синтезатор в такие условия, чтобы у него меньше было простора для самодеятельности. И потом - в VHDL можно и примитивы использовать, что я в общем и пытался сделать, когда напоролся на описываемую каку. Бывает, что без примитивов никак не обойтись.

В общем - о вкусах не спорят.
Так что, мир, дружба, сосиска cheers.gif

P.S. А для памяти сделал поведенческое описание - два процесса - и все дела. Единственнная проблема - пришлось синтезатору констрейном мозги вправить - а то он норовил эту память в BlockRAM запихать.


Да что-то накатило... Магнитные бури наверное. Приношу извинения за излишне резкий тон. В соседней ветке один молодой человек с DCMом воюет, не зная, как инстанцировать компонент на VHDL. Мне показалось, Вы тоже из тех кто "все знает". Рад, что ошибся. cheers.gif


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post

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

 


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


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