5.7 Configure Hardware

The following sections provide information about configuring the hardware for your designs.

5.7.1 Programming Connectivity and Interface

The Programming Connectivity and Interface window shows the physical chain from TDI to TDO or SPI Slave configuration. To open this window, expand Configure Hardware in the Libero SoC Design Flow window, and then double-click Programming Connectivity and Interface.

The Programming Connectivity and Interface view provides options for performing the following actions on non-target devices.

Note: If any FlashPro6 programmers are out of date, a message prompts you to update them. Do not disconnect your programmers during the update.
Figure 5-121. Programming Connectivity and Interface Window
Table 5-66. Programming Connectivity and Interface Options and Icons
OptionIconDescription
Select Programming Interface
Select JTAG or SPI Slave mode. SPI Slave mode is supported by FlashPro6 for PolarFire devices. JTAG is the default interface.
Construct Chain Automatically
Constructs the physical chain automatically.
Add Microsemi Device
Adds a Microchip device to the chain.
Add Non-Microsemi Device
Adds a non-Microchip device to the chain.
Add Microsemi Devices From Files
Adds a Microchip device from a programming file.
Delete Selected Devices
Deletes selected devices in the grid.
Scan and Check Chain
Scans the physical chain connected to the programmer and check if it matches the chain constructed in the grid.
Zoom In
Zooms into the grid.
Zoom Out
Zooms out of the grid.

5.7.1.1 Hover Information

If you hover your pointer over a device in the grid, the device tooltip shows the following device information.

Table 5-67. Device Tooltips
TooltipDescription
NameUser-specified device name. If you have two or more identical devices in your chain, use this field to give them unique names.
DeviceName of the device.
FilePath to the programming file.
Programming actionWhen a programming file is loaded, select a programming action for any device that is not a Libero design device.
IRLength of the device instruction.
TCKMaximum clock frequency, in Hz, to program a specific device; Libero uses this information to ensure that the programmer operates at a frequency lower than the slowest device in the chain.

5.7.1.2 Device Chain Details

The device within the chain contains the following details.

Table 5-68. Device Chain Details
DetailDescription
Libero design deviceRed circle within Microsemi logo. Libero design device cannot be disabled.
Left/right arrowMoves the device left or right according to the physical chain.
Enable device Enables the device for programming.
  • Green: device is enabled.
  • Gray: device is disabled.
NameName of your specified device.
FilePath to the programming file.
Set as Libero Design DeviceSets the Libero design device when there are multiple identical Libero design devices in the chain.

5.7.1.3 Right-Click Options

The following figure shows the options that appear when you right-click on your design.

Figure 5-122. Right-Click Properties

Right-clicking a device displays the following options.

Table 5-69. Right-Click Options
OptionDescription
Set as Libero Design DeviceSets the Libero design device when there are multiple identical Libero design devices in the chain.
Configure DeviceReconfigures the device. For a Libero SoC target device, the dialog box appears, but only the device name can be edited.
Enable Device for ProgrammingEnables the device for programming.
  • Green: enabled devices.
  • Gray: disabled devices.
Load Programming File Loads the programming file for the selected device. This option is not supported for Libero SoC target design devices.
Set Serial DataDisplays the Serial Settings dialog box, where you can set your serialization data.
Select and Configure Action/ProcedureThis option applies to devices other than the Libero SoC target design device. Choices are:
  • Select an action to program: Selected action is programmed in the Libero environment and saved to an exported FlashPro Express job.
  • Configure actions and procedures:
    • Actions: List of programming actions for your device.
    • Procedures: Advanced option that allows you to customize the list of recommended and optional procedures for an action.
Move Device Left/RightMoves the device in the chain to left or right.

5.7.2 Programmer Settings

For the JTAG interface, you can set specific voltage and force TCK frequency values for your programmer. For the SPI Slave interface, you can set specific voltage and force SCK frequency values for your programmer. You perform these actions using the Programmer Settings dialog box.

To display the Programmer Settings dialog box, in the Libero SoC Design Flow window, expand Configure Hardware and double-click Configure Programmer

OR

Right-click Configure Programmer and choose Programmer Settings.

Note: SPI Slave mode is supported by FlashPro6 for PolarFire devices.
Figure 5-123. Programmer Settings Dialog Box (FlashPro6)

The Programmer Settings dialog box has options for FlashPro6/5/4/3/3X. The following table lists the TCK frequency limitations for the selected programmer:

Table 5-70. TCK Frequency Limitations
ProgrammerLimitations
FlashPro61, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 MHz
FlashPro51, 2, 3, 4, 5, 6, 10, 15, 30 MHz
FlashPro41, 2, 3, 4, 5, 6 MHz
FlashPro3/3X1, 2, 3, 4, 6 MHz

For information about TCK frequency limits by target device, see the target device datasheet.

During execution, the frequency set by the FREQUENCY statement in the Program-Debug Data Base (PDB)/Standard Test and Programming Language (STAPL) file overrides the TCK frequency setting in the Programmer Settings dialog box. To prevent this override, check Force TCK Frequency

The following list provides the SCK frequency limitations for the selected programmer:
  • 1.00 MHz
  • 2.00 MHz
  • 2.50 MHz
  • 3.33 MHz
  • 4.00 MHz
  • 5.00 MHz
  • 6.67 MHz
  • 8.00 MHz
  • 10.00 MHz
  • 13.33 MHz
  • 20.00 MHz

5.7.2.1 FlashPro5/4/3/3X Programmer Settings

By default, Force TCK Frequency is not checked. This setting instructs the FlashPro5/4/3/3X to use the TCK frequency specified by the Frequency statement in the PDB/STAPL file(s). If you check Force TCK Frequency, select the appropriate MHz frequency.

For FlashPro4/3X settings, you can switch the TCK mode between Free Running Clock and Discrete Clocking. By default, TCK Mode is set to Free Running Clock. Use Discrete Clocking when there is a JTAG non-compliant device in a chain with Microchip devices.

After you make your selections, click OK.

Note: The Set Vpump check box is removed. For older projects prior to Libero SoC v12.5, if Set Vpump was checked, the warning "Set Vpump parameter is obsolete. VPUMP will not be sensed or driven for all devices." appears in the log window when the design opens for the first time in Libero SoC v12.5.

5.7.2.2 TCK Setting (Force TCK Frequency)

If Force TCK Frequency is checked in Programmer Setting, the selected TCK value is set for the programmer and the Frequency statement in the PDB/STAPL file is ignored.

5.7.2.3 Default TCK Frequency

If the IPD/STAPL file or Chain does not exist, the default TCK frequency is set to 4 MHz. If more than one Microchip flash device is targeted in the chain, the FlashPro Express software passes through all the files and searches for the freq keyword and the MAX_FREQ Note field. The FlashPro Express software uses the lowest value of all the TCK frequency settings and the MAX_FREQ Note field values.

5.7.3 Working with Local and Remote Programmers

Libero® SoC supports programming Microchip® FPGAs by connecting multiple programmers to your computer. Additionally, you can program Microchip FPGAs over a network without requiring the programmer hardware to be physically connected to your local computer. When a programmer is connected to a remote machine, you can reserve and use it from your local machine as if it were attached locally.

In Libero SoC, new functionality is added in the Design Flow > Configure Hardware > Select Programmer dialog box.

The following figure illustrates the Select Programmer dialog box:
Figure 5-124. Select Programmer Dialog Box
The following buttons appear at the top of the dialog box:
  • Refresh Programmers: Requests all available programmers from each connected host, including programmers connected directly to your workstation.
  • Configure Remote Server: Opens the Configure Remote Server dialog box, which allows you to add and manage connections to remote programmer server hosts.
  • Select: Selects the programmer to use.
  • Name: Displays the programmer name.
  • Machine: Displays the host name or IP address of the machine to which the programmer is connected. If the programmer is directly connected to your workstation, this field shows Local.
  • Type: Specifies the programmer model.
  • Port: Specifies the hardware port identifier (USB or COM) on the host machine to which the programmer is connected.
  • Status: Indicates the current programmer availability: Available, Selected or In Use by Other.

5.7.4 Configuring and Managing Remote Servers

The Configure Remote Server dialog box allows you to connect to remote programmer server hosts and select a programmer from any connected host.

Note: Remote access requires the host and client machines to be on the same network. The connection needs to be either directly in the network or within the VPN.
The following figure illustrates the Configure Remote Server dialog box:
Figure 5-125. Configure Remote Server
The dialog box contains the following fields and actions:
  • Name or IP address: Specifies the name or IP address of the remote programmer server to connect to.
  • Add: Connects to the server specified in the Name or IP address field and adds it to the Host list.
  • Host: Displays the name or IP address of each remote server you have added.
  • State: Indicates the connection status of the remote server. A green check mark confirms a successful connection. A red cross indicates that the connection has failed.
  • Disconnect: Releases all reserved programmers and disconnects from the selected host.
  • Reconnect: Reconnects to a host that has a failed connection.
  • OK: Reserves the selected programmer, making it unavailable to other users, and releases all other programmers. Closes the Configure Remote Server dialog box.
Note: All tools started from Libero® SoC automatically use the same remote programmer.

5.7.5 Remote Programming Server (RPS) Installation Instructions

You can make your local machine act as a remote server. This allows other users within the same network to use FlashPro programmers physically connected to it.

The RPS is installed directly with the Libero® SoC Media Installer. Complete the following instructions in the Libero SoC Setup wizard:
  1. Follow the instructions in the wizard from the Welcome to Installation Folder windows.
  2. In the Select Installation Type window, choose the Custom option.
  3. In the Select Components window, with other desired components, select the RPS checkbox to include the functionality in the installer.
  4. In the RPS Server Configuration window, specify the desired port numbers for programming requests.
    • The default ports to accept external connections are 57606 and 57605, which can be changed based on your requirements. These ports must be permitted through the firewall to enable remote access. The Media Installer completes this step for you during the installation.

5.7.6 Remote Programmer Troubleshooting

To recover from connection, detection, or reservation problems in Remote Programmer functionality, follow the instructions in this section to verify network connectivity, confirm the programming server is running on the remote machine, and resolve any remaining application issues.

Note: User-facing log files are not generated for the remote-side processes.
Attention: RPS is designed for trusted lab and corporate network environments. The client machine and remote machine must be on the same trusted network or connected through an approved VPN. The RPS service requires an open network port on the remote machine. Do not expose this port to the public internet. In the current release, RPS relies on the customer’s network security controls, firewall rules, and VPN infrastructure to protect access to the remote machine.

5.7.6.1 Configuring Network Ports

If a connection fails to a remote machine from the Configure Remote Hosts dialog box even though the hostname or IP address is correct, you must verify that the required TCP ports are open on the remote machine.
Note: Ports 57605 and 57606 are the defaults assigned at installation. If the remote Host was installed with a different port configuration, check the actual ports configured on that machine and use them instead.
Perform the following steps on the remote machine (the machine where the programmer is physically connected).
  • AlmaLinux OS/Red Hat® Linux®:
    1. Open the terminal.
    2. Run the following command:

      sudo firewall-cmd --permanent --add-port 57605-57606/tcp

  • Ubuntu:
    1. Open the terminal.
    2. Run the following command:

      sudo ufw allow 57605:57606/tcp

  • Windows® OS:
    1. From the Start Menu, search for Windows Defender Firewall with Advanced Security, right-click, and select Run as administrator.
    2. Click Inbound Rules, then click New Rule.
    3. In the New Inbound Rule Wizard, you are prompted to select the type of rule you want to create. Choose Port to specify that this rule controls traffic based on network port numbers, and click Next.
    4. Select TCP as the protocol, since the remote programmer requires TCP communication.
    5. Select Specific local ports and enter 57605, 57606 to limit TCP communication access to theses two ports. Click Next.
    6. Select Allow the connection and click Next.
    7. Select all three network profile options: Domain, Private, and Public. This ensures that the rule is active regardless of the type of network your computer is connected to. Click Next.
    8. Enter a name for the rule and click Finish.

5.7.6.2 Configuring the RPS

When the remote server is reachable on the network but no programmers are detected, refer to the Libero® SoC Media Installer to verify the post-installation checks.

If the issue has not been resolved, uninstall the RPS from the Media Installer and install again.

5.7.6.3 Application Issues

In critical cases where normal behavior cannot be achieved, run the script in administrative mode from the bin folder to clean up any stuck processes and memory.

Note: The following solution needs to be considered cautiously and must be used as a last resort.

In case of a critical crash and abnormal behavior from the remote programmer functionality, run the bin/CleanUpRPS script in the RPS's bin folder or command shell.

For a manual equivalent, complete the following instructions to resolve the issue:
  • Linux®: Enter the rm /dev/shm/* command.
  • Windows® OS: Navigate to the C:/ProgramData/boost_interprocess/ folder and remove all the content.
  • Unified Solution: Depending on your operating system, complete the following steps:
  1. Find the following processes:
    • prgsrvdmn
    • prgservapp
    • dbgservapp
  2. Kill all the processes.

Locally Connected Programmer Not Detected in Windows® OS

If everything appears to be working but your locally connected programmer is still not recognized, your antivirus or firewall may be blocking the programming software from operating correctly. To resolve this issue, follow these steps to add exceptions for the required applications:

Add firewall rules for the daemon and related processes by performing the following steps:
  1. Open the command prompt as administrator.
  2. Enter each of the following commands one at a time with the correct installation path. Press the Enter key after entering each command:
    New-NetFirewallRule -DisplayName "Programming and Debug Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\prgsrvdmn.exe" -Action Allow
       
    New-NetFirewallRule -DisplayName "Programming Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\prgservapp.exe" -Action Allow
    New-NetFirewallRule -DisplayName "Debug Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\dbgservapp.exe" -Action Allow