Keywords: RAMB16, RAMB18SDP, WIDTH
Prior to 8.2.3i, MAP only retargeted Virtex-4 RAMB16s to RAMB18 or RAMB36_EXP. The following four cases cause a Virtex-4 RAMB16 to be retargeted to a Virtex-5 RAMB18SDP (all involve setting the WIDTH attributes of the RAMB16):
Case 1: READ_WIDTH_A = "36", WRITE_WIDTH_A = "0", READ_WIDTH_B = "0", WRITE_WIDTH_B = any
Case 2: READ_WIDTH_A = any, WRITE_WIDTH_A = "0", READ_WIDTH_B = "0", WRITE_WIDTH_B = "36"
Case 3: READ_WIDTH_A = "0", WRITE_WIDTH_A = "36", READ_WIDTH_B = any, WRITE_WIDTH_B = "0"
Case 4: READ_WIDTH_A = "0", WRITE_WIDTH_A = any, READ_WIDTH_B = "36", WRITE_WIDTH_B = "0"