Lamagraph / intro-to-fpga-with-clash

https://lamagraph.github.io/intro-to-fpga-with-clash/
MIT License
0 stars 0 forks source link

Часть 2. Первый код #4

Open WoWaster opened 4 days ago

WoWaster commented 4 days ago

Здесь хотим научить (или напомнить) основы синтаксиса => много комментариев на эту тему. В качестве примера --- сумматор на комбинационной логике. Стоит написать про "классические" тестбенчи (чтобы потом сравнить с cocotb). Показать как делать CI. (@KubEF, если надо, могу ссылок накидать)

WoWaster commented 3 days ago

Про CI. Чтобы не собирать тулы можно брать докер образы отсюда https://hdl.github.io/containers/ToolsAndImages.html Какое-то подобие CI есть тут: https://github.com/WoWaster/impulse-2024-tasks/tree/rtl-task-1 У Verible есть такое https://github.com/chipsalliance/verible-linter-action и такое https://github.com/chipsalliance/verible-formatter-action

Я так думаю линтер Икаруса надо дёргать руками. И вообще всё стоит обернуть в Makefile. Вопрос ещё только в том, мы хотим в CI все-все подпапки или пусть будет только одна. И надо проверить exit code, если в Икарусе что-то не сошлось.

WoWaster commented 1 day ago

Упражнения:

  1. Реализуйте комбинационный модуль, который принимает на вход два однобитных входа a и b, а на выход c выдает значение с ≡ a → b, где --- импликация.
  2. Реализуйте модуль вычисляющий отрицание импликации (с ≡ ¬(a → b)).
  3. Реализуйте модуль вычисляющий значение стрелки Пирса (с ≡ ¬(a NOR b)).
  4. Реализуйте модуль вычисляющий значение штриха Шеффера (с ≡ ¬(a NAND b)).
  5. Напишите тестбенч для модулей из упражнений 1., 2., 3., 4.
  6. (опциональное) Напишите собственный Makefile используйте его в своей любимой CI системе.