Entity: JesdAlignFrRepCh

Diagram

time TPD_G positive F_G sl clk sl rst sl replEnable_i sl scrEnable_i sl alignFrame_i sl dataValid_i slv((GT_WORD_SIZE_C*8)-1 downto 0) dataRx_i slv(GT_WORD_SIZE_C-1 downto 0) chariskRx_i slv((GT_WORD_SIZE_C*8)-1 downto 0) sampleData_o sl sampleDataValid_o sl alignErr_o sl positionErr_o

Description


Company : SLAC National Accelerator Laboratory

Description: Align bytes and replace control characters with data

What is supported: Frame sizes 1, 2, 4 GT Word sizes 2, 4 <--- I don't think 2 word is supported because hard coded in Jesd204bPkg.vhd

     Note:      dataRx_i - is little endian and byte-swapped (directly from GTH)            First sample in time:  dataRx_i(7  downto 0) & dataRx_i(15 downto 8)            Second sample in time: dataRx_i(23 downto 16)& dataRx_i(31 downto 24)
sampleData_o is big endian and not byte-swapped First sample in time: sampleData_o(31 downto 16)

Second sample in time: sampleData_o(15 downto 0)

This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to

the terms contained in the LICENSE.txt file.

Generics

Generic name Type Value Description
TPD_G time 1 ns
F_G positive 2 Number of bytes in a frame

Ports

Port name Direction Type Description
clk in sl
rst in sl
replEnable_i in sl Enable character replacement
scrEnable_i in sl Enable scrambling/descrambling
alignFrame_i in sl One c-c long pulse from syncFSM indicating that first non Kcharacter has been received
dataValid_i in sl Data ready (replace control character with data when '1')
dataRx_i in slv((GT_WORD_SIZE_C*8)-1 downto 0) Data and character indication
chariskRx_i in slv(GT_WORD_SIZE_C-1 downto 0)
sampleData_o out slv((GT_WORD_SIZE_C*8)-1 downto 0) Sample data output (after alignment, character replacement and scrambling)
sampleDataValid_o out sl
alignErr_o out sl Invalid or misaligned character in the data
positionErr_o out sl Invalid (comma) position received at time of alignment

Signals

Name Type Description
r RegType
rin RegType

Constants

Name Type Value Description
SAMPLES_IN_WORD_C positive (GT_WORD_SIZE_C/F_G)
REG_INIT_C RegType ( dataRxD1 => (others => '0'),
chariskRxD1 => (others => '0'),
dataAlignedD1 => (others => '0'),
charAlignedD1 => (others => '0'),
scrData => (others => '0'),
lfsr => (others => '0'),
descrData => (others => '0'),
scrDataValid => '0',
sampleData => (others => '0'),
descrDataValid => '0',
dataValid => '0',
position => intToSlv(1,
GT_WORD_SIZE_C) -- Initialize at "0001" or "01" )

Types

Name Type Description
RegType

Processes