Designing a proc.

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
suthers

Designing a proc.

Post by suthers »

I have resently started designing a processor but its really anoying to right everything on paper does anybody no a CAD tool for processors (with logical gates and stuff) and a few tutorials because I don't know much about the subject
Thanks in advance,
Julian
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:Designing a proc.

Post by Solar »

Uh... what?

You're designing a processor? Do you intend to emulate it, build it yourself (FPGA?), or to have it built by external manufacturer? Whatever you chose, that will limit your choices in tools, because the emulator / FPGA hardware / manufacturer will expect a certain input format, and the logic used is quite different.
Every good solution is obvious once you've found it.
Kemp

Re:Designing a proc.

Post by Kemp »

My advice would be to do all the research and reading *before* even starting to design. First off you'll have the background knowledge to deal with problems before they even become problems and won't "design yourself into a hole". Secondly if you do come up against a problem you'll have knowledge about how that sort of problem has previously been solved (or at least know where to look to find out).
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re:Designing a proc.

Post by Colonel Kernel »

I agree with Kemp -- do the research first. If you feel like trying some logic designs, google for "VHDL". It's a hardware description/simulation language that is somewhat close to Ada in syntax.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Designing a proc.

Post by Candy »

If you want to design an actual processor, you'll need some form of realising your design into a product, some form of designing and some core logic behind it. The core logic is how a processor is built (TLB, logic behind paging, ALU usage, register allocation, register rotation, scalarity etc), the design method will probably be by using a multi-level hardware description language (HDL), which allows defining basic blocks and reusing them to define something larger, and the implementation method depends on your aspirations and your budget. If your budget is below a few million euro's / dollars, I'd try the FPGA method. If your budget is below a few hundred or thousand, you won't get it working.

If you have a few million dollars, pay somebody to do it for you.

So, in short, use an FPGA or use transistors to do the same. I'd always choose the first, one because you can reconfigure it easily, two because it's both faster, more reliable and less tedious to make.

You describe what happens in an FPGA as a certain cause connecting to a certain action. A lot of causes cause a lot of actions, connecting them gives a processor.


That is the short overview.
suthers

Re:Designing a proc.

Post by suthers »

Ya that may be a good idea does anybody now a good simple VHDL tutorial (Im using the BlueHDL VHDL 'compiler')
and posibly some things I could read up on to learn a bit about the subject.
thanks in advance,
Jules
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Designing a proc.

Post by Candy »

Very simple tutorial: just make a few basic programs first.

1. light a led (on a testboard) - tests whether your configuration works
2. make a counter - tests whether you have the basic grasp of logic behind temporalizing all events and actions
3. make an adder - tests for logic combination

The rest I haven't figured out since I haven't done anything else myself. Don't have time nor an FPGA board to do it on.

Just a small question, do you have an FPGA board and does it work?
suthers

Re:Designing a proc.

Post by suthers »

No, I thought that using a VHDL compiler whould alow me to emulate a circuit board on the machine. I there any such CAD software were I can just position a logical gate on a circuit and create one, set input in the ports I want and then run it and get the out put on each port + do you now were I could buy logical gates?
Thanks in advance,
Jules
AxelDominatoR

Re:Designing a proc.

Post by AxelDominatoR »

If you are under linux/unix you could give a try on gEDA ( http://geda.seul.org ).

Else maybe this page on wikipedia has something of interest to you: http://en.wikipedia.org/wiki/Electronic_design_automation

At last, you could check www.opencores.org to get an idea about how much complex a processor is.
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:Designing a proc.

Post by Candy »

suthers wrote: No, I thought that using a VHDL compiler whould alow me to emulate a circuit board on the machine. I there any such CAD software were I can just position a logical gate on a circuit and create one, set input in the ports I want and then run it and get the out put on each port + do you now were I could buy logical gates?
Thanks in advance,
Jules
A VHDL compiler compiles it to hardware-synthesizable output (or stuff to place on an FPGA). A VHDL simulator emulates it - but don't even expect kilohertz speeds for more complex designs. You really want to use an FPGA for stress-testing - or a server farm.

Just a small hint, my previous job included regularly recompiling a design with a software processor. Each compile, successful or not, took at least 2 hours on a P3-500 and 15 minutes on a dual Xeon with 1GB of memory per processor. Simulating was impossibly slow to test software.
suthers

Re:Designing a proc.

Post by suthers »

oh god this isnt going to be easy, but the thing that AxelDominatoR works it emulates it on the PC virtually but now were can I read up about designing procs. I searched Google and it only comes up with things about bistables, half adders and full adders which isnt very useful, can anybody help me to find interesting tutorials please and if anybody has any recomendations, please fell free to give them.
Thanks in advance,
Jules.
Kemp

Re:Designing a proc.

Post by Kemp »

I guess I have a slight advantage here, having spent half an academic year covering processor design (along with any prior knowledge/my own reading), though that's only the basics plus a high-level overview of some of the more complicated stuff. As to non-university places to find information, I have no idea :P
suthers

Re:Designing a proc.

Post by suthers »

any books then, because obviously the net is not a good place to find it.
thanks in advance,
Jules.
Kemp

Re:Designing a proc.

Post by Kemp »

If you have access to a decently stocked university library (preferrably one with a floor dedicated to computer science) then they should have an entire set of racking dedicated to processor stuff, or at least ours did. I dunno the names of individual books though as I just went through and picked ones at random that looked interesting.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re:Designing a proc.

Post by Colonel Kernel »

Computer Architecture: A Quantitative Approach

If you don't understand this book, you need to learn a lot more about basic digital logic first.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
Post Reply