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

 
 
> Сравнение математики altrera vs xilinx, по мотивам темы о Timing Errors
des00
сообщение Jan 26 2012, 18:22
Сообщение #1


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

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



Уважаемый bogaev_roman предложил сравнить как синтезируется и разводится математика у разных вендоров.
Вот для затравки пример. Генератор шума + цепочка FIR фильтров, символьная == тактовой

Чип сыклон 3, 25 ка, i7, фильтр симметричный, 93 го порядка(94 коэффициента), задержка выхода фильтра 4 такта, разрядность данных/коэффициентов 18 бит, сумматоров 36 бит(усиление фильтра +18 бит, подобранно коэффициентами), все на чистой логике, без ДСП слайсов. Задача выжать тактовую в 100МГц, для самого тормозного режима (slow 85). Оптимизация при синтезе по ресурсу. Все остальные настройки по дефолту. Временной анализатор TimeQuest.
Результаты для ква 9.1сп2
1 фильтр : LE 5814(24%)/108.83MHz
2 фильтра : LE 11588(47%)/105.94MHz
3 фильтра : LE 17368(71%)/105.73MHz
4 фильтра : не влезло фитер вывалился с сообщением Error: Fitter requires 1764 LABs to implement the project, but the device contains only 1539 LABs. хотя по ресурсу запас еще был. Думаю что дело связано с 32-х битным LAB, на которые плохо ложатся 36 битные сумматоры

уменьшим разрядность данных до 14 ти бит, коэффициентов оставим 18, сумматоры 32 бита.

5 фильтров : не влезло, фиттер вывалился с сообщением Error: Fitter requires 1545 LABs to implement the project, but the device contains only 1539 LABs.

уменьшим данные до 13 ти бит (уж больно лень фильтр пересчитывать)

5 фильтров : LE 22867 (93%)/117.07MHz


сорцы и квартусовский архивированный проект в приложении.

интересны результаты спартна3/3е/3А/6 сравнимого объема, при сравнимой заполненности sm.gif

ЗЫ. Если общественность попросит, то фильтр таки пересчитаю на 16 ти битные коэффициенты. И да, фильтр не сферический конь в вакууме, а из рабочего проекта.
Прикрепленные файлы
Прикрепленный файл  test_fir.zip ( 16.3 килобайт ) Кол-во скачиваний: 89
 


--------------------
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
dm.pogrebnoy
сообщение Jan 27 2012, 08:35
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Что такое `include "define.vh" ? Ругается.


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 27 2012, 12:57
Сообщение #3


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

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



Цитата(dm.pogrebnoy @ Jan 27 2012, 03:35) *
Что такое `include "define.vh" ? Ругается.

нда, забыл приложить %)

Код
`ifndef __DEFINE_VH__

  `define __DEFINE_VH__

  //------------------------------------------------------------------------------------------------------
  // useful function's
  //------------------------------------------------------------------------------------------------------

  //
  // function to count logarithm for parameters
  //

  function automatic int clogb2 (input int data);
    int i;
    clogb2 = 0;
    if (data > 0) begin
      for (i = 0; 2**i < data; i++)
        clogb2 = i + 1;
    end
  endfunction


  function automatic int max (input int a,b );
    if (a >=b )
      max = a;
    else
      max = b;
  endfunction


  function automatic int min (input int a,b );
    if (a <=b )
      min = a;
    else
      min = b;
  endfunction

`endif


--------------------
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 27 2012, 19:24
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(des00 @ Jan 26 2012, 22:22) *
...
интересны результаты спартна3/3е/3А/6 сравнимого объема, при сравнимой заполненности sm.gif
...


Судя по жуткой ругани XST - это систем верилог.
Так что, придётся ждать любителей симплифая или прецижина. sad.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 28 2012, 13:07
Сообщение #5


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

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



Цитата(VladimirB @ Jan 27 2012, 13:24) *
Судя по жуткой ругани XST - это систем верилог.

конвертнул в чистый верилог (Slick Edit сила !!!) wink.gif
Прикрепленные файлы
Прикрепленный файл  2cmp_pure_verilog.zip ( 3.14 килобайт ) Кол-во скачиваний: 52
 


--------------------
Go to the top of the page
 
+Quote Post
Leka
сообщение Jan 28 2012, 15:43
Сообщение #6


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

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



XST ругается (разбираться не буду - хватает задачки FPGA-клона PDP11).
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 28 2012, 16:13
Сообщение #7


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

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



нда, активность форумчан таки призывает поставить ISE и провести анализ самостоятельно, а жаль %(


--------------------
Go to the top of the page
 
+Quote Post
Leka
сообщение Jan 28 2012, 17:16
Сообщение #8


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

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(des00 @ Jan 28 2012, 20:13) *
нда, активность форумчан таки призывает поставить ISE и провести анализ самостоятельно, а жаль %(

М/б и Icarus Verilog-а и тп достаточно будет, там несколько ошибок в синтаксисе, имхо.
Ну а по поводу активности, так было и будет - если нужно вникать - активность нулевая.

Просил в свое время прогнать N-ферзей на Nios/MicroBlaze, чтобы сравнить сосвоим софт-процессором, исходник на Си выложил - активность тоже 0-я.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jan 28 2012, 21:46
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Прогнал тестирование для одного канала на spartan3e(xc3s500e-4) и ecp2m(LFE2M50EFPBGA900-6). Для пяти каналов слишком долго утрамбовыватьsm.gif. В исходном варианте spartan3e получился на 94МГц. Добавил к умножителю дополнительную ступень конвейера, правда, без переделки остального алгоритма, так что получилось не совсем эквивалентно, но это не существенно, IMHO. В результате спартан прибавил до 137МГц, на ecp2m вышло 170МГц(без конвейера на нём не смотрел). А вот Циклону(скорее Симплифаю для Циклона) конвейер только помешалsm.gif - немного упала частота и заметно увеличилось число LE. Причём для Циклона с Симплифаем получились те же 117МГц.
Полные отчёты по занятым ресурсам есть в аттаче, везде около 5000 LE, но это нельзя выразить одной-двумя цифрами. Lattice расходует немного побольше, так как там неэффективно используются арифметические блоки - в каждом сумматоре бесполезно пропадают 1 или 2 LE.


Отчёт по ecp2m:

Number of registers: 4087
PFU registers: 4074
PIO registers: 13
Number of SLICEs: 3102 out of 23832 (13%)
SLICEs(logic/ROM): 3102 out of 19620 (16%)
SLICEs(logic/ROM/RAM): 0 out of 4212 (0%)
As RAM: 0 out of 4212 (0%)
As Logic/ROM: 0 out of 4212 (0%)
Number of logic LUT4s: 565
Number of distributed RAM: 0 (0 LUT4s)
Number of ripple logic: 2429 (4858 LUT4s)
Number of shift registers: 0
Total number of LUT4s: 5423
Number of external PIOs: 14 out of 410 (3%)
Number of PIO IDDR/ODDR: 0
Number of PIO FIXEDDELAY: 0
Number of DQSDLLs: 0 out of 2 (0%)
Number of 3-state buffers: 0
Number of PLLs: 0 out of 8 (0%)
Number of DLLs: 0 out of 2 (0%)
Number of block RAMs: 0 out of 225 (0%)
Number of CLKDIVs: 0 out of 2 (0%)
Number of GSRs: 0 out of 1 (0%)
JTAG used : No
Readback used : No
Oscillator used : No
Startup used : No
Notes:-
1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of
distributed RAMs) + 2*(Number of ripple logic)
2. Number of logic LUT4s does not include count of distributed RAM and
ripple logic.

А по Spartan он, извиняюсь, в HTML, поэтому только в аттаче.
Использовался Synplify Pro E-2010.09, ISE 13.2, ispLever 7.1sp1.

Интересно, можно ли как-нибудь воспитать Циклон, чтобы он тоже ускорялся от конвейера?


Прикрепленные файлы
Прикрепленный файл  test_fir.zip ( 28.04 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Jan 29 2012, 02:11
Сообщение #10


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(des00 @ Jan 29 2012, 01:13) *
нда, активность форумчан таки призывает поставить ISE и провести анализ самостоятельно, а жаль %(

выходной как бы..а дома гадости не держим ISE...в пн всё в пн.

Цитата(Leka @ Jan 29 2012, 02:16) *
М/б и Icarus Verilog-а и тп достаточно будет, там несколько ошибок в синтаксисе, имхо.
Ну а по поводу активности, так было и будет - если нужно вникать - активность нулевая.

Просил в свое время прогнать N-ферзей на Nios/MicroBlaze, чтобы сравнить сосвоим софт-процессором, исходник на Си выложил - активность тоже 0-я.

хм...а кому это надо то в первую очередь?
вы бы и сравнили сами, выложили бы результаты и тогда народ и подтянулся бы...наверное rolleyes.gif


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 29 2012, 09:39
Сообщение #11


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

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



Цитата(Timmy @ Jan 28 2012, 15:46) *
Прогнал тестирование для одного канала на spartan3e(xc3s500e-4) и ecp2m(LFE2M50EFPBGA900-6).
Полные отчёты по занятым ресурсам есть в аттаче, везде около 5000 LE, но это нельзя выразить одной-двумя цифрами. Lattice расходует немного побольше, так как там неэффективно используются арифметические блоки - в каждом сумматоре бесполезно пропадают 1 или 2 LE.

Спасибо за участие, но мне интересен не синтез одного фильтра, т.к. этот вопрос легко решается на любой платформе. А именно деградация производительности математических блоков при заполненности ПЛИС под 80-90%. Т.к. по моему опыту проблемы с хилыми начинаются именно здесь (подозреваю что из-за разводки). Т.е. интересны не критические пути, а кол-во фильтров, ресурс в попугаях и % заполненности плис ну и тактовая. Как видно по альтере, заполненность плис слабо влияет на тактовую.

По времени очень странно, 25ку с 5ю фильтрами квартус собирал минут 8 (на атлоне 640, 4 гига озу, но под хренью).


--------------------
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 29 2012, 12:41
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(des00 @ Jan 29 2012, 13:39) *
Спасибо за участие, но мне интересен не синтез одного фильтра, т.к. этот вопрос легко решается на любой платформе. А именно деградация производительности математических блоков при заполненности ПЛИС под 80-90%. Т.к. по моему опыту проблемы с хилыми начинаются именно здесь (подозреваю что из-за разводки). Т.е. интересны не критические пути, а кол-во фильтров, ресурс в попугаях и % заполненности плис ну и тактовая. Как видно по альтере, заполненность плис слабо влияет на тактовую.
По времени очень странно, 25ку с 5ю фильтрами квартус собирал минут 8 (на атлоне 640, 4 гига озу, но под хренью).


После перевода исходников в Верилог ситуация улучшилась, но не сильно.

ISE 12.4. Захотел собрать на XC6SLX25
XST начал ругаться на:
1) function automatic integer clogb2
2) task automatic ScramblerBit
после часа ковыряний добавил в их тело begin и end и вроде проверка синтаксиса перестала ругаться.
Но XST вконце синтеза вылетал с необъяснимой ошибкой и советовал создать webcase.
При определённых настройках синтез всётаки состоялся - но DSP слайсы отключить не удалось (12 из 38 он всё-таки использовал)
(хотя стояло DSP slice utilization ratio = 0 и USE DSP slice = no) - и с таймингами полсе PAR было всё плохо - всего 16нс (62МГц) -и все ошибки по таймингам были на выходах DSP слайсов.

Заменил ПЛИС в проекте на "безДСПслайсовую" XC3S1400A и получил ошибку синтаксиса:
"ERROR:HDLCompilers:168 - "scrambler.v" line 76 No signals referenced in statement with implicit sensitivity list"
эту ошибку пофиксить так и не удалось - при удалении 76 строчки появляется ещё толпа синтаксических ошибок.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 29 2012, 13:07
Сообщение #13


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

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



Цитата(VladimirB @ Jan 29 2012, 06:41) *
После перевода исходников в Верилог ситуация улучшилась, но не сильно.

понятно, найду у кого из коллег стоит ise и добьюсь синтезируемости. потом выложу %)


--------------------
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 30 2012, 14:44
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



форум глючит - появляются посты в теме с синтезируемымии исходниками и исчезают
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 30 2012, 15:17
Сообщение #15


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

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



Цитата(des00 @ Jan 29 2012, 07:07) *
понятно, найду у кого из коллег стоит ise и добьюсь синтезируемости. потом выложу %)

версия для хилых, собирается в 13.4

Цитата(VladimirB @ Jan 30 2012, 08:44) *
форум глючит - появляются посты в теме с синтезируемымии исходниками и исчезают

это не форум глючит, это я сорцы не те выкладывал, и что бы потом небыло обвинений в том, что выложил не то, по быстрому стирал %)

пришлось переделать скремблер, не понимает исе тасков по нормальному %( сделал в лоб, без красивостей + выкинул из фира не нужную функцию %)

Взял спартан 3e 1600 - 4, как наиболее близкий по количеству LE к сабжевому сыклону. 33 тыс ~= 25 тыс.
Разрядность данных 13 бит, коэффициентов 18, аккумуляторов 31. Констрейны

Код
TIMESPEC TS_false_path = FROM "PADS" TIG;
TIMESPEC TS_false_path = TO "PADS" TIG;

NET "iclk" TNM_NET = iclk;
TIMESPEC TS_iclk = PERIOD "iclk" 10 ns HIGH 50%;


1 фильтр Slice 3337(22%)/79.847MHz
2 фильтра Slice 6677(45%)/74.063MHzMHz
3 фильтра Slice 10004(67%)/59.748MHzMHz
4 фильтра Slice 13331(90%)/63.464MHzMHz

заняный результат %)
Прикрепленные файлы
Прикрепленный файл  mathcmp_xil.zip ( 2.53 килобайт ) Кол-во скачиваний: 37
 


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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