0hmX/am62l-lpddr4-breakout-repro

This code defines React components that instantiate circuits representing dedicated DDR address control and byte0 data lines.

Version
1.0.11
License
unset
Stars
0

ddr-connections.ts

export type DdrBusName = "DDR_BYTE0" | "DDR_BYTE1" | "DDR_ADDR_CTRL"

export interface DdrConnection {
  socSignal: string
  memorySignal: string
  traceName: string
  busName: DdrBusName
}

export const DDR_CONNECTIONS: readonly DdrConnection[] = [
  ...Array.from({ length: 8 }, (_, bit) => ({
    socSignal: `DDR0_DQ${bit}`,
    memorySignal: `DQ${bit}`,
    traceName: `DQ${bit}`,
    busName: "DDR_BYTE0" as const,
  })),
  ...Array.from({ length: 8 }, (_, offset) => {
    const bit = offset + 8
    return {
      socSignal: `DDR0_DQ${bit}`,
      memorySignal: `DQ${bit}`,
      traceName: `DQ${bit}`,
      busName: "DDR_BYTE1" as const,
    }
  }),
  {
    socSignal: "DDR0_DM0",
    memorySignal: "DMI0",
    traceName: "DM0",
    busName: "DDR_BYTE0",
  },
  {
    socSignal: "DDR0_DM1",
    memorySignal: "DMI1",
    traceName: "DM1",
    busName: "DDR_BYTE1",
  },
  {
    socSignal: "DDR0_DQS0",
    memorySignal: "DQS0_t",
    traceName: "DQS0",
    busName: "DDR_BYTE0",
  },
  {
    socSignal: "DDR0_DQS0_n",
    memorySignal: "DQS0_c",
    traceName: "DQS0_n",
    busName: "DDR_BYTE0",
  },
  {
    socSignal: "DDR0_DQS1",
    memorySignal: "DQS1_t",
    traceName: "DQS1",
    busName: "DDR_BYTE1",
  },
  {
    socSignal: "DDR0_DQS1_n",
    memorySignal: "DQS1_c",
    traceName: "DQS1_n",
    busName: "DDR_BYTE1",
  },
  ...Array.from({ length: 6 }, (_, bit) => ({
    socSignal: `DDR0_A${bit}`,
    memorySignal: `CA${bit}`,
    traceName: `A${bit}`,
    busName: "DDR_ADDR_CTRL" as const,
  })),
  {
    socSignal: "DDR0_CS0_n",
    memorySignal: "CS",
    traceName: "CS0_n",
    busName: "DDR_ADDR_CTRL",
  },
  {
    socSignal: "DDR0_CKE0",
    memorySignal: "CKE",
    traceName: "CKE0",
    busName: "DDR_ADDR_CTRL",
  },
  {
    socSignal: "DDR0_CK0",
    memorySignal: "CK_t",
    traceName: "CK0",
    busName: "DDR_ADDR_CTRL",
  },
  {
    socSignal: "DDR0_CK0_n",
    memorySignal: "CK_c",
    traceName: "CK0_n",
    busName: "DDR_ADDR_CTRL",
  },
  {
    socSignal: "DDR0_RESET0_n",
    memorySignal: "RESET_n",
    traceName: "DDR_LINK_RESET0_n",
    busName: "DDR_ADDR_CTRL",
  },
]

export const DDR_SOC_PHYSICAL_PINS = [
  76, 91, 92, 93, 94, 103, 104, 105, 121, 122, 123, 124, 125, 139,
  140, 149, 150, 162, 164, 165, 215, 216, 236, 238, 255, 256, 257,
  272, 273, 275, 276, 284, 285,
] as const

export const DDR_BYTE0_TRACE_NAMES = DDR_CONNECTIONS.filter(
  ({ busName }) => busName === "DDR_BYTE0",
).map(({ traceName }) => traceName)

export const DDR_BYTE1_TRACE_NAMES = DDR_CONNECTIONS.filter(
  ({ busName }) => busName === "DDR_BYTE1",
).map(({ traceName }) => traceName)

export const DDR_ADDR_CTRL_TRACE_NAMES = DDR_CONNECTIONS.filter(
  ({ busName }) => busName === "DDR_ADDR_CTRL",
).map(({ traceName }) => traceName)