Logisim Circuits
Logisim Circuits
Here are the circuits and other materials from the CPU design streams/videos I've been doing.
Link to a GitHub repository containing history of Logisim circuits used after Video 8:
https://github.com/planetchili/8-bit-CPU
Link to a GitHub repository containing the assembler for the CPU written in C++:
https://github.com/planetchili/ASS
Link to the spreadsheet containing a reference for the control lines and the instruction set:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
Link to the video playlist:
https://www.youtube.com/playlist?list=P ... bocqk3sRNR
Link to the Logisim software:
http://www.cburch.com/logisim/download.html
Below you can find legacy direct downloads for older circuit versions (Up to Video 8):
Link to a GitHub repository containing history of Logisim circuits used after Video 8:
https://github.com/planetchili/8-bit-CPU
Link to a GitHub repository containing the assembler for the CPU written in C++:
https://github.com/planetchili/ASS
Link to the spreadsheet containing a reference for the control lines and the instruction set:
https://docs.google.com/spreadsheets/d/ ... sp=sharing
Link to the video playlist:
https://www.youtube.com/playlist?list=P ... bocqk3sRNR
Link to the Logisim software:
http://www.cburch.com/logisim/download.html
Below you can find legacy direct downloads for older circuit versions (Up to Video 8):
- Attachments
-
- vid 8.zip
- (12.23 KiB) Downloaded 729 times
-
- stream6.zip
- (10.94 KiB) Downloaded 650 times
-
- stream5.zip
- (9.2 KiB) Downloaded 567 times
-
- stream4.zip
- (6.41 KiB) Downloaded 590 times
-
- stream1-3.zip
- (13.33 KiB) Downloaded 761 times
Chili
Re: Logisim Circuits
Here's my version that's cleaned up quite a bit from the end of Stream 5.
- Attachments
-
- 8bitcpu.circ.zip
- (13.21 KiB) Downloaded 761 times
Re: Logisim Circuits
Thanks, Chili. I just hope shit doesn't change drastically otherwise a bunch of rerouting will have to be donechili wrote:It's pretty sexy. I came.
- viruskiller
- Posts: 399
- Joined: June 14th, 2012, 5:07 pm
Re: Logisim Circuits
man this series is awesome:D!
A few years back i tried to make a CPU in minecraft myself, but always got stuck on how to put all the pieces together. Like i knew how to make decoders, ram,adder,shift registers and other stuff, but never wrapped my head around how to link them all together and then be able to program it.
so thank you for this!
A few years back i tried to make a CPU in minecraft myself, but always got stuck on how to put all the pieces together. Like i knew how to make decoders, ram,adder,shift registers and other stuff, but never wrapped my head around how to link them all together and then be able to program it.
so thank you for this!
Re: Logisim Circuits
Hey man, I'm glad you're digging it. I wanted to do another stream this weekend, but busy with preparing stuff for the reboot series (learning how to use 3ds max so I can make an intro clip and a logo >_<). There will be more digital logic stuff coming though
Chili
- viruskiller
- Posts: 399
- Joined: June 14th, 2012, 5:07 pm
Re: Logisim Circuits
any1 got any idea on how to go about making a binary to decimal 7 segment display?
i think it involves binary counters, but not sure on how to do it:/
EDIT:oh man this is hard:D ,reading right now on wikipedia about the double-dabble technique that involves bit shifting and adding 3 to numbers above 4 , although this would not work as a display for the CPU since it takes clock cycles to decode the number, i think i might have to look at it as a "primitive graphics card":))
2'nd EDIT: i give up, dunno how i seem to pick my goals, but i'm damn good at picking ones i'm not going to reach in a reasonable amount of time:/, guess i'll resume to watching videos and hope i learn a few new tricks to help with this:(.
i think it involves binary counters, but not sure on how to do it:/
EDIT:oh man this is hard:D ,reading right now on wikipedia about the double-dabble technique that involves bit shifting and adding 3 to numbers above 4 , although this would not work as a display for the CPU since it takes clock cycles to decode the number, i think i might have to look at it as a "primitive graphics card":))
2'nd EDIT: i give up, dunno how i seem to pick my goals, but i'm damn good at picking ones i'm not going to reach in a reasonable amount of time:/, guess i'll resume to watching videos and hope i learn a few new tricks to help with this:(.
Re: Logisim Circuits
Hey virus. The way I would probably handle this is is with calculating mod 10 with mask and add and then chaining the difference of the input and the mod result, but there is a better way.
http://www.ee.ic.ac.uk/pcheung/teaching ... %20BCD.pdf
The above is more efficient from a silicon standpoint, but it may be less efficient from a logisim standpoint.
http://www.ee.ic.ac.uk/pcheung/teaching ... %20BCD.pdf
The above is more efficient from a silicon standpoint, but it may be less efficient from a logisim standpoint.
Chili
- viruskiller
- Posts: 399
- Joined: June 14th, 2012, 5:07 pm
Re: Logisim Circuits
i was going with the second way and it is damn hard, almost like making it's own little brain to push out the bcd numbers:/,i need to learn more how logisim parts work, and flipflops in particular,what i need is some kind of clock propagation, like depending on a condition the clock signal should take different route but then be able to return on the same one once the adding was done and value copied back into the shift register.
Re: Logisim Circuits
I was talking out of my ass about the masking to calculate mod 10, doesn't seem feasible. You can shift twiddle to get the quotient and then subtract to get the mod though. Faster on logisim to just use the division block, although a full divider in an actual implementation would be overkill.
Fiddling with the clock signal is not the way forward imo. Leave the clock as it is, and manipulate ena pins.
Is the circuit you're trying to create going to do this in one clock (combinatorial/asynchronous), or is it going to take several clocks to do it with intermediate calculations?
Fiddling with the clock signal is not the way forward imo. Leave the clock as it is, and manipulate ena pins.
Is the circuit you're trying to create going to do this in one clock (combinatorial/asynchronous), or is it going to take several clocks to do it with intermediate calculations?
Chili