1 - 6 of 6
PhrozenbitWhen you have some spare time, could you draw me a logic diagram for a 4 bit greater than comparator circuit ? I'll credit you the whole Redstone device when it's built.
PhrozenbitIt's a nice compact comparator that's fast. It works good, and I can not build one myself . I've been trying to build only the 'greater than' part from your logic diagram for another project I'm experimenting on. I feel I miss out on some education on the subject of digital logic.. so it's giving me headaches at the moment
NoseJob for a CowboyI don't really want an internal function for multiplication. For one, I've already built the ALU and it would be a bitch to squeeze in. And for another thing, it would most likely slow down my clock when I get around to building program memory and a counter. My ALU can pull off a full ripple carry in 13 ticks btw. Sadly, my A > B detection for the comparator is extremely slow. When the MSB's A input goes high, it takes the comparator a full 36 ticks to negate the lesser B inputs. I'm pretty sure this will be the limiting factor when it comes to my clock speed.
But, I don't really care about performing multiplication being slow. As long as it's an algorithm my ALU can perform externally, with minimal modifications, I could honestly care less how many steps are required. I basically want it for the fun of writing the program, I don't care about the function itself all that much.
PhrozenbitI will use a fixed 8 bit instruction set, the most significant nibble will be the ALU functions, and the least significant wil be the RAM adresses.
I just realized however, that most of the ALU functions won't even need a RAM address, only loading values in the ALU's temporary registers would require a RAM address, same as saving the ALU's output in RAM. The unconditional branch, and conditional branching where I use your magnitude comparator for require a program memory address, which is also going to be four bits. It seems I have some additional space left while calling an ALU function that processes the values in the temporary ALU registers.
I just use a 4 bit wide decoder for the function enablers on the ALU, and a 4 bit wide decoder on the RAM address / register controllers. I plan on making the program memory and it's data paths synchronous, and hook up its output directly to the function decoders and RAM address decoders. Iterating through the program memory using a binary counter with branching capability hooked up to the program memory's address decoder should take care of running a program.
NoseJob for a CowboySpeaking of which, I've officially started on Project XENON, which is the codename of my new computer. The title pays homage to the Xbox 360 console, which uses a custom CPU designed by IBM, which is named Xenon.
So far, all I've built is a full 16-bit comparator and one bit of the rest of the ALU. Kind of put the kabosh on it after that. It's irritating building the same thing over and over again. I'll probably start a project page on it tomorrow.
1 - 6 of 6
© 2010 - 2024
www.planetminecraft.com
By signing in, you agree to Planet Minecraft's Terms of Use and Privacy Policy.