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

 
 
> Xilinx ROM 72x512, XST глючит или я?
sallador
сообщение Oct 7 2015, 08:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-05-11
Пользователь №: 64 903



Есть вот такой кусочек кода:

Код
type std_logic_array_64xNN is array (511 downto 0) of std_logic_vector(63 downto 0);

-- Инициализирую массив 512х64 функцией read_ini_file.
constant const_init : std_logic_array_64xNN:=read_ini_file(stage_num);

attribute RAM_STYLE : string;
attribute RAM_STYLE of d_out : signal is "block";

begin    
    -- адрес = выход обычного счетчика
    addr <= cnt(stage_num-2 downto 0);    
    -- здесь я пытаюсь сделать ROM 512х64 на BRAM:
    d_out <= const_init(conv_integer(addr)) when rising_edge(clk);

Хочу: чтобы синтезатор сделал Simple dual-port ROM на одном примитиве RAMB36E1.
Из даташита на 7 серию: Each 36 Kb block RAM can be configured as a ... 512 x 72 in simple dual-port mode.

То есть теоретически это реально, но синтезатор ни в какую не хочет задействовать примитив и делает на рассыпухе.
Причем, атрибуты он игнорирует. XST пишет следующее:

Цитата
The RAM <...> will be implemented on LUTs either because you have described an asynchronous read or because of currently unsupported block RAM features. If you have described an asynchronous read, making it synchronous would allow you to take advantage of available block RAM resources, for optimized device usage and improved timings. Please refer to your documentation for coding guidelines.

Но асинхронного чтения нет, все по клоку. Да и возможности BRAM из 7 серии позволяют использовать режим SDP 512x72.
Пробовал расширять разрядность до 72 - безрезультатно!

Использовать coregenerator не хочу, вставлять напрямую библиотеку unisim/unimacro - тоже. Как быть? Почему XST тупит?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrew_b
сообщение Oct 7 2015, 10:33
Сообщение #2


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(sallador @ Oct 7 2015, 12:10) *
Код
     d_out <= const_init(conv_integer(addr)) when rising_edge(clk);

Почему XST тупит?
Вы бы не выделывались, а написали бы нормальный процесс. Глядишь, и xst тупить бы перестал. Это первое.
А второе, xst не умел использовать двухпортовую память для двух идентичных блоков ROM. Видать, так и не научили ещё.
Go to the top of the page
 
+Quote Post
sallador
сообщение Oct 7 2015, 10:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-05-11
Пользователь №: 64 903



Цитата(andrew_b @ Oct 7 2015, 14:33) *
Вы бы не выделывались, а написали бы нормальный процесс. Глядишь, и xst тупить бы перестал. Это первое.
А второе, xst не умел использовать двухпортовую память для двух идентичных блоков ROM. Видать, так и не научили ещё.

Для уменьшения кода я написал без процесса. С процессом тоже пробовал, суть та же. Результаты одинаковые.

Ладно, попробую через примитив из unimacro, где можно определенным образом задать INIT векторы.

Цитата(Golikov A. @ Oct 7 2015, 14:37) *
может не мочь на 1 блоке. там есть ограничения, надо доки читать...

Хм. Ничего не понимаю. ROM не хочет делать, а RAM влегкую. Такие дела, переписал код: удалил инициализацию, добавил порт для записи в память. Итого, RAM 512x64 он сделал без проблем на 1 RAMB36. Пруф из FPGA_Editor:
Прикрепленное изображение

Чудеса.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sallador   Xilinx ROM 72x512   Oct 7 2015, 08:10
- - Vascom   А почему не хочешь генератор использовать? Он точн...   Oct 7 2015, 08:13
|- - sallador   Цитата(Vascom @ Oct 7 2015, 12:13) А поче...   Oct 7 2015, 08:33
|- - Maverick   Кодlibrary ieee; use ieee.std_logic_1164.all; ent...   Oct 7 2015, 08:34
|- - sallador   Цитата(Maverick @ Oct 7 2015, 12:34) в ге...   Oct 7 2015, 08:39
|- - Maverick   Цитата(sallador @ Oct 7 2015, 11:39) У ва...   Oct 7 2015, 08:48
|- - sallador   Цитата(Maverick @ Oct 7 2015, 12:48) доба...   Oct 7 2015, 09:00
- - Golikov A.   сделайте регистр и в него явно по клоку защелкните...   Oct 7 2015, 09:11
- - TRILLER   В Симплифае один раз так накололся, написав атрибу...   Oct 7 2015, 09:28
|- - sallador   Цитата(TRILLER @ Oct 7 2015, 13:28) В Сим...   Oct 7 2015, 10:30
- - Golikov A.   ЦитатаУра. Удалось сделать не на рассыпухе, а на 2...   Oct 7 2015, 10:37
- - Golikov A.   Кстати вы надеюсь смотрите technologic view а не r...   Oct 7 2015, 17:46
|- - sallador   Цитата(Golikov A. @ Oct 7 2015, 21:46) Кс...   Oct 8 2015, 08:19
|- - Bad0512   Цитата(sallador @ Oct 8 2015, 14:19) Вчер...   Oct 8 2015, 10:18
- - Golikov A.   У нас тут был супер проект все описать на чистом в...   Oct 8 2015, 14:23


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:34
Рейтинг@Mail.ru


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