Перейти к содержанию
    

Gowin EDA - релизы и общие вопросы

26 минут назад, dxp сказал:

С помощью какой команды запускаете?

С помощью консольного TCL-шелла gw_sh.

26 минут назад, dxp сказал:

В смысле, какой-то проект создаётся или прямо так под управлением скрипта тиклевыми командами?

Проект конвертируется в базовый набор команд из среды с помощью консольной команды saveto -all_options options.tcl и далее вы используете этот скрипт для сборки проекта с помощью команды gw_sh options.tcl. Только есть нюанс, что ему в конец необходимо добавить команду run pnr или run syn. В принципе это всё описано в их гайде Gowin Software User Guide SUG100-3.8E, 11/30/2023.

Диалект TCL там крайне куцый, на изыски, доступные в Vivado, рассчитывать не приходится. Но и так уже неплохо.

Я это всё собрал в Makefile, который ещё и зависимости строит с помощью парсинга options.tcl и далее собирает по мере надобности, шьёт и делает всё остальное.

31 минуту назад, dxp сказал:

А IP ядра можно создавать консольно -- из скрипта? Или только через его GUI?

На сколько я знаю только через GUI.

32 минуты назад, dxp сказал:

Интересуюсь, потому что присматриваюсь к китайским ПЛИС. И после Vivado с её довольно богатым Tcl API их инструментарий для консольного управления выглядит как-то бледновато.

Да, это боль. На уровне 10% древнего-древнего ISE. Но они растут и развиваются, с чего-то нужно начинать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, dxp сказал:

С помощью какой команды запускаете? В смысле, какой-то проект создаётся или прямо так под управлением скрипта тиклевыми командами?

А IP ядра можно создавать консольно -- из скрипта? Или только через его GUI?

Интересуюсь, потому что присматриваюсь к китайским ПЛИС. И после Vivado с её довольно богатым Tcl API их инструментарий для консольного управления выглядит как-то бледновато.

Я всё просто сделал - один раз через Gowin Eda сгенерировал .tcl файл и запускаю сборку через gw_sh.exe. tcl уже правлю ручками по необходимости. Проект он вроде как теперь даже и не нужен.

По поводу IP ядер - вроде как через GUI только создаются, но я стараюсь ими не пользоваться - они слабопереносимые между вендорами.
У меня один проект сразу под Gowin и под Intel, а если пользовать IP ядра - придётся 2 проекта делать или переделывать скрипт, чтобы он разные файлы подхватывал для сборки под разные ПЛИС. Лень - проще самому написать нужный функционал.

Я бы в вашем случае ПЛИС BMTI порекомендовал, там почти Xilinx. Я бы тоже их пользовал, но мне нужны плис в qfp корпусах.

Прикрепил файлик, где про Gowin обсуждаемая тема описана.

SUG100-3.8E_Gowin Software User Guide.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, selax сказал:

я стараюсь ими не пользоваться - они слабопереносимые между вендорами.

А как вы обходитесь с созданием таких вещей, которые плотно завязаны на аппаратные блоки ПЛИС? Например, PLL. Не говоря уже о мультигигабитных трансиверах, PCIe блоках, аппаратных МАС и т.п.

Да и другие типа памяти или DSP блоков -- да, это можно инферить, но это, имхо, такое себе -- не люблю инферинг за непредсказуемость, когда не там поставленная запятая может сломать его. Да, это не фатально, но неприятно. С Xilinx для памяти и фифо предпочитаю использовать XPM библиотеку -- там тоже внутри инферинг делается, это уже ответственность вендора, "сюрпризов" тут не помню.

Если есть "завязки" на аппаратные блоки, то тут как без портирования обойтись? Даже если инферинг успешно используется, всё равно там какие-то вендоро-зависимые атрибуты, как правило, применяются.

8 минут назад, selax сказал:

Я бы в вашем случае ПЛИС BMTI порекомендовал, там почти Xilinx. Я бы тоже их пользовал, но мне нужны плис в qfp корпусах.

К сожалению, в той области, где используется продукция Xilinx, уровень требований -- это старшие Kintex из US+, тут BMTI пока не доросли, насколько знаю. А китайские интересуют как раз из области мелочи (аналоги Cyclone, Spartan, ну, может младший Artix). Привлекает доступность, цена. Отпугивает "сырость" и бедность средств разработки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, dxp сказал:

А как вы обходитесь с созданием таких вещей, которые плотно завязаны на аппаратные блоки ПЛИС? Например, PLL. Не говоря уже о мультигигабитных трансиверах, PCIe блоках, аппаратных МАС и т.п.

Да и другие типа памяти или DSP блоков -- да, это можно инферить, но это, имхо, такое себе -- не люблю инферинг за непредсказуемость, когда не там поставленная запятая может сломать его. Да, это не фатально, но неприятно. С Xilinx для памяти и фифо предпочитаю использовать XPM библиотеку -- там тоже внутри инферинг делается, это уже ответственность вендора, "сюрпризов" тут не помню.

Если есть "завязки" на аппаратные блоки, то тут как без портирования обойтись? Даже если инферинг успешно используется, всё равно там какие-то вендоро-зависимые атрибуты, как правило, применяются.

А мне это всё не нужно, вот так и обхожусь. У меня околоэлементарные задачи - синусы до десятков кГц померить, ШИМ до сотен кГц подать, алгоритмы/фильтры простенькие, потрындеть по интерфейсам типа SPI, UART и т.д. 🙂
Для меня даже Cyclone - уже жир. Я пользуюсь простенькими gw1n-uv9 и 10m08, чтобы без ПЗУ и без кучи разных питаний.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/18/2023 at 12:29 AM, faa said:

Удалось запустить AE350 процессор (на бете и демо 1.0 не запускался) на Sipeed Tang Mega 138k.

Судя по спецификации riscv-a25 кушает 20uW/MHz, заметно увеличение потребления или нагрева на 16Вт при использовании AE350@800MHz?

On 12/18/2023 at 12:29 AM, faa said:

Примеры нормально собираются без RDS. И работают.

Примеры на Си? Что за примеры?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 10.01.2024 в 14:48, _4afc_ сказал:

Судя по спецификации riscv-a25 кушает 20uW/MHz, заметно увеличение потребления или нагрева на 16Вт при использовании AE350@800MHz?

Примеры на Си? Что за примеры?

Потребление не проверял. Сейчас в отъезде - железка на столе за 1.5ткм. Вернусь - померяю.

Примеры выложил на гитхаб.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/1/2023 at 4:30 PM, StewartLittle said:

 (но все равно - для работы с GW5AT нужно выбирать GW5AST ver.B).

Для заказа на свои платы ПЛИС таких как на китах от GoWin & SiPeed  надо искать GW5AT-LV138FPG676AC2/I1 ?

Есть понятная таблица каким функционалом отличаются GW5A / GW5AS / GW5AT / GW5AST или наименования ещё не устаканились?

На что лучше ориентироваться в 2024 если нужны GTP/PCIe и желательны DDR3 & AE350?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.01.2024 в 12:00, _4afc_ сказал:

Есть понятная таблица каким функционалом отличаются GW5A / GW5AS / GW5AT / GW5AST или наименования ещё не устаканились?

Все очень просто:

GW5A - "просто" ПЛИС;

GW5AS - ПЛИС + аппаратный процессорный модуль AE350;

GW5AT - ПЛИС + трансиверы (+ аппаратный PCIe);

GW5AST - ПЛИС + трансиверы (+ аппаратный PCIe) + аппаратный процессорный модуль AE350.

Отдельная песня - наличие аппаратных блоков MIPI (RX, TX) - но это уже надо смотреть внимательнее по подсемействам.

 

В 18.01.2024 в 12:00, _4afc_ сказал:

На что лучше ориентироваться в 2024 если нужны GTP/PCIe и желательны DDR3 & AE350?

GW5AST

 

В 18.01.2024 в 12:00, _4afc_ сказал:

Для заказа на свои платы ПЛИС таких как на китах от GoWin & SiPeed  надо искать GW5AT-LV138FPG676AC2/I1 ?

На платах Gowin DK_START_GW5AT-LV138FPG676A_V2.1 используется микросхема GW5AT-LV138FPG676AES (т.е. еще инженерный образец - по крайней мене, на тех платах. что есть у меня).

На платах Sipeer Tang Mega 138K используется микросхема GW5AST-LV138FPG676A, но не знаю, в каком исполнении (плата до меня еще не доехала). Насчет точного артикула можно узнать у уважаемого коллеги @faa , у него такая плата есть, насколько я помню.

 

Что касается указания точного артикула при размещения заказов, то с этим пока еще не все ясно.

Я запрашивал варианты с самым быстрым спидргейдом, например GW5AT-LV138FPG676AC2/I1.

Но мне на это отвечали, что такие пока еще не готовы, и вместо них предлагали GW5AT-LV138FPG676AC1/I0 (т.е. вариант со  спидгрейдом помедленнее).

Так что насчет доступности варианта с самым быстрым спидгрейдом вопрос пока остается открытым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.01.2024 в 12:47, StewartLittle сказал:

На платах Sipeer Tang Mega 138K используется микросхема GW5AST-LV138FPG676A, но не знаю, в каком исполнении (плата до меня еще не доехала). Насчет точного артикула можно узнать у уважаемого коллеги @faa , у него такая плата есть, насколько я помню.

На моем Tang Mega 138K от Sipeed  стоят такие микросхемы.

На ПЛИС маркировка GW5AT, но аппаратное ядро процессора AE350 присутствует.

ID CODE 0x1081B.

photo_5291836984043623290_y.jpg

photo_5291836984043623291_y.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне возможно что кристалл идентичен для всей серии GW5.  Это гораздо проще для производства. "Лишнии" модули просто не проходят тестирование. Вы можете использовать эти модули в своих проектаъх, но без гарантии работоспособности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проявилось непонятное в Говин ИДЕ.

В проекте есть шина данных, двунаправленная. В исходном тексте описана "inout", как положено. До поры, до времени(пока шина не использовалась), FloorPlanner в разделе IOConstrains определял их, как inout, всё нормально. Стоило её задействовать, как input, он стал считать ноги(не все, что характерно) только input и при компиляции вывалил кучу ошибок, типа "неправильный констрейн: нога такая-то drive=8ma не может быть у входа". Пришлось изваять в тексте белиберду, которая  пользует шину данных как output, чтобы в проекте у шины было и input, и ouotput, только тогда он угомонился. Это что за бред? Как он может сам по себе изменять назначение ног? Или у него есть волшебное слово, чтобы он не считал себя умнее меня?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.01.2024 в 13:15, mse сказал:

В проекте есть шина данных, двунаправленная. В исходном тексте описана "inout", как положено.

...

Это что за бред? Как он может сам по себе изменять назначение ног? Или у него есть волшебное слово, чтобы он не считал себя умнее меня?

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

 

Вот такое описание работает, как положено:

 

Цитата

entity top_prj is
       port(

                ft_d            : inout  std_logic_vector(7 downto 0);    -- FT245R d[7..0]
              );
end top_prj;

architecture rtl of top_prj is

type states is ( <bla-bla-bla>

                      );

signal state           : states;

begin

   ft_d <= shift_reg when ((state = output_data_to_fifo_enable) or (state = set_wr_low)) else -- Формирование двунаправленной шины данных для работы с FIFO

          (others => 'Z');

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, StewartLittle said:

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

Вот такое описание работает, как положено:
 

Постарался, чтобы видно было текст на скриншотах. Разница только в комментированной строке.

 

constr1.jpg

constr2.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, mse сказал:

Это что за бред? Как он может сам по себе изменять назначение ног? Или у него есть волшебное слово, чтобы он не считал себя умнее меня?

Это не бред, всё логично: пока ноги не использовались они удалялись из проекта и проблем с применением атрибута DRIVE (и других) не было априори. Когда вы стали их использовать, то появилось размещение этих пинов и сопоставление ячеек ввода-вывода, но при этом у ячейки типа input нет выходного буфера (это не inout) и поэтому атрибут DRIVE к такому пину не применим (это вход, а DRIVE только для выходов или inout), поэтому вы стали получать предупреждения об ошибках. Хорошо, что он ругается, т.к. вы в результате обратили на это внимание и теперь можете решить, что же вы хотели в итоге сделать: если вход, то убираете DRIVE, если же забыли подключить управление выходом - подключаете его и DRIVE будет корректно применён без всяких сообщений и ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, это-то понятно. Только он не даёт работать. Я отлаживаю куски, где шина только для записи, а он мне делает аборт компиляции. Читать по шине мне вообще захочется только ближе к концу работы. Там-же ещё довольно каличная система установки констрейнов. Нужно ткнуть в каждый пин и выбрать опцию. 16 линий перетыкивать несколько раз, как-то напряжно, проще написать тупую затычку.

Просто такого инициативного ИДЕ ни разу не встречалось. Я уже подумал, мож у меня с головой что-то. Спасибо, буду знать, что вот так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...