Reply To: SpaceWire VC
I looked at this a little bit in the past.
The approach to modeling here requires thinking about the interface side (the handlers), the internal control side (for initialization and other tasks), and the transaction side (here TX and RX). I think in TestCtrl, transactions for TX and RX still need to be able to be dispatched separately – so they need separate transaction interfaces (records).
If you think about a UART, OSVVM created its UART as separate UartTx and UartRx VC. This is one possible implementation. Another is to combine them into a single VC. Since the handlers for UartTx and UartRx are independent, this could be done by encapsulating the current implementation into that bigger VC. This results in having a separate transaction interface for TX and RX.
If we return to SpaceWire, structurally it is similar to combining the UartTx and UartRx into a single VC and removing the extra level of hierarchy (the entity for UartTx and UartRx) as SpaceWire has TX and RX functionality that interact – particularly during system startup.
This is a VC that I am interested in working on and have already done a read of the Spec.