https://www.techfleb.fr/posts/fpga-abstraction-level-1/