On Wed, Apr 10, 2002 at 10:50:56PM +0100, Tony Duell wrote:
Yes, that's what I'd come to accept as well.
So basically, if I look at a
PCB or a schematic I can't tell if it's microcoded or 'just a state
machine'. I have to know how it was designed. Brilliant!
No, as you pointed out
below it is possible to implement a microcoded
design as a state-machine. You have to seperate the design and the
actual hardware implementation.
A microcoded machine is always a state machine but not every state
machine is a microcoded machine. see below...
2 points....
First;y, the second system is also just a state machine. Let's use a
synchronous counter, which itself is a state machine (look at the
schematics sometine). Then move the 'counter' ff's into the 'state
register' (i.e. make it a bit longer) and combine the mux and the counter
feedback logc into the 'ROM' (more strictly, an arbitrary combinatorial
logic circuit). It's now of the same form as the first system.
No, now you
don't have a seperate ROM (or PROM or any other kind of
linear addressable memory) any more. The main reason to use a microcoded
machine instead of a "pure" state machine is that you can change it
quite easily by putting another "program" in the ROM. If you
put all the functionality into a single block and probably minimize
it you wouldn't be able to change it without messing with the hardware
(your beloved soldering iron ;-)).
If you want to tell me now that a ROM cannot be changed: That's right,
but it's only a ROM for the microcoded machine. In reality
it's most likely an EEPROM, a FlashROM or a SRAM.
The first design is smaller and faster and the second can be changed more
easily...
Why? As far as I can see either can be changed easily.
If you implemented the thing
in discrete logic it's probably
possible to change it by soldering wires all over the board,
but if you made an ASIC you would have to change the masks and
physically replace all chips made...
Of course if you use a FPGA it really makes no difference...
bye
Thilo