User Guide

../_images/main.png

Blocks menu

Basic

It contains the basic blocks:

  • Input: show a dialog to insert the name and type of the input block.
  • Output: show a dialog to insert the name and type of the output block.
  • Constant: show a dialog to insert the name and type of the constant block.
  • Memory: show a dialog to insert the name and type of the memory block.
  • Code: show a dialog to insert the ports and parameters of the code block.
  • Information: create an empty text box block.

Note

Input and output ports can be set to virtual. Virtual ports are used to independent-FPGA projects. Also, they can be configured as a bus by adding the notation [x:y] to the port name.

Note

Constant and memory blocks can be set to local. Local parameters are not exposed when the project is added as a block.

Hint

Multiple input, output, constant and memory blocks can be created using the comma separator. For example: x, y, z will create 3 blocks with those names. FPGA I/O ports values are set in the block combo box. These values can be set by searching and also unset by doing click on the cross. Double click over input, output, constant or memory block allows to modify the block name and type. In code block ports definition, multiple input and output ports, and parameters, can be created also using the comma separator.

Blocks

It contains all stored blocks sorted by categories. This menu is generated when the application starts. It can show the Default collection or any installed collection.

Design

This is the main panel. It contains the blocks and the wires.

Pan & Zoom

Pan is performed using the Ctrl + mouse left button or mouse right button over the background. Zoom is performed using mouse wheel.

../_images/pan-zoom.png

Select

Block selection is performed with the mouse left button. Blocks can be selected/unselected individually using Shift+left-click. In addition, several blocks can be selected by a selection box. A selection is canceled when the background is left-clicked.

../_images/select.png

Move blocks

Any block or blocks selection can be moved in the design using the mouse left button over the block or the selection. Also a blocks selection can be moved with the arrow keys.

../_images/move.png

Resize text blocks

Memory, Code, and Information blocks can be resized with the resize tool in the bottom-right corner of the block.

../_images/resize.png

Block examination

Non-basic blocks can be read only examined by double clicking the block using the mouse left button. This is a recursive action. In order to go back, click on the < back link or press the back key.

During the examination, pan, zoom and code navigation are enabled. Also the ‘Fit content’ action.

../_images/examination.png

Note

The examination path is stored in the breadcrumbs. This allows to go back to any previous block.

Verilog error detection

The Verify, Build and Upload errors are captured and showed in the design with a notification.

../_images/error-notification.png

If the error comes from a Code block it is marked in red an inline annotation is set:

../_images/error-code-block.png

If the error comes from a Constant block it is marked in red.

../_images/error-constant-block.png

If the error comes from a Generic block it is marked in red.

../_images/error-generic-block.png

Undo/Redo

Icestudio allows to undo/redo the following actions:

  • Add or remove a block.
  • Add or remove a wire.
  • Move a block or a blocks selection.
  • Edit an I/O block: name, type and value.
  • Edit a Constant block: name, type and value.
  • Edit a Memory block: name, type, format and value.
  • Edit a Code block: ports, parameters and content.
  • Edit an Information block: type and content.
  • Change the board.
  • Change the language.
  • Change the Project information: when undo/redo a Project information change, a clickable notification will appear to access the Project information section.
../_images/undo-project-information.png

Take a snapshot

Taking a png snapshot of the application is as easy as press Ctrl+P. A save dialog appears to set the name and the path of the captured image.