es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Arnold Enginegger

Arnold Enginegger

Ir al canal en Telegram

Тоже хочу в блогеры

Mostrar más
207
Suscriptores
+324 horas
+47 días
+1530 días

Cargando datos

Nube de Etiquetas
Sin datos
¿Algún problema? Por favor, actualice la página o contacte a nuestro gerente de soporte.
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
oct '26
octubre '26
+209
en 0 canales
septiembre '260
en 0 canales
Get PRO
agosto '260
en 0 canales
Get PRO
julio '260
en 1 canales
Get PRO
junio '260
en 0 canales
Get PRO
mayo '260
en 0 canales
Get PRO
abril '260
en 0 canales
Get PRO
marzo '260
en 0 canales
Get PRO
febrero '260
en 0 canales
Get PRO
enero '260
en 0 canales
Get PRO
diciembre '250
en 2 canales
Get PRO
noviembre '250
en 0 canales
Get PRO
octubre '250
en 1 canales
Get PRO
septiembre '250
en 0 canales
Get PRO
agosto '250
en 1 canales
Get PRO
julio '250
en 1 canales
Get PRO
junio '250
en 0 canales
Get PRO
mayo '250
en 0 canales
Get PRO
abril '250
en 0 canales
Get PRO
marzo '250
en 0 canales
Get PRO
febrero '250
en 1 canales
Get PRO
enero '250
en 0 canales
Get PRO
diciembre '24
+37
en 1 canales
Get PRO
noviembre '24
+40
en 0 canales
Get PRO
octubre '24
+107
en 4 canales
Get PRO
septiembre '24
+25
en 0 canales
Get PRO
agosto '24
+14
en 0 canales
Get PRO
julio '24
+12
en 0 canales
Get PRO
junio '24
+20
en 0 canales
Get PRO
mayo '24
+18
en 1 canales
Get PRO
abril '24
+26
en 0 canales
Get PRO
marzo '24
+20
en 0 canales
Get PRO
febrero '24
+12
en 0 canales
Get PRO
enero '24
+19
en 0 canales
Get PRO
diciembre '23
+194
en 0 canales
Publicaciones del Canal
С Новым Годом, коллеги! Новых отладок вам и пусть в новом году светодиоды горят ещё ярче, слаки будут ещё положительней, а по
С Новым Годом, коллеги! Новых отладок вам и пусть в новом году светодиоды горят ещё ярче, слаки будут ещё положительней, а покрытия ещё шире!

2
В Yosys есть интересная фича, которой, похоже, нет в других синтезаторах - возможность вызова функций DPI для установки параметров и инициализации регистров. Для этого достаточно подключить библиотеку .so командой plugin: plugin -i my_lib.so А затем импортировать функцию в код на SV и вызвать: import "DPI-C" function integer my_func (integer); localparam PARAM1 = my_func(PARAM0); Т.к. библиотека подгружается один раз при старте yosys, можно использовать статические и глобальные переменные для сохранения контекста. Фича может быть весьма полезной. Например, в ЦОСе часто нужно предвычислять всякие коэффициенты. Использовать для этого генерируемые внешними скриптами таблицы не очень прикольно, т.к. теряется возможность параметризации модуля. Рассчитывать силами SV тоже не сильно здорово, потому что обычно это работает медленно и синтезатор поддерживает далеко не все возможности языка (в Yosys, например, очень сложно полноценно использовать real - можно вычислять выражения с плавающей точкой, но нельзя создавать переменные). А через DPI можно вызвать не только Си-функции, но и например Python (sic!), или мою любимую Scheme. Они достаточно просто эмбеддятся в Си. Есть и ограничения: 1.  Поддерживаются только типы integer, real, shortreal и chandle. Жаль, что нельзя передавать строки, но если очень хочется, то можно воспользоваться костылём - передавать до 8 символов через аргумент типа chandle. Это указатель, и на 64-разрядных машинах его длина 8 байт. 2.  В качестве аргументов подходит не всё. Например, можно передать итератор цикла во время инициализации памяти (mem[n] = init_func(n)), но нельзя передать саму инициализируемую переменную (some_func(mem[n])), ругается на нестатический аргумент. 3.  Нельзя вызвать функцию, которая возвращает void, yosys почему-то путает этот вызов с вызовом таска и ругается, что такого таска нет. Если всё же нужно вызвать такую функцию, то нужно вызвать её с присвоением возврата чему нибудь - переменной в initial, или неиспользуемому параметру. Запостил issue по этому поводу (Под номером 4096 😊). В качестве примера написал небольшой тестовый код.
248
3
Рубрика "А что, так можно было?". У верилятора есть опция —unused-regexp, которой можно задать шаблон имени неиспользуемых сигналов. По-умолчанию это *unused*. Т.е. если у вас в коде есть неиспользуемый сигнал с именем, включающем unused, то верилятор на него ругаться не будет, и не нужно будет вставлять lint_off UNUSEDSIGNAL.
347
4
Если кто-то потерял меня в чате, я ушел на цифровой детокс. На недельку, а там посмотрим. Если что, пишите сюда :)
541
5
=== Народное творчество - первый журнал о программируемой логике FPGA-Systems Magazine :: FSM :: № ALFA доступен к скачиванию
=== Народное творчество - первый журнал о программируемой логике FPGA-Systems Magazine :: FSM :: № ALFA доступен к скачиванию. На странице журнала появилась заветная кнопка "Скачать | Download" === Пожалуйста, не распространяйте журнал как pdf, кидайте ссылку на страницу журнала https://fpga-systems.ru/fsm. Очень важна статистика скачиваний, надеюсь вы меня понимаете 😊 ===
566
6
Чтоб оживить канал, напомню о своей статейке про формальную верификацию открытыми тулами.
656
7
На днях вышел новый релиз симулятора электронных схем Qucs-S 2.1.0. Вот пара новых фич: - Добавлено моделирование в режиме тю
На днях вышел новый релиз симулятора электронных схем Qucs-S 2.1.0. Вот пара новых фич: - Добавлено моделирование в режиме тюнера (см. скриншот), который позволяет подстраивать номиналы компонентов ползунками и смотреть результат на графиках. Аналогичный инструмент имеется, например, в AWR; - Для Ngspice добавлена поддержка компонентов, задаваемых в частотной области при помощи файлов s2p (требуется Ngspice-41). Подробности смотрите по ссылке выше.
1 088
8
Недавно в GTKWave закоммитили интересный пуллреквест. Он выносит часть функционала в библиотеку libgtkwave и добавляет начальную поддержку плагинов. Т.е. теперь в GTKWave будут не только фильтры, но и полноценный доступ к внутреннему API программы. В качестве примера автор сделал небольшой плагин с консолью на Питоне. Посмотрите, там видосик есть.
677
9
+5
doc_1.pdf
944
10
Несколько дней назад Meta опубликовала исходники нейротула для преобразования научных статей из PDF в Markdown с распознаванием математических формул и выражений в формат LaTeX. Тул называется Nougat (Neural Optical Understanding for Academic Documents). Как понятно из названия, это нейросеть, которая работает как OCR, т.е. распознаёт текст на изображении, а не извлекает его из документа. Т.е., она делает текст не только из хороших доков, но и из довольно кривых сканов (к сожалению, не всегда получается). Можно попробовать онлайн, но обычно там очередь на несколько минут. В следующем сообщении будет три примера, которые я сделал локально на своём компе. Установка программы очень простая, модель она подтягивает сама при первом запуске. Главное, чтобы в компе была какая-никакая Nvidia и библиотека CUDA, т.к. на CPU работает очень медленно (я не дождался завершения).
735
11
Сегодня узнал, что GHDL поддерживает (не полностью, правда) PSL - язык описания проверок и ограничений (Property Specification Language) для HDL языков. По сути это SVA, не привязанный к SV (но в случае с GHDL - привязанный к VHDL). Некоторое время назад я написал статью про формальную верификацию с открытыми тулами, и решил переписать тот простой пример на VHDL+PSL. Пример запускается в SymbiYosys и правильно отрабатывает. Не пинайте строго, на VHDL последний раз писал лет 25 назад, а на PSL никогда. В общем, тема интересная, тем более PSL в отличие от SVA уже поддерживается опенсорсом, и поддержка его активно пилится в GHDL. Однако, переходить на VHDL я пока не готов :)
548
12
Сегодня наконец дошли руки до пробы пера с языком Zig. Попробовал собрать hello world для голого RISC-V (PicoRV32). Пол дня гугления, курения мануалов и копипасты вылились в три файла: https://gist.github.com/punzik/bda5ee814b39e876e14405b63d9770d6 Теперь на этой рыбе можно писать полезный код, чем я позже и займусь.
568
13
Чёт я не понял, куда делось комментирование к предыдущему посту. Надеюсь, здесь оно будет.
601
14
В одной панельке отверстия диаметром 0.8 просверлены карбид-вольфрамовым сверлом для печатных плат. В другой отверстия 0.85 п+1
В одной панельке отверстия диаметром 0.8 просверлены карбид-вольфрамовым сверлом для печатных плат. В другой отверстия 0.85 просверлены фрезой "кукуруза" 0.8. Разница на лицо. Сверло при заходе в текстолит немного произвольно смещается, а обратно в соосность уже не может вернуться, т.к. боком не пилит. Кукуруза при входе наверное тоже смещается, но потом возвращается на место и отверстие получается ровно там, где планировалось. Наверное для свёрел нужны обороты побольше бытовых 10тыс./мин.
626
15
Для тех, кто не в курсе про существование самого большого и толкового ресурса по ПЛИС в телеге, знайте: 👉 Чат: https://t.me/fpgasystems 👉 Новости: https://t.me/fpgasystems_events Оттуда вы найдёте ходы в другие не менее интересные плисовые, околоплисовые и электронные каналы. Лайк и подписка!
487
16
Позавчера в плисочате коллега предложил вычислять синусы с помощью широко известной в узких кругах формулы Марвина Минского,+7
Позавчера в плисочате коллега предложил вычислять синусы с помощью широко известной в узких кругах формулы Марвина Минского, которую он (Минский), по собственному признанию, придумал случайно: sin = sin + (cos >> shift) cos = cos - (sin >> shift) Придумал случайно, но способ получился весьма годный, т.к. простой и нересурсоёмкий, особенно в железе. Однако, за простоту приходится платить точностью, по этому я решил проверить, насколько целесообразно применять это в более серьезных применениях, нежели рисование кругов. На картинках результат теста генератора Минского с разными параметрами: ширина переменной в битах, количество бит сдвига (эпсилон), значение коррекции постоянной составляющей и амплитуда шума дизеринга. На графике сверху слева круг, построенный по значениям синуса и косинуса (несколько сотен периодов). Красным цветом обозначены значения из генератора, зеленым - референсные значения честных синуса и косинуса такой же разрядности. На графике сверху справа два периода синусоиды - референсная и полученная из генератора. Два графика ниже - спектры комплексных сигналов, полученных как (cos + isin). Зеленый - референсный, красный - из генератора. В общем, вывод можно сделать следующий. Для рисования кругов метод годный, особенно если разрядность побольше - визуально разница между честным кругом и "нечестным" совсем не заметна. Применять в ЦОС - тут нужно хорошечно подумать. Наверное в чём-то не очень чувствительном к искажениям. Из графиков видно, что постоянную составляющую у меня получилось скомпенсировать, а вот фазовый сдвиг между синусом и косинусом нет (сдвиг проявляется в виде диагонально сплюснутого круга и в виде зеркальной палки на отрицательной части спектра). Даже небольшой имбаланс фаз, в одну выборку длиной, вызывает заметное отражение на спектре. Хотя, и здесь могут быть варианты, например использовать синус и косинус по отдельности. PS: на уровни не смотрите, ибо окно, fft processing gain и пр.
407
17
Я тут периодически ругаю VHDL (в шутку, конечно☺️), но вот интересный факт: несмотря на его многословность, библиотека примитивов для симуляции ПЛИС GoWin занимает всего на 18% больше места, чем то же самое на верилоге. А по строкам и того меньше - 13% (19070 строк на VHDL против 16767 на Verilog).
381
18
Недавно в соседнем чатике интересовались возможностью разбора шин и протоколов внутри GTKWave с рисованием на временной диагр
Недавно в соседнем чатике интересовались возможностью разбора шин и протоколов внутри GTKWave с рисованием на временной диаграмме красивых цветных состояний. Так вот, это там есть. Фича называется "Transaction Filter" (там еще есть "Translation Filter", которая попроще и предназначена для простого переименования значений сигналов, например машинного кода в мнемонику). Суть её в том, что вы пишете программу, которая в стандартный ввод получает сформированный GTKWave так называемый "упрощенный VCD" для выбранных пользователем сигналов, а в стандартный вывод выплёвывает новый сигнал/сигналы с именами состояний шины и цветовой маркировкой штанов. Т.е. ваша программа получает полный трек, по которому можно восстановить состояния шины с транзакциями. Писать можно на всём, что умеет принимать ввод и печатать вывод, в т.ч. на скриптовых языках. Как всегда, не обошлось без подводных камней, для обхода которых даже пришлось запускать GTKWave в отладчике. Подробности описывать не буду, приведу только алгоритм на псевдо-С, который точно соответствует тому, чего ждёт GTKWave. Остальное можно прочитать в документации. while (!eof) { str = read_line(); if (str == "$comment data_end ...") { println("$name ..."); flush(); ... println("$finish ..."); flush(); } } Скажу только, что нужно обязательно делать flush после каждой новой строки (о чём сказано в документации), и отвечать после каждого бандла VCD (о чём в документации не сказано). Чуть позже выложу либу на Scheme для парсинга VCD и работы с распарсенными сигналами. PS: можно было написать более подробно, но не хочется тележный пост превращать в портянку. По этому спрашивайте в комментах.
478
19
Добавил в бенчмарк ещё один симулятор под названием CVC, точнее его открытую версию OSS CVC. Симулятор не поддерживает SV (только некоторые элементы, например типы logic и bit, и интерфейс DPI), но заявлена полная поддержка IEEE 1364 2005. Из-за этого пришлось использовать тул sv2v для конвертации исходников. Симулятор компилирует верилог в исполняемый файл (через трансляцию в Си), но умеет работать и в режиме интерпретатора с соответствующей потерей в производительности. В отличие от верилятора в CVC сигналы 4-state, по этому иксы присутствуют. Умеет PLI и DPI, поддерживает specify и соответственно симуляцию с задержками, быстро симуляет примитивы, умеет собирать статистику переключений (toggle coverage). В описании написано, что "best solution for machine generated Verilog simulation", годен для "very large gate-level" симуляции. А ещё он умеет дампить память :) В общем, в копилочку опенсорсных симов (лицензия, правда, какая-то своя).
716
20
Снова поагитирую за sv2v. Он умеет преобразовывать в синтезируемый верилог параметризуемые функции, таски и структуры в виде
Снова поагитирую за sv2v. Он умеет преобразовывать в синтезируемый верилог параметризуемые функции, таски и структуры в виде статических шаблонных классов. Вещь весьма полезная в некоторых ситуациях и ещё один плюсик в пользу использования SV в т.ч. с Yosys :)
566