fpga: x400: zbx: Add support for XO3 CPLD variant.

The main changes included are:
- Variant-dependent pin-out instantiation.
- Update clocking scheme in top level file
  to include XO3 PLL
- Add ability to shift outgoing data for
  the GPIO communication interface with
  the X410 FPGA.
- Include project files required to build
  the XO3 variant of the ZBX CPLD.
- Add build flow for Lattice Diamond designs.
- Add ability to build XO3 variant of ZBX CPLD.


Original-commit: 2c7813acb21383f302353a1b6cf57f0946fa0b6b
This commit is contained in:
Javier Valenzuela
2022-06-28 16:33:05 -05:00
committed by Wade Fife
parent 27aae37722
commit a6fc53b4e6
23 changed files with 1888 additions and 84 deletions
@@ -16,6 +16,7 @@
// SLAVE_OLDEST_REVISION : 0x8 (basic_regs.v)
// SLAVE_SCRATCH : 0xC (basic_regs.v)
// GIT_HASH_REGISTER : 0x10 (basic_regs.v)
// SLAVE_VARIANT : 0x14 (basic_regs.v)
//===============================================================================
// RegTypes
@@ -26,10 +27,12 @@
//===============================================================================
// Enumerated type BASIC_REGISTERS_VALUES
localparam BASIC_REGISTERS_VALUES_SIZE = 3;
localparam BASIC_REGISTERS_VALUES_SIZE = 5;
localparam BOARD_ID_VALUE = 'h4002; // BASIC_REGISTERS_VALUES:BOARD_ID_VALUE
localparam VARIANT_ID_MAX10 = 'h4D4158; // BASIC_REGISTERS_VALUES:VARIANT_ID_MAX10
localparam VARIANT_ID_XO3 = 'h584F33; // BASIC_REGISTERS_VALUES:VARIANT_ID_XO3
localparam OLDEST_CPLD_REVISION = 'h20110611; // BASIC_REGISTERS_VALUES:OLDEST_CPLD_REVISION
localparam CPLD_REVISION = 'h21111614; // BASIC_REGISTERS_VALUES:CPLD_REVISION
localparam CPLD_REVISION = 'h22031611; // BASIC_REGISTERS_VALUES:CPLD_REVISION
// SLAVE_SIGNATURE Register (from basic_regs.v)
localparam SLAVE_SIGNATURE = 'h0; // Register Offset
@@ -73,3 +76,11 @@
localparam GIT_CLEAN_SIZE = 4; //GIT_HASH_REGISTER:GIT_CLEAN
localparam GIT_CLEAN_MSB = 31; //GIT_HASH_REGISTER:GIT_CLEAN
localparam GIT_CLEAN = 28; //GIT_HASH_REGISTER:GIT_CLEAN
// SLAVE_VARIANT Register (from basic_regs.v)
localparam SLAVE_VARIANT = 'h14; // Register Offset
localparam SLAVE_VARIANT_SIZE = 32; // register width in bits
localparam SLAVE_VARIANT_MASK = 32'hFFFFFFFF;
localparam VARIANT_REG_SIZE = 32; //SLAVE_VARIANT:VARIANT_REG
localparam VARIANT_REG_MSB = 31; //SLAVE_VARIANT:VARIANT_REG
localparam VARIANT_REG = 0; //SLAVE_VARIANT:VARIANT_REG