
"Progressive in content and form, this text successfully bridges the gap between the circuit perspective and system perspective of digital integrated circuit design. Beginning with solid discussions on the operation of electronic devices and in-depth analysis of the nucleus of digital design, the text maintains a consistent, logical flow of subject matter throughout. The revision addresses today's most significant and compelling industry topics, including: the impact of interconnect, design for low power, issues in timing and clocking, design methodologies, and the tremendous effect of design automation on the digital design perspective. The revision reflects the ongoing evolution in digital integrated circuit design, especially with respect to the impact of moving into the deep-submicron realm."--Pub. desc.
I was about to write a thorough answer but jsolson's very good answer mostly covered what I had to say. I'll add my 2 cents anyway
- To understand the manufacturing process you need to know the physics and manufacturing technology. That's very low level stuff that takes years to master. There are books and scientific papers on the subject but it's a game very few players can play (ie. big manufacturers like intel and TSMC, maybe top universities/research centres). You can try some introductory books like Introduction to Microelectronic Fabrication [1] and Digital Integrated Circuits [2] by Rabaey if you're curious
- You can design ASICs without being an "expert" on the low level stuff, but the tools are very expensive (unless you're a student and your college has access to those tools). You need to learn VHDL/Verilog, definitely need the right tools (which, I'll say it again, are too expensive for hobbyists) and extra money to spend for manufacturing.
- FPGAs are different. No need to know the physics and you don't have to bother with expensive tools and foundries, the chip is already manufactured. My advice is to
(a) get an FPGA board. Digilent boards are a good choice as jsolson said, but there are other/cheaper solutions as well [3][4]. You'll still need software tools but (for these boards) they are free
(b) learn VHDL and/or Verilog. Plenty of books and online resources. A good book I recommend is RTL Hardware Design Using VHDL [5]
(c) I assume you know some basic principles of digital design (gates, logic maps, etc.). If not you'll need to learn that first. A book is the best option here, I highly recommend Digital Design [6] by Morris Mano
[1] https://www.amazon.com/Introduction-Microelectronic-Fabricat...
[2] https://www.amazon.com/Digital-Integrated-Circuits-2nd-Rabae...
[3] https://www.scarabhardware.com/minispartan6/
[4] http://saanlima.com/store/index.php?route=product/product&pa...
[5] http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471720925...
[6] https://www.amazon.com/Digital-Design-3rd-Morris-Mano/dp/013...
I have a BS in Computer Engineering and a MS in Electrical Engineering, with a specialty in VLSI and microelectronics.
While in school, I had to design a microprocessor, one transistor at a time. Great experience, by the way.
I will summarize this process from a Top-Down approach, in case you're a CS major. (Note that engineering is Bottom-Up!)
- C/C++ gets converted into Assembly Language.
- Assembly Language gets converted into bytes. (One or more bytes encode each machine instruction and data)
- Each machine instruction takes multiple clock cycles to execute.
- On each clock cycle, a "microcode" (a.k.a. Register Transfer Language) moves data around. (The order in which data are moved from one register to another is controlled by a Finite State Machine.)
- Each finite state machine is composed of sequential circuits and combinational circuits: multiplexers, decoders, etc.
- Each sequential circuit is composed of some type of memory element : flip-flops, latches, etc. (Sequential circuits can be static, quasi-static, or dynamic. In all cases, they are composed of combinational logic with feed-back.)
- Combinational logic is composed of CMOS (MOSFET) transistors. In the past, we used BJTs... and they're actually making a comeback.
- Transistors are arranged in such a way as to perform logic equations: Inverter, NAND, NOR, etc. (Look up a CMOS Inverter to know what I'm talking about.)
Pretty easy, right!?!
I want to encourage you to look at the following references, in order.
(1) CMOS Digital Integrated Circuits by Kang and Leblebici --the best digital VLSI book ever (2) Digital Logic Circuit Analysis & Design by Nelson et al. --tough book on digital logic, but pretty good (3) Computer System Architecture by Morris Mano --works its way up from logic design (K-maps, etc.) to state machines to assembly language
And now, I'm going to through a curve ball at you: Any algorithm you can implement in software, you can also implement in hardware.
How is this possible? Hint: Think of Finite State Machines. And then look into ASIC and FPGA design of digital filters and digital control systems.