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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> tcl на FPGA, Использование tcl при разработке на FPGA
Alexey_Rostov
сообщение Mar 11 2018, 10:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Добрый день! Кто использует при разработке на FPGA tcl скрипты, поделитесь пожалуйста опытом, какие преимущества можно получить за счет использования tcl. Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой. Если можно конкретные примеры.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 12 2018, 10:29
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 859
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата(Alexey_Rostov @ Mar 11 2018, 13:07) *
Добрый день! Кто использует при разработке на FPGA tcl скрипты, поделитесь пожалуйста опытом, какие преимущества можно получить за счет использования tcl. Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой. Если можно конкретные примеры.

Ну то, что вы уже описали.
Плюс инструменты функциональной, статической и формальной верификации тоже управляются tcl - скриптами, поэтому можно создать набор целей и провести анализ на эти цели, просто запустив скрипт, в симуляторах gui тоже управляется с помощью tcl, поэтому очень удобно создавать виды осциллограмм, и сохранять их в tcl, а также обрабатывать сигналы, например, группировать их, именовать группы или же сами сигналы (например, разбить регистр на поля), назначать radix'ы, и т.п. Можно также сделать небольшой декодер, например, чтобы вместо 00 отображалось OK, вместо 01 - ERROR.

Сообщение отредактировал one_eight_seven - Mar 12 2018, 10:31
Go to the top of the page
 
+Quote Post
Leka
сообщение Mar 12 2018, 11:07
Сообщение #3


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

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



Цитата(Alexey_Rostov @ Mar 11 2018, 13:07) *
Пока обнаружил только преимущество перед gui в виде автоматизации при переносе проектов с одного кристалла на другой.

Работаю в Windows, gui использую очень редко (только чтобы посмотреть распределение ЛЕ по модулям),
для синтеза/анализа/прошивки запускаю *.bat файлы, tcl не использую - очень не нравится язык.
Go to the top of the page
 
+Quote Post
yes
сообщение Mar 12 2018, 11:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 133
Регистрация: 23-12-04
Пользователь №: 1 640



vivado принуждает юзеров использовать tcl - через gui в нем некоторые операции отсутствуют, ну или достаточно неудобны (у меня, например, в текстовом редакторе набор каких-то tcl-ных команд, которые я копи-пастю в среду)

для asic-ов tcl стандарт, скрипты только на нем - полагаю по мере роста сложности FPGA-шных проектов, то есть количества людей, работающих над одним проектом, будет все меньше gui, все больше tcl
сами скрипты обычно простые - сложнее foreach редко что нужно, ну и иногда функцией (proc) какие-то повторяющиеся последовательности команд объединяются
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Mar 12 2018, 12:12
Сообщение #5


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

Группа: Свой
Сообщений: 1 050
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Tcl почти что стандарт для контроля FPGA-шного софта.
С помощью tcl много чего можно накрутить под себя.

Например в Vivado у меня и автоматизация подключения debug-point для ChipScope, и авто генерация даты/ревизии git/ при компиляции и последующе генерация bit/mcs c правильным именем в нужной папке и с инфо-файлом, и.т.д.
И работа с JTAG-AXI для быстрой отладки периферии без ожидания вечно занятого програмиста.
Для Synplyfy помню извращался с парсингом логов синтеза и автогенерацией xilinx ip корок с требуемыми параметрами.

Поищите я на форуме приводил примеры.

Ну а ModelSim так это сплошной tcl/tk sm.gif например мой скрипт парсит Vivado-вский скрипт для симуляции .bd чтобы компилировалось так как мне надо а не так хочет Vivado. Или например автоматом расставлять сигналы AXI шины на wave чтобы было как в армии все под линейку красиво было sm.gif

Удачи! Rob.
Go to the top of the page
 
+Quote Post
AVR
сообщение Mar 12 2018, 12:28
Сообщение #6


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 254
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(RobFPGA @ Mar 12 2018, 15:12) *
Или например автоматом расставлять сигналы AXI шины на wave чтобы было как в армии все под линейку красиво было sm.gif

Не только расставлять сигналы, но и красить их в разные нескучные цвета (использую https://www.random.org/colors/hex ).
Только ради одной этой функции уже стоит tcl хотя бы минимально изучить, хотя на этом уровне даже языка не видно - обычные команды и аргументы.


--------------------
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Mar 12 2018, 12:43
Сообщение #7


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

Группа: Свой
Сообщений: 1 050
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Я еще хотел эту раставлялку (и не только) внедрить в интерфейс ModelSim чтобы во всплывающей менюшке были мои custom команды. Но лень ковырять tcl так глубоко поборола лень делать это через скрипт ручками laughing.gif .

Удачи! Rob.
Go to the top of the page
 
+Quote Post
Leka
сообщение Mar 13 2018, 14:32
Сообщение #8


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

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



Еще повод для Tcl - использование virtual JTAG вместо UART и тп для самопального терминала.
Но терминал получается ооочень медленным (по сравнению с uart). Зато ног/проводов меньше.
Go to the top of the page
 
+Quote Post
Leka
сообщение Mar 22 2018, 20:07
Сообщение #9


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

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



Цитата(Leka @ Mar 13 2018, 17:32) *
Еще повод для Tcl - использование virtual JTAG вместо UART и тп для самопального терминала.
Но терминал получается ооочень медленным (по сравнению с uart). Зато ног/проводов меньше.

Не хватило usb-uart моста, пришлось доделывать терминал (добавил FIFO в virtual JTAG), чтобы поднять скорость.
Удивляет, что много фирменных китов идут с внешними usb-uart мостами - вместо примеров использования jtag. maniac.gif

Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Mar 23 2018, 03:24
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 215
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(Leka @ Mar 22 2018, 23:07) *
Не хватило usb-uart моста, пришлось доделывать терминал (добавил FIFO в virtual JTAG), чтобы поднять скорость.
Удивляет, что много фирменных китов идут с внешними usb-uart мостами - вместо примеров использования jtag. maniac.gif


Вероятно проще поставить драйвер usb-uart для com порта, чем под jtag, если я вас правильно понял. То есть вы используете jtag для информационного обмена ПК-плата? Как FIFO позволяет увеличить скорость, это же просто буфер?
Go to the top of the page
 
+Quote Post
GriXa
сообщение Mar 23 2018, 06:23
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 22-05-09
Пользователь №: 49 385



В своих проектах использую tcl скрипты для автоматического добавления номера версии и времени компиляции проекта.

К примеру, в регистре сохраняется версия прошивки и дата-время компиляции. Для golden и working версии она может быть разная.
Пример такого файла на vhdl
Цитата
-- created at 07/Dec/2017-13:15:15
-- DO NOT EDIT THIS FILE
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
package compile_time_pkg is

constant VER_VALUE : string := "30";
constant COMPILE_TIME : integer := 1512648915;

end package compile_time_pkg;


Скрипт создает этот файл, потом запускает компиляцию. При каждой последующей компиляции увеличивает, к примеру, счетчик версий и изменяет время на текущее. После успешной компиляции - копирует текущую прошивку в отдельную папку с названием, соответствующим данной прошивке. Что-то типа name_working_v12.bit

Go to the top of the page
 
+Quote Post
Leka
сообщение Mar 23 2018, 07:59
Сообщение #12


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

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



Цитата(Alexey_Rostov @ Mar 23 2018, 06:24) *
То есть вы используете jtag для информационного обмена ПК-плата? Как FIFO позволяет увеличить скорость, это же просто буфер?

ПК используется как текстовый терминал. Бодовая скорость большая, средняя - маленькая. FIFO позволяет снять ограничение на бодовую скорость.

Go to the top of the page
 
+Quote Post
AnatolySh
сообщение Mar 28 2018, 18:55
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407



Цитата(Alexey_Rostov @ Mar 11 2018, 13:07) *
Если можно конкретные примеры.
Мой пример в виде проекта для Modelsim-a (проверял на 10.1d Altera Starter Edition) - в скрепке.
cd_ARINC_freq_divider_Modelsim.tcl кладём в корень Modelsim-a (у меня d:\altera\13.0sp1\modelsim_ase\win32aloem)
Из той же папки стартуем Modelsim (d:\altera\13.0sp1\modelsim_ase\win32aloem\modelsim.exe).
После выдачи приглашения Modelsim> запускаем этот скрипт:
набираем do cd_ARINC_freq_divider_Modelsim.tcl (переходим в папку проекта).
(если скрипт cd_* поместили правильно, то уже после набора do cd Modelsim в строке выше сам покажет имя скрипта).
Выполнили скрипт (перешли в папку проекта).
А там уже выполняем Modelsim> do ARINC_freq_divider_simulate.tcl
Примечание скрипт conf_wave_window.tcl использует переменную окружения ... сами найдёте и создадите.
И подкорректируете всё и вся под себя.

Вопросы и замечания по проекту очень сильно приветствуются.

Прикрепленные файлы
Прикрепленный файл  ARINC_freq_divider.zip ( 8.94 килобайт ) Кол-во скачиваний: 17
 


--------------------
WMBR
Go to the top of the page
 
+Quote Post
AnatolySh
сообщение Apr 4 2018, 19:32
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407



Вот ещё статья по теме: Использование TCL в разработке на FPGA


--------------------
WMBR
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Apr 5 2018, 07:53
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 278
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



В догонку от того же товарища на гитхабе:
TCL scripts for FPGA (Xilinx)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th May 2018 - 04:55
Рейтинг@Mail.ru


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