diff --git a/Documentation/usage/icarus_verilog_extensions.rst b/Documentation/usage/icarus_verilog_extensions.rst index 282840ccc..5abf1ab26 100644 --- a/Documentation/usage/icarus_verilog_extensions.rst +++ b/Documentation/usage/icarus_verilog_extensions.rst @@ -10,6 +10,52 @@ behavior of Icarus Verilog, made available as a tool debugging aid. 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 --------------------------- diff --git a/Documentation/usage/icarus_verilog_quirks.rst b/Documentation/usage/icarus_verilog_quirks.rst index bf661b2e2..2aee056f1 100644 --- a/Documentation/usage/icarus_verilog_quirks.rst +++ b/Documentation/usage/icarus_verilog_quirks.rst @@ -9,52 +9,6 @@ standard, or from other implementations. This is NOT AN EXHAUSTIVE LIST. If something is missing from this list, let us 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 ----------------------------------------------------