The initial target for my iCE40UP devboard was and is a softcore processor design. I’ve worked on two softcores in the past: A 16 bit core implemented in VHDL: this core features 8 by 16 bit registers, a 16 bit external design (that is, external 16 bit address and data busses), and a fairly complete set of ALU operations. It’s… Read more »
I’ve been very busy for the last few months, with many different things. This post will therefore be a bit of a mess, unfortunately. I’m at a place where I’ve been before a few times: not knowing the most interesting road to explore, since there are so many, and they are all fascinating and rewarding in their own way. First… Read more »
As mentioned at the bottom of the previous post, I’ve been designing a new 32 bit processor, and this post is concerned with the design of that processor’s Instruction Set Architecture. The objectives for this project are as follows: To learn as much as possible from the experience To leverage what I learned making my previous 16 bit processor To… Read more »
I settled on CustomASM for the re-targetable assembler for my processor, after briefly playing about with the somewhat unconventional axasm. CustomASM allows you to define a processor’s instruction set in a configuration file and then assemble assembly source code using that definition. This is easiest to explain with an example. Here is the definition of the LOADI instruction: load.{width:loadtype} {dst:reg},… Read more »
In my previous blog post I talked about some of my goals for a simple 16 bit processor implemented in VHDL and running on an FPGA. Here is a diagram showing the top level design, as generated by the Quartus tools: For clarity the Control Unit and associated muxes are not shown; the remaining parts, plus the muxes, constitute the… Read more »
During my A-level electronics class I studied many interesting topics including: Basic analogue electronics including Ohm’s law and bipolar transistor switching and amplification circuits Boolean algebra Digital design using 74 series parts Assembly programming with the 6502 The 6502 assembly programming was particularly interesting because it was hands on using some teaching boards that consisted of a 6502, a tiny… Read more »