D
Davy
Hi all,
Is there some hardware RTL book like "Code Complete" by Steve
McConnell?
Thanks!
Davy
Is there some hardware RTL book like "Code Complete" by Steve
McConnell?
Thanks!
Davy
McConnell?
Eric said:But if anyone writes a book like this it will fly off the shelves!
Mike said:A few hundred copies would fly off the shelves.
There's probably about 10,000 digital designers
in the US. Not all of those do hardware description
and not all of those write their own RTL.
Those are not numbers that would excite
a major publisher.
Writing and editing a book is two long years
of work, whatever the subject.
-- Mike Treseler
I believe that separating the FSM into a combinational logic and a
register is the first guideline for coding state machines in "Reuse
methodology manual" by Keating.
A few hundred copies would fly off the shelves.
There's probably about 10,000 digital designers
in the US. Not all of those do hardware description
and not all of those write their own RTL.
Those are not numbers that would excite
a major publisher.
Writing and editing a book is two long years
of work, whatever the subject.
The other issue with hardware books like this is that the market is
relatively small (I'm guessing that the ratio of software engineers to
hardware engineers is at least 30:1). It
could be a good opportunity to self publish where
you publish not paper books but PDFs (this is happening on the software side).
Then instead of having to pay $70 for a title because the audience is
small, the author charges $20 for a pdf and gets to keep all of it instead
of getting a small royalty from a publisher. If you manage to sell 1000
of them you've made $20K and that's generally a lot better than what you'd
get from a publisher. One publisher (The Pragmatic Programmers) even
publishes mini-books which are less than 100 pages (not paper, pdf only)
which they sell for $8 to $10. It wouldn't be hard to write 100 pages in
2 to 3 months (part-time even).
Jonathan said:I believe that separating the FSM into a combinational logic and a
register is the first guideline for coding state machines in "Reuse
methodology manual" by Keating.
[ ommitted]
Decoding glitches on outputs, unexpected combinational
feedthrough paths from input to output, unwanted
combinational feedback, unpredictable clock-to-output
delays, unnecessary declarations of next-state signals
cluttering the top level of your modules, artificially clumsy
coding styles to assure freedom from unwanted latches -
all these can be yours, merely by following the textbooks'
advice to split your logic into combinational and registers.
... But the two-process style is
easier to understand and less error-prone, especially for a novice
user.
Andy said:Too bad the author is a proponent of the ancient style of separate
clocked and combinatorial processes in VHDL. He even uses a third
process for registered outputs.
I think he needs to discover what variables can do for you in a clocked
process.
Not if you assign default values to all signals in the beginning of theAndy said:In what ways is a two-process style less error prone? Let's see:
The two-process style is infinitely more prone to latches.
Missing a signal in sensitivity list for combinational circuit is a badThe two-process style is more prone to simulation-synthesis mismatches
(sensitivity list problems).
This is true. It is a small price for clarity.The two-process style requires twice as many signals to be declared and
managed.
The two-process style surely simulates slower. However, since the codeThe two-process style simulates slower (more signals, more events, more
processes sensitive to more signals, and fewer processes that can be
combined in simulation), allowing less simulation to be performed and
more errors to go undetected.
The clock-to-output delay is only important in the "boundary" of aThe two-process style encourages combinatorial outputs (touted as one
of the prime benefits of 2-process descriptions), which have
less-predictable clock-to-out performance than registered outputs.
Besides, if you really need combinatorial outputs, you can code them
from your synchronous processes if you use variables for the registers.
I disagree. I feel that it is more important to understand theThe two-process style encourages a net-list approach to design, rather
than a functional approach. It is important to know what kind of
hardware gets generated; it is more important to understand the
functionality of that hardware.
Not if you assign default values to all signals in the beginning of the
process.
On the other hand, in one-process code every signal within the clocked
process infers an FF, regardless you need it or not. A variable within
the clocked process may infer an FF (if used before assigned) or may
not (if assigned before used).
Missing a signal in sensitivity list for combinational circuit is a bad
practice and has nothing to do with one or two processes.
This is true. It is a small price for clarity.
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.