.. rst-class:: break_before Quickstart ========== This quickstart guide provides the essential commands to get you up and running with XiBIF quickly. For detailed information, please refer to the linked sections. .. _quickstart-installation: Installation ------------ Create a virtual environment: .. code-block:: console python -m venv .venv-xibif Activate the virtual environment: .. code-block:: console .venv-xibif\Scripts\activate # Windows source .venv-xibif/bin/activate # Linux/macOS Install XiBIF using pip: .. code-block:: console pip install XiBIF --index-url https://gitlab.ost.ch/api/v4/groups/12907/-/packages/pypi/simple Verify the installation: .. code-block:: console xibif -v For detailed installation instructions including prerequisites and virtual environment setup, see :doc:`../tutorials/installation`. .. _quickstart-creating-project: Creating a New Project ---------------------- Create a new XiBIF project with: .. code-block:: console xibif new -n -p -b -x -v **Example:** .. code-block:: console xibif new -n MyProject -p D:\projects\myproject -b zedboard -x C:\Xilinx -v 2024.2 **Quick Reference:** - ``-n``: Project name - ``-p``: Project path - ``-b``: Board (e.g., zedboard, ...) - ``-x``: Xilinx installation path - ``-v``: Xilinx version For more details, see :doc:`../tutorials/hardware-design-flow`. .. _quickstart-building: Building Your Project --------------------- Build the complete project (hardware + software): .. code-block:: console xibif build This command performs synthesis, place-and-route, bitstream generation, and software compilation. The result is a ``BOOT.bin`` file in ``hw/results/`` that can be copied to an SD card. **Build Hardware Only:** .. code-block:: console xibif build --vivado all **Build Software Only:** .. code-block:: console xibif build --vitis all **Build Specific Stages:** .. code-block:: console xibif build --vivado synthesize xibif build --vivado bitstream --vivado export --vitis all For more information on the build process, see :doc:`../tutorials/hardware-design-flow`. .. _quickstart-flashing: Flashing the FPGA ----------------- Flash the bitstream to a running FPGA (non-persistent): .. code-block:: console xibif flash For more details, see :doc:`../tutorials/hardware-design-flow`. .. _quickstart-simulation: Simulating Your Design ---------------------- Generate a testbench for your VHDL file: .. code-block:: console xibif testbench -f -c -rn **Example:** .. code-block:: console xibif testbench -f adder.vhd -c clk_in -rn resetn_in This generates testbenches in ``hw/tb/`` and ``hw/tb/vunit/`` with clock and reset generators. Run all simulations using VUnit: .. code-block:: console xibif simulation **Run Specific Test:** .. code-block:: console xibif simulation -t **List Available Tests:** .. code-block:: console xibif simulation -l **Debug with GUI:** .. code-block:: console xibif simulation -g For detailed simulation setup and VUnit usage, see :doc:`../tutorials/simulation`. .. _quickstart-connecting: Connecting to Your FPGA ----------------------- In your Python script: .. code-block:: python from xibif import XibifConnection # Create connection connection = XibifConnection(ip_address="192.168.1.10", verbose=False) connection.open() # Read/write registers connection.write(address, data) data = connection.read(address) # Stream data connection.write_stream(data_array) data = connection.read_stream_all() # Close connection connection.close() For network configuration and connection details, see :doc:`../tutorials/network` and :doc:`../tutorials/writing-software`. .. _quickstart-registers: Working with Registers ---------------------- Use the generated register map for easy register access: .. code-block:: python from regs import RegMap regs = RegMap(connection) # Write to register regs.register_1 = 0x1234 # Write to bitfield regs.register_1_bf.field_1 = 1 # Read from register value = regs.register_2 # Read from bitfield field_value = regs.register_2.field_1 For detailed register usage and generation, see :doc:`../tutorials/register-generation` and :doc:`../tutorials/writing-software`. .. _quickstart-xilinx-tools: Opening Xilinx Tools -------------------- Open Vivado with your project: .. code-block:: console xibif start vivado Open Vitis with your project: .. code-block:: console xibif start vitis Start the hardware server: .. code-block:: console xibif start hardware_server .. _quickstart-help: Getting Help ------------ View all available commands: .. code-block:: console xibif --help View help for a specific command: .. code-block:: console xibif build --help xibif new --help .. _quickstart-next-steps: Next Steps ---------- Now that you know the basics, explore these topics for more in-depth knowledge: - :doc:`../tutorials/hardware-design-flow` - Complete hardware workflow - :doc:`../tutorials/simulation` - Testing your design with VUnit - :doc:`../tutorials/register-generation` - Creating custom registers - :doc:`../tutorials/axi-stream` - Working with streaming data - :doc:`../tutorials/status-control` - Status and control interfaces - :doc:`../overview/zynq` - Understanding the Zynq architecture - :doc:`../code/cli` - Command Line Interface reference - :doc:`../appendix/troubleshooting` - Common issues and solutions