197 lines
4.5 KiB
YAML
197 lines
4.5 KiB
YAML
block/CORDIC:
|
|
description: CORDIC co-processor.
|
|
items:
|
|
- name: CSR
|
|
description: Control and status register.
|
|
byte_offset: 0
|
|
fieldset: CSR
|
|
- name: WDATA
|
|
description: Argument register.
|
|
byte_offset: 4
|
|
- name: RDATA
|
|
description: Result register.
|
|
byte_offset: 8
|
|
fieldset/CSR:
|
|
description: Control and status register.
|
|
fields:
|
|
- name: FUNC
|
|
description: Function.
|
|
bit_offset: 0
|
|
bit_size: 4
|
|
enum: FUNC
|
|
- name: PRECISION
|
|
description: Precision required (number of iterations/cycles), where PRECISION = (number of iterations/4).
|
|
bit_offset: 4
|
|
bit_size: 4
|
|
enum: PRECISION
|
|
- name: SCALE
|
|
description: |-
|
|
Scaling factor.
|
|
Input value has been multiplied by 2^(-n) before for argument.
|
|
Output value will need to be multiplied by 2^n later for results.
|
|
bit_offset: 8
|
|
bit_size: 3
|
|
enum: Scale
|
|
- name: IEN
|
|
description: Enable interrupt.
|
|
bit_offset: 16
|
|
bit_size: 1
|
|
- name: DMAREN
|
|
description: Enable DMA wread channel.
|
|
bit_offset: 17
|
|
bit_size: 1
|
|
- name: DMAWEN
|
|
description: Enable DMA write channel.
|
|
bit_offset: 18
|
|
bit_size: 1
|
|
- name: NRES
|
|
description: Number of results in the RDATA register.
|
|
bit_offset: 19
|
|
bit_size: 1
|
|
enum: Num
|
|
- name: NARGS
|
|
description: Number of arguments expected by the WDATA register.
|
|
bit_offset: 20
|
|
bit_size: 1
|
|
enum: Num
|
|
- name: RESSIZE
|
|
description: Width of output data.
|
|
bit_offset: 21
|
|
bit_size: 1
|
|
enum: Size
|
|
- name: ARGSIZE
|
|
description: Width of input data.
|
|
bit_offset: 22
|
|
bit_size: 1
|
|
enum: Size
|
|
- name: RRDY
|
|
description: Result ready flag.
|
|
bit_offset: 31
|
|
bit_size: 1
|
|
enum/FUNC:
|
|
bit_size: 4
|
|
variants:
|
|
- name: Cosine
|
|
description: Cosine function.
|
|
value: 0
|
|
- name: Sine
|
|
description: Sine function.
|
|
value: 1
|
|
- name: Phase
|
|
description: Phase function.
|
|
value: 2
|
|
- name: Modulus
|
|
description: Modulus function.
|
|
value: 3
|
|
- name: Arctangent
|
|
description: Arctangent function.
|
|
value: 4
|
|
- name: HyperbolicCosine
|
|
description: Hyperbolic Cosine function.
|
|
value: 5
|
|
- name: HyperbolicSine
|
|
description: Hyperbolic Sine function.
|
|
value: 6
|
|
- name: Arctanh
|
|
description: Arctanh function.
|
|
value: 7
|
|
- name: NaturalLogarithm
|
|
description: Natural Logarithm function.
|
|
value: 8
|
|
- name: SquareRoot
|
|
description: Square Root function.
|
|
value: 9
|
|
enum/Num:
|
|
bit_size: 1
|
|
variants:
|
|
- name: Num1
|
|
description: 1 input/output
|
|
value: 0
|
|
- name: Num2
|
|
description: 2 input/output
|
|
value: 1
|
|
enum/PRECISION:
|
|
bit_size: 4
|
|
variants:
|
|
- name: Iters4
|
|
description: 4 iterations.
|
|
value: 1
|
|
- name: Iters8
|
|
description: 8 iterations.
|
|
value: 2
|
|
- name: Iters12
|
|
description: 12 iterations.
|
|
value: 3
|
|
- name: Iters16
|
|
description: 16 iterations.
|
|
value: 4
|
|
- name: Iters20
|
|
description: 20 iterations.
|
|
value: 5
|
|
- name: Iters24
|
|
description: 24 iterations.
|
|
value: 6
|
|
- name: Iters28
|
|
description: 28 iterations.
|
|
value: 7
|
|
- name: Iters32
|
|
description: 32 iterations.
|
|
value: 8
|
|
- name: Iters36
|
|
description: 36 iterations.
|
|
value: 9
|
|
- name: Iters40
|
|
description: 40 iterations.
|
|
value: 10
|
|
- name: Iters44
|
|
description: 44 iterations.
|
|
value: 11
|
|
- name: Iters48
|
|
description: 48 iterations.
|
|
value: 12
|
|
- name: Iters52
|
|
description: 52 iterations.
|
|
value: 13
|
|
- name: Iters56
|
|
description: 56 iterations.
|
|
value: 14
|
|
- name: Iters60
|
|
description: 60 iterations.
|
|
value: 15
|
|
enum/Scale:
|
|
bit_size: 3
|
|
variants:
|
|
- name: A1_R1
|
|
description: Argument multiplied by 1, result multiplied by 1
|
|
value: 0
|
|
- name: A1o2_R2
|
|
description: Argument multiplied by 1/2, result multiplied by 2
|
|
value: 1
|
|
- name: A1o4_R4
|
|
description: Argument multiplied by 1/4, result multiplied by 4
|
|
value: 2
|
|
- name: A1o8_R8
|
|
description: Argument multiplied by 1/8, result multiplied by 8
|
|
value: 3
|
|
- name: A1o16_R16
|
|
description: Argument multiplied by 1/16, result multiplied by 16
|
|
value: 4
|
|
- name: A1o32_R32
|
|
description: Argument multiplied by 1/32, result multiplied by 32
|
|
value: 5
|
|
- name: A1o64_R64
|
|
description: Argument multiplied by 1/64, result multiplied by 64
|
|
value: 6
|
|
- name: A1o128_R128
|
|
description: Argument multiplied by 1/128, result multiplied by 128
|
|
value: 7
|
|
enum/Size:
|
|
bit_size: 1
|
|
variants:
|
|
- name: Bits32
|
|
description: Use 32 bit input/output values.
|
|
value: 0
|
|
- name: Bits16
|
|
description: Use 16 bit input/output values.
|
|
value: 1
|