Gergo Erdi - Executable, Synthesizable, Human Readable: Pick Three

Опубликовано: 30 Январь 2025
на канале: Konfy
510
10

Special thanks to the Haskell Foundation for supporting the production of this video!

Haskell Love 2021 schedule: https://emamo.com/event/haskell-love
Haskell Love twitter:   / _haskellove  

The great thing about Clash is that it is just Haskell. In this talk, we explore why this is great, by showing a simple hardware circuit developed using high-level Haskell abstractions:

Separation of model and presentation * `State` with lenses for composable model updates * Type-directed and type-level programming

The result is idiomatic Haskell code that can be viewed in multiple ways:

We can compile it as software Haskell, yielding an interactive simulation, i.e. a playable Pong game.

We can compile it as hardware Haskell, yielding an FPGA configuration that can be hooked up to two pushbuttons and a VGA screen.