Homemade hardware?
category: general [glöplog]
After watching http://www.pouet.net/prod.php?which=50141 for yet another time, I wondered how many other similar projects are made in the past, not only to display a wild demo, but also homemade computers with old hardware parts, not only Atmel but also Z80, 6502 or even newer processor, homebrew hardware projects.
Back in time when I visited CPC only Meeting 2 in Frankfurt in 2004, among the CPC guys there were some dude who took a Z80 alike processor (but I think a more powerfull in opcodes and mhz from the CPC Z80) and other hardware parts, maybe a HDisk, inside a PC tower sending the gfx in the VGA and he also ported a Z80 based unix system on this machine, a C compiler and wrote few demos. I had found his website years ago but I can't find it know. However I asked in some CPC board and I will find out soon.
1) I want to have more links about various such hardware projects, microcontroller based, full systems, homebrew hardware, either used for wild demos in Pouet or outside the scene. Printer demos counting too :)
Post any links with similar projects if you are not bored, I'd like to check them all and read some infos/specs/howto.
2) Also, what knowledge or hardware parts or software (to design a board?) would I need to start such a project? Where would you suggest to start???
Back in time when I visited CPC only Meeting 2 in Frankfurt in 2004, among the CPC guys there were some dude who took a Z80 alike processor (but I think a more powerfull in opcodes and mhz from the CPC Z80) and other hardware parts, maybe a HDisk, inside a PC tower sending the gfx in the VGA and he also ported a Z80 based unix system on this machine, a C compiler and wrote few demos. I had found his website years ago but I can't find it know. However I asked in some CPC board and I will find out soon.
1) I want to have more links about various such hardware projects, microcontroller based, full systems, homebrew hardware, either used for wild demos in Pouet or outside the scene. Printer demos counting too :)
Post any links with similar projects if you are not bored, I'd like to check them all and read some infos/specs/howto.
2) Also, what knowledge or hardware parts or software (to design a board?) would I need to start such a project? Where would you suggest to start???
Im am currently working on my own cpu architecture. i will build it out of 7400 HC chips. Its has a 8bit databuss 16 bit address buss. Capability of 40KB RAM and 12KB ROM. It will have place for 8 sidchips (but i will just put in one at first and add more later) and the coolest thing is that it will utilize a EF9367P GDP for composite video wich can support 1024*512 resolution, 8 colors, ASCI (Scalable and Rotating), and extremely fast vector graphics.
Im currently in the end phase of the design (just have the PC and thee instruction decoder left) then i will start building it.
Its my exam project in school but the hardware wont be completed in time. but my main goal is to make one hell of a demo on it :D
You can read more here WARNING: Webdesign is not one of my good features.
Im currently in the end phase of the design (just have the PC and thee instruction decoder left) then i will start building it.
Its my exam project in school but the hardware wont be completed in time. but my main goal is to make one hell of a demo on it :D
You can read more here WARNING: Webdesign is not one of my good features.
i own a avr. i hope to do some stuff there.
http://www.retroleum.co.uk/
From the oneliner: http://www.homebrewcpu.com/
Yes, I posted that :)
Making your own CPU from scratch is even more hardcore. I am wondering how it's done..
Optimus, it's not that hard... back in the day when CS studies were anything else than Java, we had to design an own (simple) CPU in our second year, and were even able to burn it into a chip. Nice feeling, that :)
Optimus: hardware design is done with RTL languages like VHDL or Verilog. Basically it's not that different from programming software, except that hardware is parallel in nature so it requires a different mindset than writing a program (which is still mostly a sequential thing although that's changing rapidly lately).
Woops, wrong wikipedia link for RTL, should be this one :-)
woow
(interesting topic)
(interesting topic)
FPGA pac-man rocks ^_^
I am not doing my cpu in any lame RTL lanuage. Mine is build out of mostly 7400 HC logic chips. and everything is going to be wire wrapped together.
Agree, RTL sucks, but luckily you can also do it in C :-)
(And sorry for the shameless plug for the company I'm working for, but I suppose it's on-topic here ;-)
zo, dat is bot! now that's a company where i wouldnt mind working.
sparcus: "Error loading menu: Cannot find ad68_flv.xml"?
kusma: hmm, the link doesn't work? :-(
Well, the video is not really that interesting anyhow, so I'll summarize it for you :-) It's about a C compiler that generates VHDL or Verilog instead of assembly code so you can place certain C functions from your code on an FPGA to speed up the code. Most of the performance gain comes from the added parallelism, although the data dependencies inside a function still limit you somehow, so you still have to know what you're doing when you're writing code for this compiler (but the same can be said about ordinary software compilers where you still have to know a bit about the kind of assembly code that is being generated by the compiler).
Well, the video is not really that interesting anyhow, so I'll summarize it for you :-) It's about a C compiler that generates VHDL or Verilog instead of assembly code so you can place certain C functions from your code on an FPGA to speed up the code. Most of the performance gain comes from the added parallelism, although the data dependencies inside a function still limit you somehow, so you still have to know what you're doing when you're writing code for this compiler (but the same can be said about ordinary software compilers where you still have to know a bit about the kind of assembly code that is being generated by the compiler).
Dude that converges towards infinite awesome!
now if only you guys could create your own demo platform that was better than all the rest. then you'd have it going on.
Sparkus, for which scale of application does that compiler make sense? Considering that C to RTL conversion is not yet very efficient and still a research subject..
Meaning, is this compiler only for short calculations, small program parts that have to be made efficient, or is it designed to create "larger" projects (e.g. I2C controller as simple example)?
Meaning, is this compiler only for short calculations, small program parts that have to be made efficient, or is it designed to create "larger" projects (e.g. I2C controller as simple example)?
vhiiula: Well, you are right that it's not really meant to design actually controllers and processors and stuff like that (which would probably be impossible with plain ANSI C unless you add some language extensions).
In our case we're aiming at embedded software running on FPGAs. The general idea is that you first write your program for a soft core processor, then do some profiling to find the bottlenecks and then push those bottleneck functions to hardware to gain from the added parallelism. This last step may/will probably require some rewriting of your C code to improve the output of the compiler.
And what do you mean with C to RTL not being efficient? We managed to get some pretty impressive speedups. If you are talking about the amount of generated hardware then you have a point, reducing that is one of the main goals we are currently working on.
In our case we're aiming at embedded software running on FPGAs. The general idea is that you first write your program for a soft core processor, then do some profiling to find the bottlenecks and then push those bottleneck functions to hardware to gain from the added parallelism. This last step may/will probably require some rewriting of your C code to improve the output of the compiler.
And what do you mean with C to RTL not being efficient? We managed to get some pretty impressive speedups. If you are talking about the amount of generated hardware then you have a point, reducing that is one of the main goals we are currently working on.
@kb, in fact even in times where Computer Science is mostly about Java (studied at the University of Augsburg, Germany, from 2001 to 2006) there are courses about chip design, and we had to design a simple CPU as well (and test it). We ran it on a FPGA on a Xilinx development board (with parallel, PS2 ports, 7 LEDs for debugging and a 4x20 character LCD display). The first version was only with LED output, and with only ROM access, and then different ppl worked together to add serial port, SDRAM, and LED. Unfortunately I was the only guy who wanted to do serial port, and my VHDL had some bug that make it break randomly (rarely but then stably) and report garbage - and that even if only that code and a simple test module that ouput the chars to the LEDs was on the chip...
If there was time left, i'd have liked to write some small "demo" for it, but unfortunately we all debugged till deadline and had to return the boards quickly afterwards :(
It was definitely the most frustrating course I did while studying, but it was fun too :)
If there was time left, i'd have liked to write some small "demo" for it, but unfortunately we all debugged till deadline and had to return the boards quickly afterwards :(
It was definitely the most frustrating course I did while studying, but it was fun too :)