Sizing memory. Suppose that a communications receiver receives data at a rate of 1 Gsps (giga samples per second) from each antenna. The receiver has 4 antennas and each sample is a complex number represented by 12 bits for the real part and 12 bits for the imaginary part (24 bits per sample).
FIR filter: Consider implementing an FIR filter or convolution. An FIR filter takes an input signal \(x[n]\), \(n=0,\ldots,N-1\) and produces an output signal \(y[n]\) via
\[ y[n] = \sum_{k=0}^{K-1} h[k] x[n-k] \]
where \(h[0], \ldots, h[K-1]\) are the filter coefficients. Suppose all values are 16-bit signed integers. Assume the arrays are length \(N=1000\) and the filter length is \(K=32\).
For each of the following hardware transactions, identify which entity is the master (the initiator of the transaction) and which is the slave (the responder).
A hardware module receives data from a processor using the following protocol:
The processor has three data items that become available on the following cycles, and the hardware module requires the following number of cycles to process each item:
| Data item | Earliest cycle VALID can be asserted | Processing time (cycles) |
|---|---|---|
| 1 | 1 | 4 |
| 2 | 3 | 2 |
| 3 | 10 | 5 |
Assume the hardware module is initially READY. For each data item, determine the clock cycle on which processing completes:
AXI4-Lite Write: Suppose a processor (master) writes to a hardware IP (slave) using the AXI4-Lite protocol. Assume the following AXI4-Lite write timing:
AWVALID and WVALID with address on AWADDR and data on WDATA.AWREADY.WREADY.BVALID.BVALID is asserted to when the master asserts BREADY.Answer the following questions based on the timing above:
BVALID asserted by the slave?BREADY asserted by the master?AWVALID and WVALID?AWVALID and WVALID for the next write transaction? If the master wants to start the next write with both AWVALID and WVALID high in the same cycle, what is the earliest such cycle?AXI4-Lite Read: A processor (master) performs a read from a hardware IP (slave) using the AXI4-Lite protocol. The following timing behavior occurs:
ARVALID with the read address on ARADDR.ARREADY.RVALID with the read data on RDATA.RREADY.RVALID.RVALID is asserted to the time it asserts RREADY.Answer the following:
ARVALID?RVALID?ARVALID for the next read)?Suppose an IP implements the iterative update:
\[ x[n+1] = f(x[n], a, b) \]
where \(f(x,a,b)\) is some known function, and \(a\) and \(b\) are constants. The IP is given an initial value \(x[0]\) and returns the final value \(x[N]\) after a specified number of iterations \(N\). Assume all values are 32-bit signed integers.
You decide to write a Vitis HLS function to implement this IP of the form:
void diff_eq_solver(...)
#pragma HLS INTERFACE s_axilite port=... bundle=CTRL_BUS
...
What arguments would you include in the function,
and what #pragma HLS INTERFACE lines would
you write below the function declaration?
You do not need to write the body of the function. Recall
that the format of the #pragma line is:
#pragma HLS INTERFACE s_axilite port=[port_name] bundle=CTRL_BUS
Vitis HLS will automatically build the AXI4-Lite interface.
Assuming it adds a 32-bit AP_CTRL register,
what is the register map for this IP? Assume the base address
is 0x00 and each register is 32 bits wide.