this might also be of interest: I have created a SoC/CPU on the iCEbreaker. It goes further than the hardware alone as it comes with an monitor program, simulator, assembler and even the beginnings of a C-like compiler (all in Python) and so far it has been enormous fun implementing all that.
I am only a beginner of course (this being my first real fpga project) but I did my best to document everything in a blog/wiki and am working on better documentation of the design.
The blog can be found here:
The CPU documentation (work in progress) here:
And the code (and wiki) on GitHub:
Any feedback/advise/criticisms are of course welcome.