Hi all,
--- Great links to lispy fpga implementations, but in this case I'm hoping to generate verilog as part of a compilation process such that application-specific VLIW-type hardware can be added to a generic processing core, tied 1:1 with a compiler who, at compile time, is aware of the new opcodes and puts them to use. The Zynq stuff this guy I'm after is an Arm core on an fpga/SoC; the dev boards arrive running linux, and (the documentation claims) the path to adding custom hardware features that speak with the core isn't overly riddled with holes of doom.
--- If you haven't played with Verilog or hardware langs, you should do it, it's remarkably interesting if one is used to thinking of source code executing sequentially. Shout outs to iVerilog and gtkWave for being great and powerful and still simple.
--- Since a few others gave (links to) their stories with hardware implementations of elegant languages, I feel that I should share a recent experience of mine, interviewing at a Large company for a software role, taking questions at the end of a 45 min preso I gave, when it came up that I had written a simple processor and interfaces for Brainfuck in Verilog, and wrote a code generator to make it serve a webpage over an SPI ethernet board. I was suprised to find that of the perhaps 25 eng people jammed into this conf room, none of them had ever heard of brainfuck. I quickly tried to explain its concept and purpose, and that since each Brainfuck instruction is a character, we can just used them as opcodes directly, no assembly needed. The crowd was really not following me. I decided to move on. Later, I find out through a friend that, since no one in the room had heard of Brainfuck, somehow I was interpreted as making a joke about hardware design being difficult while saying "Fuck" a lot, to paraphrase the recruiter. They declined to extend an offer, citing something like "communication style incompatibilities". TL;DR be careful with hardware!
https://github.com/jackcarrozzo/brainfuck-processor //
https://en.wikipedia.org/wiki/Brainfuck (p.s. I recently started a different software job, and my coworker was physically pained when i finally let it out that, left to my own devices, I write Common Lisp, and thus the script he wanted that I hadn't planned to share was, of course, in same.)
Happy..... everything,
-Jack