Main Content

LTE Gold Sequence Generator

Generate Gold sequence

  • LTE Gold Sequence Generator block

Wireless HDL Toolbox / Utilities


The LTE Gold Sequence Generator block returns Gold sequences generated using the polynomial and shift length specified by LTE standard TS 36.212 [1]. Gold codes are pseudorandom sequences that have high autocorrelation and low crosscorrelation. Due to these properties, Gold codes are widely used in communications systems. For example, they are used to separate different mobile cells operating on the same frequency. LTE systems use a Gold sequence generator for reference symbols and for scrambling/descrambling data, such as in MIB and SIB coding and decoding.

This block provides minimal latency by implementing the shift register initialization in parallel.

Use the load control signal to indicate when the init value is valid. Use the enable control signal to request the next Gold sequence value. The valid signal indicates when an output sample is available. The first output sample is ready three cycles after enable is asserted. The data and valid outputs follow the pattern of the enable input.



expand all

When this control signal is set to true (1), the block loads the value on the init port into the shift register. You can use this signal to restart the sequence at any point in time.

Data Types: Boolean

Initial shift register value, specified as a ufix31 number representing the 31 binary values. To generate multiple Gold sequence outputs in parallel, specify a vector of initial values to represent multiple channels.

Data Types: ufix31

When this control signal is set to true (1), it enables Gold sequence generation.

Data Types: Boolean


expand all

Generated Gold sequence, returned as a Boolean scalar or vector, depending on the size of the init input. If init is a vector, then data is a vector of the same size, representing sequences on independent channels.

Data Types: Boolean

Control signal that indicates when the data output port is valid.

Data Types: Boolean


expand all

To avoid long shift latency, the block applies the initial value as a parallel mask. To calculate the mask, the block divides the initial polynomial by the linear-feedback shift register polynomial.


[1] 3GPP TS 36.212. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL:

Extended Capabilities

Version History

Introduced in R2018a

See Also