
Ко мне на днях обратились сначала два стартапера, а потом и из большой компании по вопросу EDA с помощью AI. Я дал всем троим одну и ту же задачку и думаю сделать еще несколько таких задач, так как два тула эту задачку решили, один тул на ней лег, а еще четыре произвели некий код на языке описания аппаратуры SystemVerilog, который не проходил мой тест, то есть не являлся решением.
В чем социальная значимость таких задачек? Дело в том, что венчурные капиталисты тратят не свои деньги, а деньги, которые институциональные инвесторы, в частности пенсионные фонды - вкладывают в фонды венчурных капиталистов. Тем самым, хотя в США существуют законы, запрещающий неопытным инвесторам ("widows and orphans laws" - "законы о защите вдов и сирот") вкладывать в стартапы напрямую - вдовы и сироты все равно не защищены, так как живут на выплаты из пенсионного фонда, в который вкладывал их безвременно почивший отец семейства.
Также не открою Америку, что стартапер стартаперу рознь. Одни честно делают прототипы и решают задачки от потенциальных пользователей. А другие занимаются shmoozing - то есть ходят по тусовкам и пытаются что-то впарить VC говорением в стиле Остапа Бендера.
И вот чтобы защитить венчурных капиталистов (а через них - вдов и сирот) от стартаперов второго типа, мы с соратниками сделали задачку под названием SystemVerilog Microarchitecture Challenge for AI No.1:
Вставим историческую справку. Electronic Design Automation (EDA) - по русски означает "автоматизация проектирования электроники" или электронный САПР. Эта область пережила свои золотые дни (и внимание VC) в конце 1980-х - начале 1990-х годов, когда изобрели маршрут проектирования микросхем RTL-to-GDSII. Именно этот маршрут породил айфоны, быстрые роутеры для интернета и аппаратные ускорители ИИ. Однако затем все монополизировалось в лапах Synopsys и Cadence, и VC перестали вкладывать деньги в EDA стартапы. И вот сейчас настипил хайп ИИ и EDA внезапно стала подавать признаки жизни.
Теперь приведем задачку и список причастных. Прямо из файла README.md:
SystemVerilog Microarchitecture Challenge for AI No.1
This repository contains a challenge to any AI software that claims to generate Verilog code. The challenge is based on a very typical scenario in an electronic company: an engineer has to write a pipelined block using a library of sub-blocks written by somebody else. Then this engineer has to verify his block using a testbench written by somebody else. He may also need to figure out the sub-block latencies and handshakes by analyzing the code, since a lot of code in electronic companies is not sufficiently documented.
The SystemVerilog Microarchitecture Challenge for AI No.1 is based on the SystemVerilog Homework project by Verilog Meetup. It also uses the source code of an open-source Wally CPU.
1. The Prompt
Finish the code of a pipelined block in the file challenge.sv. The block computes a formula "a ** 5 + 0.3 * b + c". You are not allowed to implement your own submodules or functions for the addition, subtraction, multiplication, division, comparison or getting the square root of floating-point numbers. For such operations you can only use the modules from the arithmetic_block_wrappers directory. You are not allowed to change any other files except challenge.sv. You can check the results by running the script "simulate". If the script outputs "FAIL" or does not output "PASS" from the code in the provided testbench.sv by running the provided script "simulate", your design is not working and is not an answer to the challenge. Your design must be able to accept a new set of inputs (a, b and c) each clock cycle back-to-back and generate the computation results without any stalls and without requiring empty cycle gaps in the input. The solution code has to be synthesizable SystemVerilog RTL. A human should not help AI by tipping anything on latencies or handshakes of the submodules. The AI has to figure this out by itself by analyzing the code in the repository directories. Likewise a human should not instruct AI how to build a pipeline structure since it makes the exercise meaningless.
2. The Credits
The list of people who contributed to the SystemVerilog Homework:
Софтвер нужный для проверки решения является бесплатным и ставится достаточно банально и под Линуксом, и под Windows (10, 11, с WSL или без WSL - неважно) или под Макинтошем:

Так что желающие могут дерзать и пробовать мир AI EDA