From d7837b8eeb823cd5d7d1d6647fefe4fcd98e85c7 Mon Sep 17 00:00:00 2001 From: tangxifan Date: Thu, 25 May 2023 15:01:10 -0700 Subject: [PATCH] [doc] add documentation about mock fpga wrapper --- .../figures/mock_fpga_wrapper.png | Bin 0 -> 76095 bytes docs/source/manual/fpga_verilog/index.rst | 2 + .../manual/fpga_verilog/mock_fpga_wrapper.rst | 25 +++++++++++++ docs/source/manual/fpga_verilog/testbench.rst | 10 ++--- .../fpga_verilog_commands.rst | 35 ++++++++++++++++++ 5 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 docs/source/manual/fpga_verilog/figures/mock_fpga_wrapper.png create mode 100644 docs/source/manual/fpga_verilog/mock_fpga_wrapper.rst diff --git a/docs/source/manual/fpga_verilog/figures/mock_fpga_wrapper.png b/docs/source/manual/fpga_verilog/figures/mock_fpga_wrapper.png new file mode 100644 index 0000000000000000000000000000000000000000..68e8745a180e1b04bd4e946f71d9d623ce361374 GIT binary patch literal 76095 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 ULDk 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 xT}jN;n||s@CkF6880Ej{&%iMz6~ or -f + + The output directory for the netlists. We suggest the use of same output directory as fabric Verilog netlists. For example, ``--file /temp/testbench`` + + .. option:: --pin_constraints_file or -pcf + + Specify the *Pin Constraints File* (PCF) if you want to custom stimulus in testbenches. For example, ``-pin_constraints_file pin_constraints.xml`` + Strongly recommend for multi-clock simulations. See detailed file format about :ref:`file_format_pin_constraints_file`. + + .. option:: --bus_group_file or -bgf + + Specify the *Bus Group File* (BGF) if you want to group pins to buses. For example, ``-bgf bus_group.xml`` + Strongly recommend when input HDL contains bus ports. See detailed file format about :ref:`file_format_bus_group_file`. + + .. option:: --explicit_port_mapping + + Use explicit port mapping when writing the Verilog netlists + + .. option:: --default_net_type + + Specify the default net type for the Verilog netlists. Currently, supported types are ``none`` and ``wire``. Default value: ``none``. + + .. option:: --no_time_stamp + + Do not print time stamp in Verilog netlists + + .. option:: --verbose + + Show verbose log + write_preconfigured_testbench ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~