Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altera. Графический интерфейс SOPC-компонентов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
weirdcong
Сочинил я некий модуль на Verilog. Пытаюсь сделать из него компонент для SOPC Builder'а.
Мне нужно, чтобы окошко настройки компонента (GUI) динамически обновлялось, если я в нём что-то меняю.

В частности, есть параметр типа boolean и соответствующий ему checkbox, и нужно, чтобы при отсутствии галочки в чекбоксе какие-то поля параметров затенялись (не могли изменяться), и наоборот.
Ещё для одного параметра юзер должен выбирать значение из выпадающего списка, и в зависимости от выбранного значения какие-то поля ввода должны появляться или пропадать.

Я так понимаю, что в Tcl-скрипт нужно вводить editor callback? Кто-нибудь такое делал? В учебнике по SOPC Builder очень поверхностное объяснение, или же просто мне как НЕпрограммисту непонятное.
Я посмотрел на то, как сделаны библиотечные SOPC-компоненты Альтеры с динамическим GUI - их скрипты написаны на Perl или вроде того. wacko.gif На Perl я не умею... Можно ли сделать такой интерфейс, пользуясь только Tcl? На худой конец, может, можно на C вместо Perl???
Stewart Little
Какую версию квартуса Вы используете?
vadimuzzz
Editor Callback подменяет стандартный гуй. на чем вы его напишете - дело ваше. главное чтобы он принимал на вход параметры из командной строки и выдавал их на стандартный вывод. сам гуй можно накидать на чем-то вроде PyQt (если нравится питон), можно и на перле аналогично.
weirdcong
Цитата(Stewart Little @ Jul 21 2011, 16:10) *
Какую версию квартуса Вы используете?

9.0

Цитата(vadimuzzz @ Jul 21 2011, 16:43) *
Editor Callback подменяет стандартный гуй. на чем вы его напишете - дело ваше. главное чтобы он принимал на вход параметры из командной строки и выдавал их на стандартный вывод.

Почти всё это написано в UG, так я и говорю: мне непонятно; возможно, потому, что написано для программистов, а я не программист (разве что на Си что-то могу слепить для консоли).
И пример там какой-то слишком абстрактный (для меня).

Во-первых, пока непонятно, является ли editor callback тем, что мне нужно в описываемой ситуации?
Во-вторых, если действительно нужен именно он, то что вообще должно быть в файле Tcl, и что должен делать мой экзешник?
Что значит "выдавать на стандартный вывод"? - Это как через printf в Си? Кто будет читать этот вывод?
Загадочна сама фраза "editor callback подменяет гуй", причём не только у Вас, а и в английском оригинале. Editor callback - это же процесс, часть GUI, как он может его целиком подменить?..
В общем, попросту непонятно, о чём речь.
Может, у Вас есть работающие примеры такого дела?
vadimuzzz
Цитата(weirdcong @ Jul 21 2011, 23:10) *
Во-первых, пока непонятно, является ли editor callback тем, что мне нужно в описываемой ситуации?

да. но, возможно, это не единственный вариант.
Цитата
Во-вторых, если действительно нужен именно он, то что вообще должно быть в файле Tcl, и что должен делать мой экзешник?

смотрите пример, там все тривиально. при попытке редактировать параметры вызывается (см. строчку exec) ваш исполняемый файл. на вход он принимает текущее значение параметров (или дефолтное, если это первый вызов). в терминах Си - через argv[].
Цитата
Что значит "выдавать на стандартный вывод"? - Это как через printf в Си? Кто будет читать этот вывод?

да. например через printf. скрипт компонента, где объявлен callback, и вызывает.
Цитата
Загадочна сама фраза "editor callback подменяет гуй", причём не только у Вас, а и в английском оригинале. Editor callback - это же процесс, часть GUI, как он может его целиком подменить?..

а что непонятного? есть стандартный гуй. возможно, есть способ получить то, что вам требуется и с его помощью (изучайте тикль и API). но можно и подменить своим, тут можно извращаться как угодно.
Цитата
Может, у Вас есть работающие примеры такого дела?

поищу, но для винды точно нет
weirdcong
Цитата(vadimuzzz @ Jul 22 2011, 03:20) *
смотрите пример, там все тривиально. при попытке редактировать параметры вызывается (см. строчку exec) ваш исполняемый файл. на вход он принимает текущее значение параметров (или дефолтное, если это первый вызов). в терминах Си - через argv[].


Всё-таки, что именно должен выдавать мой экзешник? Текст скрипта, написанный полностью с нуля и учитывающий дефолтные или введенные числа?

Тогда переменная result - это строка?
Что должна делать процедура, упоминаемая как "parse_for_new_value"? Искать в переменной result (т.е. тексте скрипта) значения нужных параметров?
vadimuzzz
Цитата(weirdcong @ Jul 22 2011, 16:23) *
Всё-таки, что именно должен выдавать мой экзешник? Текст скрипта, написанный полностью с нуля и учитывающий дефолтные или введенные числа?

параметры он должен выдавать. допустим, у вас параметром ширина регистра в битах. дефолт - 32бита. запускаете исполняемый файл, на вход ему даете 32. он рисует красивые картинки, юзер через контролы меняет значение параметра, жмет ОК. программа завершается, выплюнув то, что ввел юзер, в stdout
weirdcong
Цитата(vadimuzzz @ Jul 22 2011, 13:59) *
параметры он должен выдавать. допустим, у вас параметром ширина регистра в битах. дефолт - 32бита. запускаете исполняемый файл, на вход ему даете 32. он рисует красивые картинки,

Стало быть, не только параметры выдавать, а ещё и графику рисовать должен? То есть окно будет моё самописное, а не генерируемое SOPC'ом???

Цитата(vadimuzzz @ Jul 22 2011, 13:59) *
юзер через контролы меняет значение параметра, жмет ОК. программа завершается, выплюнув то, что ввел юзер, в stdout

Так это не динамически изменяющийся гуй.
Картинка должна меняться (поля должны пропадать/появляться) без всяких нажатий на ОК, а как только юзер поставил какую-нибудь галочку или изменил цифру в выпадающем списке.
vadimuzzz
Цитата(weirdcong @ Jul 22 2011, 18:21) *
Стало быть, не только параметры выдавать, а ещё и графику рисовать должен? То есть окно будет моё самописное, а не генерируемое SOPC'ом???

ну да
Цитата
Так это не динамически изменяющийся гуй.
Картинка должна меняться (поля должны пропадать/появляться) без всяких нажатий на ОК, а как только юзер поставил какую-нибудь галочку или изменил цифру в выпадающем списке.

почему не динамически меняющийся? не вижу проблемы, в любом современном тулките это в несколько тычков мыши можно сделать
wpost
Вот вам пример скрипта компонента с динамической GUI

PS: расширение txt нужно заменить на tcl
Редактировать блокнотом или WordPad
torik
Парни, а как объявить параметр в топлевеле модуля, чтобы при создании SOPC компонента он сам его увидел в качестве boolean (и чекбокс наверняка тогда сам сделает).
Почему-то
Код
parameter bit param1 = 0;

видится как string
torik
ну или где подробно описано написание этих скриптов? В даташите на SOPC как-то не очень подробно.
Stewart Little
Цитата(torik @ Apr 20 2012, 07:36) *
ну или где подробно описано написание этих скриптов? В даташите на SOPC как-то не очень подробно.

Component Interface Tcl Reference
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.