-
- -
-

Code conversion

-

The amaranth.lib.coding module provides building blocks for conversion between different encodings of binary numbers.

-
-

One-hot coding

-
-
-class amaranth.lib.coding.Encoder
-

Encode one-hot to binary.

-

If one bit in i is asserted, n is low and o indicates the asserted bit. -Otherwise, n is high and o is 0.

-
-
Parameters:
-

width (int) – Bit width of the input

-
-
Attributes:
-
    -
  • i (Signal(width), in) – One-hot input.

  • -
  • o (Signal(range(width)), out) – Encoded natural binary.

  • -
  • n (Signal, out) – Invalid: either none or multiple input bits are asserted.

  • -
-
-
-
- -
-
-class amaranth.lib.coding.Decoder
-

Decode binary to one-hot.

-

If n is low, only the i-th bit in o is asserted. -If n is high, o is 0.

-
-
Parameters:
-

width (int) – Bit width of the output.

-
-
Attributes:
-
    -
  • i (Signal(range(width)), in) – Input binary.

  • -
  • o (Signal(width), out) – Decoded one-hot.

  • -
  • n (Signal, in) – Invalid, no output bits are to be asserted.

  • -
-
-
-
- -
-
-

Priority coding

-
-
-class amaranth.lib.coding.PriorityEncoder
-

Priority encode requests to binary.

-

If any bit in i is asserted, n is low and o indicates the least significant -asserted bit. -Otherwise, n is high and o is 0.

-
-
Parameters:
-

width (int) – Bit width of the input.

-
-
Attributes:
-
    -
  • i (Signal(width), in) – Input requests.

  • -
  • o (Signal(range(width)), out) – Encoded natural binary.

  • -
  • n (Signal, out) – Invalid: no input bits are asserted.

  • -
-
-
-
- -
-
-class amaranth.lib.coding.PriorityDecoder
-

Decode binary to priority request.

-

Identical to Decoder.

-
- -
-
-

Gray coding

-
-
-class amaranth.lib.coding.GrayEncoder
-

Encode binary to Gray code.

-
-
Parameters:
-

width (int) – Bit width.

-
-
Attributes:
-
    -
  • i (Signal(width), in) – Natural binary input.

  • -
  • o (Signal(width), out) – Encoded Gray code.

  • -
-
-
-
- -
-
-class amaranth.lib.coding.GrayDecoder
-

Decode Gray code to binary.

-
-
Parameters:
-

width (int) – Bit width.

-
-
Attributes:
-
    -
  • i (Signal(width), in) – Gray code input.

  • -
  • o (Signal(width), out) – Decoded natural binary.

  • -
-
-
-
- -
-
- - -
-