utauta wrote:
> How often are functions used?
That is up to the designer.
For synthesis I use functions and procedures
to collect repeated expressions
for uniformity and clarity.
For simulation, I use them to break
complex tests into understandable chunks.
See the reference design and testbench here for examples.
http://mysite.verizon.net/miketreseler/
> Do most (90%) of FPGA designs use state machines?
100% of FPGA designs use gates and registers.
"State machine" is text book notion for manual synthesis.
HDL synthesis is about updating registers every clock cycle.
I use vhdl variables to represent registers
and vhdl functions or expressions to represent
the gates that handle the updating.
If I declare a numeric register type and update it
using the function '+',
the textbook might call that a counter.
If I declare an enumeration type and update it
with an if or case expression,
the textbook might call that a 'state machine'.
In a complex hdl design, these academic distinctions
are so mashed together that they become less useful
than the more subtle distinctions built in to the
vhdl language for the description of a clocked process.
-- Mike Treseler