Incognito · 2017-11-08 04:27
Unsure if this is programming or tech
How can I write my own BIOS and everything related?
Does anyone have resources towards doing this
and additional on how to make your own CPU? I've studied introductory computer architecture and operating systems (though I may need a refresher) and I've built a CPU before on paper, I guess I want to try a slightly more advanced CPU then the basic thing I wrote.
Trinity · 2017-11-08 04:51
In regards to making your own CPU, you'd be looking at describing it in an HDL (VHDL or Verilog being the popular ones). You could then simulate it in software, and burn it into an FPGA to use it in the real world.
Koos van der Merwe · 2017-11-08 05:08
>>4819
This.Hardware description languages are great. You can even compile them to FPGAs. Here's an example I found on the web and marked up with my own comments. You'll notice that HDLs can be very declarative compared to some programming languages.
---------------------------------------------------
// Design Name : decoder_using_assign
// File Name : decoder_using_assign.v
// Function : decoder using assign
// Coder : Deepak Kumar Tala
//-----------------------------------------------------
module decoder_using_assign (binary_in, decoder_out , enable);
input [3:0] binary_in; // 4 bit input
input enable; // 1 bit input
output [15:0] decoder_out; // 16 bit input
wire [15:0] decoder_out; //Not really sure why this wire needs to be here. Shouldn't connecting this directly to the output work?
// Write decoder_out to the inputs such that this equality is always true.
assign decoder_out = (enable) ? (1 << binary_in) : 16'b0 ;
endmodule Does anyone know what the state of free software for HDLs is? I've only used proprietary stuff for school.
leverkronk · 2017-11-08 07:01
I know that Intel has lots of free software + an IDE for it’s Altera line of FPGAs. There’s also lots of documentation and guides available for programming them.
The ARM Amber processor is open source and should be available to download somewhere as a good point of reference. Be warned however, good FPGA development kits will cost you as much as a current gen console, so you should research them thoroughly before you commit to any purchases.
????? · 2017-11-08 08:18
>>4820
>Verilog
I gotta admit. It was a pretty steep difficulty curve getting the hang of it (and to be honest, I'm probably still pretty soykaf at it), but getting your code to the FPGA, trying to debug stuff, and actually working with bits has been an experience that has made me double down on being EE.
Implementing stuff in a language with almost no abstractions has really led me to appreciate the mid-level language that C is (low level coming from other langs like python, high level coming from verilog).
Also, I'm not entirely convinced you need both 'output' and 'wire' for decoder out.
I think simply having output wire[15:0] decoder_out would be enough.
Pic related is the wikipedia article on HDLs
https://en.wikipedia.org/wiki/List_of_HDL_simulators
Boole · 2017-11-08 09:31
>>4818
>How can I write my own BIOS
There is an open source bios project called coreboot with lots of documentation. Be aware that this is very hardware specific and may not be realistically possible depending on how much documentation the hardware vendors release about their products. It also means that when you buy a new PC, your custom made bios won't work and you will need to start again from scratch.
>and additional on how to make your own CPU?
There is a book called Nand to Tetris which you may find interesting.
Arisu Mizuki · 2017-11-08 21:41
If you need a tool for verilog, might i suggest a recent project of mine? I made a simple verilog 'ide', and i would really appreciate some feedback. (uses java and icarus)
https://github.com/pixelrazor/Daedalus
Sipho Nkosi · 2017-11-09 01:17
>>4819
>>4820
In the end, though,
FPGAs are great for learning,
but isn't that basically analogous to programming in Python when the end goal is to make an HTML rendering engine?
Great, useful tool, could probably even make a "toy" version of the final product with reasonably full features given enough time, but ultimately the performance will be crapola and will never even be capable of eclipsing the existing guys
Am I off base here? (This is my first poist in this thread; I'm not OP but agree with it)
I'm in colig now for Physics, considering taking some EE classes or whatever would be required to start vectoring towards becoming the guy who invents the next general consumer/poweruser/developer processor
byte · 2017-11-09 02:47
>>4823
>>4823
>nand to tetris
So this is actually the thing I used for previous ventures into this field, however I guess I want to go deeper? Or something harder?
Turner · 2017-11-09 04:26
>>4819
can you compare contrast VHDL and Verilog? Does it matter which I choose?