AMC13 IP and MAC Address Assignment

The AMC13 has two PCB Tongues. Tongue 1 (T1) and Tongue 2 (T2) each has their own FPGA (Virtex6/Kintex7 for T1, Spartan6 for T2) and therefore each has their own IP address. Typically T2 has an IP address one higher in the last octet than T1.

BU Crate MCH IP addresses

MCH IP Address
Vadatech MCH

How the AMC13 IP Address is assigned

1. Via the Serial Number

This scheme acts as the "backup" plan, using the jumper connections on T2 to assign IP addresses to both tongues The address is 192.168.z.x
  • Final Byte for Spartan Chip (T2) = 254 - 2*SN[6:0]
  • Final Byte for Virtex/Kintex Chip (T1) = 255 - 2*SN[6:0].
z is 1 for SN 0-127 and 2 for SN 128-255 and 3 for SN 256-383.

N.B.Serial numbers 0, 128, 256 are not used as it would result in IP address ending in 255, which can cause troubles on some networks.


In this scheme, the MMC sends a configuration packet which contains the IP address to be assigned from non-volitile EEPROM to the Spartan and Virtex chips at powerup. For information on how to load new configuration information into the SPI, see the MMC software page

3. RARP from a software daemon.

RARP is enabled with an IP address beginning with 00 in the first octet is set using method 2 above.

Note that we are working out a new scheme as we go into mass production in early 2014. We expect that the default addresses will be in the range 192.168.x.y where x is 1-4 and y is 128-254. HCAL will use a crate-based scheme where x is the crate and y is 4*slot.

AMC13 MAC address assignment


Firmware review reveals-

  nSN <= not SerialNumber;
  mac => x"080030f30" & "000"                  & not nSN(7 downto 6) & '0' & nSN(5 downto 0)   #old T2
  mac => x"080030f30" & '0' & not nSN(8) & '0' & not nSN(7 downto 6) & '0' & nSN(5 downto 0),  #new T2
  mac <= x"080030f30" & '0' & not nSN(8) & '0' & not nSN(7 downto 6) & '1' & nSN(5 downto 0);  #all T1

So all MAC addr start with 08-00-30-F3. The S/N bits are mapped to MAC address bits as follows:

MAC Source
5:0 not S/N( 5:0)
6 T2=0 T1=1
8:7 S/N( 7:6)
9 '0'
10 S/N( 8)
11 '0'

This results in a range of 00-00 to 01-FF for AMC13 serial# 0-255 and 04-00 to 05-FF for AMC13 serial# 256-511.

-- EricHazen - 21 Mar 2016

Topic revision: r25 - 21 Mar 2016 - 14:52:07 - EricHazen
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback