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

Cинтез с помощью XST Block RAM

Вопрос такой. Есть описание на VHDL блочной памяти. Пробую синтезировать XST(ISE 6.3, 7.1).

Можно ли управлять синтезатором, чтобы он организовывал память из определенных блоков (например, RAMB16_S36 или RAMB16_S18). Или нужно явно их встраивать?

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

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


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

управлять можно. т.е. принудительно указывать на какой памяти делать : блочной либо распрделенной

 

на верилоге делаю так (для блочной):

// synthesis attribute ram_style of мой_модуль is block;

module мой_модуль
...

 

для ВХДЛ смотрите

ConstraintsGuide.pdf и

XST User Guide.pdf

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


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

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

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


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

это ясно, вопрос про выбор типа блоков для блочной памяти
а разве в рамках одного кристалла они бывают разными?

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


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

а разве в рамках одного кристалла они бывают разными?
извиняюсь, я имел в виду организацию блочной памяти:

16Kx1

8Kx2

4Kx4

2Kx8 (no parity)

2Kx9 (x8 + parity)

1Kx16 (no parity)

1Kx18 (x16 + 2 parity)

512x32 (no parity)

512x36 (x32 + 4 parity)

256x72 (single-port only)

 

или RAMB16_S36...RAMB16_S1.

 

Дело в том, что описанная на вхдл память не помещается в кристалл из-за того, что синтезатор использует не оптимальную "организацию" блоков памяти.

Кореген упаковывает нормально, еще и пара блоков свободных остается...

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


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

ну вообще доволно странная ситуация. по идее как раз таки он должен оптимально выбирать организацию, исходя из задания на синтез ОЗУ.

 

едиснтвенное ,что можно предположить - у вас высокоплотный упакованный проект, в котором вы используете еще и аппаратные умножители.

у меня было такое однажды с V-II, когда маапер сказал: что мол, дескать нельзя использовать блочное озу (если DIN/DOUT > 36разрядов, кажется) рядом с умножителем (если последний задействован в проекте), ибо нету для этого трассировочных ресурсов.

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


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

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

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

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

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

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

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

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

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

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