Move documentation of additional system tasks from quirks to extensions.
This commit is contained in:
parent
fa5fc0eca0
commit
1be953cfa6
|
|
@ -10,6 +10,52 @@ behavior of Icarus Verilog, made available as a tool debugging aid.
|
||||||
Built-in System Functions
|
Built-in System Functions
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
System Tasks
|
||||||
|
------------
|
||||||
|
|
||||||
|
These are system tasks that are unique to Icarus Verilog. Don't use any of
|
||||||
|
these if you want to keep your code portable across other Verilog compilers.
|
||||||
|
|
||||||
|
``$readmempath``
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The ``$readmemb`` and ``$readmemh`` system tasks read text files that contain
|
||||||
|
data values to populate memories. Normally, those files are found in a current
|
||||||
|
working directory. The ``$readmempath()`` system task can be used to create a
|
||||||
|
search path for those files. For example:
|
||||||
|
|
||||||
|
.. code-block:: verilog
|
||||||
|
|
||||||
|
reg [7:0] mem [0:7];
|
||||||
|
initial begin
|
||||||
|
$readmemh("datafile.txt", mem);
|
||||||
|
end
|
||||||
|
|
||||||
|
This assumes that "datafile.txt" is in the current working directory where
|
||||||
|
the ``vvp`` command is running. But with the ``$readmempath``, one can specify
|
||||||
|
a search path:
|
||||||
|
|
||||||
|
.. code-block:: verilog
|
||||||
|
|
||||||
|
reg [7:0] mem [0:7];
|
||||||
|
initial begin
|
||||||
|
$readmempath(".:alternative:/global/defaults");
|
||||||
|
$readmemh("datafile.txt", mem);
|
||||||
|
end
|
||||||
|
|
||||||
|
In this example, "datafile.txt" is searched for in each of the directories
|
||||||
|
in the above list (separated by ":" characters). The first located instance
|
||||||
|
is the one that is used. So for example, if "./datafile.txt" exists, then it
|
||||||
|
is read instead of "/global/defaults/datafile.txt" even if the latter exists.
|
||||||
|
|
||||||
|
``$finish_and_return(code)``
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This task operates the same as the ``$finish`` system task, but adds the
|
||||||
|
feature of specifying an exit code for the interpreter. This can be useful in
|
||||||
|
automated test environments to indicate whether the simulation finished with
|
||||||
|
or without errors.
|
||||||
|
|
||||||
Extended Verilog Data Types
|
Extended Verilog Data Types
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,52 +9,6 @@ standard, or from other implementations.
|
||||||
This is NOT AN EXHAUSTIVE LIST. If something is missing from this list, let us
|
This is NOT AN EXHAUSTIVE LIST. If something is missing from this list, let us
|
||||||
know and we can add documentation.
|
know and we can add documentation.
|
||||||
|
|
||||||
System Tasks - Unique to Icarus Verilog
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
These are system tasks that are unique to Icarus Verilog. Don't use any of
|
|
||||||
these if you want to keep your code portable across other Verilog compilers.
|
|
||||||
|
|
||||||
``$readmempath``
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The ``$readmemb`` and ``$readmemh`` system tasks read text files that contain
|
|
||||||
data values to populate memories. Normally, those files are found in a current
|
|
||||||
working directory. The ``$readmempath()`` system task can be used to create a
|
|
||||||
search path for those files. For example:
|
|
||||||
|
|
||||||
.. code-block:: verilog
|
|
||||||
|
|
||||||
reg [7:0] mem [0:7];
|
|
||||||
initial begin
|
|
||||||
$readmemh("datafile.txt", mem);
|
|
||||||
end
|
|
||||||
|
|
||||||
This assumes that "datafile.txt" is in the current working directory where
|
|
||||||
the ``vvp`` command is running. But with the ``$readmempath``, one can specify
|
|
||||||
a search path:
|
|
||||||
|
|
||||||
.. code-block:: verilog
|
|
||||||
|
|
||||||
reg [7:0] mem [0:7];
|
|
||||||
initial begin
|
|
||||||
$readmempath(".:alternative:/global/defaults");
|
|
||||||
$readmemh("datafile.txt", mem);
|
|
||||||
end
|
|
||||||
|
|
||||||
In this example, "datafile.txt" is searched for in each of the directories
|
|
||||||
in the above list (separated by ":" characters). The first located instance
|
|
||||||
is the one that is used. So for example, if "./datafile.txt" exists, then it
|
|
||||||
is read instead of "/global/defaults/datafile.txt" even if the latter exists.
|
|
||||||
|
|
||||||
``$finish_and_return(code)``
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This task operates the same as the ``$finish`` system task, but adds the
|
|
||||||
feature of specifying an exit code for the interpreter. This can be useful in
|
|
||||||
automated test environments to indicate whether the simulation finished with
|
|
||||||
or without errors.
|
|
||||||
|
|
||||||
Unsized Numeric Constants are Not Limited to 32 Bits
|
Unsized Numeric Constants are Not Limited to 32 Bits
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue