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

 
 
 
Reply to this topicStart new topic
> Stratix V vs Arria 10: разный тайминг при чтении из M20K
johan
сообщение Apr 23 2017, 15:53
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 3-09-12
Пользователь №: 73 371



Всем привет!

При переезде проекта с Stratix V на Arria 10 столкнулся с интересной и неприятной вещью в тех местах, где происходит чтение данных из блоков памяти M20K (и на выходе этой памяти не стоит регистр):
тайминг стал хуже и эти пути мешают укладыванию по частоте. Хотя я ожидал обратных результатов: Arria 10 позиционируется как более продвинутый чип, чем Stratix V.

Для демонстрации этой проблемы я сделал минипроект: https://github.com/johan92/s5_a10_ram_test

В его основе лежит SIMPLE DUAL PORT RAM, где с одного порта происходит чтение данных, прибавление каких-то чисел, и записывание данных обратно в память (через другой порт). В обоих проектах стоит clk с периодом в 3 нс.
Собрать проект можно через make в папках s5/a10. В конце cборки сформируется отчет вида s5/a10.clk.paths.rpt, где будут указаны пути, у которых худший тайминг в проекте.
Эти отчеты при сборке можно найти тут (осторожно, много трафика): https://github.com/johan92/s5_a10_ram_test/.../master/reports

Что мы видим (кроме того, что Arria проиграла в тайминге):
начало худшего пути у Arria выглядит так:
Код
6.360;   1.991; RR; uTco; 2    ; EC_X70_Y173_N3     ;          ; g_ram_test_engine[0].ram_test_engine|mem|altsyncram_component|...|portbdataout[0]
6.957;   0.597; RR; IC ; 6    ; LABCELL_X71_Y174_N9; High Speed; g_ram_test_engine[0].ram_test_engine|Add1~13|datad


А у Stratix так:
Код
4.358;   0.000;  ; uTco; 32; M20K_X205_Y2_N0;          ; ram_test:g_ram_test_engine[0].ram_test_engine|mem:mem|altsyncram:altsyncram_component|...|ram_block1a0~PORT_B_WRITE_ENABLE_REG
4.423;   0.065; RF; CELL; 2    ; M20K_X205_Y2_N0; High Speed; g_ram_test_engine[0].ram_test_engine|mem|altsyncram_component|...|portbdataout[3]
4.885;   0.462; FF; IC ; 4    ; LABCELL_X204_Y2_N9; High Speed; g_ram_test_engine[0].ram_test_engine|Add1~13|dataa


Две наносекунды (1.991) на чтении из памяти на мой взгляд это очень странно (по сравнению с тем, что у Stratix).
Каких-то изменений в структуре блоков памяти я не нашел между Statrix V и Arria 10 в даташитах (которые бы объяснили, что здесь происходит), поэтому я и решил создать этот топик.
Встречали ли вы что-то похожее в своих проектах под Arria 10? Может быть я что-то делаю не так?

Заранее спасибо за идеи и предложения sm.gif

Quartus:
Код
Version 16.0.2 Build 222 07/20/2016 SJ Standard Edition


P.S.
Ставить триггер на выходе памяти - это хорошая идея, но меня здесь интересует физика вопроса и маркетинг, который говорит, что Ария во всём лучше Стратикса sm.gif


--------------------
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Apr 23 2017, 16:21
Сообщение #2


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



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

А так не понятно, зачем этот тэст.
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Apr 24 2017, 06:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Приведите полное наименование микросхем, участвовавших в тесте.
По нему можно уже рыться в мануалах в поисках ответов. У себя в проектах при работе с трансиверами наблюдал ускорение при переходе на Арию 10.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Kopart
сообщение Apr 24 2017, 16:16
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(warrior-2001 @ Apr 24 2017, 09:07) *
Приведите полное наименование микросхем, участвовавших в тесте.

В примере указана ES микросхема 10AX115N3F40E2SG

Дабы исключить тайминги ES проверил пример с индастриал микросхемой, установленной на поставляемом DevKit'e (10AX115S2F45I1SG).
Кардинально ситуация не изменилась - улучшение тайминга сопоставимо с более быстрым speedgrade внутри семейства.
Код
6.134;   1.761; FF; uTco; 2 ; EC_X70_Y88_N1;; g_ram_test_engine[0].ram_test_engine|mem|altsyncram_component|auto_generated|ram_block1a1|portbd
ataout[0]


Блок памяти можно сделать двух типов: когда задержка на выборку данных входит во входной путь адреса или когда в выходной путь данных.
Те триггер может защелкивать либо выходные данные, либо входной адрес.

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

*Для ASIC можно сгенерировать такие блоки памяти в которых будет разные тайминги для разных портов. Один будет ориентирован на записи (уменьшен setup по входам), а другой на чтение (меньше setup по выходу данных)


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post

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

 


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


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