Skip to content
Snippets Groups Projects
Select Git revision
  • f630d7d8cd3add3a4e6e7142d99080b20a525e07
  • main default protected
  • sim_pscgen
  • dev
  • 1.0.3
  • 1.0.2
  • 1.0.1
7 results

main.adoc

Blame
  • Romain Broucquart's avatar
    BRONES Romain authored
    * Change module ID
    * Up to date wirh new phase incr/offs tables
    * Corrections on list
    f630d7d8
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    main.adoc 3.06 KiB

    Power Supply Controller Generator

    MODULE ID

    0x507E1712

    (1350440722)

    Description

    This module can generate sine waveform for multiple power supplies. It is built to work in association with ComCorr IP.

    The module outputs waveform as signed values on its TDATA output. The TUSER output carries the Identifier of the waveform.

    It is possible to generate up to 2**C_W_TIDX (default 255) Identifiers. Each waveform has independents parameters:

    • Phase increment

    • Phase offset

    • Scaling value

    • Offset value

    • Reset phase

    The module generate data values every TICKER_RATE clock period. At each of this tick, the phase of all waveform is incremented and a new wave value is computed for each waveform. The values are output via the AXI-Stream Output, one value transaction by transfer.

    Runtime configuration

    The generator will compute and ouput values for Identifier from TABLE_DEPTH downto 0. Entries in the TABLE_PHASE and TABLE_SCALE for these Identifier shall be configured by the user. These two tables are addressed by the Identifier number. Data values pack configuration, as described below.

    Table 1. TABLE_PHASE_INCR data pack.

    32-C_W_PHASE bits

    C_W_PHASE bits

    unused

    Phase increment

    Table 2. TABLE_PHASE_OFFS data pack.

    31-*C_W_PHASE bits

    1 bit

    C_W_PHASE bits

    unused

    Reset accumulator

    Phase offset

    Table 3. TABLE_SCALE data pack.

    32-C_W_OFFSET-C_W_SCALE bits

    C_W_OFFSET bits

    C_W_SCALE bits

    unused

    Signal Offset

    Signal Scale Factor

    The DDS contained in the module receive the phase value, computed from the sum of the accumulator and the Phase Offset configuration. The accumulator is incremented by the Phase Increment at each tick. The result roll over the max value.

    The output of the DDS is multiplied by the Signal Scale Factor, which is considered as a fixed point value, containing only decimals. (The DDS is configured to genrate full scale sine values). The Signal Offset is then applied, aligned on the fixed point (no decimals). The final result is scrapped of decimals values.

    AXIS output format

    The generator produces AXIS packets with a compatible format for COMCORR IP module.

    The AXIS contains:

    • TDATA: the sine waveform value (signed integer).

    • TUSER: the PSCID.

    • TVALID: data strobe.

    The AXIS does not contain TREADY input on this module. The COMCORR IP module does not either.

    Registers map

    Table 4. Register
    Name N bits type RW Description

    ID

    1

    32

    uint

    RO

    Module Identification Number

    VERSION

    1

    32

    uint

    RO

    Module Version Number

    CONTROL

    1

    1

    uint

    RW

    Control register

    TICKER_RATE

    1

    32

    uint

    RW

    Ticker rate register

    TABLE_DEPTH

    1

    8

    uint

    RW

    Table scan depth register

    Table 5. Memories
    Name N bits type RW Description

    TABLE_PHASE_INCR

    256

    31

    uint

    RW

    Phase increment table

    TABLE_PHASE_OFFS

    256

    31

    uint

    RW

    Phase offset and reset table

    TABLE_SCALE

    256

    32

    uint

    RW

    Signal scale and offset table

    TODO / Future devs

    • The PSCID is now a simple count down from TABLE_DEPTH to 0. A table to translate from this count to a proper PSCID will be implemented. In the meantime, a correct configuration of the COMCORR module shall suffice.