6.2.2.1. Read and Write Operations via Avalon® Memory-Mapped Interface
The HVIO I/O PLL reconfiguration interface employs a fixed-cycle transaction protocol layered on the Avalon® Memory-Mapped signal set. While the standard Avalon® -MM specification supports variable latencies, this implementation enforces a strict and deterministic cycle timing for all transactions. This design choice ensures simplified timing closure and delivers reliable, predictable operation. Due to the 32-bit data width of the registers, read and write operations to core_avl_readdata[7:0] and core_avl_writedata[7:0] must be split into four separate 8-bit transfers. Each 8-bit segment is transferred sequentially from the least significant to the most significant byte, with each transfer spaced by one clock period.
These timing requirements are unique to the Agilex™ PLL reconfiguration interface and extend beyond the generic Memory-Mapped protocol. They guarantee accurate addressing of internal PLL configuration registers, prevent transaction overlaps by allowing the reconfiguration finite state machine (FSM) to complete cleanly, and maintain a stable, glitch-free PLL output clock throughout the reconfiguration process.
- Start with a 5-Cycle Preamble: After asserting Core_Avl_Write, the Write Data bus must output five consecutive clock cycles of 0x00. These preamble cycles serve as a mandatory initialization phase, allowing the system to align internal buffers and sampling logic. The preamble is not counted as valid payload data.
- Transmit Valid Data for the Next 5 Cycles: Immediately following the preamble, place the actual write payload on the bus for five consecutive clock cycles while keeping Core_Avl_Write asserted. The final byte should remain on the bus for an additional cycle to ensure the data is captured within a well-defined and stable timing window.
- Observe a 5-Cycle Idle Period After Deassertion: When Core_Avl_Write is deasserted, a minimum of five idle clock cycles must pass before starting another write or read operation. This enforced gap allows internal pipelines to flush and prevents bus contention.
- Ignore the First 5 Cycles of Read Data: Upon asserting Core_Avl_Read, the first five clock cycles of data returned are invalid or undefined and must be discarded. This delay accounts for internal memory access latency and guarantees proper synchronization.
- Capture Valid Data Over the Next 5 Cycles: After the initial delay, five consecutive clock cycles of valid read data presents on the bus. The first valid word is always 0x00, followed by the actual requested contents.
- Enforce a 5-Cycle Idle Period After Deassertion: Once Core_Avl_Read is deasserted, maintain at least five idle cycles before initiating any new read or write. This prevents overlapping between transactions and avoids data corruption