Разработка виртуального стенда на sbRIO-9636

Простейшие вопросы в области инженерной разработки

Разработка виртуального стенда на sbRIO-9636

Postby antok on 19 Oct 2017, 16:58

Приветствую всех и прошу подсказать о возможности и методах реализации следующего проекта.

Задача:
разработать виртуальный стенд на основе NI LabVIEW RIO Evaluation Kit (плата sbRIO-9636)
для практикумов по схемотехнике/микропроцессорам. Для разработки используется поставляемая в комплекте LabVIEW 2014.

1. Студенты будут писать код на VHDL (либо в схемном редакторе, конвертируя после этого в VHDL/bit файл), плата должна использоваться для отладки и тестирования.
В идеале необходимо реализовать загрузку кода без использования LabVIEW, а созданный в LabVIEW виртуальный
стенд использовать в виде готового приложения для отладки, который параметрически будет настраиваться на просмотр и подачу необходимых сигналов.


Как работать с VHDL средствами LabVIEW в общем то разобрался, но есть ли возможность программировать ПЛИС без участия LabVIEW? Либо какими-то утилитами, либо напрямую из Xilinx? А LabVIEW использовать только для создания готового приложения для виртуального стенда и не использовать его в работе студентов (т.е. воспользоваться им для создания RT и Win приложений, а на FPGA грузить скомпилированные системы отдельно)?
По тому, что сам нагуглил и перечитал складывается впечатление, что с данной платой можно работать исключительно из самой LabVIEW, так ли это?

2. Возможно ли реализовать стенд таким образом, чтобы студент загружал VHDL или подготовленный bit файл, а дальше настраивал стенд на просмотр и подачу выбранных сигналов уже после его запуска средствами созданного заранее универсального приложения (собственно, виртуальный стенд)?

Т.е., приложение показывает список доступных входов/выходов, получая эти данные с ПЛИС самостоятельно. Студент отбирает какие ему нужны для просмотра, на какие и что он собирается подавать для тестов, группирует отобранные элементы управления в Win приложении.
Можно ли в принципе организовать такое динамичное формирование отладочной среды программно?
Какие средства LabVIEW можно для этого использовать?
Или же готовое приложение с таким функционалом создать невозможно, и все равно придется вручную в LabVIEW частично адаптировать заготовку стенда под загруженный на ПЛИС код? В таком случае, какими средствами можно минимизировать работу студента по настройке стенда в LabVIEW?

3. Ну и совсем дурацкий вопрос. Не могу разобраться как подать синхронисигнал... Нужно и непрерывно и потактово.
Нашел, что можно в FPGA Target добавить Onboard Clock, но не понял как им дальше воспользоваться - ни на блок диаграмму, ни на лицевую панель не вытаскивается и никуда не хочет подключаться. Также нашел Waveform Generator, но там уже не понял можно ли им для этих целей пользоваться и как преобразовать сигнал от них для подачи на CLK вход схемы на FPGA.

Заранее всем спасибо за любые подсказки!

Возможно, для реализации этого мне вообще нужен не LabVIEW (или не только он), а каким то образом надо получить доступ к API платы из Visual Studio?
antok
interested
interested
 
Posts: 2
Joined: 18 Oct 2017, 16:58
LabVIEW Version: 14
Karma: 0

Re: Разработка виртуального стенда на sbRIO-9636

Postby Kosist on 19 Oct 2017, 23:21

Проблема в том, что на ПЛИСине будет исполняться лишь один бит файл. Т.е. либо будет бежать Ваше приложение для стенда, либо кастомный код студентов.
Также, здается мне, что без :labview: оное чудо запрограммировать не удастся. Хотя, может более опытные коллеги в этих вопросах Вам расскажут способ...
Вопрос - а чем не годится для изучения ПЛИС какая-нибудь доска от Altera, и ей подобных? Если не использовать :labview: для программирования ПЛИС, а писать через VHDL, то :labview: вообще не нужно; а значит можно обойтись и без NI-вских железок.
Более целесообразно, как по мне, сделать тогда стенд с sbRIO, сделать приложение для него, и показывать что и как можно получить с ПЛИС. А для написания своего кода студенты будут использовать вначале "обычную" доску и будут писать все "ручками" (если стоит задача именно научить VHDL), а затем и через :labview:.
Но это уже решать Вам, но возможность реализации Вашей задачи, как по мне, довольно таки под сомнением...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 781
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students

Re: Разработка виртуального стенда на sbRIO-9636

Postby Artem.spb on 19 Oct 2017, 23:39

antok wrote:Приветствую всех и прошу подсказать о возможности и методах реализации следующего проекта.

Как работать с VHDL средствами LabVIEW в общем то разобрался, но есть ли возможность программировать ПЛИС без участия LabVIEW? Либо какими-то утилитами, либо напрямую из Xilinx? А LabVIEW использовать только для создания готового приложения для виртуального стенда и не использовать его в работе студентов (т.е. воспользоваться им для создания RT и Win приложений, а на FPGA грузить скомпилированные системы отдельно)?
По тому, что сам нагуглил и перечитал складывается впечатление, что с данной платой можно работать исключительно из самой LabVIEW, так ли это?

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

2. Возможно ли реализовать стенд таким образом, чтобы студент загружал VHDL или подготовленный bit файл, а дальше настраивал стенд на просмотр и подачу выбранных сигналов уже после его запуска средствами созданного заранее универсального приложения (собственно, виртуальный стенд)?

Т.е., приложение показывает список доступных входов/выходов, получая эти данные с ПЛИС самостоятельно. Студент отбирает какие ему нужны для просмотра, на какие и что он собирается подавать для тестов, группирует отобранные элементы управления в Win приложении.
Можно ли в принципе организовать такое динамичное формирование отладочной среды программно?


С ходу и без проверки (просто не на чем): да, можно
Создаёте шаблон плис-кода (стандартизуете FP), студент может менять BD, но не FP.
Тогда ваша стендовая оболочка гарантированно (без ошибок) сможет читать/писать данные в ПЛИС. а уж будут ли они там использоваться - дело ПЛИСа.
А в оболочке стенда при запуске плиса выбирается, какой bit-файл грузить в ПЛИС.
Возможно, вашем шаблоне кода будут куски, работающие с железом. Их студентам менять нельзя (или менять на свой страх и риск)

3. Ну и совсем дурацкий вопрос. Не могу разобраться как подать синхронисигнал... Нужно и непрерывно и потактово.

что это и для чего это?
плисина шпарит себе на максимально возможной скорости.
Если нужно выдавать некий сигнал, то создайте обычный цикл с заданным периодом. В цикле на нужный выход выдавайте нужный сигнал (по одной точке за итерацию).
Artem.spb
expert
expert
 
Posts: 1212
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 213
CLD hardware I/O VIP freelance

Re: Разработка виртуального стенда на sbRIO-9636

Postby antok on 20 Oct 2017, 16:30

Проблема в том, что на ПЛИСине будет исполняться лишь один бит файл. Т.е. либо будет бежать Ваше приложение для стенда, либо кастомный код студентов.

Так о том и речь, что на ПЛИС грузится только студенческий файл, а моя оплетка RT+Win должна оттуда подтягивать доступные порты. А то, над чем я экспериментировал в LabVIEW - там через референс в явном виде указываешь какие порты тебе нужны и для каждого из них отдельно пишешь обработку. Причем, одинаковую обработку. Отсюда и одна из проблем - как это вытащить оттуда, унифицировано обработать на RT, а дальше уже сделать конструктор в WIN приложении, где студент сам будет отображать на форме то, что ему нужно посмотреть и задать. Есть ли соответствующие функции в LabVIEW?

Вопрос - а чем не годится для изучения ПЛИС какая-нибудь доска от Altera, и ей подобных? Если не использовать :labview: для программирования ПЛИС, а писать через VHDL, то :labview: вообще не нужно; а значит можно обойтись и без NI-вских железок.
Более целесообразно, как по мне, сделать тогда стенд с sbRIO, сделать приложение для него, и показывать что и как можно получить с ПЛИС. А для написания своего кода студенты будут использовать вначале "обычную" доску и будут писать все "ручками" (если стоит задача именно научить VHDL), а затем и через :labview:.
Но это уже решать Вам, но возможность реализации Вашей задачи, как по мне, довольно таки под сомнением...

Одна из основных причин - потому что эта железка уже есть. Когда то была куплена с целью потестить, подумать что сделать... и благополучно положена на полку. Теперь настало время достать. У нас сейчас используется платы на Spartan XL в связке с Xilinx 4.1 на "хардварном" стенде. И на этом всем студенты выполняют лабораторные начиная с проектирования триггеров и счетчиков и заканчивая микропроцессорными ядрами. Сейчас вот появилось предложение перевести все это на NI. И, соответственно, на каких-то этапах погружать студента в LabVIEW нет смысла, курс не по нему. В дальнейшем можно и с ним поработать и отдельные лабораторные организовать. В перспективе планируется удаленная работа с данным стендом, что в LabVIEW вполне себе неплохо получается.

Создаёте шаблон плис-кода (стандартизуете FP), студент может менять BD, но не FP.
Тогда ваша стендовая оболочка гарантированно (без ошибок) сможет читать/писать данные в ПЛИС. а уж будут ли они там использоваться - дело ПЛИСа.

В таком ключе даже не думал. Возможно не самый плохой вариант, хоть и сильно костыльный. Спасибо за подсказку.

что это и для чего это?
плисина шпарит себе на максимально возможной скорости.
Если нужно выдавать некий сигнал, то создайте обычный цикл с заданным периодом. В цикле на нужный выход выдавайте нужный сигнал (по одной точке за итерацию).

Я имел в виду тактовый CLK сигнал.
antok
interested
interested
 
Posts: 2
Joined: 18 Oct 2017, 16:58
LabVIEW Version: 14
Karma: 0

Re: Разработка виртуального стенда на sbRIO-9636

Postby Artem.spb on 20 Oct 2017, 16:31

antok wrote:
что это и для чего это?
плисина шпарит себе на максимально возможной скорости.
Если нужно выдавать некий сигнал, то создайте обычный цикл с заданным периодом. В цикле на нужный выход выдавайте нужный сигнал (по одной точке за итерацию).

Я имел в виду тактовый CLK сигнал.


и зачем его задавать? он уже задан
Artem.spb
expert
expert
 
Posts: 1212
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 213
CLD hardware I/O VIP freelance


Return to Для чайников

Who is online

Users browsing this forum: Bing [Bot] and 16 guests

cron