Hello Minecraft Forums, I wanted to share my final undergraduate engineering project with you (yes, I got university credits for playing minecraft).
Modern digital design in one paragraph
** Those of you who are familiar with digital design and HDLs skip this section
In today's digital design industry, a single chip can contain up to 19 BILLION transistors, if an engineer were to draw one transistor per second, it would take him/her over 600 years to draw a single CPU design. How do companies like Intel and AMD release new and improved chips every year?
They use tools known as Hardware Description Languages (HDL). They're similar to programming languages but instead of describing a program that runs on a computer, they are used to generate the blueprints of the circuits that make up computers.
Info about the mod
We have built a mod "MinecraftHDL" that allows you to use the same tools used in state-of-the art chip design (HDLs), but instead of making silicon circuits, they generate redstone circuits right in your world.
The circuit I generate above is a 2bit adder. It takes two numbers of two bits and adds them.
At the end of the gif I set both input numbers to '11' which is the binary representation of the number 3. Then I move to the output and we see that O3=1, O2=1, and O1=0, this gives the binary number '110' which is indeed 6.
Conclusion
This mod isn't really intended for gameplay, it's more of an academic endavour. It can however be a great tool to get young people interested in digital design and the tools used in industry.
Additionally it could be very helpful when teaching HDL to engineers who have never used them before. One of the most common pitfals in digital design is treating an HDL description like you would a sequential program. HDLs are almost always taught in the context of simulators, and all students ever see is a waveform like this.
Using MinecraftHDL would provide the students with a concrete and relatable "physical" circuit that they can play with and watch as the signals visibly propagate from input to output.
I would like to acknowledge the amazing work from the people behind the Yosys open-source verilog synthsizer, without them this project would have been 100% impossible!
Wow, I am impressed, I must say! Congratulations on your final project!
I won't actually use it, but I have some experience to share.
Some personal jibber jabber:
I am on the 3rd year of my Engineering graduation and have just last semester learned Digital Electronics. Had I known this project a few months ago (had it also existed) it would have made my life much easier!
Some 5 years ago, still at High School, I was really into redstone and ended up learning quite a bit about the subject, in the end having built by myself a 4 bit adder with a 7 segment display, all by hand (using nothing more than a mod that made XNOR gates into a single block). Thus, when I was lectured digital electronics I was already much ahead in knowledge than the rest of my class and still had difficulty learning HDL (we learned Verilog as well). I managed to do some coding but I never really got a solid grasp of the logic behind it, who's to say how much my colleagues suffered learning it.
Conclusion
My point is, as you said, HDL isn't quite like other programming languages, and Minecraft is a very powerful tool. I dream of a future in which it shall be a mainstream teaching method, and also in which your mod shall have a great impact on the life of engineers all over the globe. What a wonderful idea you had! I actually mentioned to my colleagues that digital circuits could be so easily taught with Minecraft, but I was thinking of gates and latches (which many people already find hard to understand). You took it a step further! Where did you get the inspiration? Were you suddenly struck by the idea on rainy afternoon?
I think you did an amazing work. I can't even begin to comprehend how one would code this as a mod. Kudos to you. I really hope it gets the recognition it deserves and doesn't get thrown into oblivion!
Hello Minecraft Forums, I wanted to share my final undergraduate engineering project with you (yes, I got university credits for playing minecraft).
Modern digital design in one paragraph
** Those of you who are familiar with digital design and HDLs skip this section
In today's digital design industry, a single chip can contain up to 19 BILLION transistors, if an engineer were to draw one transistor per second, it would take him/her over 600 years to draw a single CPU design. How do companies like Intel and AMD release new and improved chips every year?
They use tools known as Hardware Description Languages (HDL). They're similar to programming languages but instead of describing a program that runs on a computer, they are used to generate the blueprints of the circuits that make up computers.
Info about the mod
We have built a mod "MinecraftHDL" that allows you to use the same tools used in state-of-the art chip design (HDLs), but instead of making silicon circuits, they generate redstone circuits right in your world.
In order to keep your attention:
Pictures!:
A 2-bit 7-Segment display decoder. It's the same circuit as the one inside your alarm clocks except this one can only display numbers from 0 to 3
(the display out of lamps was hand made, but the circuit doing the calculations was generated with MinecraftHDL)
The Decoder in action
A 1-bit adder
This circuit takes two 1-bit numbers (and a carry-in) and outputs the result of the addition of the numbers.
This is the most important circuit in computing, it is the basic building block for all arithmetic operations.
4-to-1 Multiplexer
The multiplexer is an extremely important circuit in computing. This circuit has 4 input and 2 control signals.
Depending on the value of the control signals, one of the 4 inputs is selected to be copied at the output.
Poster:
To show how easy it is to make a circuit with MinecraftHDL here is a gif of me writing a circuit description, synthesizing it, and generating it in minecraft. All in less than a minute!
The circuit I generate above is a 2bit adder. It takes two numbers of two bits and adds them.
At the end of the gif I set both input numbers to '11' which is the binary representation of the number 3. Then I move to the output and we see that O3=1, O2=1, and O1=0, this gives the binary number '110' which is indeed 6.
Conclusion
This mod isn't really intended for gameplay, it's more of an academic endavour. It can however be a great tool to get young people interested in digital design and the tools used in industry.
Additionally it could be very helpful when teaching HDL to engineers who have never used them before. One of the most common pitfals in digital design is treating an HDL description like you would a sequential program. HDLs are almost always taught in the context of simulators, and all students ever see is a waveform like this.
Using MinecraftHDL would provide the students with a concrete and relatable "physical" circuit that they can play with and watch as the signals visibly propagate from input to output.
I would like to acknowledge the amazing work from the people behind the Yosys open-source verilog synthsizer, without them this project would have been 100% impossible!
Wow, I am impressed, I must say! Congratulations on your final project!
I won't actually use it, but I have some experience to share.
Some personal jibber jabber:
I am on the 3rd year of my Engineering graduation and have just last semester learned Digital Electronics. Had I known this project a few months ago (had it also existed) it would have made my life much easier!
Some 5 years ago, still at High School, I was really into redstone and ended up learning quite a bit about the subject, in the end having built by myself a 4 bit adder with a 7 segment display, all by hand (using nothing more than a mod that made XNOR gates into a single block). Thus, when I was lectured digital electronics I was already much ahead in knowledge than the rest of my class and still had difficulty learning HDL (we learned Verilog as well). I managed to do some coding but I never really got a solid grasp of the logic behind it, who's to say how much my colleagues suffered learning it.
Conclusion
My point is, as you said, HDL isn't quite like other programming languages, and Minecraft is a very powerful tool. I dream of a future in which it shall be a mainstream teaching method, and also in which your mod shall have a great impact on the life of engineers all over the globe. What a wonderful idea you had! I actually mentioned to my colleagues that digital circuits could be so easily taught with Minecraft, but I was thinking of gates and latches (which many people already find hard to understand). You took it a step further! Where did you get the inspiration? Were you suddenly struck by the idea on rainy afternoon?
I think you did an amazing work. I can't even begin to comprehend how one would code this as a mod. Kudos to you. I really hope it gets the recognition it deserves and doesn't get thrown into oblivion!