FPGA: - Split up MB registers that control daughterboard specific settings so that daughterboards 0 and 1 could have different setings, in preparation for future devices that require different settings. This requires a compat number bump to 8.0. - Add registers for additional RFDC information, including the block/tile mapping of the individual channels, and information about resampling capabilities - Identify sections of code that would be specific to X410/ZBX and move them to their own headers, so it's trivial to add device-specific sections of code instead for other devices in the future. - This includes constraints for clocks and I/O pins. - Remove ability to do timed ctrlport transactions to the MB CPLD, this was unused and possibly broken. - Move daughterboard-specific code into its own code location (dboards/zbx) - Move X410-specific register documentation to its own location (doc/X410) - Refactor Makefiles to split out X410/ZBX specific components and allow switching between device types - Add 512-bit AXI interconnects - Make number of timekeepers configurable (X410 keeps the single timekeeper) MPM: - Required compat is bumped to 8.0 - Now supports new registers for detecting DSP capabilities and multi-rate settings for the daughterboards - Adds MMCM controls (currently unused) Co-authored-by: Wade Fife <wade.fife@ni.com> Co-authored-by: Ryan Marlow <ryan@lmarlow.com> Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Original-commit: c1d268917ea65dd9c5a42366014cb96d3c025223
77 lines
3.3 KiB
Systemverilog
77 lines
3.3 KiB
Systemverilog
//
|
|
// Copyright 2023 Ettus Research, A National Instruments Company
|
|
//
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
//
|
|
// Module: dio_regmap_utils.vh
|
|
// Description:
|
|
// The constants in this file are autogenerated by XmlParse.
|
|
|
|
//===============================================================================
|
|
// A numerically ordered list of registers and their HDL source files
|
|
//===============================================================================
|
|
|
|
// DIO_MASTER_REGISTER : 0x0 (x4xx_dio.v)
|
|
// DIO_DIRECTION_REGISTER : 0x4 (x4xx_dio.v)
|
|
// DIO_INPUT_REGISTER : 0x8 (x4xx_dio.v)
|
|
// DIO_OUTPUT_REGISTER : 0xC (x4xx_dio.v)
|
|
// DIO_SOURCE_REGISTER : 0x10 (x4xx_dio.v)
|
|
// RADIO_SOURCE_REGISTER : 0x14 (x4xx_dio.v)
|
|
// INTERFACE_DIO_SELECT : 0x18 (x4xx_dio.v)
|
|
// DIO_OVERRIDE : 0x1C (x4xx_dio.v)
|
|
// SW_DIO_CONTROL : 0x20 (x4xx_dio.v)
|
|
|
|
//===============================================================================
|
|
// RegTypes
|
|
//===============================================================================
|
|
|
|
// DIO_CONTROL_REG Type (from x4xx_dio.v)
|
|
localparam DIO_CONTROL_REG_SIZE = 32;
|
|
localparam DIO_CONTROL_REG_MASK = 32'hFFF0FFF;
|
|
localparam DIO_PORT_A_SIZE = 12; //DIO_CONTROL_REG:DIO_PORT_A
|
|
localparam DIO_PORT_A_MSB = 11; //DIO_CONTROL_REG:DIO_PORT_A
|
|
localparam DIO_PORT_A = 0; //DIO_CONTROL_REG:DIO_PORT_A
|
|
localparam DIO_PORT_B_SIZE = 12; //DIO_CONTROL_REG:DIO_PORT_B
|
|
localparam DIO_PORT_B_MSB = 27; //DIO_CONTROL_REG:DIO_PORT_B
|
|
localparam DIO_PORT_B = 16; //DIO_CONTROL_REG:DIO_PORT_B
|
|
|
|
//===============================================================================
|
|
// Register Group DIO_REGS
|
|
//===============================================================================
|
|
|
|
// DIO_MASTER_REGISTER Register (from x4xx_dio.v)
|
|
localparam DIO_MASTER_REGISTER = 'h0; // Register Offset
|
|
localparam DIO_MASTER_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// DIO_DIRECTION_REGISTER Register (from x4xx_dio.v)
|
|
localparam DIO_DIRECTION_REGISTER = 'h4; // Register Offset
|
|
localparam DIO_DIRECTION_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// DIO_INPUT_REGISTER Register (from x4xx_dio.v)
|
|
localparam DIO_INPUT_REGISTER = 'h8; // Register Offset
|
|
localparam DIO_INPUT_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// DIO_OUTPUT_REGISTER Register (from x4xx_dio.v)
|
|
localparam DIO_OUTPUT_REGISTER = 'hC; // Register Offset
|
|
localparam DIO_OUTPUT_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// DIO_SOURCE_REGISTER Register (from x4xx_dio.v)
|
|
localparam DIO_SOURCE_REGISTER = 'h10; // Register Offset
|
|
localparam DIO_SOURCE_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// RADIO_SOURCE_REGISTER Register (from x4xx_dio.v)
|
|
localparam RADIO_SOURCE_REGISTER = 'h14; // Register Offset
|
|
localparam RADIO_SOURCE_REGISTER_SIZE = 32; // register width in bits
|
|
|
|
// INTERFACE_DIO_SELECT Register (from x4xx_dio.v)
|
|
localparam INTERFACE_DIO_SELECT = 'h18; // Register Offset
|
|
localparam INTERFACE_DIO_SELECT_SIZE = 32; // register width in bits
|
|
|
|
// DIO_OVERRIDE Register (from x4xx_dio.v)
|
|
localparam DIO_OVERRIDE = 'h1C; // Register Offset
|
|
localparam DIO_OVERRIDE_SIZE = 32; // register width in bits
|
|
|
|
// SW_DIO_CONTROL Register (from x4xx_dio.v)
|
|
localparam SW_DIO_CONTROL = 'h20; // Register Offset
|
|
localparam SW_DIO_CONTROL_SIZE = 32; // register width in bits
|