Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > VHDL > Newbie Q: State Machine Book Recommendations

Reply
Thread Tools

Newbie Q: State Machine Book Recommendations

 
 
Jeffrey W. Travis
Guest
Posts: n/a
 
      03-03-2004
Greetings --

I am looking for recommendations for a good book on state machine design
theory and practice, particularly in VHDL. I found one book online,
"Digital Logic and State Machine Design," by David Comer. Is it any
good? What other books have you had good experience with?

I am sort of an old-school generalist (analog/digital) who is trying to
update his skill mix. In 2 previous VHDL design projects (small CPLD's)
I was able to get by using entity/architecture pairs that reproduced the
function of the 74LSxx parts us old guys know and love, then using
component instantiation in higher-level entities to "wire" them together
into functional blocks. However, in my current project I sense that
this approach will not be suitable.

Any recommendations would be greatly appreciated.

Jeff Travis
 
Reply With Quote
 
 
 
 
Cameron, Charles B.
Guest
Posts: n/a
 
      03-03-2004
Jeffrey W. Travis wrote:

>Greetings --
>
>I am looking for recommendations for a good book on state machine design
>theory and practice, particularly in VHDL. I found one book online,
>"Digital Logic and State Machine Design," by David Comer. Is it any
>good? What other books have you had good experience with?
>
>I am sort of an old-school generalist (analog/digital) who is trying to
>update his skill mix. In 2 previous VHDL design projects (small CPLD's)
>I was able to get by using entity/architecture pairs that reproduced the
>function of the 74LSxx parts us old guys know and love, then using
>component instantiation in higher-level entities to "wire" them together
>into functional blocks. However, in my current project I sense that
>this approach will not be suitable.
>
>Any recommendations would be greatly appreciated.
>
>Jeff Travis
>


1. Stephen D. Brown and Zvonko G. Vranesic, Try Fundamentals of Digital
Logic with VHDL Design, McGraw-Hill, 2000.

It includes state-machine design with VHDL, although it's also
targeted at those who are just learning digital design. There is a
very good appendix with concise examples of various VHDL statements
along with a list of common errors in VHDL.

2. James O. Hamblen and Michael D. Furman, Rapid Prototyping of Digital
Systems, 2nd edition, Kluwer Academic Publishers, 2001.

This book uses a tutorial approach. It includes an implementation
of a MIPS computer---albeit, somewhat pared down---which is a good
example of how to implement a quite elaborate state machine.

3. Douglas L. Perry, VHDL Programming by Example, 4th edition,
McGraw-Hill, 2002.

I haven't yet read this book so I don't know how useful you might
find it but it's on a list of recommended books so I got a copy
recently.

4. J. Bhasker, A VHDL Synthesis Primer, 2nd edition, Star Galaxy
Publishing, Allentown, PA, 1998.

This book explains the way VHDL code gets synthesized and contrasts
that with the way simulators interpret the code. The fact that
there exists a mismatch is an inconvenient fact and knowing how to
write your code to avoid mismatches is useful.

5. John W. Carter, Digital Designing with Programmable Logic Devices,
Prentice Hall,1997.

While it doesn't treat VHDL at all, it does use CUPL as an example
of an HDL. Mostly the book uses graphical techniques. What I
especially like about this book, though, is its excellent treatment
of the design of state machines from scratch and how to implement
them in PLDs, ROMS, and discrete gates generally. It has an
excellent section on how to eliminate glitches by the use of
delayed-state timing. It also includes the development of a CPU
very similar to the Motorola 6500, using a microcoded design.

I hope this proves helpful to you.

Charles B. Cameron

 
Reply With Quote
 
 
 
 
fabbl
Guest
Posts: n/a
 
      03-03-2004
I don't know who would dedicate a book to this. I personally avoid using
them as they create oogles of logic as they grow (which they will) and hence
timing/fitting problems. State machine examples in books are illustrated
with a data type definition (for clarity) and the case statement. Be aware
of the trade-offs to this approach. They can also be implemented (in effect)
using any combinatorial statements. .


 
Reply With Quote
 
Jeffrey W. Travis
Guest
Posts: n/a
 
      03-03-2004
In article <O2o1c.55408$(E-Mail Removed)> ,
http://www.velocityreviews.com/forums/(E-Mail Removed) says...
> I don't know who would dedicate a book to this. I personally avoid using
> them as they create oogles of logic as they grow (which they will) and hence
> timing/fitting problems. State machine examples in books are illustrated
> with a data type definition (for clarity) and the case statement. Be aware
> of the trade-offs to this approach. They can also be implemented (in effect)
> using any combinatorial statements. .
>

Hmmm . . . interesting viewpoint. Are you saying here that my old-
school method of wiring together TTL-style entities works as well or
better?

Jeff Travis
 
Reply With Quote
 
Jeffrey W. Travis
Guest
Posts: n/a
 
      03-03-2004
[This followup was posted to comp.lang.vhdl and a copy was sent to the
cited author.]

In article <(E-Mail Removed)>,
(E-Mail Removed) says...
> Jeffrey W. Travis wrote:
>
> >Greetings --
> >
> >I am looking for recommendations for a good book on state machine design
> >theory and practice, particularly in VHDL. I found one book online,
> >"Digital Logic and State Machine Design," by David Comer. Is it any
> >good? What other books have you had good experience with?
> >
> >I am sort of an old-school generalist (analog/digital) who is trying to
> >update his skill mix. In 2 previous VHDL design projects (small CPLD's)
> >I was able to get by using entity/architecture pairs that reproduced the
> >function of the 74LSxx parts us old guys know and love, then using
> >component instantiation in higher-level entities to "wire" them together
> >into functional blocks. However, in my current project I sense that
> >this approach will not be suitable.
> >
> >Any recommendations would be greatly appreciated.
> >
> >Jeff Travis
> >

>
> 1. Stephen D. Brown and Zvonko G. Vranesic, Try Fundamentals of Digital
> Logic with VHDL Design, McGraw-Hill, 2000.
>
> It includes state-machine design with VHDL, although it's also
> targeted at those who are just learning digital design. There is a
> very good appendix with concise examples of various VHDL statements
> along with a list of common errors in VHDL.
>
> 2. James O. Hamblen and Michael D. Furman, Rapid Prototyping of Digital
> Systems, 2nd edition, Kluwer Academic Publishers, 2001.
>
> This book uses a tutorial approach. It includes an implementation
> of a MIPS computer---albeit, somewhat pared down---which is a good
> example of how to implement a quite elaborate state machine.
>
> 3. Douglas L. Perry, VHDL Programming by Example, 4th edition,
> McGraw-Hill, 2002.
>
> I haven't yet read this book so I don't know how useful you might
> find it but it's on a list of recommended books so I got a copy
> recently.
>
> 4. J. Bhasker, A VHDL Synthesis Primer, 2nd edition, Star Galaxy
> Publishing, Allentown, PA, 1998.
>
> This book explains the way VHDL code gets synthesized and contrasts
> that with the way simulators interpret the code. The fact that
> there exists a mismatch is an inconvenient fact and knowing how to
> write your code to avoid mismatches is useful.
>
> 5. John W. Carter, Digital Designing with Programmable Logic Devices,
> Prentice Hall,1997.
>
> While it doesn't treat VHDL at all, it does use CUPL as an example
> of an HDL. Mostly the book uses graphical techniques. What I
> especially like about this book, though, is its excellent treatment
> of the design of state machines from scratch and how to implement
> them in PLDs, ROMS, and discrete gates generally. It has an
> excellent section on how to eliminate glitches by the use of
> delayed-state timing. It also includes the development of a CPU
> very similar to the Motorola 6500, using a microcoded design.
>
> I hope this proves helpful to you.
>
> Charles B. Cameron
>
>

Thanks for the tips, Charles! I will look into these texts.

Jeff Travis
 
Reply With Quote
 
fabbl
Guest
Posts: n/a
 
      03-03-2004
> Hmmm . . . interesting viewpoint. Are you saying here that my old-
> school method of wiring together TTL-style entities works as well or
> better?


You have to think about it with respect to the target technology and the
resources availible in your design.

Strict structural VHDL is pointless since all you really end up with is a
schematic netlist. You do get good control of the design that way but little
benefit of the language and it's readability.

Case statements are synthesized as a unit and can grow (or be) in to large
objects. This means they are less flexible for routing/fitting and can
create timing problems.


 
Reply With Quote
 
Mike Treseler
Guest
Posts: n/a
 
      03-04-2004
Jeffrey W. Travis wrote:

> In 2 previous VHDL design projects (small CPLD's)
> I was able to get by using entity/architecture pairs that reproduced the
> function of the 74LSxx parts us old guys know and love, then using
> component instantiation in higher-level entities to "wire" them together
> into functional blocks. However, in my current project I sense that
> this approach will not be suitable.
>
> Any recommendations would be greatly appreciated.


A state machine is a quite limited subset of the
synthesizable descriptions available in the
synchronous vhdl process template. If you
want to try a vhdl description, focus first on learning
the synchronous process.

related thread:
http://groups.google.com/groups?q=state_example

-- Mike Treseler

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
State machine - Vending machine - strange behaviour fenster VHDL 3 12-23-2011 09:53 AM
How to print a state flow graph for a state machine using Xilinx ISE or ModelSim Weng Tianxiang VHDL 3 07-25-2006 01:19 PM
What is the state of state machine after power-up without reset conditions Weng Tianxiang VHDL 7 11-25-2003 06:24 PM
State machine: how to stay in a state? David Lamb VHDL 1 09-15-2003 05:24 PM



Advertisments