4 ms·
I'm happy to say that I'm uniquely qualified to help you. I have a BS in Computer Engineering and a MS in Electrical Engineering, with a specialty in VLSI and
by matttheatheist 13y ago
I'm happy to say that I'm uniquely qualified to help you.
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.
- hackaflocka 13y agoThe boundary where pieces of code manage to control voltage. Where text crosses into electro magnetic flux. How does that happen?
- matttheatheist 13y ago"The boundary where pieces of code manage to control voltage." I just explained how that works.If you're talking about external ports, then just think of them as bidirectional registers connected to the outside world. This is literally all there is to it!!! "Where the text crosses into electro magnetic flux" If you ignore crosstalk, which is caused by electromagnetic induction between the internal connections, then we can ASSUME that there is NO magnetic flux in DIGITAL microelectronics. However, if you're dealing with ANALOG or MIXED-SIGNAl VLSI, then you will obviously have inductors (and resistors and capacitors) to manage the fequency components at various stages of your circuits. It's impossible to explain all this in 300 words. The three books I described ealier are all you need to become an expert in Digitial microelectronics. The Mano book deals strictly with discrete math, so if you don't have a strong background in Integral Calculus and Differential Equations, you can still learn a lot! Here's some advise: If you're ever given the choice between Computer Science and Computer Engineering, pick Engineering. It's multiple orders-of-magnitude harder, but the rewards will be amazing. It's like choosing to be a Pilot instead of a Flight Attendant. Trust me on that ;-))
- deleted 13y ago[deleted]