-
RL 1 - Logisim, Digital, and Logisim-Evolution
07/19/2021 at 07:51 • 1 commentAs far as simulators go, one could of course use a full HDL language and simulator (such as GHDL, or Icarus Verilog), and while I am doing some of that for this project I decided to check out Logisim's descendants Digital and Logisim-Evolution. Work on the original Logisim has stopped, and it's up to the community to continue it - fortunately, multiple groups have continued its...well, Evolution.
I started by checking out Digital, and after scanning through the issues it looks like the ability to draw a custom representation for a circuit is not yet available (although it is in progress); Logisim-Evolution has this feature, so I went with it. After looking through the issues on Github, it appears that the simulator's core would require some serious refactoring to support true bidirectional pins - then again, V1 of Chisel didn't support tri-state pins either (whatever that means - I never bothered with Chisel).
Anyway, it's what I went with (along with VHDL/Verilog, but it's likely easier for people to follow along with if using a tool like Logisim Evolution).
But here's the deal: THIS is the tutorial that everyone needs to see. It's what sold me on Logisim Evolution, for the same reason the author states - the other tutorials will put you to sleep, let's see something real, fast.
LEGIT.
Ok, next we're going to add some items to our References section:
- A Microprogramming Learning System
- https://ir.library.oregonstate.edu/downloads/vx021j62g
- This is an abstract for a Master's Degree about using the AM2900 Evaluation kit we got the schematics of previously, and it mentions some improvements and extensions!
- https://ir.library.oregonstate.edu/downloads/vx021j62g
- 27S03
- There is a memory chip, the 27S03 that's called out on the AM2901 Evaluation kit; what do you know? There's an alternate part called out in the TI TTL Databook (the SN74S189).
- Well we can't find that part, it's unobtanium (like the original AM27S03). But knowing what we know about these logic families, "SN" is TI's manufacturer code - what if we look for just "74S189"? BAM:
- In searching for how to use Logisim Evolution to model this, I came across a video that was really straightforward - super legit, check it:
Cool stuff!
- A Microprogramming Learning System
-
Research - Entry 0
07/18/2021 at 13:35 • 0 comments- Second Sources for the AM2901:
- IDM2901
- Available from:
- AM2900 Evaluation and Learning Kit (Scanned Schematics)
- These scanned schematics were referenced here:
- http://ferretronix.com/march/sbc/amd2900/
- Which in turn links (second link from the bottom) here:
- https://www.giga.nl/walter/computers/
- ...then search "Schematics".
- Donnamaie White (an OG of microprogrammed processors!) hosts a lot of material on her website, including this 2900 Eval board document: http://www.donnamaie.com/AMD_Vintage/EVAL_Board_cropped_reduced.pdf
- These scanned schematics were referenced here:
Wrote some VHDL for the AM2901, but I haven't decided if I'm going for full accuracy or something for an FPGA. It's been a lot of fun reading the data sheet though - including some "Wait, what?" moments when trying to figure things out. It is possible to design an excessive battery of tests, which sounds like some bit of fun... or we could just plug an AM2901 into a socket, stick that socket on a breadboard, and then run some wires over to an FPGA board kicking around my lab - obviously with something to handle the level translation between the 2901 and whatever (relatively) modern FPGA.
I'm not an expert at level translating things from the mid 1970's; I just "expect" whatever outputs I have are powerful enough to do what I want, whenever. See? Having all this power makes you lazy. How boring.
Abusing VHDL to create a simulation-only model of this chip (as well as a synthesizable one) does sound like fun too, but less fun than wiring things up. That's definitely something to put on the back burner.
It's interesting - it's like the AM2901 "expects" to be used in a certain way in a system, and if you're familiar with how it expects to be used, you can see how other microcoded systems could be extended or pieces they're missing. Taking a look at other small microcode systems, you see how they'd benefit from a computer control unit (CCU), or how to better take interrupts to provide for condition control.
Then there are some SUPER hardcore microcode projects that have done so much, you're pretty sure they're who you want to be when you grow up; I'm going to list them here out of inspiration, and honestly more than a little envy. But the nice thing about engineering, Kung Fu, whatever, is that it rewards study and deep practice, and just thinking "That's awesome" without joining in the fun is no way to get there. Anyway, here they are:
https://hackaday.io/project/172073-microcoding-for-fpgas
http://www.microcorelabs.com/home.html
Next post is on Logisim, Digital, and Logisim-Evolution - because that's what a lot of people are using, and these simulators (especially Digital and Logisim-Evolution) have become really cool tools for learning digital design. Actually maybe a 2901 model in one of those simulators would be even more useful...
- Second Sources for the AM2901: