Why refactor the code?: less repetition, clearer intent, easier to change timing/logic by editing a table instead of code paths.
Feedback welcome—especially ideas to extend it.
(This post is part of Resorte, a Spanish magazine (comics, hobbies, technical notes) inspired by Argentina’s legendary Lúpin. If you read Spanish, check it out.)
All the sources for the designs and testbenches were tested on Vivado and are available at GitHub. For the generic implementations I used unconstrained ports, which gives much simpler and compact code than using generic parameters.
The implementation of the round-robin arbiter uses a very clever and (again) compact algorithm.
Honey and lemon juice, mildly hot (put water in a pot, and the honey and lemon juice in a smaller glass inside the pot, stir until it is liquid and mildly hot).
Grandma recipe, works for me.
Not a medical advice
For me, one option is to be able to learn processors in depth. You want to understand how one works? You can always emulate it in SW, but on an FPGA you can make them interact with the real world in real time and probe them at the same time, with ready made signal analyzers that the vendors provide, and/or by making your own tools.
Another option, do you want to see by yourself how caching improves code performance? You can make that on an FPGA also.
I have done some time ago a very nice course which is called From Nand to Tetris, that teaches how to go all the way from gates to a processor. My plan for the near future is to implement the NAND2Tetris processor on a Basys 3 board, and make some of the examples I mentioned (like, probing internal registers using HW tools, or seeing by yourself how a cache improves performance). I hope to make some of these things available on my site. I am the OP, but just in case, my website is https://fpgaer.tech
Following Altera acquisition by Intel, and Xilinx acquisition by AMD, perspectives for many FPGA designers were gloom. There was a general feeling that the two biggies would go to a road where the FPGA is only and add-on or coprocessor for CPU workhorses, for applications like Data centers and ML acceleration.
Well, according to these news from Intel, that's not the case. Intle announces new mid-level FPGAs and even new FPGA to compete with Xilinx RFSoCs
I share(d) that concern. Mitigating this is that a lot of (low to mid range) alternatives seems to have gotten steam: Lattice Semi, Efinix, Gowin, and more that I forget at the moment. I'm rooting strongly for the underdogs to become viable alternatives to the current duopoly.
It would of course have been preferable for any of them to directly support the open stack (yosys, nextpnr, and the various bitstream generators); Lattice's ECP5 is nice, but not very fast.
My particular worry was that AMD would cancel Xilinx's CPLD chips, but so far it does not look like it. They are very very useful if you want to replace old 74xxx circuits and greatly simplify development.
That it why it was so much a joy to buy magazines. Those magazines with their program listings, the adds, the letters. I remember to this day when I was with my girlfriend for a long time typing long listing of POKEs to hear music from the magnificent SID.
Not sure why, but I didn't really know about the magazines back then. All my knowledge came from friends and reverse-engineering others' code (de-blitz!)
I know it is not directly related to this magazine, but this nostalgia brought back to me the name of my favorite magazine those days: Ahoy!
And of course, who can forget the wonderful adds for the games from Infocom (Zork et al), who would "stick their graphics where the sun don't shine!". They were text based games, and very succesful on those days
They are still available (some released freely by the publisher, others not), and the paraphernalia (which often contained information required to play the game) can be found at http://infocom.elsewhere.org/gallery/greybox.html.
Feedback welcome—especially ideas to extend it.
(This post is part of Resorte, a Spanish magazine (comics, hobbies, technical notes) inspired by Argentina’s legendary Lúpin. If you read Spanish, check it out.)