подсмотреть hdl код, возможно ли ?

подсмотреть hdl код, возможно ли ?

Postby toshas on 30 May 2014, 11:25

Добрый день!

Иногда возникает вопрос насколько оптимально Labview преобразует ту или иную часть vi в HDL код.
В частности есть ощущение, что для достижения высокой тактовой частоты регистры ставятся куда надо и не надо.
Для общей производительности это некритично, а вот латентность сильно страдает.
Чтобы проверить когда и куда эти регистры подставляются очень желательно было бы посмотреть итоговый HDL код (verilog или vhdl).

Есть ли способы это сделать ?

Спасибо!
User avatar
toshas
junior
junior
 
Posts: 56
Joined: 05 Apr 2009, 22:45
LabVIEW Version: 9.0
Karma: 0

Re: подсмотреть hdl код, возможно ли ?

Postby Borjomy_1 on 30 May 2014, 12:44

Пример в студию.
Borjomy_1
expert
expert
 
Posts: 1905
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 332
VIP

Re: подсмотреть hdl код, возможно ли ?

Postby dadreamer on 30 May 2014, 13:17

Если только ассемблерный код: http://www.labview-rus.blogspot.ru/2010/01/3.html В настоящее время даже DFIR-граф не посмотреть толком, NI не предоставляет средств для тонкой отладки, кроме тех, что в меню программы. Посмотрите также тему viewtopic.php?f=87&t=5877&p=48682 , может чем-то поможет.
User avatar
dadreamer
professor
professor
 
Posts: 3338
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

Re: подсмотреть hdl код, возможно ли ?

Postby Konstantin Sumenko on 30 May 2014, 15:23

dadreamer, к FPGA модулю это имеет опосредованное отношение. За то куда ставятся регистры отвечает не LabVIEW, а маппер xilinx, соответственно нужен map report. Вообще один и тот же vhdl код может трассироваться в кристалле по-разному, пока укладывается в рамки заданных констрейнов или пока явно не указано куда ставить примитивы. Может быть зайти с другой стороны: в чем возникают проблемы?
User avatar
Konstantin Sumenko
expert
expert
 
Posts: 1439
Joined: 17 Jul 2008, 12:20
Location: Moscow
Medals: 2
Activity (1) Bronze (1)
LabVIEW Version: 2010
Karma: 122
VIP bloggers students

Re: подсмотреть hdl код, возможно ли ?

Postby toshas on 31 May 2014, 12:54

Не совсем так, mapper только расставляет регистры, а вот есть они или нет, определяется в исходном коде.

А задача, которая у нас возникла, вполне конкретная, нужно захватить сигнал, выполнить ряд вычислений и вывести сигнал наружу.
При этом важна латентность, а т.к. fpga умеют делать несколько вещей одновременно выбран модуль на базе ПЛИС.
Функции ввода, обработки и вывода занимают много тактов и не позволяют тем самым использовать Timed Loop.
А при применении обычного Loop латентность неоправданно увеличивается на сдвиговом регистре на один период выполнения цикла.
Как нам кажется, это получается из-за дополнительной конвеирезации кода.
Вот поясняющие картинки:

1) в случае последовательного кода, время выполнения всего цикла 4 мкс (должно быть 5 мкс т.к. на нашем модуле myRio 2 мкс - ввод, 2.8 мкс - вывод, но это отдельный вопрос откуда 4)
и латентность сравнима ~ 5 мкс, что корректно

2) в случае параллельного кода, время выполнения всего цикла 2.5 мкс (соответствует времени вывода, как самого длительного процесса в цикле) это правильно.
а вот латентность стала 7 мкс, что больше, чем в случае последовательного кода и это странно, т.к. сам цикл выполняется быстрее.
фактически получается в данный момент идет вывод N-2 значения, N-1 хранится где-то в промежуточном регистре, а N измеряется.

Как с этим боротся пока неясно, на форуме NI тоже пока молчат.

За любые подсказки буду весьма благодарен!
Attachments
AI-AO_seq.png
последовательный код
ADC-DAC-seq-1.jpg
реальный сигнал при последовательном коде
AI-AO_par.png
параллельный код
ADC-DAC-par-1.jpg
реальный сигнал при параллельном коде
User avatar
toshas
junior
junior
 
Posts: 56
Joined: 05 Apr 2009, 22:45
LabVIEW Version: 9.0
Karma: 0

Re: подсмотреть hdl код, возможно ли ?

Postby Borjomy_1 on 01 Jun 2014, 08:57

проблемы могут быть с тактированием выполнения операций ввода- вывода, а не с регистрами программы. работа с модулем производится по spi интерфейсу + на борту модуля стоит своя fpga. поэтому на железную реализацию "записал-выдал" рассчитывать не стоит... может быть на ацп и цап стоят разные тактовые генераторы.
Borjomy_1
expert
expert
 
Posts: 1905
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 332
VIP


Return to Real Time / FPGA / Embedded

Who is online

Users browsing this forum: No registered users and 1 guest

cron