Jump to content

    

Recommended Posts

ну они DCT/IDCT дали, а не фир, все таки... С реализацией до RTL на TSMC 0.13

 

а можно ссылку (лень искать %)) но вообще это тоже просто делается, особенно для конвейерной системы %)

Share this post


Link to post
Share on other sites
а можно ссылку (лень искать %)) но вообще это тоже просто делается, особенно для конвейерной системы %)

аплоад/еда/форте цынтезатор

Share this post


Link to post
Share on other sites
не стесняйтесь, огласите результаты, какой алгоритм и как портировался, в противном случа это простое сотрясение клавиатуры пальцами %) Если сорцы приведете будет еще лучше.

 

Вот исходник и результат синтеза в катапульте (один из вариантов). утверждается что это в два раза хуже по частоте и площади по сравнению с ручной кодировкой. Сам не проверял

 

По цифрам так вышло (тоже один из вариантов)

 

latency in catapult 2353 cycles

clock period in Precision 7,157 ns

total time 16840,421 ns

 

 

 

 

Файлы

rc42.c.txt

rtl.vhdl.txt

Share this post


Link to post
Share on other sites
Вот исходник и результат синтеза в катапульте (один из вариантов). утверждается что это в два раза хуже по частоте и площади по сравнению с ручной кодировкой. Сам не проверял

 

а кодированный в ручную где ?

 

 

 

аплоад/еда/форте цынтезатор

 

10х, посмотрю на досуге что они с dct8x8 сделали. Могли бы уж какой нить codec h264 BaseLine intra ony выложить, туда как раз DCT ложиться. Правда петель там как таковых нет.

Share this post


Link to post
Share on other sites
Вот исходник и результат синтеза в катапульте (один из вариантов). утверждается что это в два раза хуже по частоте и площади по сравнению с ручной кодировкой. Сам не проверял

 

По цифрам так вышло (тоже один из вариантов)

 

latency in catapult 2353 cycles

clock period in Precision 7,157 ns

total time 16840,421 ns

 

покурил C код, по первым прикидакам, на все про все 128 + 4*256 + 4*4 = 1168 тактов + ~10 тактов на конвейер. 1 BRAM + логики где то плиток на 500 (Altera). если время будет на выходных накидаю код.

 

покурил C код, по первым прикидакам, на все про все 128 + 4*256 + 4*4 = 1168 тактов + ~10 тактов на конвейер. 1 BRAM + логики где то плиток на 500 (Altera). если время будет на выходных накидаю код.

 

вот и нашел свободный вечер. В атаче моя реализация, того алгоритма который вы привели. Реализация в лоб, почти без оптимизации и конвейеризации. Тестбенч в атаче, в альдеке может не заработать.

 

результат работы (проверяется запуском тестбенча)

 

# result 20 34 b3 c7

# it takes 1180 cycles

 

ресурсы при сборке в Q 8.0 под Cyclone III, все пины виртуальные, все по дефолту после P&R

 

Family : Cyclone III

Device : EP3C5F256C6

Timing Models : Preliminary

Total logic elements : 198 / 5,136 ( 4 % )

Total combinational functions : 164 / 5,136 ( 3 % )

Dedicated logic registers : 95 / 5,136 ( 2 % )

Total registers : 95

Total pins : 0 / 183 ( 0 % )

Total virtual pins : 132

Total memory bits : 2,048 / 423,936 ( < 1 % )

Embedded Multiplier 9-bit elements : 0 / 46 ( 0 % )

Total PLLs : 0 / 2 ( 0 % )

 

результаты STA выполненные Classic Timing Analyzer

 

Type : Clock Setup: 'iclk'

Slack : -0.323 ns

Required Time : 200.00 MHz ( period = 5.000 ns )

Actual Time : 187.86 MHz ( period = 5.323 ns )

From : dpram:ram|dpram_8x256:dpram_8x256|altsyncram:altsyncram_component|altsyncram_gji

2:auto_generated|ram_block1a0~porta_re_reg

To : j_reg[7]

From Clock : iclk

To Clock : iclk

Failed Paths : 7

 

 

Затраты времени (сделал за этот вечер):

адаптация Си кода под РТЛ + написание RTL кода : 40 минут до ужина, 30 минут после ужина.

написание тестбенча 20 минут.

отладка кода 30 минут (если бы не сделал описку вместо ram__rdata_a написал ram__read_a, отладка заняла бы 5 минут).

причесывание кода 10минут.

причесывание кода под синтез ква 15минут (пришлось BRAM ручками поставить).

 

 

ЗЫ. код от вашего отличается наличием простого handshake, в этом коде можно сократить 3 состояния FSM и длительность расчета будет 1177 тактов.

 

ЗЗЫ. если поставить на мультиплексоры регистры это даст задержку в ~280 тактов, но тогда тактовая должна за 240 выйти легко. Кто хочет может сам проверить. :)

rc42.zip

Share this post


Link to post
Share on other sites
Затраты времени (сделал за этот вечер):

адаптация Си кода под РТЛ + написание RTL кода : 40 минут до ужина, 30 минут после ужина.

написание тестбенча 20 минут.

отладка кода 30 минут (если бы не сделал описку вместо ram__rdata_a написал ram__read_a, отладка заняла бы 5 минут).

причесывание кода 10минут.

причесывание кода под синтез ква 15минут (пришлось BRAM ручками поставить).

 

 

ЗЫ. код от вашего отличается наличием простого handshake, в этом коде можно сократить 3 состояния FSM и длительность расчета будет 1177 тактов.

 

Товарищ des00! Вы офигенно крутой специалист! У меня-бы на такие же манипуляции дня два ушло (с учётом перекуров, технологических перерывов, обед и т.д. и т.п.) :laughing:

 

Но в целом, если я правильно понял, ваш эксперимент подтверждает то о чём я писал выше: в среднем автоматический результат в два раза хуже ручного.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this