Smartdebug Ug
Smartdebug Ug
1
SmartDebug User Guide
Introduction
Design debug is a critical phase of the FPGA design flow. Microchip’s SmartDebug tool complements design
simulation by enabling verification and troubleshooting at the hardware level.
Using SmartDebug, you can debug Microchip FPGA arrays and SerDes without requiring an internal logic analyzer.
SmartDebug can also capture FPGA device status and flash memory content.
SmartDebug uses dedicated and specialized probe points built into the FPGA fabric to accelerate and simplify the
debug process significantly. It also allows you to select different probe points without additional overhead, saving
significant recompile time.
SmartDebug can be accessed within the Libero design flow or as a standalone software application.
Note: For SCB read operations with PolarFire devices, if the APB DRI bus performs an SCB read operation while
SmartDebug is trying to read from the SCB, the data may get corrupted. If the PolarFire controller initiates a polled
read, it polls for SCB read done register. After it acknowledges the done operation, it takes several CPU cycles
to transfer the data. If the APB DRI interface initiates an SCB read operation during the transfer, the stored data
becomes corrupt and SmartDebug may read corrupt data.
Supported Tools
The following table summarizes device family support for SmartDebug tools. A check mark indicates the tool is
supported.
Table 2. Device Family Support for SmartDebug Tools
Table of Contents
Introduction.....................................................................................................................................................1
1. Supported Device Families.......................................................................................................... 1
2. Supported Tools........................................................................................................................... 2
3. Debugging.............................................................................................................................................18
3.1. Common Debug Elements......................................................................................................... 18
3.2. PolarFire and PolarFire SoC Debug Elements...........................................................................55
3.3. SmartFusion2, IGLOO2, and RTG4 Debug Elements..............................................................112
4.75. xcvr_add_register.....................................................................................................................210
4.76. xcvr_export_register................................................................................................................. 211
4.77. xcvr_import_register.................................................................................................................212
4.78. xcvr_read_register....................................................................................................................213
4.79. xcvr_write_register................................................................................................................... 215
Trademarks................................................................................................................................................ 239
• Active Probe
• Live Probe
• Memory Blocks
• Transceiver
• Debug sNVM
• Debug UPROM
• Debug DDR
• Debug IOD
To run SmartDebug in Demo mode, start SmartDebug in either Integrated or Standalone mode when the hardware is
not connected.
Note: SmartDebug Demo mode is for demonstration purposes only, and does not provide the functionality
of integrated mode or standalone mode. You cannot switch between Demo mode and any other mode while
SmartDebug is running in Demo mode.
Tab Description
Messages Displays standard output messages.
Errors Displays error messages.
Warnings Displays warning messages.
Info Displays general information.
All devices in the chain are disabled by default when a standalone SmartDebug project is created using the
Construct Automatically option in the Create SmartDebug Project dialog box.
Note: SmartDebug displays a pop-up window if it detects an outdated FlashPro6 programmer. You can then choose
to update the programmer design.
Figure 2-3. Programming Connectivity and Interface Window – Project Created Using Construct
Automatically
The following table describes the actions available in the Programming Connectivity and Interface dialog box.
Table 2-4. Programming and Connectivity Interface Dialog Box Options
Action Description
Construct Chain Automatically Construct the physical chain automatically. Running Construct
Chain Automatically in the Programming Connectivity and
Interface removes all existing debug/programming data included
using DDC/programming files. The project is the same as a new
project created using the Construct Chain Automatically option
Scan and Check Chain Scan the physical chain connected to the programmer and check
if it matches the chain constructed in the scan chain block
diagram.
Run Programming Action Program the device with the selected programming procedure.
When two devices are connected in the chain, the programming
actions are independent of the device.
Zoom In Zoom into the scan chain block diagram.
Zoom Out Zoom out of the scan chain block diagram.
The following table describes each Libero design device information option.
Table 2-5. Libero Design Device Information
Option Description
Name User-specified device name. This field indicates the unique name specified by the user in the
Device Name field in Configure Device (right-click Properties).
Device Microchip device name.
Programming File Programming file name.
Programming Action The programming action selected for the device in the chain when a programming file is
loaded.
IR Device instruction length.
TCK Maximum clock frequency in MHz to program a specific device; standalone SmartDebug
uses this information to ensure that the programmer operates at a frequency lower than the
slowest device in the chain.
Table 2-6. Programming Connectivity and Interface - Device Context Menu Options
Option Description
Set as Libero Design Device The user must set the Libero design device when there are multiple identical
Libero design devices in the chain.
Configure Device Ability to reconfigure the device.
• Family and Die: The device can be explicitly configured from the Family, Die
drop-down.
• Device Name: Editable field for providing user-specified name for the device.
Enable Device for Select to enable the device for programming. Enabled devices are shown in
Programming green, and disabled devices are grayed out.
Load Programming File Load the programming file for the selected device.
Select Programming Option to select programming action/procedures for the devices connected in the
Procedure/Actions chain.
• Actions: List of programming actions for your device.
• Procedures: Advanced option; enables you to customize the list of
recommended and optional procedures for the selected action.
Import Debug Data from DDC Option to import debug data information from the DDC file.
File Note: This option is supported when SmartDebug is invoked in Standalone
mode.
The DDC file selected for import into device must be created for a compatible
device. When the DDC file is imported successfully, all current device debug data
is removed and replaced with debug data from the imported DDC file.
The JTAG Chain configuration from the imported DDC file is ignored in this option.
If a programming file is already loaded into the device prior to importing debug
data from the DDC file, the programming file content is replaced with the content
of the DDC file (if programming file information is included in the DDC file).
Information Description
IDCode IDCode read from the device under debug.
Device Certificate Displays Family and Die information if the device certificate is installed on the device.
If the device certificate is not installed on the device, a message indicates that the device
certificate may not have been installed.
...........continued
Information Description
Design Information Displays the following:
• Design Name
• Design Checksum
• Design Version
Digest Information Displays Fabric Digest, sNVM Digest (if applicable) computed from the device during
programming. sNVM Digest is shown when sNVM is used in the design.
Device Security Displays information about your security settings, including live probes, JTAG boundary scan,
Settings global key modes, and user keys.
Programming Displays the following:
Information
• Cycle Count: Number of times the device has been programmed since it has been out of
factory reset. There is no limit to this count, but a lower threshold is around 2000 cycles.
• Algorithm Version: Programming algorithm version number written to the device during
programming.
• Programmer: Details of the programmer hardware used during programming.
• Software Version: Libero software version indicates the release version used for
programming.
• Programming Software: Software used for programming is FlashPro or DirectC or Non-
Microchip software.
• Programming Interface Protocol: Indicates the protocol followed for programming. For
example, JTAG, SPI MASTER, and SPI SLAVE.
• Programming File Type: Type of programming file used for programming the device. For
example, STAPL, PPD, SVF, and IEEE532.
3. Debugging
This topic introduces how to use the debugger to gather the device status and to view the diagnostics.
Use the Highlight Selected check box to show selected active, live, or probe insertion probes in the Hierarchical
view.
Figure 3-2. Example of Showing Selected Probes (Highlight Selected Check Box is Checked)
Figure 3-3. Example of Not Showing Selected Probes (Highlight Selected Check Box is Not Checked)
Figure 3-5. Live Probes Tab in SmartDebug FPGA Array Dialog Box
For PolarFire, SmartFusion2, and IGLOO2, two probe channels are available: Channel A and Channel B. When a
probe name is selected, it can be assigned to either Channel A or Channel B. Both probes can be assigned or
unassigned independently.
To assign a probe to a channel, either:
• Right-click a probe in the table and choose Assign to Channel A or Assign to Channel B.
• Click the Assign to Channel A or Assign to Channel B button to assign the probe selected in the table to the
channel. The buttons are located below the table.
When the assignment is complete, the probe name appears to the right of the button for that channel, and
SmartDebug configures the Channel A and Channel B I/Os to monitor the desired probe points. Because there
are only two channels, a maximum of two internal signals can be probed simultaneously.
Click the Unassign Channels button to clear the live probe names to the right of the channel buttons and
discontinue the live probe function during debug.
Note: RTG4 devices support one probe channel: Channel A.
The Save button saves the list of live probes currently shown in the SmartDebug Live Probe UI to file. The Load
button loads the list of live probes from a file to SmartDebug Live Probe UI.
During save or load, check whether the appropriate signals saved or loaded match the signals in SmartDebug Live
Probe UI and in the saved file.
Figure 3-6. Live Probes Tab - Save or Load in SmartDebug FPGA Array Dialog Box (PolarFire, SmartFusion2,
IGLOO2)
Figure 3-7. Live Probes Tab - Save or Load in SmartDebug FPGA Array Dialog Box (RTG4)
Note: Sequential elements and outputs related to LSRAM, USRAM, and MATH are supported. Combinational logic
and registers related to I/O pads are not supported.
Figure 3-8. Active Probes Tab in SmartDebug FPGA Array Dialog Box
Use the following options in the Write Value column to modify the probe signal added to the SmartDebug FPGA
Array debug data dialog box:
• Drop-down menu with values ‘0’ and ‘1’ for individual probe signals
• Editable field to enter data in hex or binary for a probe group or a bus
Note: Sequential elements and outputs related to LSRAM, USRAM and MATH are supported. Combinational logic
and registers related to I/O pads are not supported.
The Active Probes tab provides the following options for probe points that are added from the Hierarchical View/
Netlist View:
• Display bus name. An automatically generated bus name cannot be modified. Only custom bus names can be
modified.
• Expand/collapse bus or probe group
• Move Up/Down the signal, bus, or probe group
• Save (Active Probes list)
• Load (already saved Active Probes list)
• Delete (applicable to a single probe point added to the Active Probes tab)
• Delete All (deletes all probe points added to the Active Probes tab)
Green entries in the Write Value column indicate that the operation was successful. Blue entries in the Read Value
column indicate values that have changed since the last read.
In addition, the context (right-click) menu provides the following operations:
• Create Group, Add/Move signals to Group, Remove signals from Group
• Ungroup
• Reverse bit order, Change Radix for a bus or probe group
• Read, Write, or Delete the signal or bus or probe group
Table 3-1. Probe Points Added to the Active Probes Tab - Context Menu
...........continued
Situation Options User Interface
For a probe group • Delete
• Reverse Bit
Order
• Change Radix to
Binary
• Poll
• Create Group
• Ungroup
blocks. Logical blocks are shown with an L ( ), and physical blocks are shown with a P ( ).
You can select only one block at a time. You can select and add blocks in the following ways:
• Right-click the name of a memory block and click Add , as shown in the following figure.
Figure 3-11. Adding a Memory Block
Data Width
If a block is logical, the depth and width is retrieved from each physical block, consolidated, and displayed.
Values vary with the device family. For PolarFire devices, if the block is physical, the value of "Depth X Width" is 64 X
12 for uSRAM blocks, 16384x1, 8192 X 2, 4096 X 5, 2048 X 10, 1024 X 20 for LSRAM blocks, and 512 X 40(512x33
if Error Correcting Code is enabled where 512x7 is dedicated for ECC) for Two-Port RAM(TPSRAM) physical block.
Corresponding values for other Microchip devices can be found in their respective datasheets.
Port Used
This field is displayed only in the logical block view. Because configurators can have asymmetric ports, memory
location can have different widths. The port shown can either be Port A or Port B. For the TPSRAM, where both ports
are used for reading, Port A is used. This field is hidden for physical blocks, as the values shown will be irrespective
of read ports.
The following figure shows the Memory Blocks tab fields for a physical block view.
Figure 3-13. Memory Blocks Tab Fields for Physical Block View
The data shown is in hexadecimal format. In the above figure, data width is 32. Because each hexadecimal character
has 4 bits of information, you can see 8 characters corresponding to 32 bits. Each row has 16 locations (shown in the
column headers) which are numbered in hexadecimal from 0 to F.
Notes: For all logical blocks that cannot be inferred from physical blocks, the corresponding icon does not contain a
letter. The following are the scenarios where logical block cannot be constructed:
• If the inference flow (RTL – synthesis) is used in the design then the inference guidelines provided by Synopsys
have to be followed.
• Few of the IPs do not follow the inference guidelines and therefore no logical reconstruction is supported.
• If in your design, the output pins of RAM (A_DOUT & B_DOUT) have been partially promoted to top, physical
blocks corresponding to remaining pins may be optimized, hence the reconstruction may not be done.
Logical Block Read for ECC-Enabled Blocks (PolarFire, PolarFire SoC, and RTG4)
Two-Port RAMs on PolarFire, PolarFire SoC, and RTG4 devices support Error Correcting Code (ECC) that provides
Single Error Correction and Double Error Detection (SECDED). The logical block view for ECC-enabled blocks
highlights the data in case any corruption is detected. All erroneous data is highlighted in red. Hover your cursor
over the error to display a tooltip that shows the ECC error with the offset details. After the logical block is read, all
the physical block data is recorded for navigating to the respective physical block, so you can view the respective
physical block without having to read from the device again.
Figure 3-15. Logical Block Read - ECC Enabled
The following table describes the columns displayed in the physical block view.
Column Description
Data PolarFire and PolarFire SoC devices: 33-bit physical block data offset value.
RTG4 devices: 18-bit physical block data offset value.
ECC Bits PolarFire and PolarFire SoC devices: 7-bit ECC value.
RTG4 devices: 6-bit ECC value.
Error Detected Displays identified error type. The error type value displayed can be either Single-Bit or Multi-Bit.
Corrected Data If the error is a single-bit error, then the tool suggests the corrected data. The suggested data can
be copied to the data cell in order to write into the device.
Right-click on the corrected data to view an option to copy the data automatically to the Data cell.
After the block is read, a log is generated and all the erroneous locations are listed. This log is also seen during a
physical block read or when navigated from logical block view to physical. The same is true when navigating from
physical to logical block view.
Figure 3-18. Log Info
The Probe Insertion debug feature is complementary to Live Probes and Active Probes. Live Probes and Active
Probes use a special dedicated probe circuitry.
In the left pane of the Probe Insertion tab, all available Probe Points are listed in instance level hierarchy in
the Hierarchical view. All probe names are shown with the Name and Type in the Netlist View.
3. Select probe points from the Hierarchical View or Netlist View, right-click and choose Add to add them to the
Active Probes UI. You can also add the selected probe points by clicking the Add button. The probes list can
be filtered with the Filter box.
Each entry has a Net and Driver name that identifies that probe point.
The selected net(s) appear in the Probes table in the Probe Insertion tab (see the following figure).
SmartDebug automatically generates the Port Name for the probe. You can change the default Port Name
if desired.
4. Assign a package pin to the probe using the drop-down list in the Package Pin column. You can assign the
probe to any unused package pin (spare I/O).
Figure 3-26. Debug FPGA Array > Probe Insertion > Add Probe
5. Click Run.
This triggers Place and Route in incremental mode, and the selected probe nets are routed to the selected
package pin. After incremental Place and Route, Libero automatically reprograms the device with the added
probes.
The log window shows the status of the Probe Insertion run.
• Assign a signal to Probe Channel A, and then click Activate Event Counter.
Figure 3-29. Activating the Event Counter - Assign Probe Channel
Note: If a DC signal (signal tied to logic ‘0’) is assigned to Live Probe Channel A, or if there are no transitions on
the signal assigned to Live Probe Channel A with initial state ‘0’, the Event Counter value is updated as ‘1’ when the
counter stops. This is a limitation of the FHB IP, and will be fixed in upcoming releases.
For more information, see Frequency Monitor and User Clock Frequencies.
In the Frequency Monitor tab, you can activate the Frequency Monitor, change the monitor time (delay to calculate
frequency), reset the monitor, and set the frequency in megahertz (MHz). Click the drop-down list to select monitor
time value. During the frequency calculation, all tabs on the right side of the window are disabled, as well as the tabs
in the FHB pane.
• Click the Live Probe tab and assign a signal to Channel A, and then click the Frequency Monitor tab and
check the Activate Frequency Monitor check box.
For more information, see Frequency Monitor and User Clock Frequencies.
• If you select All Clock Domains , use the Halt (Pause) , Play , and Step buttons to
navigate through all clock domains.
• If you select Selected Clock Domain , select a clock domain from the Select Clock Domain drop-down. Use
the Halt (Pause), Play, and Step buttons to navigate through the selected clock domain. If you switch clock
domains, previous clock domain settings are not retained.
Specifying a Trigger
After you assign the Live Probe PROBE_A connection, determine whether a certain number of clock cycles is
required before halting the clock domain after triggering.
• If clock cycles are not required, click Arm Trigger to stop the DUT on the next positive edge that occurs on the
signal connected to Live Probe PROBE_A.
• If clock cycles are required, enter a value between 0 and 255 for Delay Cycles Before Halt, and then click Arm
Trigger. This setting configures the FHBs to trigger after the specified delay from the rising edge trigger. The
delay is not applied to a forced Halt.
Observe the following guidelines:
• The Trigger Signal appears as Not Connected until a live probe is assigned.
• When a probe is assigned to Live Probe PROBE_A, the Trigger Signal updates.
• Clicking Arm Trigger when a live probe connection is made disables FHB functions until the trigger is disarmed
automatically or the design is force halted.
where :
FHB clock frequency
Force Halt
To force halt a selected clock domain or all clock domains (based on your clock mode selection) without having to
wait for a trigger from a live probe signal. Click the Halt button in the FPGA Hardware Breakpoint (FHB) controls.
• In the Operate on Selected Clock Domain mode, the state of the Halt button is updated based on the state of
the clock domain selected.
• In the Operate on all Clock Domains mode, the Halt button is disabled only when all clock domains are halted.
Each clock domain is halted sequentially in the order shown in the Select Clock Domain combo box.
Note: If only one clock domain is halted, other clock domains continue to run, and you should anticipate results
accordingly.
Play Button
When the clock domain is in a halted state (live probe halt or force halt), clicking Play in the FPGA Hardware
Breakpoint controls resumes the clock domain from the halted state.
In Operate on all Clock Domains mode, each clock domain runs sequentially in the order shown in Select Clock
Domain.
Step Button
Once the clock domain is in a halted state (live probe halt or force halt), you can click the Step button in the FPGA
Hardware Breakpoint controls. Clicking this button advances the clock domain by one clock cycle and holds the state
of the clock domain. In All Clock Domains mode, each clock domain steps sequentially in the order shown in Select
Clock Domain.
Waveform Capture
You can save the waveform view of the selected active probes using Export Waveform by specifying the number of
clock cycles to capture in text box and then clicking Capture Waveform . The waveform is saved to a .vcd file.
To view the waveforms, import the .vcd file. You can then view the waveform file using a waveform viewer that
supports the .vcd file format.
Trigger Input
To have an event in the DUT trigger the FHB IP (for example, a particular state in the FSM or counter value) when
this signal is asserted, use the trigger input signal. If the trigger signal is already asserted (HIGH) when the FHB is
armed, the DUT halts immediately.
Force Halt, Play, and Step operations are performed using the FHB controls. After the clock domain is halted, you
can either force Play the clock domain or Step the clock domain by 1 clock cycle. To save the waveform view of the
selected active probes, use Export Waveform by specifying the number of clock cycles to capture. The waveform is
saved to a .vcd file.
– For frequencies higher than 160 MHz, the point at which the DUT halts cannot be ensured.
Figure 3-42. Pseudo-static signal polling Dialog Box (Scalar Signal Polling) - Stop Polling
Note: You cannot change the poll value or close the polling dialog box while polling is in progress.
The elapsed time is updated in seconds until the polled value is found. When the polled value is found, User value
matched is displayed in green in the dialog box as shown in the following figure.
Figure 3-43. Pseudo-static signal polling Dialog Box (Scalar Signal Polling) - User Value Matched
Figure 3-44. Pseudo-static signal polling Dialog Box (Vector Signal Polling)
Figure 3-45. Pseudo-static signal polling Dialog Box (Vector Signal Polling) - After Validation
When you enter a valid value and click Start Polling , polling begins.
To end polling, click Stop Polling.
Note: You cannot change the poll value or close the polling dialog box while polling is in progress.
The elapsed time is updated in seconds until the polled value is found. When the polled value is found, User value
matched is displayed in green in the dialog box.
Click the View All Page Status button to see information for all pages in the client as shown in the following figure.
Click the Export button to export the sNVM data to a text file.
Client View
The Client View displays all the clients that are configured in the design. When a client is expanded, a table listing all
pages is displayed.
When a client is selected, the Read from Device button is enabled. Click Read from Device to read the content of
the client. A client can have one or more pages. Refresh Client Details option is given to the user to refresh the table.
Click Refresh Client Details to update the information in SmartDebug and refresh the table. This is helpful when a
client configuration is changed using system services.
Page View
Entering valid parameters and clicking Check Page Status displays a table of all pages with page status information.
Pages in the table are read-only and cannot be selected. The page range included in Start Page and End Page is
validated, and the Read from Device button is enabled. Click Read from Device to read the content.
Parameter information is shown in a tabular format, with lane numbers as rows and transceiver instance names as
columns. The lane parameters are as follows:
• Physical Location: Physical block and lane location in the system controller.
• Tx PMA Ready: Indicates if the Tx of the lane is powered up and ready for transactions. Rx-only lane in half
duplex mode is shown as "NA".
• Rx PMA Ready: Indicates if the Rx of the lane is powered up and ready for transactions. Tx-only lane in half
duplex mode is shown as "NA".
• TX PLL: Indicates if the lane is locked onto TX PLL. Rx-only lane in half duplex mode is shown as "NA".
• RX PLL: Indicates if the lane is locked onto RX PLL. Tx-only lane in half duplex mode is shown as "NA".
• RX CDR PLL: Indicates if the lane is locked onto the incoming data. Tx-only lane in half duplex mode is shown
as "NA".
Note: For the parameters above, green indicates true and red indicates false.
Figure 3-52. Transceiver Hierarchy Lane Selection Example - SmartBERT, Loopback Modes, Static Pattern
Transmit Pages
On the Eye Monitor page, eye monitoring is done one lane at a time, as shown in the following figure.
Figure 3-53. Transceiver Hierarchy Lane Selection Example - Eye Monitor Page
3.2.2.3 SmartBERT
You can select lanes in the Transceiver Hierarchy and use debug options to run SmartBERT tests on the SmartBERT
page of the Debug TRANSCEIVER dialog box.
Click the SmartBERT tab in the Debug TRANSCEIVER dialog box to open the SmartBERT page.
Edit the signal integrity option of any lane by selecting the lane in the PRBS tree and modifying the option in the
Signal Integrity group box.
Note: You can navigate to other tabs when a SmartBERT test is in progress, but you cannot perform any debug
activity except to use Plot Eye for any lane on the Eye Monitor page.
Note: You cannot close the SmartBERT window when a test is in progress. Attempting to do so will result in the
following message:
Click the Stop button to stop the SmartBERT test on all lanes simultaneously.
Note: SmartBERT tests are disabled for PCIe lanes.
Figure 3-55. PCIe Lanes with SmartBERT Tests Disabled
PCIe lanes x1 configuration exposes unused lanes that are disabled on all the tabs in the Debug TRANSCEIVER
window.
3.2.2.3.1 SmartBERT IP
The CoreSmartBERT core provides a broad-based evaluation and demonstration platform for PolarFire transceivers
(PF_XCVR). Parameterizable to use different transceivers and clocking topologies, the SmartBERT core can also be
customized to use different line rates and reference clock rates. Data pattern generators and checkers are included
for each PF_XCVR, giving several different Pseudo-random binary sequences PRBS (27,223, 215 , and 231).
Each SmartBERT IP can have four lanes configured. Each Lane can have the pattern type PRBS7, PRBS9,
PRBS23, or PRBS31 configured.
SmartDebug identifies the lanes that are used by the SmartBERT IP and distinguishes them by adding "_IP" to the
SmartBERT IP instance name in the Transceiver Hierarchy.
You can expand a SmartBERT IP instance to see all the lanes. Check the check box next to a lane to add the lane to
the SmartBERT IP page and include the lane in a PRBS test. If the box is unchecked, it will not be added as shown in
the following figure.
Figure 3-57. SmartBERT IP - View all Lanes
You can select patterns for the added lane(s) from a drop-down list as shown in the following figure.
After the lane(s) have been added and the patterns(s) selected, click Start to enable the transmitter and receiver for
the added lanes and patterns.
Error Injection
When SmartBERT IP lanes are added, you will see the Error Injection column and Error Inject button. Errors can
be injected by clicking the Error Inject button when a PRBS test is running. This feature tests whether the error is
identified by the pattern checker.
Note: This column does not appear for non-SmartBERT IP lanes, or if a non-configured PRBS pattern has been
selected.
Error Count
Error Count is shown when a lane is added and a PRBS pattern is run. The error count can be cleared by clicking the
Reset button under the Error Counter column.
The following figure shows the Reset and Inject Error buttons.
Figure 3-59. SmartBERT IP - Reset and Inject Error
You can select the desired loopback type (EQ-NEAREND, EQ-FAREND, CDRFAREND, or No Loopback) for each
lane.
Note: These loopback types (EQ-NEAREND, EQ-FAREND, CDRFAREND, No Loopback) are enabled only for full
duplex modes and are disabled for the three half duplex modes. See the figure above.
• EQ-NEAR END: Set EQ-Near End loopback from Lane Tx to Lane Rx. This loopback mode is supported up to
10.3125 Gbps.
• EQ-FAR END: Set EQ-Far End loopback from Lane Tx to Lane Rx.
• CDR FAR END: Set CDR Far End loopback from Lane Rx to Lane Tx.
• No Loopback: Set this option to have no loopback between Lane Tx and Lane Rx. (For external loopback using
PCB backplane or High Speed Loopback cables.)
Click Apply to enable the selected loopback mode on the lane(s).
Note: If you proceed to another tab without applying your changes to loopback modes, the following popup
message appears:
Click Yes to ignore the changed selections and move to another selected page. Click No to remain on the current
page.
When a lane is added from the Transceiver Hierarchy, the following debugging options can be selected:
• Pattern: Pattern selection is available/enabled for all modes except Rx Only, because it is applicable only for Tx.
(and Tx is present in Full Duplex, Tx Only, and Independent TxRx)
– Fixed Pattern is a 10101010... pattern. Length is equal to the data width of the Tx Lane.
– Max Run Length Pattern is a 1111000... pattern. Length is equal to the data width of the Tx Lane, with half
1s and half 0s.
– User Pattern is a user defined pattern in the value column. Length is equal to the data width.
• Value: Editor available only with the User Pattern type. For other pattern type selections, it is disabled.
– Takes the input pattern to transmit from the Lane Tx of selected lanes.
– Pattern type should be Hex numbers, and not larger than the data width selected.
– Internal validators dynamically check the pattern and indicate when an incorrect pattern is given as input.
• Mode: Currently, HEX mode is supported for pattern type.
• TX PLL: Indicates Lane lock onto TX PLL when Static Pattern Transmit is in progress.
– Gray: Test is not in progress.
– Green: Lane is locked onto TXPLL.
– Red: Lane is not locked onto TXPLL.
• RX PLL : Indicates Lane lock onto RX PLL when Static Pattern Transmit is in progress.
– Gray: Test is not in progress.
– Green: Lane is locked onto RXPLL.
– Red: Lane is not locked onto RXPLL.
Click Start to start the Static Pattern Transmit on selected lanes. Click Stop to stop the Static Pattern Transmit test
on selected lanes.
After selecting Eye output from the Select Eye Output drop-down, click Plot Eye to start eye monitoring for the lane.
The Eye diagram appears, as shown in the following figure.
Figure 3-63. Eye Monitor Example
Note: The TagName for the selected eye output is shown above the eye diagram. Ensure data transmission on
Lane Rx for successful monitoring.
Normal Mode
Note: This feature is not available for the Tx Only mode. In this mode, all the Eye Monitor buttons and the
Optimize Receiver button are disabled (grayed out).
In the Normal mode, Plot Eye performs single eye scanning and displays the Eye diagram as shown in the following
example figure.
Figure 3-64. Eye Scan Mode - Normal
The Start Plot Eye button changes to Stop Plot Eye and the infinite scanning and cumulation process begins. In
every iteration, the eye is cumulated with all previous eyes to make a single “cumulative eye”. This cumulative eye
appears with a color scheme in the GUI, as shown in the following figure. The completed iteration number, and the
cumulative BER is updated and appears after every iteration, along with the cumulative eye. To stop cumulative eye
monitoring, click Stop Plot Eye. The process halts after the current iteration completes.
Figure 3-66. Infinite Persistent Mode - Stop Plot Eye
Clear
The Clear button is enabled for Infinite Persistent eye scan mode and is disabled for Normal eye scan mode. At any
time during Infinite Persistent eye monitoring, clicking the Clear button clears the cumulative eye computation and
then starts a new cumulative eye computation.
Note: The Current Iteration count does not reset. Only the cumulative eye is cleared.
Error Handling
Eye Scanning can be performed successfully only if there is data traffic on the Lane Rx when Eye Monitoring is in
progress. In Normal Mode, when an Eye Scan fails, a popup message is displayed. In Infinite Persistent mode, when
an Eye Scan fails in any iteration, a popup message is displayed and Eye scanning terminates.
Eye Mask
The Eye mask feature has been added to both the normal and infinite persistent modes in the Libero SoC v12.5
release. Eye mask provides a guide to where the best eye opening with least errors can be seen. Both the Apply
Mask and the Clear Mask buttons are disabled in the Default View. Click Plot Eye to enable the Apply Mask button.
Figure 3-67. Eye Monitor GUI After Clicking the Plot Eye Button
After applying the mask, the Clear Mask button is enabled and the Eye Mask for the Eye Plot appears.
Figure 3-68. Eye Monitor GUI After Applying the Mask Using Apply Mask Button
Click Clear Mask to clear the Eye Mask for the current Eye Plot and enable the Apply Mask button.
The following table describes the various interface elements on the page.
Option Description
Register Hierarchy Lists the design specific registers in a collapsible tree view format.
Register Name Displays the name of the register that can be looked up in the Register
Hierarchy.
Register Address Displays the physical address of a register. The address is shown in
hexadecimal format. The address is calculated based on the Quad, lane
number, register type, and offset.
Access Type Specifies the register access type. This column also indicates the field
access types when a register is expanded.
Field Name Displays the field name based on the register information read from the
PF_XCVR.xml file.
Field Bits Displays bit value based on the field offset and the width of the register.
Read Value Displays the value read from the device. Click the Read button to retrieve
the value from the device. By default, unread is displayed.
Write Value (Hexadecimal) Enter a hexadecimal register value.
Import Click to load the registers from a .csv file that is exported. This option
loads the register list in the selected pane. Any registers selected earlier
will be prompted to delete or cancel the load operation.
Delete All Click to delete all selected registers.
Read Click to retrieve the register value from the device.
Note: The Read button is disabled when no register is selected in the
Register Hierarchy tree view or when SmartDebug is running in the Demo
mode.
Export Click to save the selected register details to a .csv file. When clicked, the
Register Access Export Action dialog box appears. Specify the file name
and the location of the file in the dialog box.
Note: The Export button is disabled when SmartDebug is running in the
Demo mode.
Export All Click to save all the register details to a .csv file. When clicked, the
Register Access Export All Action dialog box appears. Specify the file
name and the location of the file in the dialog box.
The exported .csv file contains the register name, address, field name,
field bits, read, and write values of registers. The first row of the file
contains the header information. Register values are written from the
second row onwards.
...........continued
Option Description
Hide register Select register(s) and right-click to view this option. The Hide registers
context menu option helps you remove the selected register(s) from the
Register Access table.
In full duplex mode, all parameters (Tx and Rx) are imported/exported.
The following figure shows Signal Integrity for Tx Only mode, Rx Only mode, and Independent TxRx mode.
Figure 3-71. Signal Integrity - Tx Only Mode
The following figure shows Signal Integrity for Rx Only mode. In this mode, only Rx parameters are imported and
exported.
Figure 3-72. Signal Integrity - Rx Only Mode
The following figure shows Signal Integrity for independent TxRx mode. In this mode, Tx and Rx parameters are
imported and exported.
When a lane is selected in the SmartBERT, Loopback Modes, Static Pattern Transmit, or Eye Monitor pages, the
corresponding Signal Integrity parameters (configured in the I/O Editor or changed in SmartDebug) are enabled and
shown in the Signal Integrity pane.
The selected lane instance name is displayed in the Signal Integrity group box, and the Export, Import, and
Design Defaults buttons are enabled.
You can select options for each parameter from the drop-down for that parameter. Click Apply to set the selected
transceiver instance with the selected options.
The Polarity (P/N reversal) parameter has been added. You can choose Normal or Inverted from the
drop-down menu. This parameter is not available for MPF300T_ES (Rev C) or MPF300T_XT (Rev E) devices.
The CDR Gain parameter has been added for MPF300T, MPF100T, MPF200T, MPF500T devices, and you can
select the High or Low option from the drop-down. This parameter is supported for Export, Export All, Import, Import
All, Design Defaults, and Apply flows of Signal Integrity. This parameter is not available for MPF300T_ES (Rev C) or
MPF300T_XT (Rev E) devices.
Note: The Apply button is enabled when you make a selection for any parameter.
If you change parameter options Tcl and click another lane, move to another tab, or click Import, Import All, or
Design Defaults without applying the changes, the following message appears: Some Signal Integrity options are
modified. How do you wish to continue?
Click Apply to apply the changes or Discard to discard the changes.
Note: If you change any register setting related to Signal Integrity, power cycle the board, or perform a user reset
of the device, the XCVR lane signal integrity state may be different than what is shown in the SmartDebug Signal
Integrity tab.
To ensure that the Signal Integrity in SmartDebug is in sync with the Signal Integrity state of the device, click the
Design Defaults button in SmartDebug. This sets the SI in the Signal Integrity tab to the design constraints (SI
parameter values chosen from the I/O Editor).
3.2.2.8.2 Export
Clicking the Export button exports the current selected parameter options and other physical information for the
selected lane instance to an external PDC file. A pop-up box prompts you to choose the location where you want
the .pdc file to be exported.
The exported content will be in the form of two set_io commands, one for the TXP port and one for the RXP port of
the selected lane instance.
3.2.2.8.3 Import
Clicking the Import button imports Signal Integrity parameter options and other physical information for the selected
lane from an external PDC file.
The Signal Integrity parameter options are applied to the device and updated in Modified Constraints.
Click Optimize Receiver to open the Optimize Receiver dialog box. Full duplex, Rx Only, and Independent TxRx will
be shown (Tx Only lanes will not be shown).
Figure 3-75. Optimize Receiver Dialog Box
Select the lanes on which to run Optimize Receiver and click Optimize Receiver on Selected Lanes. You can select
any combination of lanes including those configured in CDR or DFE. The hardware will perform CTLE calibration for
CDR receivers and Full calibration for DFE receivers.
H3 = H3_MON
H4 = H4_MON
H5 = H5_MON
• DFE coefficients are read back from the device in the following scenarios:
– When the lane is selected in the SmartBert, Loopback Modes, Static Pattern Transmit, and Eye Monitor
pages.
– When a test is started/stopped on selected lane in the SmartBert page.
– When a test is started/stopped on selected lane in the Static Pattern Transmit page.
– When Optimize Receiver is executed on the selected lane.
When you click a PCIE instance in the PCIE Hierarchy, the active LTSSM state is retrieved from register
LTSSM_STATE:PL_LTSSM_OUT, the active state is highlighted in the state machine, and the substate information is
shown. The LTSSM state output is also logged in the SmartDebug log window. See the following figure.
The list of config parameters and values is also logged in the SmartDebug log window, as shown in the following
figure.
Figure 3-82. Config Space Parameter Information in the SmartDebug Log Window
Click the Refresh button to update all PCIE data displayed in the GUI.
This option is hidden in Demo Mode. When you click Start record Actions, recording starts and the option changes
to Stop recording….
When you click Stop recording… to stop the recording, a window prompts you to save the output a text (.txt) file.
After saving the file, the Debug TRANSCEIVER window reverts to default state.
Figure 3-84. Save Recorded Action Window Pop-Up to Save Text File After ‘Stop recording…’ is Clicked
Example 1
1. Start PRBS test on LANE2 QUAD0 using PRBS7 means:
a. The lane selected on the SmartBERT tab is Q0_ANE0 and the pattern selected is XCVR PMA PRBS7.
b. The first set of lines has four subheadings which mean the following:
Register Name: Register name that can be looked up in the register map.
Address: The physical address of this register is 7 hexadecimal digits which is calculated based on the
Quad, lane number, register type and offset.
Write Mask: Write mask is 8 hexadecimal digit number which indicates the mask value to be applied on
the register read value.
Write Value: The write value is 8 hexadecimal digits number to be written after the mask is applied.
If the value is 0, the operation is basically read the register value and apply the mask on it and write in the
register.
c. End of start PRBS test sequence -> denotes that the sequence for that lane is completed and the next
sequence is initiated.
The following are XCVR operations for which Record Actions is supported:
• SmartBERT tests
• Loopback tests
• Static Pattern tests
• Power ON/OFF Eye Monitor
• Transceiver PHY Reset
• Poll PCIe LTSSM State
• Read PCIe configuration space
The following are XCVR operations for which Record Actions is not supported:
• Eye Monitor
• Optimize Receiver
• Signal Integrity
• PRBS tests from SmartBERT IP
• Phy
Example 2
LTSSM state on PCIe lane
Register Name and Address will be common to all the register sequence.
Read Mask: This means the sequence is only a read register operation. The mask value is the mask to extract the
required field value. Here, the mask value is 0x1F which means reg[4:0] is the value to be read, hence the mask
value.
LTSSM STATE: This is the result that is obtained after the mask is applied to the read value.
Note: Selected registers are retained even if you close and re-open the SmartDebug project in the standalone
SmartDebug tool.
The following table describes the various options available on the MSS Register Access window.
Option Description
Register Lists all the instances of the MSS block as described in the MSS register map.
Selection
Peripherals are shown based on the configuration from the MSS component. Apart from
peripherals, the following six instances of registers are always shown in the pane as they are
the configuration registers and are always accessible.
• AXISW
• MPUCFG
• ENVMCFG
• IOSCBCFG
• PFSOC_MSS_TOP_SCB_REGS
• PFSOC_MSS_TOP_SYSREG
Register Allows you to search for instances/register by their names. Supports wildcard (*) searches.
Filter
• The search is real time.
• Enter an asterisk ( * ) to display all registers having instance names expanded.
• Names entered without asterisk look for exact match.
Register Displays Instance name and Register name in a two-level hierarchy-level format.
Hierarchy
• You can select multiple names.
• Right-click and select 'Add' to add the registers to the operation pane.
• Drag and drop the register names to the Register Operation pane.
Export All Exports information of all registers that are displayed in the selection pane to the specified.csv file.
• The exported .csv file contains six sections:
– Register Name
– Register Address (hexadecimal number)
– Register Field Name
– Register Field Range
– Register Field Value (hexadecimal number)
– Register Value (hexadecimal number)
– Comments (message to show if read register was successful or not)
Register Lists the registers selected for access operations such as read, write, and export.
Operations
Note: Selected registers are retained even if you close and re-open the SmartDebug project in the
standalone SmartDebug tool.
• The Register Operations pane has six columns - Name, address, access type, field bits, read
value, and write value.
• The register has a sub-tree where all the register fields are listed.
• Select Hide Register from the context menu to remove the selected register.
Note: You cannot remove a field inside the register.
• Write value column is populated with 0x to indicate that it supports hexadecimal values.
– Click a specific register row under the write column to edit the value.
– The text entered is validated based on the range (field bits) of a field or a register.
Note: Non-hexadecimal character will not be inserted.
Import Click to load the registers from a .csv file that is exported. This option loads the register list in
the selected pane. Any registers selected earlier will be prompted to delete or cancel the load
operation..
Delete All Click to delete all selected registers.
...........continued
Option Description
Read Read all selected registers by their register names and display the values in the hexadecimal
format.
Write Each cell in the table of selected registers can be accessed individually to write the values in
hexadecimal format.
• If there is a conflict in the values where full register write values and also field values of the
same register, then a full register write is executed and field write is ignored.
• Write to specific registers such as MPUCFG:PMPCFG_SCB_* will result in undesired
SmartDebug tool behavior because these registers are responsible for configuring MPU block
in MSS.
• You cannot edit the write field if the register has read-only access type.
• Write onto a field is a read-modify-write operation.
Export Reads the values of selected registers and saves them in the specified .csv file. The
exported .csv file contains six sections
• Register Name
• Register Address ( hexadecimal number )
• Register Field Name
• Register Field Range
• Register Field Value ( hexadecimal number )
• Register Value ( hexadecimal number )
The following figure shows a design example with two instances of CORERXIODBITALIGN IP and the tap delay
values read from those instances.
Figure 3-89. IOD Tap Delays - Eye Width and Sample Edge Data Representation
The following figure shows the SmartDebug Log window when the training is successful.
Figure 3-90. SmartDebug Log Window - Training Successful
The following figure shows the IOD Tap Delays window when the training fails.
The following figure shows the SmartDebug Log window when the training fails.
Figure 3-92. SmartDebug Log Window - Training Failed
The Client address is associated with Start Address and Number of 9-bit words. Therefore, the table will contain as
many locations as the number of 9-bit words.
In the example above, Number of 9-bit words is 52224, so 52224 words will be shown in the table. Column headers
are numbered 0 to F in hexadecimal format, representing 16 words in a row.
Row addresses begin with a word address associated with Start Address. For example, if the Start Address is 0x15
(hex), the starting row has an address of 0x0010.
Hover your cursor over a cell to see the cell’s address and value, as shown in the following figure.
Read from Device: Disabled until valid values are entered in the fields.
Invalid or blank values are indicated by a red "STOP". The error message displays when you hover your cursor over
the icon.
Note: If the word falls within the 16 words that are placed in a row, the start location and the end location are
highlighted in the row to show the starting point of the data. All preceding locations show ‘NR’ (Not Read). See the
following figure.
Figure 3-94. SmartDebug Main Window with Debug DDR Memory Option
This opens the Debug DDR IO Margin dialog box as shown in the following figure.
Initially, all options in the Debug DDR IO Margin dialog box are disabled. Select the DDR instances training data you
want to view and click the Get Training Data button. After clicking Get Training Data, a script fetches the training
data. The script runs for approximately two minutes and the DDR IO Margin dialog box displays the information
based on the selected DDR Instance, as shown in the following figure.
Figure 3-96. DDR IO Margin Dialog Box Showing Information for First IO Bank
Figure 3-97. DDR IO Margin Dialog Box Showing Information for Second IO Bank
Figure 3-98. DDR IO Margin Dialog Box Showing HK_IO_CLK to SYS_CLK Training
Figure 3-100. DDR IO Margin Dialog Box Showing Write Levelling Data
Figure 3-101. DDR IO Margin Dialog Box Showing Write Calibration Data
Figure 3-102. DDR IO Margin Dialog Box Showing Training Iterator Data
Figure 3-104. DDR IO Margin Dialog Box Showing Read DQ/DQS Optimization Charts
The tool informs the users about errors generated while getting training data as shown in the following figure.
Figure 3-105. DDR IO Margin Dialog Box Showing Error Generated when DDR PLL is Not Locked
Figure 3-106. DDR IO Margin Dialog Box Showing Error Generated During Write Levelling Data
Figure 3-107. DDR IO Margin Dialog Box Showing Error Generated During Write Levelling Data
Figure 3-108. DDR IO Margin Dialog Box Showing Error Generated During Read DQ/DQS Optimization Charts
There are two views present in the ENVM Debug window - Client View and Page View.
A single client can be selected at a time to view the content. Once a client is selected, the Read from Device button
is enabled.
Figure 3-110. Read from Device on Selection
Click the Read from Device button to see the content displayed as a matrix of cells. The headers are added to show
the MSS address offsets to each of the locations as well as on the row headers. Click the Export button to export the
eNVM data to a text file.
Note: The PCIe and XAUI protocols only support PRBS7. The EPCS protocol supports PRBS7/11/23/31.
Option Description
PCS Far End PMA RX to TX Loopback This loopback brings data into the device and
deserializes and serializes the data before sending it
off-chip. This loopback requires 0PPM clock variation
between the TX and RX SERDES clocks.
...........continued
Option Description
Near End Loopback (On Die) To enable, select this option and click Start. To disable
this option, click Stop . Using this option allows
you to send and receive user data without sending
traffic off-chip. You can test design functionality without
introducing other issues on the PCB.
Option Description
Near End Serial Loopback (On-Die) Enables a self-test of the device. The serial data stream
is sent internally from the SERDES TX output and folded
back onto the SERDES RX input.
Serial Data (Off-Die) Normal system operation where the data stream is sent
off-chip from the TX output and must be connected
to the RX input via a cable or other type of electrical
interconnection.
3.3.3.3 Pattern
The SERDESIF includes an embedded test pattern generator and checker used to perform serial diagnostics on the
serial channel, as shown in the following table. If more than one lane is selected, the PRBS pattern can be selected
per lane.
Table 3-8. Diagnostic Pattern
Pattern Type
PRBS7 Pseudo-Random data stream of 2^7 polynomial sequences.
PRBS11 Pseudo-Random data stream of 2^11 polynomial sequences.
PRBS23 Pseudo-Random data stream of 2^23 polynomial sequences.
PRBS31 Pseudo-Random data stream of 2^31 polynomial sequences.
Note: If the design uses SERDES PCIe, PRBS7 is the only available option for PRBS tests.
In the example below, Lane 1 and Lane 2 are selected and Reset Error Count is clicked.
Figure 3-120. Reset Error Count Example
Notes
• The formula for calculating the BER is as follows:
BER = (#bit errors+1)/#bits sent #bits sent = Elapsed time/bit period
• When you click the Start button, the BER is updated every second for the entered data rate and errors are
observed. If you do not enter any data rate, the BER is set to the default NA.
• When you click the Stop button, the BER resets to default.
• When you click the Reset button, the BER resets to default.
• If no test is in progress, the BER remains in the default value.
• If the PRBS test is in progress, the BER calculation restarts.
3.3.4.1 Lane Reset Behavior for SERDES Protocols Used in the Design
• EPCS: Reset is independent for individual lanes. Reset to Lane X (where X = 0,1,2,3) resets the Xth lane.
• PCIe: Reset to Lane X (where X = 0,1,2,3) resets all lanes present in the PCIe link and PCIe controller.
For more information about soft reset, refer to the SmartFusion2 and IGLOO2 High Speed Serial Interfaces User
Guide.
4.1 add_probe_insertion_point
Description
This Tcl command adds a probe point to be connected to user-specified I/Os for probe insertion flow. This command
will fail if any of the parameters are missing.
Note:
Probe Insertion feature disabled in the SmartDebug Demo and Standalone modes.
Arguments
driver string Specify driver name of the net. This parameter is mandatory.
pin string Specify Package pin name(i.e., I/O to which the net will be routed
during probe insertion). This parameter is mandatory.
port string Specify user-specified name for the probe insertion. This
parameter is mandatory.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example adds a probe point to the probe insertion list:
See Also
• remove_probe_insertion_point
• program_probe_insertion
4.2 add_to_probe_group
Description
This Tcl command adds the specified probe points to the specified probe group.
This command will fail if any of the optins are incorrect.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example adds {DFN1_0_Q:DFN1_0/U0:Q} instance to the {probe_group}.
See Also
• create_probe_group
• remove_from_probe_group
• move_to_probe_group
4.3 check_flash_memory
Description
The command performs diagnostics of the page status and data information as follows: • Page Status – includes
ECC2 check of the page status information, write count • Page Data - ECC2 check
Arguments
...........continued
Parameter Type Description
access string You must set -startpage and -endpage before use. Specifies what
NVM information to check: page status, data or both.
All: Shows the number of pages with corruption status, data
corruption and out-of-range write count (default).
Status: Shows the number of pages with corruption status and
the number of pages with out-of-range write count.
Data: Shows only the number of pages with data corruption.
show string This is an optional argument. You must set -startpage and -
endpage before use. Specifies output level, as explained in the
table below.
Summary: Displays the summary for all checked pages (default).
Pages: Displays the check results for each checked page.
Error Codes
None Missing '-endpage' argument for page range. Specify a page range with both
a -startpage and an -endpage argument.
None Parameter 'startpage' has illegal value.
None Missing '-startpage' argument for page range. Specify a page range with
both a -startpage and an -endpage argument.
None Parameter 'param_name' is not defined. Valid command formatting
is'check_flash_memory [-deviceName "device name"] [-block "integer
value"] [-client "client name"] [-startpage "integer value"] [-endpage "integer
value"] [-access "all | status | data"] [-show "summary | pages"] [-file
"filename"]'.
None Invalid value for -show: 'show_value'. Value should be 'summary' or 'pages'.
...........continued
Error Code Description
None Missing specification for Flash Memory area. Use one of:-client [-block ]or-
startpage -endpage -block.
Supported Families
SmartFusion2
RTG4*
IGLOO2*
Example
This example checks flash memory form pages 0 to 1 and saves their pages to check_flash_memory.txt file:
See Also
• read_flash_memory
4.4 close_project
Description
This Tcl command closes a SmartDebug project.
close_project
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This command closes the SmartDebug project:
close_project
See Also
• new_project
• open_project
4.5 create_probe_group
Description
This Tcl command creates a new probe group.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example creates new probe group named "my_new_grp" :
4.6 debug_ddr
Description
This Tcl command retrieves/gets the training data from the Training IP and displays the status of different stages of
training along with the eye width chart.
Arguments
data_width integer Specify data width. Supported data widths are 16, 32 and 64.
slot string Slot that is used for the memory (e.g., NORTH_NE/
NORTH_NW).
Error Codes
None DDR Debug: Valid values for "-ddr_type" parameter are DDR3, DDR4,
LPDDR3. Provided value is a Error: .
...........continued
Error Code Description
None DDR Debug: Valid values for "-ddr_width" parameter for DDR3 are 16, 32
and 64.
Supported Families
PolarFire
PolarFire SoC
Example
This example gets the training data from the Training IP and displays the status of different stages of training along
with the eye width chart:
See Also
• ddr_read
• ddr_write
4.7 debug_iod
Description
This Tcl command gets the training data from the "CORERXIODBITALIGN" IP and displays Eye Width and Sampling
Edge.
Arguments
Error Codes
None IOD Debug: Provide the path of IOD instace for top level module in the
design valid for "-inst_path" parameter.
Supported Families
PolarFire
PolarFire SoC
Example
Get training data from {PF_IOD_GENERIC_RX_C1_0} instance.
See Also
• debug_ddr
4.8 ddr_read
Description
This tcl command reads the value of specified configuration registers pertaining to the DDR memory controller
(MDDR/FDDR).
Arguments
Error Codes
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
Read DDR Controller register DDRC_DYN_REFRESH_1_CR for a configured FDDR block on a SmartFusion2 or
IGLOO2 device:
See Also
• ddr_write
4.9 ddr_write
Description
This tcl command writes the value of specified configuration registers pertaining to the DDR memory controller
(MDDR/FDDR).
Arguments
...........continued
Parameter Type Description
block string Specify blcok name: fddr | mddr | east_fddr | west_fddr.
• Specifies which DDR configurator is used in the Libero
design.
• SmartFusion2 and IGLOO2 - fddr and mddr • RTG4 -
east_fddr and west_fddr.
value hexadecimal • Specifies the value to be written into the specified register of
a given block.
• Hex_value in the form of “0x12FA”.
Error Codes
Supported Families
SmartFusion2
RTG4*
IGLOO2
Example
Write a 16-bit value DDR Controller register DDRC_DYN_REFRESH_1_CR for a configured FDDR block on a
SmartFusion2 or IGLOO2 device:
See Also
• ddr_read
4.10 delete_active_probe
Description
This Tcl command deletes either all or the selected active probes.
Note:
You cannot delete an individual probe from the Probe Bus.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
1. This example deletes all active probe names.
delete_active_probe -all
2. This example deletes the selected "out[5]:out[5]:Q" and "my_grp1.out[1]:out[1]:Q" active probe names;
See Also
• select_active_probe
• create_probe_group
4.11 load_live_probe_list*
Description
This Tcl command loads the list of live probes from the file(*.txt).
Arguments
file string Specify path and the name of input file(*.txt). This parameter is
mandatory.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example loads M3T device live probes list from live_probe_list.txt file. Text file which has the probes list
saved from previous SmartDebug save action.
See Also
• save_live_probe_list
4.12 eye_monitor_power
Description
This tcl command switches on and off power eye monitor.
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example turns on the eye monitor.
4.13 event_counter
Description
This Tcl command runs on signals that are assigned to Channel A through the Live Probe feature and displays the
total events.
It is run after setting the live probe signal to channel A. The user specifies the duration to run the event_counter
command.
Arguments
stop none Stop event counter. This parameter must be specified with the
-after parameter.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example assigns 'Q_c:DFN1_0:Q' signal to Channel A, runts event counter with the 5 delay seconds to
stop:
See Also
• fhb_control
• run_frequency_monitor
• set_live_probe
4.14 execute_dfe_calibration
Description
This Tcl command executes calibration. There are two types of calibration DFE (decision feedback equalizer) and
CTLE (continuous time linear equalizer).
Arguments
full_calibration boolean This parameter specifies what kind of calibration you want to
execute.
• 1 - execute full calibration both DFE and CTLE Calibrations.
• 0 - execute DFE Calibration.
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example executes the dfe calibration for lane "Q0_Lane0".
4.15 export_ddr_training_data
Description
This Tcl command exports the training data that is read from the device into a simple text file, which helps users to
compare data between multiple runs by exporting the training data.
Arguments
Supported Families
PolarFire
PolarFire SoC
Example
This example exports the DDR training data to D:\exportedData.txt.
4.16 fhb_control
Description
This Tcl command provides FPGA Hardware Breakpoint (FHB) capability for SmartDebug.
Arguments
step integer Specifies to step the clock "number of steps" times. Minimum
value is 1.
reset none Specifies to reset FHB configuration for the specified clock
domain.
arm none Specifies to arm FHB configuration for the specified clock
domain.
trigger_signal string probe point signal to trigger the HALT operation} Set the trigger
signal to arm the FHBs.
trigger_edge_select string Specifies the trigger signal edge to arm the FHBs. FHBs will be
armed on rising edge of trigger signal.
delay integer Sepcifies the value between 0 to 255 of delay cycles before halt.
clock_domain_status none Specifies to read and display status of specified clock domain(s).
Can be single or multiple clock domains.
disarm none Specifies to disarm FHB configuration for the specified clock
domain.
capture_waveform integer Specifies to capture waveform of all the added signals to active
probes in the specified clock domain for "number of steps".
vcd_file string Target file to save the data and see the waveform.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
fhb_control -halt -clock_domain {“FCCC_0/GL0_INST “ “FCCC_0/GL1_INST” }
fhb_control -run -clock_domain {“FCCC_0/GL0_INST “ “FCCC_0/GL1_INST” }
fhb_control -step -clock_domain {“FCCC_0/GL0_INST “ “FCCC_0/GL1_INST” }
fhb_control -reset -clock_domain {“FCCC_0/GL0_INST “ “FCCC_0/GL1_INST” }
fhb_control -arm_trigger -trigger_signal {q_0_c[14]:count_1_q[14]:Q} \
-trigger_edge_select {rising} -delay 0 \
-clock_domain {"FCCC_0/GL0_INST"}
fhb_control -disarm_trigger -trigger_signal {q_0_c[14]:count_1_q[14]:Q} \
-trigger_edge_select {rising} -delay 0 \
-clock_domain {"FCCC_0/GL0_INST"}
fhb_control -capture_waveform {10} \
-vcd_file {D:/wvf_location/waveform.vcd}
fhb_control -clock_domain_status \
-clock_domain { "FCCC_0/GL0_INST" "FCCC_0/GL1_INST" "FCCC_0/GL2_INST" }
See Also
• event_counter
• run_frequency_monitor
4.17 get_programmer_info
Description
This Tcl command lists the IDs of all FlashPro programmers connected to the computer. Command will fail if
programmers are not connected.
get_programmer_info
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
Example
Get the list of all connected programmers IDs:
See Also
• read_device_status
• read_id_code
4.18 get_user_clock_frequencies
Description
This Tcl command calculates the user clock frequencies.
Note:
Before this commands usage user has to enable FHB(FPGA Hardware Breakpoint) controller from Libero project
settings.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
Get 'M4' device user clock frequensy:
Output:
User clock frequency - clocking_0\/PF_out0 value = 100.07 MHz
User clock frequency - clocking_0\/PF_out1 value = 132.02 MHz
See Also
• event_counter
• run_frequency_monitor
4.19 import_ddc_file
Description
This is a Standalone SmartDebug command. Enables you to import DDC file (created through Export SmartDebug
Data in Libero) into the debug project.
Arguments
Error Codes
None Failed to import DDC file '*.ddc'. There is no device 'device_name' in the
current JTAG chain.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
Example
This example importes DDC file to the debug project:
See Also
• new_project
4.20 load_active_probe_list
Description
This Tcl command loads the list of probes from the file.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example loads the active probe list from “./my_probes.txt” file.
See Also
• delete_active_probe
• read_active_probe
• save_active_probe_list
• select_active_probe
• write_active_probe
4.21 load_SI_design_defaults
Description
This Tcl command loads the Signal Integrity parameter options for the selected lane instance.
Arguments
all_lanes boolean If you want to load design defaults for all lanes, then give "TRUE"
to the argument, else "FALSE".
Error Codes
Supported Families
PolarFire
PoarFire SoC
Example
This example loads design defaults for lane "Q0_LANE0"
See Also
• signal_integrity_write
• signal_integrity_import
• signal_integrity_export
4.22 loopback_mode
Description
This Tcl command applies loopback mode to a specified lane.
Arguments
type string Specify the loopback type to apply. Type valid values are: EQ-
NearEnd, EQ-FarEnd, CDRFarEnd and NoLpbk.
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This examples applies EQ-FarEnd|EQ-NearEnd|CDRFarEnd|NoLpbk loopback mode to a "Q0_LANE0" lane.
See Also
• loopback_test
• smartbert_test
• prbs_test
4.23 loopback_test
Description
This Tcl command used to start and stop the loopback tests. Loopback data stream patterns are generated and
checked by the internal SERDES block. These are used to self-test signal integrity of the device. You can switch the
device through predefined tests.
Note:
loopback_test is renamed as loopback_mode in G5.
Arguments
serdes integer Specifies serdes block number. Must be between 0 and 4 and
varies between dies.
type string Specifies the loopback test type. Loopback test types are: Must
be meso (PCS Far End PMA RX to TX Loopback), plesio and
parallel.
Error Codes
...........continued
Error Code Description
None serdes: Invalid argument value: 'serdes_value' (expecting integer value).
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
Start and stop loopback tests.
See Also
• loopback_mode
• prbs_test
• smartbert_test
4.24 move_to_probe_group
Description
This Tcl command moves the specified probe points to the specified probe group.
Note:
Probe points related to a bus cannot be moved to another group.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example moves {out[5]:out[5]:Q} and {grp1.out[3]:out[3]:Q} probes to the {my_grp2}:
See Also
• create_probe_group
• add_to_probe_group
4.25 mss_add_register
Description
This tcl command records whenever registers are selected in the tool.
Arguments
...........continued
Parameter Type Description
reset boolean When set to 1, all the previously selected registers will be cleared
from the list and the new ones will be added. If 0, then adds the
register to the old list.
Error Codes
None register is not found in the valid list provided in pfsoc_regmap.htm file.
None reset: Invalid argument value: '' (expecting TRUE, 1, true, FALSE, 0 or
false).
None Parameter 'param_name' is not defined. Valid command formatting
is'mss_add_register [-deviceName "device name"] \[-reg_name "Add
Register Names"]* \[-reset "TRUE | FALSE"]'.
Supported Families
PolarFire SoC
Example
This example adds the following registers into mss register list.
mss_add_register \
-reg_name {ATHENA:CSRMAIN} \
-reg_name {ATHENA:CSRMERRS} \
-reg_name {ATHENA:CSRMERRT0} \
-reg_name {ATHENA:CSRMERRT1} \
-reg_name {ATHENA:CSRMERRV} \
-reset 0
See Also
• mss_read_register
• mss_write_register
• mss_export_register
4.26 mss_read_register
Description
This tcl command reads all selected registers by their register names and displays the values. The values are in
hexadecimal format.
Arguments
reg_name string This is an optional argument, that specifies the name of the
register according to the hierarchy seen in the UI separated by
colon.
axiQos integer This is an optional parameter that specifies the value of the
attribute QoS on Axi interface.
axiCache integer This is an optional parameter that specifies the value of the
attribute Cache on Axi interface.
axiProt integer This is an optional parameter that specifies the value of the
attribute Protocol on Axi interface.
axiLock integer This is an optional parameter that specifies the value of the
attribute Lock on Axi interface.
Error Codes
Supported Families
PolarFire SoC
Example
Read register with parameters. Read with {ATHENA:CSRMAIN} and {ATHENA:CSRMERRS} registers:
mss_read_register \
-reg_name {ATHENA:CSRMAIN} \
-reg_name {ATHENA:CSRMERRS}
Register read without parameters (reads all the selected registers that are added using mss_add_register command):
mss_read_register
See Also
• mss_write_register
• mss_export_register
• mss_add_register
4.27 mss_write_register
Description
This tcl command writes value to the selected registers.
If there is a conflict in the values where full register write values and also field values of the same register, then a full
register write is executed and field write will be ignored.
Arguments
axiQos integer This is an optional parameter that specifies the value of the
attribute QoS on Axi interface.
axiCache integer This is an optional parameter that specifies the value of the
attribute Cache on Axi interface.
axiProt integer This is an optional parameter that specifies the value of the
attribute Protocol on Axi interface.
axiLock integer This is an optional parameter that specifies the value of the
attribute Lock on Axi interface.
Error Codes
None register is not found in the valid list provided in pfsoc_regmap.htm file.
Supported Families
PolarFire SoC
Example
This example writes the values into the registers.
mss_write_register \
-reg_name {MMUART0_LO:RBR} -value {0x123} \
-reg_name {MMUART0_LO:IER} -value {0xFFFFFFFF} \
-reg_name {MMUART0_LO:IIR:IIR} -value {0x3}
See Also
• mss_read_register
• mss_export_register
• mss_add_register
4.28 mss_import_register
Description
This Tcl command imports the register list from a *.csv file generated by register export operation.
mss_import_register \
-file_name {absolute or relative path to the *.csv file} \
[-deviceName "device name"]
Arguments
deviceName string Specify the device name. This parameter is optional, if only one
device is available in the current configuration.
Error Codes
None Register Access: file specified for import must have .csv extension.
Supported Families
PolarFire SoC
Example
This example imports the register list from the {./MssRegisters_SmartDebug.csv} file.
See Also
• mss_add_register
• mss_read_register
• mss_write_register
4.29 mss_export_register
Description
This command reads the selected registers by mss_add_register command and save the content to a *.csv file.
Arguments
...........continued
Parameter Type Description
all none This is an optional parameter that is used to export all registers
shown in the hierarchy.
Error Codes
None Register Access: file specified for Export must have .csv extension.
None Cannot export register information to the file: List of selected registers is
empty.
None Parameter 'param_name' is not defined. Valid command formatting is
'mss_export_register [-deviceName "device name"] [-file_name "File Name"]
[-all "TRUE | FALSE"]'.
Supported Families
PolarFire SoC
Example
This example exports all mss registers into {./mss_exp.csv} file.
See Also
• mss_add_register
• mss_read_register
• mss_write_register
4.30 new_project
Description
This Tcl command creates a SmartDebug project that enables the user to debug the design. Either DDC can be used
to create a project or construct automatically with DDC.
Arguments
name string Specifiy name of the new project. This parameter is optional. This
parameter is optional. If this option is omitted, the tool creates a
new project with 'untitled_project' name.
import_ddc string Specifiy the path to the DDC(Design Debug Data Container) file
exported from Libero to be imported. Set empty parameter value
if -auto_construct is 1.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
Example
Create new project using Standalone SmartDebug:
See Also
• import_ddc_file
4.31 open_project
Description
This Tcl command opens an existing SmartDebug project (*.dprj).
open_project -project {relative or absolute path and name of the project file}
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
Example
This command opens the 'SDPrj.dprj' project from the SDProject directory:
See Also
• new_project
4.32 optimize_dfe
Description
This Tcl command supports the Optimize DFE (decision feedback equalizer) feature in SmartDebug.
Arguments
dfe_algorithm script This command executes Dfe Algorithm with type of dfe algorithm
and lanes as input. Algorithm selection has two options:
software_based -executes DfeSs.tcl script xcvr_based -executes
internal Dfe Auto Calibration. This argument is mandatory.
Error Codes
Supported Families
PolarFire
PolarFire SoC*
Example
This example oftimizes dfe for lane "Q2_LANE0" using software_based algorithm.
This example oftimizes dfe for lane "Q2_LANE0" using xcvr_based algorithm.
This example oftimizes dfe for lane "Q2_LANE0" and “Q0_LANE0” using xcvr_based algorithm.
4.33 optimize_receiver
Description
This tcl command allows you to optimize the DFE(decision feedback equalizer) coefficients and/or CTLE(continuous
time linear equalizer) settings for the selected lanes, depending on receiver mode. For CDR mode receivers, CTLE
settings can be optimized. For DFE mode receivers, CTLE settings and DFE coefficients can be optimized.
Note:
Note: This feature is available for MPF300T, MPF100T, MPF200T, and MPF500T devices.
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example optimizes receiver for the "Q0_LANE0" lane:
See Also
• optimize_dfe
4.34 pcie_config_space
Description
This Tcl command displays the value of the entered parameter in the SmartDebug log window and returns the
register:field value to the Tcl.
Arguments
paramNamelist string Parameter name to read from the device. This parameter is
optional.
Error Codes
...........continued
Error Code Description
None Parameter 'pcie_block_name' is not defined. Valid command formatting
is'pcie_config_space [-deviceName "device name"] -pcie_logical_name
"Pcie Logical Name" [-paramNameList "[Pcie Parameter Name]+"] [-
allparams "TRUE | FALSE"]'.
None Parameter 'param_name' is not defined. Valid command formatting
is'pcie_config_space [-deviceName "device name"] -pcie_logical_name
"Pcie Logical Name" [-paramNameList "[Pcie Parameter Name]+"] [-
allparams "TRUE | FALSE"]'.
Supported Families
PolarFire
PolarFire SoC
Example
Output Display in SmartDebug window: 512 bytes
Return value to the tcl script: 0x2
See Also
• pcie_ltssm_status
4.35 pcie_ltssm_status
Description
This Tcl command displays the current LTSSM state from the PLDA core in the SmartDebug log window and returns
the register:field value to the Tcl.
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
Output Display in SmartDebug window: Configuration.Linkwidth.start Return value to the tcl script:
See Also
• pcie_config_space
4.36 plot_eye
Description
This Tcl command is used to plot eye and export eye plots.
Arguments
file string Specify the path to the location where the file is to be exported.
Error Codes
None Plot Eye: Lane Name not found in the list of assigned physical lanes in
Libero.Provide the correct lane name.
None Parameter 'lane' has illegal value.
Supported Families
PolarFire
PolarFire SoC
Example
This example plots eye for lane {Q2_LANE0} and saves it into {./export.txt} file.
4.37 prbs_test
Description
This Tcl command used in PRBS test to start, stop, reset the error counter and read the error counter value. PRBS
data stream patterns are generated and checked by the internal SERDES block. These are used to self-test signal
integrity of the device. You can switch the device through several predefined patterns.
Note:
prbs_test is renamed as smartbert_test in G5.
Arguments
...........continued
Parameter Type Description
read_counter none Reads and prints the error count value.
serdes integer Serdes block number. Must be between 0 and 4 and varies
between dies.
near none Corresponds to near-end (on-die) option for prbs test. Not
specifying implies off-die.
pattern string The pattern sequence to use for PRBS test. It can be one of the
following: prbs7, prbs11, prbs23, or prbs31.
Error Codes
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
The following example starts PRBS test with the "prbs11" pattern:
See Also
• smartbert_test
• loopback_mode
• loopback_test
4.38 program_probe_insertion
Description
This Tcl command runs the probe insertion flow on the selected nets. This triggers Place and Route in incremental
mode, and the selected probe nets are routed to the selected package pin. After incremental Place and Route, Libero
automatically reprograms the device with the added probes. The log window shows the status of the Probe Insertion
run.
Note:
Probe Insertion feature disabled in the SmartDebug Demo and Standalone modes.
program_probe_insertion
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example runs the probe insertion flow:
program_probe_insertion
See Also
• add_probe_insertion_point
• remove_probe_insertion_point
4.39 read_active_probe
Description
This Tcl command reads active probe values from the device. The target probe points are selected by the
select_active_probe command.
Note:
When the user tries to read at least one signal from the bus/group, the complete bus or group is read. The user is
presented with the latest value for all the signals in the bus/group.
Arguments
name string Instead of all probes, read only the probes specified. The probe
name should be prefixed with bus or group name if the probe is
in the bus or group.
group_name string Instead of all probes, reads only the specified buses or groups
specified here.
value_type string Optional parameter, used when the read value is stored into a
variable as a string.
b = binary
h = hex
file string Optional. If specified, redirects output with probe point values
read from the device to the specified file.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example reads active probes of {group1}.
See Also
• select_active_probe
• write_active_probe
• delete_active_probe
4.40 read_envm_memory
Description
This is a PolarFire SoC specific tcl command to read the ENVM memory from the device. It reads from the client
configured in Libero or a page range can be given as inputs. The output will be in a matrix form displayed byte-wise
and several rows with page number information.
Client name is optional in the command. However, if client name is specified, then it is validated against its start page
and end page from the design.
Arguments
fileName string Specifies the file name path where the data will be saved.
Error Codes
Supported Families
PolarFire SoC*
Example
This example reads eNVM memory from 0 to 205 pages.
4.41 read_id_code
Description
This Tcl command reads the ID code of a device. Each device has a unique ID, thereby executing this command
returns a hexadecimal value.
Note:
Being able to read the IDCODE is an indication that the JTAG interface is working correctly.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following command reads the IDCODE from the current configuration:
read_id_code
See Also
• set_debug_device
• read_device_status
4.42 read_device_status
Description
This Tcl command displays a summary of the device. Device status like ID code, design information, digest
information, security and programmer information can be know using this command. Returns a log that can be
saved to a file or printed.
Arguments
file string Specify path and the name of file where device status will be
saved. This parameter is optional.
Error Codes
None Unable to read device information for the selected device: IDCode verify
failed..
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example saves the details of the device in log_file:
See Also
• read_id_code
4.43 read_lsram
Description
This tcl command reads a specified block of large SRAM from the device.
Arguments
logicalBlockName string Specifies the name for the user defined memory block.
port string Specifies the port for the memory block selected. Can be either
Port A or Port B.
fileName string Optional; specifies the output file name for the data read from the
device.
file string Optional; specifies the output file name for the data read from the
device.
Error Codes
None LSRAM block cannot be read. Use phyical block option to read.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
Reads the LSRAM Block Fabric_Logic_0/U2/F_0_F0_U1/ramtmp_ramtmp_0_0/INST_RAM1K20_IP from the
PolarFire device and writes it to the file output.txt.
read_lsram \
-name {Fabric_Logic_0/U2/F_0_F0_U1/ramtmp_ramtmp_0_0/INST_RAM1K20_IP} \
–fileName {output.txt}
This example reads the uSRAM logical Block {Fabric_Logic_0/U3/F_0_F0_U1} from {Port A}.
See Also
• write_lsram
4.44 read_usram
Description
This tcl command reads a uSRAM block from the device.
Phisical block
read_usram -name {RAMS_LSRAM_URAM_0/PF_DPSRAM_C0_0/PF_DPSRAM_C0_0/
PF_DPSRAM_C0_PF_DPSRAM_C0_0_PF_DPSRAM_R0C0/INST_RAM1K20_IP}
Logical block
read_usram -logicalBlockName {RAMS_LSRAM_URAM_0/PF_URAM_C0_0/PF_URAM_C0_0} -port {Port A}
Arguments
logicalBlockName string Specifies the name of the user defined memory block.
port string Specifies the port of the memory block selected. Can be either
Port A or Port B.
file string This parametr is ptional. Specifies the output file name for the
data read from the device.
fileName string This parametr is ptional. Specifies the output file name for the
data read from the device.
Error Codes
None Error reading USRAM block value from the device: Target block not found in
debug file.
...........continued
Error Code Description
None Parameter 'file' has illegal value.
None LSRAM block cannot be read. Use phyical block option to read.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
Reads the uSRAM Block Fabric_Logic_0/U3/F_0_F0_U1/ramtmp_ramtmp_0_0/INST_RAM64x12_IP from the
PolarFire device and writes it to the file sram_block_output.txt.
read_usram \
-name {Fabric_Logic_0/U3/F_0_F0_U1/ramtmp_ramtmp_0_0/INST_RAM64x12_IP} \
–fileName {output.txt}
This example reads the uSRAM logical Block {Fabric_Logic_0/U3/F_0_F0_U1} from {Port A}.
See Also
• write_usram
4.45 read_snvm_memory
Description
This Tcl command reads client or page(s) in the sNVM (Secure Non volatile memory) memory from the device and
returns a plain text (status and data of page).
Note:
If you have more than one client configured in Libero and use a client name with inappropriate -startpage, -endpage
or -uskKey option values, then the command will fail.
Arguments
uskKey hexadecimal User Secret Key security key configured for the client in
hexadecimal format
Error Codes
None The start page value is incorrect for the client entered.
None The end page value is incorrect for the client entered.
None Invalid usk key specified. Input should be either '0' or 24 hexadecimal
characters.
None Parameter 'param_name' is not defined. Valid command formatting is
'read_snvm_memory [-deviceName "device name"] [-client "client name"]
-startpage "integer value" -endpage "integer value" [-fileName "snvm data
file name"] -uskKey "usk key"'.
None Parameter 'uskKey' has illegal value.
...........continued
Error Code Description
None endpage: Invalid argument value: 'value' (expecting integer value).
Supported Families
PolarFire
PolarFire SoC
Example
Read "0" startpages and "2" endpages from sNMV memeory from the device and save into svnm.txt file:
4.46 read_uprom_memory
Description
This Tcl command reads a uPROM memory block from the device.
Note:
If you have more than one clients configured in Libero and If you use client name with inappropriate -startaddress
and -words then the command will fail.
Arguments
startaddress hexadecimal Specifies the start address of the uPROM memory block.
Error Codes
None Invalid argument value: ' -word {1.0} ' (expecting integer value).
Supported Families
PolarFire
PolarFire SoC
Example
1. This example reads 10 9-bit words from uPROM memory '0xA' address :
2. This example reads 9-bit words from uPROM memory '0xA' address :
4.47 read_flash_memory
Description
The command reads information from the NVM(Non volatile memory) modules. There are two types of information
that can be read:
• Page Status – includes ECC1, ECC2, status, write count, access protection.
• Page Data
Arguments
startpage integer Startpage is for page range. The value must be an integer. You
must specify a -endpage and - block along with this argument.
endpage integer Endpage is for page range. The value must be an integer. You
must specify a -startpage and -block along with this argument.
access string Specifies what eNVM information to check: page status, data or
both. By default "all".
Error Codes
Supported Families
SmartFusion2
IGLOO2*
RTG4*
Example
This example checks eNVM data information from 0 to 2 pages.
See Also
• check_flash_memory
4.48 record_actions
Description
This sequence can be used to access registers from an external processor to perform the same actions done in
SmartDebug, to provide the register sequence for each of the actions performed in the XCVR Debug Window.
Note:
This command is valid only when the XCVR block is presented in Libero Design.
Arguments
file string Specify path and the name of output *.txt file. This parameter is
mandatory when stop_recording is specified.
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example starts recording, then stops it and saves the recorded data in the {./actions} file.
record_actions -start_recording
record_actions -stop_recording -file {./actions.txt}
4.49 remove_from_probe_group
Description
This Tcl command removes the specified probe points from the group. That is, the removed probe points won’t be
associated with any probe group.
This command will fail if the specified value of the parameter is incorrect.
Note:
Probes cannot be removed from the bus.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PoarlFire SoC
Example
This example removes DFN1_0_Q:DFN1_0/U0:Q instace from new_group.
See Also
• create_probe_group
• add_to_probe_group
• move_to_probe_group
4.50 remove_probe_insertion_point
Description
This Tcl command removes probe point from probe insertion list. The command will fail if the net name or driver are
not specified or are incorrect.
Notes:
• Deleting probes from the probes list without clicking 'Run' does not automatically remove the probes from the
design.
• Probe Insertion feature disabled in the SmartDebug Demo and Standalone modes.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example removes probe from the probe insertion list:
See Also
• add_probe_insertion_point
• program_probe_insertion
4.51 rescan_programmer
Description
This Tcl command rescans for programmer connected to the host via the USB port.
Notes:
• This command does not have any arguments.
• In the demo mode, this command returns "simulation".
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PoarlFire SoC
Example
This example rescans the programmer connection.
rescan_programmer
4.52 run_frequency_monitor
Description
This tcl command calculates the frequency of any signal in the design that can be assigned to Live Probe channel A
and displays the Frequency. The Frequency unit of measurement is in Megahertz (MHz).
It is run after setting the live probe signal to channel A.
Arguments
signal string Specifies the signal name assigned to Live Probe channel A.
This parameter must be specified with the -time parameter.
time integer or Specifies the duration in seconds to run frequency monitor. The
double value can be 0.1, 1, 5, 8, or 10.
Error Codes
None Invalid monitor time specified. The values can be either 0.1, 1, 5, 8 or 10.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
set_live_probe -probeA {Q_c:DFN1_0:Q} -probeB {}
run_frequency_monitor -signal {Q_c:DFN1_0:Q} -time {0.1}
See Also
• fhb_control
• set_live_probe
• event_counter
4.53 save_active_probe_list
Description
This Tcl command saves the list of active probes to a file.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example saves the active probe list in “./my_probes.txt” file.
See Also
• delete_active_probe
• load_active_probe_list
• read_active_probe
• select_active_probe
• write_active_probe
4.54 save_live_probe_list
Description
This Tcl command saves the list of live probes to a file(*.txt).
Arguments
file string Specify path and the name of output file(*.txt). This parameter is
mandatory.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example saves live probes list to live_probe_list.txt file:
4.55 scan_ecc_memories
Description
This Tcl command scans and reports any errors detected in the PolarFire, PolarFire SoC, RTG4 and RTPF TPSRAM
blocks that have ECC enabled.
Arguments
fileName string Specify the name of the file where output is redirected. This
argument is mandatory.
Error Codes
Supported Families
PolarFire
PolarFire SoC
RTG4
Example
This example scans TPSRAM blocks and saves the report into the {./output.txt} file. Log is provided with names of
logical and physical blocks if corruption in data is detected. If no corruption is detected, then an appropriate message
is provided.
4.56 select_active_probe
Description
This Tcl command manages the current selection of active probe points to be used by active probe READ operations.
This command extends or replaces your current selection with the probe points found using the search pattern.
Arguments
reset boolean This optional parameter resets all previously selected probe
points. If name is not specified, empties out current selection.
Error Codes
None Cannot select active probe: Specified probe point(s) not found.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
Select_active_probe -name out[5]:out[5]:Q
Select_active_probe -name out.out[1]:out[1]:Q \
-name out.out[3]:out[3]:Q \
-name out.out[5]:out[5]:Q
See Also
• write_active_probe
• read_active_probe
4.57 serdes_lane_reset
Description
This Tcl command resets lane in EPCS and PCI Lane modes. The result is shown in the log window/console.
Arguments
Error Codes
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
This exmaple resets Lane 0, for specified SERDES block:
See Also
• serdes_read_regster
• serdes_write_regster
4.58 serdes_read_register
Description
This tcl command reads the SERDES register value and displays the result in the log window/console.
Arguments
serdes integer Specify SERDES block number. Must be between 0 and and
varies between dies.
Error Codes
...........continued
Error Code Description
None serdes: Invalid argument value: '' (expecting integer value).
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
This example reads {SYSTEM_SER_PLL_CONFIG_HIGH} register value of the SERDES 0.
See Also
• serdes_lane_reset
• serdes_write_register
4.59 serdes_write_register
Description
This tcl command writes the value to the SERDES register. Displays the result in the log window/console.
Arguments
serdes integer SERDES block number. Must be between 0 and 5 and varies
between dies.
...........continued
Parameter Type Description
lane integer SERDES lane number. Must be between 0 and 3.
The lane number should be specified when the lane register is
used. Otherwise, the command will fail.
When the lane number is specified along with the SYSTEM or
PCIe register, the command will fail with an error message, as
the lane is not applicable to them.
Error Codes
None SERDES lane number should not be specified for system register.
Supported Families
SmartFusion2
RTG4
IGLOO2
Example
This example writes {0x5533} value to the {SYSTEM_SER_PLL_CONFIG_HIGH} SERDES register:
serdes_write_register -serdes 0 \
-name {SYSTEM_SER_PLL_CONFIG_HIGH} \
-value {0x5533}
See Also
• serdes_lane_reset
• serdes_read_register
4.60 set_debug_device
Description
Sets the device name in the tool.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example sets MPF250T_ES as the device name:
4.61 set_debug_programmer
Description
Identifies the programmer you want to use for debugging (if you have more than one).
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example selects the programmer 10841:
4.62 set_live_probe
Description
This Tcl command assigns channels A and/or B to the specified probe point(s). At least one probe point must be
specified. Only exact probe name is allowed (i.e., no search pattern that may return multiple points).
Note:
For RTG4, only one probe channel (Probe Read Data Pin) is available: A
Arguments
probeA string Specifies target probe point for the probe channel A. This
parameter is optional.
probeB string Specifies target probe point for the probe channel B. This
parameter is optional.
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
RTPF*
Exception
• The array must be programmed and active.
• Active probe read or write operation will affect current settings of Live probe since they use the same probe
circuitry inside the device.
• Setting only one Live probe channel affects the other one, so if both channels need to be set, they must be set
from the same call to set_live_probe.
• Security locks may disable this function.
• To be available for Live probe, ProbeA and ProbeB I/Os must be reserved for Live probe respectively.
Example
The following example sets Live probe channel A to the probe point A12 on device sf2.
See Also
• unset_live_probe
4.63 signal_integrity_export
Description
This Tcl command exports the current selected parameter options and other physical information for the selected
lane/all lanes instance to an external PDC file.
The exported content will be in the form of two "set_io" commands, one for the TXP port and one for the RXP port of
the selected lane instance.
Arguments
lane string Specifies the physical location of the lane. You must specify
either 'lane' or 'all_lanes' parameter.
all_lanes none Specifies all physical location of the lanes. You must specify
either 'lane' or 'all_lanes' parameter.
Error Codes
None Signal Integrity: Must not specify both '-lane' and '-all_lanes' command
arguments.
Supported Families
PolarFire
PolarFire SoC
Example
The following example exports the current selected parameter options and other physical information for the
"Q0_LANE0" lane instance to an ./SI_Q0LANE0.pdc:
See Also
• signal_integrity_import
• signal_integrity_write
• load_SI_design_defaults
4.64 signal_integrity_import
Description
This Tcl command imports Signal Integrity parameter options and other physical information for the selected lane/all
lanes from an external PDC file.
Arguments
lane string Specifies the physical location of the lane. Must specify either
'-lane' or '-all_lanes' command arguments.
all_lanes none Specifies all physical location of the lanes. Must specify either
'-lane' or '-all_lanes' command arguments.
Error Codes
...........continued
Error Code Description
None Signal Integrity: Must specify '-pdc_file_name.
None Signal Integrity: Import from *.pdc failed. Signal Integrity Constraints of lane
not available in the file.
None Signal Integrity: Unable to Import from *.pdc file.
Supported Families
PolarFire
PolarFire SoC
Example
The following example imports Signal Integrity parameter options and other physical information for the "Q0_LANE0"
lane from ./SI_Q0LANE0.pdc:
See Also
• signal_integrity_export
• signal_integrity_write
• load_SI_design_defaults
4.65 signal_integrity_write
Description
This Tcl command writes parameter to a specified lane.
signal_integrity_write \
[-deviceName "device name"] \
[-lane "Lane Instance Name"] \
[-TX_EMPHASIS_AMPLITUDE "TX Transmit Emphasis and Amplitude"] \
[-TX_IMPEDANCE "TX Impedance"] \
[-TX_POLARITY "TX Impedance"] \
[-TX_TRANSMIT_COMMON_MODE_ADJUSTMENT "TX Transmit Common Mode Adjust"] \
[-RX_TERMINATION "RX Termination"] \
[-RX_LOSS_OF_SIGNAL_DETECTOR_LOW "RX Loss of Signal Detector Low "] \
[-RX_LOSS_OF_SIGNAL_DETECTOR_HIGH "RX Loss of Signal Detector High "] \
[-RX_PN_BOARD_CONNECTION "RX Board Connection "] \
[-RX_POLARITY "Polarity RX "] \
[-RX_CTLE "RX CTLE"] \
[-RX_INSERTION_LOSS "RX Insertion Loss"] \
[-RX_CDR_GAIN "RX CDR Gain"]
Arguments
RX_INSERTION_LOSS string Specifies RX Insertion Loss. Possible values are: 6.5dB, 17.0bdB
and 25.0dB.
RX_LOSS_OF_SIGNAL_DETE string/ integer Specifies RX Loss Signal Detector value. Possible values are:
CTOR_LOW Off, PCIE, SATA, BMR and 1, 2, 3, 4, 5, 6 and 7.
RX_LOSS_OF_SIGNAL_DETE string/ integer Specifies RX Loss Signal Detector value. Possible values are:
CTOR_HIGH Off, PCIE, SATA, BMR and 1, 2, 3, 4, 5, 6 and 7.
Error Codes
...........continued
Error Code Description
None Parameter 'RX_CDR_GAIN' has illegal value.
Supported Families
PolarFire
PolarFire SoC
Example
Write signal integrity on "Q2_LANE0" lane with the possible values of parameters:
signal_integrity_write \
-lane {Q2_LANE0} \
-TX_EMPHASIS_AMPLITUDE {400mV_with_-3.5dB} \
-TX_IMPEDANCE {100} \
-TX_TRANSMIT_COMMON_MODE_ADJUSTMENT {50} \
-RX_TERMINATION {100} \
-RX_LOSS_OF_SIGNAL_DETECTOR_LOW {1} \
-RX_LOSS_OF_SIGNAL_DETECTOR_HIGH {3} \
-RX_PN_BOARD_CONNECTION {AC_COUPLED_WITH_EXT_CAP} \
-RX_POLARITY {Normal} \
-RX_CTLE {No_Peak_+2.8dB} \
-RX_INSERTION_LOSS {6.5dB} \
-RX_CDR_GAIN {High}
See Also
• signal_integrity_import
• signal_integrity_export
• load_SI_design_defaults
4.66 smartbert_test
Description
This Tcl command is used for the following:
• Start a Smart BERT test - Start a test with a specified PRBS patterns on a specified SmartBERT lane.
• Stop a Smart BERT test - Stop SmartBERT/PRBS test on a specified lane.
• Reset error count - Reset counter of a lane during selected pattern test.
• Inject error - Inject error into a SmartBERT IP lane.
Arguments
pattern string Specify the pattern type of the Smart BERT test. Valid values
of pattern type are: PRBS7, PRBS9, PRBS15, PRBS23 and
PRBS31.
reset_counter none Reset lane error counter on hardware and cumulative error count
on the UI.
inject_error boolean Specifies to inject error into a SmartBERT IP. Valid values are:
TRUE or FALSE.
Error Codes
None SmartBert test: Lane Name not found in the list of assigned physical lanes in
Libero. Provide the correct lane name.
Supported Families
PolarFire
PolarFire SoC
Example
The following example starts Smart BERT test with a "prbs7" PRBS patterns on a "Q0_LANE0" SmartBERT lane:
The following example resets counter of a "Q0_LANE0" lane during selected pattern test.
See Also
• prbs_test
• loopback_mode
• loopback_test
4.67 static_pattern_transmit
Description
This Tcl command starts and stops a Static Pattern Transmit on selected lanes.
Arguments
Error Codes
None Static Pattern Transmit: Transceiver physical Lane Name must be specified.
...........continued
Error Code Description
None Static Pattern Transmit: Must specify pattern type argument.
None Static Pattern Transmit: Lane Name not found in the list of assigned physical
lanes in Libero.Provide the correct lane name.
None Static Pattern Transmit: Pattern Length exceeds the expected size.
Supported Families
PolarFire
PolarFire SoC
Example
The following examples starts/stops fixed/maxrunlength Static Pattern transmit on "Q0_LANE0" /"Q0_LANE1" lane:
The following examples starts/stops fcustom Static Pattern transmit on "Q2_LANE2" lane with "1010111" user pattern
value:
4.68 transceiver_lane_reset
Description
This tcl command resets the transceiver lane.
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This tcl example resets the lane {Q0_LANE0}.
4.69 ungroup
Description
This Tcl command disassociates the probes as a group.
Arguments
Error Codes
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
Ungroup 'my_group' probe groups:
See Also
• create_probe_group
• add_to_probe_group
4.70 unset_live_probe
Description
This Tcl command discontinues the debug function and clears both live probe channels (Channel A and Channel B).
An all zeros value is shown for both channels in the oscilloscope.
Note:
For RTG4, only one probe channel (Probe Read Data Pin) is available.
Arguments
probeA boolean Specify 1 or TRUE for unset live probe on Channel A, otherwise
specify 0 or FALSE.
probeB boolean Specify 1 or TRUE for unset live probe on Channel B, otherwise
specify 0 or FALSE.
Error Codes
...........continued
Error Code Description
None probeA: Invalid argument value: (expecting TRUE, 1, true, FALSE, 0 or
false).
None probeB: Invalid argument value: (expecting TRUE, 1, true, FALSE, 0 or
false).
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
The following example unsets both live probe channels (Channel A and Channel B) from the device sf2:
See Also
• set_live_probe
4.71 update_fp6_programmers
Description
This Tcl command updates all the FlashPro6 programmers that require update. This command takes no parameters.
To execute the Tcl Command in Libero SoC, add the command before run_tool. To execute the Tcl command in
FlashPro Express tool or SmartDebug tool, add the Tcl command before run_selected_actions.
update_fp6_programmers
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example updates all the FlashPro6 programmers that require update.
update_fp6_programmers
4.72 write_active_probe
Description
This Tcl command sets the target probe point on the device to the specified value. The target probe point name must
be specified.
Arguments
name string Specifies the name for the target probe point. Cannot be a
search pattern.
group_name string Specify the group or bus name to write to complete group or bus.
group_value string Specify the value for the complete group or bus.
Hex-value format : "<size>'h<value>" Binary-value format:
"<size>'b<value>"
Error Codes
...........continued
Error Code Description
None Parameter 'name' has illegal value.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFire SoC
Example
This example writes to a single probe.
See Also
• select_active_probe
• read_active_probe
• save_active_probe_list
• load_active_probe_list
4.73 write_lsram
Description
This tcl command writes a word into the specified large TPSRAM location.
TPSRAM block has aspect ratio of 512x40 (ECC disabled) and 512x33 (ECC enabled). SmartDebug enhanced the
physical block view to read and write as 40-bit and 33-bit data. The write value is more than the size of integer and
hence provided a new parameter -tpsramValue to accommodate the changes
Write onto TPSRAM physical block → 40-bit wide or 33-bit wide for PF and 18-bit wide or 36-bit wide for RTG4
Physical block
write_lsram [-deviceName "device name"] \
-name {physical block name} \
-offset {offset value} \
-value {integer value} \
[-tpsramValue "TPSRAM physical block word value"]
Logical block
write_lsram [-deviceName "device name"] \
-logicalBlockName {block name} \
-port {port name} \
-offset {offset value} \
-logicalValue {hexadecimal value}
Arguments
logicalBlockName string Specifies the name of the user defined memory block.
port string Specifies the port of the memory block selected. Can be either
Port A or Port B.
offset integer Offset (address) of the target word within the memory block.
Error Codes
...........continued
Error Code Description
None Parameter 'name' has illegal value
None LSRAM block cannot be read. Use phyical block option to read.
None Parameter 'file' has illegal value Parameter 'tpsramValue' has illegal value.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFie SoC
Example
This example writes a value of 69905 to the physical block of device PolarFire in the "PF_DPSRAM_C0_0/
INST_RAM1K20_IP" with an offset of 3:
write_lsram -name {PF_DPSRAM_C0_0/INST_RAM1K20_IP} \
-offset 3 -value 69905
See Also
• read_lsram
4.74 write_usram
Description
This tcl command writes a 12-bit word into the specified uSRAM location.
Physical block
write_usram –name block_name \
–offset offset_value \
–value integer_value
Logical block
write_usram -logicalBlockName block_name \
-port port_name \
-offset offset_value \
-logicalValue hexadecimal_value
Arguments
logicalBlockName string Specifies the name of the user defined memory block.
port string Specifies the port of the memory block selected. Can be either
Port A or Port B.
offset integer Offset (address) of the target word within the memory block.
Error Codes
...........continued
Error Code Description
None Active probe value must be specified.
None LSRAM block word cannot be written. Use phyical block word to write.
Supported Families
PolarFire
SmartFusion2
RTG4
IGLOO2
PolarFie SoC
Example
Writes a value of 0x291 to the device PolarFire in the Fabric_Logic_0/U3/F_0_F0_U1/ramtmp_ramtmp_0_0/
INST_RAM64x12_IP with an offset of 0.
write_lsram \
-name {Fabric_Logic_0/U3/F_0_F0_U1/ramtmp_ramtmp_0_0/INST_RAM64x12_IP} \
-offset 0 \
-value 291
See Also
• read_usram
4.75 xcvr_add_register
Description
This Tcl command adds transceiver registers details to the SmartDebug register access interface.
Arguments
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
This example adds all the registers under the {SERDES1} component.
See Also
• xcvr_export_register
• xcvr_read_register
• xcvr_write_register
4.76 xcvr_export_register
Description
This Tcl command exports previously added transceiver registers details to a *.csv file.
Arguments
all none Specify to export all transceiver registers details to *.csv file.
Error Codes
None Register Access: file specified for Export must have .csv extension.
Supported Families
PolarFire
PolarFire SoC
Example
Export previously added transceiver registers details to a .csv file:
See Also
• xcvr_add_register
• xcvr_read_register
• xcvr_write_register
4.77 xcvr_import_register
Description
This Tcl command imports exported transceiver registers details from a *.csv file.
xcvr_import_register \
-file_name {absolute or relative path to the *.csv file name}
Arguments
Error Codes
None Register Access: file specified for Import must have .csv extension.
Supported Families
PolarFire
PolarFire SoC
Example
Import previously exported transceiver registers details from a .csv file:
4.78 xcvr_read_register
Description
This Tcl command reads SCB registers and their field values. Read value is in hex format. This command is used in
SmartDebug Signal Integrity.
Arguments
inst_name string Specify the lane instance name used in the design.
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
Reading pcslane’s 32-bit register LNTV_R0:
See Also
• xcvr_add_register
• xcvr_export_register
• xcvr_write_register
4.79 xcvr_write_register
Description
This Tcl command writes SCB registers and their field values. Write value is in hex format. This command is used in
SmartDebug Signal Integrity.
Arguments
inst_name string Specify the lane instance name used in the design.
Error Codes
Supported Families
PolarFire
PolarFire SoC
Example
Writing pcscmn’s 32-bit register GSSCLK_CTRL
See Also
• xcvr_add_register
• xcvr_export_register
• xcvr_read_register
3. In the Pseudo-static Signal Polling dialog box, choose a value in Polling Setup and click Start Polling.
3. Select the signal from the selection panel and add it to Active Probes tab.
An L in the icon next to the block name indicates that it is a logical block, and a P in the icon indicates that
it is a physical block. A logical block displays three fields in the Memory Blocks tab: User Design Memory
Blocks, Data Width, and Port Used. A physical block displays two fields in the Memory Blocks tab: User
Design Memory Block and Data Width.
3. Add the block in one of the following ways:
• Click Select.
• Right-click and choose Add.
• Drag the block to the Memory Blocks tab.
4. Click Read Block to read the content of the block.
An L in the icon next to the block name indicates that it is a logical block, and a P in the icon indicates that
it is a physical block. A logical block displays three fields in the Memory Blocks tab: User Design Memory
Blocks, Data Width, and Port Used. A physical block displays two fields in the Memory Blocks tab: User
Design Memory Block and Data Width.
4. Add the memory block in one of the following ways:
• Click Select.
• Right-click and choose Add.
• Drag the block to the Memory Blocks tab.
5. Click Read Block. The memory content matrix appears.
6. Select the memory cell value that you want to change and update the value.
7. Click Write Block to write to the device.
found in the Debug TRANSCEIVER dialog box under Configuration Report. For more information, see Debug
Transceiver.
Figure 5-1. Debug Transceiver
2. Run the SmartBERT Test, with EQ-NEAR END checked or with external loopback connection from Tx to Rx on
selected lanes. This should result in 0 errors in the Cumulative Error Count column. For more information, see
SmartBERT.
For FlashROM:
• compare_flashrom_client
• read_flashrom
• compare_analog_config
• sample_analog_channel
Note: When using the –file parameter, ensure that you use a different file name for each command so you do not
overwrite the report content. If you do not specify the–file option in the Tcl, the output results will be directed to the
FlashPro log window.
3. In the Pseudo-static Signal Polling dialog box, choose a value in Polling Setup and click Start Polling.
An L in the icon next to the block name indicates that it is a logical block, and a P in the icon indicates that
it is a physical block. A logical block displays three fields in the Memory Blocks tab: User Design Memory
Blocks, Data Width, and Port Used. A physical block displays two fields in the Memory Blocks tab: User
Design Memory Block and Data Width.
3. Add the block in one of the following ways:
– Click Select.
– Right-click and choose Add.
– Drag the block to the Memory Blocks tab.
4. Click Read Block to read the content of the block.
An L in the icon next to the block name indicates that it is a logical block, and a P in the icon indicates that
it is a physical block. A logical block displays three fields in the Memory Blocks tab: User Design Memory
Blocks, Data Width, and Port Used. A physical block displays two fields in the Memory Blocks tab: User
Design Memory Block and Data Width.
4. Add the memory block in one of the following ways:
– Click Select.
– Right-click and choose Add.
– Drag the block to the Memory Blocks tab.
5. Click Read Block. The memory content matrix is displayed.
6. Select the memory cell value that you want to change and update the value.
7. Click Write Block to write to the device.
2. Run the PRBS Test, which is a Near End Serial Loopback tests on selected lanes. This should result in 0
errors in the Cumulative Error Count column. See Debug SERDES – PRBS Test.
FlashROM
You can compare the FlashROM content in the device with the data in the PDB file. You can find the PDB in the
<Libero IDE project>/Designer/Impl directory.
5.2.19 How Do I Display Embedded Flash Memory (NVM) Content in the Client Partition?
You must load your PDB into your FlashPro project to view the Embedded Flash Memory content in the Client
partition. To view NVM content in the client partition:
1. Load your PDB into your FlashPro project.
2. Click Inspect Device.
3. Click View Flash Memory Content.
4. Choose a block from the drop-down menu.
5. Select a client.
6. Click Read from Device. The Embedded Flash Memory content from the device appears in the Flash Memory
dialog box.
5.2.20 How Do I Know Whether I Have Embedded Flash Memory (NVM) Corruption?
When Embedded Flash Memory is corrupted, checking Embedded Flash Memory may return with any or all of the
following page status:
• ECC1/ECC2 failure
• Page write count exceeds the 10-year retention threshold
• Page write count is invalid
• Page protection is set illegally (set when it should not be)
See the How do I interpret data in the Flash Memory (NVM) Status Report? topic for details.
If your Embedded Flash Memory is corrupted, you can recover by reprogramming with original design data.
Alternatively, you can ‘zero-out’ the pages by using the Tcl command recover_flash_memory.
5.2.25 What Happens if Invalid Firmware is Loaded into eNVM in SmartFusion2 Devices?
When invalid firmware is loaded into eNVM in SmartFusion2 devices, Cortex-M3 will not be able to boot and issues
reset to MSS continuously. eNVM content using View Flash Memory content will read zeroes in SmartDebug.
To verify that your FlashROM is programmed, read out and view the FlashROM content or perform verification with
the PDB file by selecting the VERIFY or VERIFY_FROM action in FlashPro.
5.2.29 How Do I Interpret Data in the Flash Memory (NVM) Status Report?
The Embedded Flash Memory (NVM) Status Report generated from the FlashPro SmartDebug feature consists of
the page status of each NVM page. For example:
...........continued
Flash Memory Status Info Description
Write Count Check if the page-write count is within the expected range. The expected write
count is greater than or equal to:
6,384 - SmartFusion devices
2,288 - Fusion devices
Note: Write count, if corrupted, cannot be reset to a valid value within the
customer flow. An invalid write count will not prevent the device from being
programmed with the FlashPro tool.
The write count on all good eNVM pages is set to be 2288 instead of 0 in
the manufacturing flow. The starting count of the eNVM is 2288. Each time
the page is programmed or erased the count increments by one. There is a
Threshold that is set to 12288, which equals to 3 * 4096.
Since the threshold can only be set in multiples of 4096 (2^12), to set a 10,000
limit, the Threshold is set to 12288 and the start count is set to 2288; and
thus the eNVM has a 10k write cycle limit. After the write count exceeds the
threshold, the STATUS bit goes to 11 when attempting to erase/program the
page.
6. Revision History
The revision history describes the changes that were implemented in the document. The changes are listed by
revision, starting with the most current publication.
Customer Support
Users of Microchip products can receive assistance through several channels:
• Distributor or Representative
• Local Sales Office
• Embedded Solutions Engineer (ESE)
• Technical Support
Customers should contact their distributor, representative or ESE for support. Local sales offices are also available to
help customers. A listing of sales offices and locations is included in this document.
Technical support is available through the website at: www.microchip.com/support
• Microchip values and aggressively protects its intellectual property rights. Attempts to breach the code
protection features of Microchip product is strictly prohibited and may violate the Digital Millennium Copyright
Act.
• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code
protection does not mean that we are guaranteeing the product is “unbreakable”. Code protection is constantly
evolving. Microchip is committed to continuously improving the code protection features of our products.
Legal Notice
This publication and the information herein may be used only with Microchip products, including to design, test,
and integrate Microchip products with your application. Use of this information in any other manner violates these
terms. Information regarding device applications is provided only for your convenience and may be superseded
by updates. It is your responsibility to ensure that your application meets with your specifications. Contact your
local Microchip sales office for additional support or, obtain additional support at www.microchip.com/en-us/support/
design-help/client-support-services.
THIS INFORMATION IS PROVIDED BY MICROCHIP "AS IS". MICROCHIP MAKES NO REPRESENTATIONS
OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY
OR OTHERWISE, RELATED TO THE INFORMATION INCLUDING BUT NOT LIMITED TO ANY IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE,
OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.
IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR
CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW,
MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE
WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR
THE INFORMATION.
Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees
to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting
from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights
unless otherwise stated.
Trademarks
The Microchip name and logo, the Microchip logo, Adaptec, AnyRate, AVR, AVR logo, AVR Freaks, BesTime,
BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck,
LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB,
OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity,
SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron,
and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.
AgileSwitch, APT, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed
Control, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC
Plus, ProASIC Plus logo, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra,
TimeProvider, TrueTime, WinPath, and ZL are registered trademarks of Microchip Technology Incorporated in the
U.S.A.
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, Augmented Switching,
BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController,
dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, Espresso T1S, EtherGREEN, GridTime,
IdealBridge, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, Inter-Chip Connectivity,
JitterBlocker, Knob-on-Display, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified
logo, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, Omniscient Code Generation, PICDEM,
PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-
ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-I.S., storClad, SQI, SuperSwitcher,
SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY,
ViewSpan, WiperLock, XpressConnect, and ZENA are trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
The Adaptec logo, Frequency on Demand, Silicon Storage Technology, Symmcom, and Trusted Time are registered
trademarks of Microchip Technology Inc. in other countries.
GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip
Technology Inc., in other countries.
All other trademarks mentioned herein are property of their respective companies.
© 2022, Microchip Technology Incorporated and its subsidiaries. All Rights Reserved.
ISBN: 978-1-6683-0016-9