OVP Peripheral Model: SifiveUART
Model Specific Information
This page provides introductory usage information for an Imperas OVP peripheral behavioral model.
The page is split into sections providing specific information for this peripheral,
including any ports for connecting into a platform, registers, other component parts, and configuration options and general information for peripheral modeling with Imperas OVP.
Reference
SiFive Freedom U540-C000 Manual FU540-C000-v1.0.pdf (https://www.sifive.com/documentation/chips/freedom-u540-c000-manual)
Licensing
Open Source Apache 2.0
Description
Sifive UART
Limitations
When simulatebaud parameter is set to true baud rate delays are modeled for receive only, not transmit. Data always sent immediately.
Location
The UART peripheral model is located in an Imperas/OVP installation at the VLNV: sifive.ovpworld.org / peripheral / UART / 1.0.
Peripheral Instance Parameters
This model accepts the following parameters:
Table : Peripheral Parameters
Name | Type | Description |
---|
log | bool | If specified, serial output will go to simulator log |
finishOnDisconnect | bool | If set, disconnecting the port will cause the simulation to finish |
connectnonblocking | bool | If set, simulation can begin before the connection is made |
infile | string | Name of file to use for device source |
outfile | string | Name of file to write device output |
portFile | string | If portnum was specified as zero, write the port number to this file when it's known |
portnum | uns32 | If set, listen on this port. If set to zero, allocate a port from the pool and listen on that. |
console | bool | If specified, port number is ignored, and a console pops up automatically |
refClkFreq | uns32 | Frequency (in hertz) of reference clock rate used in baud rate calculation |
charmode | bool | Description Set to true when the port is used to connect to a Telnet program and character mode is desired rather than the default Telnet line mode. When set to true a Telnet command sequence is sent at startup that configures the Telnet program into character mode. In addition null bytes are stripped from the data received. |
simulatebaud | bool | Description Set to true to simulate baud delay determined by the div register value and reference clock frequency. Set to false to run without delay - next read data is made available immediately upon read of Receiver Buffer Register. Defaults to false |
xchars | uns32 | Width of console in characters |
ychars | uns32 | Height of console in characters |
record | string | Record external events into this file |
replay | string | Replay external events from this file |
Net Ports
This model has the following net ports:
Table 1: Net Ports
Name | Type | Must Be Connected | Description |
---|
reset | input | F (False) | |
intOut | output | F (False) | |
Bus Slave Ports
This model has the following bus slave ports:
Bus Slave Port: bport1
Table 2: Bus Slave Port: bport1
Name | Size (bytes) | Must Be Connected | Description |
---|
bport1 | 0x1c | F (False) | |
Table 3: Bus Slave Port: bport1 Registers:
Name | Offset | Width (bits) | Description | R/W | is Volatile |
---|
ab_ip | 0x14 | 32 | | | |
ab_ie | 0x10 | 32 | | | |
ab_rxctrl | 0xc | 32 | | | |
ab_txctrl | 0x8 | 32 | | | |
ab_rxdata | 0x4 | 32 | | | |
ab_txdata | 0x0 | 32 | | | |
ab_div | 0x18 | 32 | | | |
Platforms that use this peripheral component
Peripheral components can be used in many different platforms, including those developed by Imperas or by other users of OVP. You can use this peripheral in your own platforms.
Table 4: Publicly available platforms using peripheral 'UART'