1
0
mirror of https://github.com/myhdl/myhdl.git synced 2024-12-14 07:44:38 +08:00
This commit is contained in:
jand 2003-08-22 08:06:45 +00:00
parent 9fdb249185
commit 58d0fe9106

View File

@ -24,13 +24,13 @@
\fi
\myhdl\ now has support for waveform viewing. During simulation, signal
changes can be written to a VCD output file. The VCD file can then be
loaded and viewed in a waveform viewer tool such as \program{gtkwave}.
changes can be written to a VCD output file that can be loaded
into a waveform viewer tool such as \program{gtkwave}.
The user interface of this feature consists of a single function,
\function{traceSignals()}. To explain how it works, recall that in
\myhdl{}, an instance is created by a function call and by assigning
the result to an instance name. For example:
\myhdl{}, an instance is created by assigning
the result of a function call to an instance name. For example:
\begin{verbatim}
tb_fsm = testbench()
@ -43,7 +43,7 @@ instead:
tb_fsm = traceSignals(testbench)
\end{verbatim}
All signals in the instance hierarchy will be traced in an output VCD
All signals in the instance hierarchy will be traced in a VCD
file called \file{tb_fsm.vcd}. Note that first the argument of
\function{traceSignals()} consists of the uncalled function. By
calling the function under its control, \function{traceSignals()}
@ -131,12 +131,11 @@ semantics.
\myhdl\ 0.3 provides a function called \function{always_comb()} which
is named and modeled after the SystemVerilog counterpart.
\function{always_comb()} takes a single classic function as its
argument. This function should be a locally defined function that
specifies what should happen when one of its input signals
changes. \function{always_comb()} returns a generator that is
sensitive to all inputs, and that will run the function whenever an
input changes.
\function{always_comb()} takes a classic local function as its
argument. This function should specify the combinatorial logic behavior.
\function{always_comb()} returns a generator
that is sensitive to all inputs, and that will run the function
whenever an input changes.
For example, suppose that we have a mux module described as follows:
@ -191,10 +190,10 @@ the generator function code. This is traditionally done in
synthesizable RTL style modeling. However, the semantics of this style
are not entirely correct: at the start of the simulation, the
combinatorial output will not reflect the initial state of the
inputs. \function{always_comb} solves this by putting the sensitivity
inputs. \function{always_comb()} solves this by putting the sensitivity
list at the end of the code.
\section{Inferring the list of all instances\label{section-instances}}
\section{Inferring the list of instances\label{section-instances}}
In \myhdl{}, the instances defined in a top level function
need to be returned explicitly. The following is a schematic
@ -213,7 +212,7 @@ def top(...):
It may be convenient to assemble the list of instances automatically,
especially if there are a large number of instances. For this purpose,
especially if there are many instances. For this purpose,
\myhdl\ 0.3 provides the function \function{instances()}.
It is used as follows:
@ -235,7 +234,7 @@ of the local variables defined by the calling function. All variables
that comply with the definition of an instance are assembled in
a list, and that list is returned.
\section{Inferring the list of all processes\label{section-processes}}
\section{Inferring the list of processes\label{section-processes}}
In addition to instances, a top level function may
also define local generators functions, which I will
@ -374,8 +373,8 @@ better to the nature of the operation.
In previous versions, the \class{intbv} class provided a
\method{concat()} method. This method is no longer
available. Instead, there is now a \function{concat()} function in
\myhdl{}, which supports a much broader range of objects.
available. Instead, there is now a \function{concat()} function
that supports a much broader range of objects.
A function is more natural because \myhdl\ objects of various types
can be concatenated: \class{intbv} objects with a defined bit width,
@ -423,9 +422,9 @@ the small burden of a straightforward upgrade.
Python is a very stable language, so upgrading to Python 2.3 is
virtually risk free. Given the additional benefits, I recommend
\myhdl\ users to do so as soon as possible. For the next major
release, the new features will become crucial and only Python 2.3 (and
higher) will be supported.
\myhdl\ users to do so as soon as possible. For the next major \myhdl\
release, the new features will become required and only Python 2.3
(and higher) will be supported.
\end{document}