Hey Gray,
Did you figure this out yet?
I didn't respond earlier as I was working on an Arria V GZ testbench to see if I could get the Transceiver Toolkit components working in Modelsim;
http://www.altera.com/support/examples/on-chip-debugging/on-chip-debugging.html There wasn't a GZ example in there, but I've got something working now (Quartus 14.0 + Modelsim-SE 10.3b).
Here's the testbench output, which has messages that cross-reference to the documentation for the registers;
# ===============================================================# Arria V GZ Custom PHY Qsys System Testbench# ===============================================================# # 0: verbosity_pkg.set_verbosity: Setting Verbosity level=4 (VERBOSITY_INFO)# * Deassert reset# gx_link_test_system_tb.dut.avalon_st_adapter_001.timing_adapter_0: The downstream component is backpressuring by deasserting ready, but the upstream component can't be backpressured.# gx_link_test_system_tb.dut.avalon_st_adapter.timing_adapter_0: The downstream component expects valid data, but the upstream component cannot provide it.# # -----------------------------------------------# 1: Wait for the transceivers to initialize.# -----------------------------------------------# # Wait for reconfig busy to deassert# # Wait for 1 us# # -----------------------------------------------# 2: Read the Custom PHY registers.# -----------------------------------------------# # Registers per Ch. 9 Custom PHY IP Core (xcvr_user_guide.pdf)# # Table 9-21: PMA Common Control and Status Registers# (00000088h, 00000001h)# # Table 9-22: Reset Control Registers - Automatic Reset Controller# (00000104h, 00000001h)# (00000108h, 00000003h)# # Reset status:# -> TX is ready.# -> RX is ready.# # Table 9-23: Reset Controls - Manual Mode# (00000110h, 00000000h)# # Table 9-24: PMA Control and Status Registers# (00000184h, 00000000h)# (0000018ch, 00000001h)# (00000190h, 00000000h)# (00000194h, 00000000h)# (00000198h, 00000001h)# (0000019ch, 00000001h)# # Table 9-25: Custom PCS# (00000200h, 00000000h)# (00000204h, 0000003eh)# (00000208h, 00000000h)# (0000020ch, 00000000h)# (00000210h, 00000000h)# (00000214h, 00000000h)# # -----------------------------------------------# 3: Read the reconfiguration controller registers.# -----------------------------------------------# # Registers per Ch. 16 Transceiver Reconfiguration Controller IP Core (xcvr_user_guide.pdf)# # Table 16-9: PMA Analog Registers# (00000820h, 00000000h)# (00000828h, 00000000h)# (0000082ch, 00000000h)# (00000830h, 00000000h)# # Table 16-11: EyeQ Monitor Registers# (00000840h, 00000000h)# (00000848h, 00000000h)# (0000084ch, 00000000h)# (00000850h, xxxxxxxxh)# # Table 16-13: DFE Registers# (00000860h, 00000000h)# (00000868h, 00000000h)# (0000086ch, 00000000h)# (00000870h, 0000xxxxh)# # Table 16-15: AEQ Registers# (000008a0h, 00000000h)# (000008a8h, 00000000h)# (000008ach, 00000000h)# (000008b0h, 00000000h)# # Table 16-17: ATX Tuning Registers# (000008c0h, deadbeefh)# (000008c8h, deadbeefh)# (000008cch, deadbeefh)# (000008d0h, deadbeefh)# # Table 16-24: MIF Streamer Module Registers# (000008e0h, 00000000h)# (000008e8h, 00000000h)# (000008ech, 00000000h)# (000008f0h, 00000000h)# # Table 16-19:PLL Reconfiguration Registers# (00000900h, 00000000h)# (00000908h, 00000000h)# (0000090ch, 00000000h)# (00000910h, 00000000h)# # Table 16-21: DCD Calibration Registers# (00000920h, 00000000h)# (0000092ch, 00000000h)# (00000930h, 00000000h)# # -----------------------------------------------# 4: Read the pattern generator registers.# -----------------------------------------------# # Registers per Ch. 36 Avalon Streaming Data Pattern Generator and Checker Cores (ug_embedded_ip.pdf)# # Table 36-3: Data Pattern Generator Core Register Map# (00000a20h, 000000Xch)# (00000a24h, 00000001h)# (00000a28h, 00000000h)# (00000a2ch, 00000000h)# (00000a30h, 00000000h)# (00000a34h, 00000000h)# (00000a38h, 00000000h)# (00000a3ch, 00000000h)# # -----------------------------------------------# 5: Read the pattern checker registers.# -----------------------------------------------# # Registers per Ch. 36 Avalon Streaming Data Pattern Generator and Checker Cores (ug_embedded_ip.pdf)# # Table 36-10: Data Pattern Checker Core Register Map# (00000a00h, 000000X8h)# (00000a04h, 00000001h)# (00000a08h, 00000100h)# (00000a0ch, 00000000h)# (00000a10h, 00000000h)# (00000a14h, 00000000h)# (00000a18h, 00000000h)# (00000a1ch, 00000002h)# # -----------------------------------------------# 6: Transceiver test.# -----------------------------------------------# # Enable the pattern generator (PRBS7)# Write (00000a20h, 000000Xdh)# Read (00000a20h, 000000Xdh)# # Enable the pattern checker (PRBS7)# Write (00000a00h, 000000X9h)# Read (00000a00h, 000000X9h)# # Wait for 1 us# # -----------------------------------------------# 7: External loopback status.# -----------------------------------------------# # Table 36-10: Data Pattern Checker Core Registers# (00000a00h, 000000Xbh)# (00000a04h, 00000001h)# (00000a08h, 00000100h)# (00000a0ch, 00000000h)# (00000a10h, 00000000h)# (00000a14h, 00000000h)# (00000a18h, 00000000h)# (00000a1ch, 00000002h)# # Reset status:# -> TX is ready.# -> RX is ready.# # Pattern checker lock# -> The pattern checker is locked.# # -----------------------------------------------# 8: Internal loopback test.# -----------------------------------------------# # Enable internal loopback by setting phy_serial_loopback = 1 (Table 9-24: PMA Control and Status registers, xcvr_user_guide.pdf)# Write (00000184h, 00000001h)# Read (00000184h, 00000001h)# # Wait for 1 us# # Reset status:# -> TX is ready.# -> RX is ready.# # Pattern checker lock# -> The pattern checker is locked.# # -----------------------------------------------# 9: PRBS15 test.# -----------------------------------------------# # Disable the pattern generator# Write (00000a20h, 000000Xch)# gx_link_test_system_tb.dut.avalon_st_adapter.timing_adapter_0: The downstream component expects valid data, but the upstream component cannot provide it.# Read (00000a20h, 000000Xch)# Enable the pattern generator for PRBS15# Write (00000a24h, 00000002h)# Write (00000a20h, 000000Xdh)# Read (00000a20h, 000000Xdh)# # Wait for 1 us# # Reset status:# -> TX is ready.# -> RX is ready.# # Pattern checker lock# -> The pattern checker is *NOT* locked.# # Disable the pattern checker# Write (00000a00h, 000000X8h)# gx_link_test_system_tb.dut.avalon_st_adapter_001.timing_adapter_0: The downstream component is backpressuring by deasserting ready, but the upstream component can't be backpressured.# Read (00000a00h, 000000X8h)# # Enable the pattern checker for PRBS15# Write (00000a04h, 00000002h)# Write (00000a00h, 000000X9h)# Read (00000a00h, 000000X9h)# # Wait for 1 us# # Reset status:# -> TX is ready.# -> RX is ready.# # Pattern checker lock# -> The pattern checker is locked.# # ===============================================# Simulation complete.# ===============================================# # ** Note: $stop : gx_link_test_system_tb.sv(744)# Time: 39845 ns Iteration: 0 Instance: /gx_link_test_system_tb# Break in Module gx_link_test_system_tb at gx_link_test_system_tb.sv line 744
I have not looked at changing the lane rate, but from what I've read it should be possible.
I plan on documenting what it takes to get the transceiver simulated, so if you want, I can post an initial version of the simulation code. You can then modify it to test the lane rate changes.
Regarding MIF files; I have not used them yet, but I saw documentation in AN676 and Ch 16 of the Transceiver Users Guide.
Cheers,
Dave