Skip to content

OSIDES32

Pepijn de Vos edited this page Nov 17, 2024 · 3 revisions

The OSIDES32 primitive is a deserializer that takes 1 bit of serial input and produces 32 bits of parallel output, implementing an oversampling serial-to-parallel function. It can achieve 1:32 oversampling using two IOLs and supports asynchronous reset, but does not support adjusting the output data sequence with CALIB. The frequency relationship between PCLK and FCLKP, FCLKN, FCLKQP, FCLKQN is fPCLK = 1/4fFCLKP = 1/4fFCLKN = 1/4fFCLKQP = 1/4fFCLKQN, with the four FCLK phases being P 0°, QP 90°, N 180°, and QN 270°.

This device is not yet supported in Apicula

Ports

Port Size Direction
D 1 input
DF0 1 output
DF1 1 output
DLYSTEP0 8 input
DLYSTEP1 8 input
FCLKN 1 input
FCLKP 1 input
FCLKQN 1 input
FCLKQP 1 input
PCLK 1 input
Q 32 output
RESET 1 input
SDTAP0 1 input
SDTAP1 1 input
VALUE0 1 input
VALUE1 1 input

Parameters

Parameter Default Value
ADAPT_EN_0 FALSE
ADAPT_EN_1 FALSE
C_STATIC_DLY_0 0 (0b00000000000000000000000000000000)
C_STATIC_DLY_1 0 (0b00000000000000000000000000000000)
DYN_DLY_EN_0 FALSE
DYN_DLY_EN_1 FALSE

Verilog Instantiation

OSIDES32 #(
    .ADAPT_EN_0(ADAPT_EN_0),
    .ADAPT_EN_1(ADAPT_EN_1),
    .C_STATIC_DLY_0(C_STATIC_DLY_0),
    .C_STATIC_DLY_1(C_STATIC_DLY_1),
    .DYN_DLY_EN_0(DYN_DLY_EN_0),
    .DYN_DLY_EN_1(DYN_DLY_EN_1)
) osides32_inst (
    .D(D),
    .DF0(DF0),
    .DF1(DF1),
    .DLYSTEP0(DLYSTEP0),
    .DLYSTEP1(DLYSTEP1),
    .FCLKN(FCLKN),
    .FCLKP(FCLKP),
    .FCLKQN(FCLKQN),
    .FCLKQP(FCLKQP),
    .PCLK(PCLK),
    .Q(Q),
    .RESET(RESET),
    .SDTAP0(SDTAP0),
    .SDTAP1(SDTAP1),
    .VALUE0(VALUE0),
    .VALUE1(VALUE1)
);
Clone this wiki locally