At this very moment, I am implementing the LC3 RISC machinejects/analyzer/[/url]
a few resources found here. A simulator, LCC, examples, and a book!
Where is the HDL code?
Don't know about any HDL code, I whipped up my own in about a day. Essentially, I just took the author's FSM diagram and coded it directly. State for state. I have also used their hardware architecture as shown. Mux for mux...
So far all I have are the basic 14 instructions. I have to take a break and rework that Python coded assembler to output hex instead of binary. Thanks to a posting elsewhere by Hamster_NZ, I have a way to get a hex file read into BlockRAM at synthesis time. But the file has to be in plain hex (I think!) to use the VHDL read function.
My goal was to explore the similarity of HDL coding of FSMs and microcoding. Except for the format on the page, the processes are identical. Define the fields, define default values for the fields and then at each state define just the exceptions to the defaults.
I ordered a copy of the book w/CD from Alibris, $10/shipped.
It's just something to do. Vivado isn't necessarily helping. It keeps telling me that it has eliminated dozens of sequential elements when, in fact, it hasn't. Known "oopsie". To be fixed soon, I hope!