OVP Peripheral Model: National16450
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.
Limitations
No means to simulate errors.
No support for parity.
Simplified baud:rate.
No modem support (DTR etc).
Description
The serial input/output ports are modelled by socket connection which must be attached to a process outside the simulation environment. Note that on start:up, the UART model will block the simulator, pending a connection to the socket.
Connects to a bus by a slave port and optionally to a processor by an interrupt signal.
Licensing
Open Source Apache 2.0
Description
Model of 16550/16450 UART.
Reference
Based upon 16450 features of http://www.ti.com/lit/ds/symlink/pc16550d.pdf
Location
The 16450 peripheral model is located in an Imperas/OVP installation at the VLNV: national.ovpworld.org / peripheral / 16450 / 1.0.
Peripheral Instance Parameters
This model accepts the following parameters:
Table : Peripheral Parameters
Name | Type | Description |
---|
finishOnDisconnect | bool | If set, disconnecting the port will cause the simulation to finish |
log | bool | If specified, serial output will go to simulator log |
portFile | string | If portnum was specified as zero, write the port number to this file when it's known |
outfile | string | Name of file to write device output |
infile | string | Name of file to use for device source |
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 |
uart16550 | bool | Enable 16550 mode (with FIFOS) |
charmode | bool | Puts the telnet server into char mode. Default is line mode |
defaultbaud | uns32 | Set the baud rate multiplier. Default is 9. |
simulatebaud | bool | If non:zero, transmit at the programmed baud rate Default is to transmit without any delay. |
connectnonblocking | bool | If set, simulation can begin before the connection is made |
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 |
---|
intOut | output | F (False) | Interrupt output. |
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 | 0x8 | T (True) | Byte:wide access to control and status registers. |
Table 3: Bus Slave Port: bport1 Registers:
Name | Offset | Width (bits) | Description | R/W | is Volatile |
---|
lsr | 0x5 | 8 | line status | | |
mcr | 0x4 | 8 | modem control | | |
lcr | 0x3 | 8 | line control | | |
iir | 0x2 | 8 | interrupt input | | |
ier | 0x1 | 8 | interrupt enable | | |
tbr | 0x0 | 8 | transmit byte | | |
rbr | 0x0 | 8 | receive byte | | |
msr | 0x6 | 8 | modem status | | |
scr | 0x7 | 8 | status/control | | |