1//
2// Copyright 2020 Ettus Research, a National Instruments Brand
3//
4// SPDX-License-Identifier: LGPL-3.0-or-later
5//
6// Module: rfnoc_block_vector_iir_regs (Header)
7//
8// Description:
9//
10//   This is a header file that contains the register descriptions for the
11//   RFNoC Vector IIR block.
12//
13//   Each RFNoC Vector IIR block consists of NUM_PORTS independent Vector IIR
14//   filters. Each one has its own address space that is VECTOR_IIR_ADDR_W bits
15//   wide. That is, Vector IIR block N can be addressed starting at byte offset
16//   N*(2**VECTOR_IIR_ADDR_W).
17//
18
19//-----------------------------------------------------------------------------
20// Register Space
21//-----------------------------------------------------------------------------
22
23// The amount of address space taken up by each Vector IIR filter. That is, the
24// address space for port N starts at N*(2^VECTOR_IIR_ADDR_W).
25localparam VECTOR_IIR_ADDR_W = 20'h00004;
26
27
28//-----------------------------------------------------------------------------
29// Vector IIR Register Descriptions
30//-----------------------------------------------------------------------------
31
32// REG_DELAY (R/W)
33//
34// This register controls and reports the state of the filter delay.
35//
36// [31:16] REG_MAX_DELAY : This field reports the maximum supported vector
37//                         length, in samples. That is, it returns the
38//                         MAX_DELAY block parameter.
39// [15: 0] REG_DELAY     : This field controls/reports the current vector delay
40//                         length in samples. Values of 5 or more are supported.
41//
42localparam REG_DELAY = 'h00;
43//
44localparam REG_MAX_DELAY_LEN = 16;
45localparam REG_MAX_DELAY_POS = 16;
46//
47localparam REG_DELAY_LEN = 16;
48localparam REG_DELAY_POS = 0;
49
50// REG_ALPHA (R/W)
51//
52// This register controls the Alpha value for the filter. This is a signed
53// 16-bit value.
54//
55// [31:0] : Unused
56// [15:0] : Alpha value to use
57//
58localparam REG_ALPHA = 'h04;
59//
60localparam REG_ALPHA_LEN = 16;
61localparam REG_ALPHA_POS = 0;
62
63// REG_BETA (R/W)
64//
65// This register controls the Beta value for the filter. This is a signed
66// 16-bit value.
67//
68// [31:0] : Unused
69// [15:0] : Beta value to use
70//
71localparam REG_BETA = 'h08;
72//
73localparam REG_BETA_LEN = 16;
74localparam REG_BETA_POS = 0;
75