Visible to Intel only — GUID: utb1644336988207
Ixiasoft
Visible to Intel only — GUID: utb1644336988207
Ixiasoft
5.3.4. TKEEP and LAST_SEGMENT Signals Generation
The soft logic performs the conversion of the number of empty bytes to the tkeep signal. For example, num_empty_bytes = 60 is equivalent to tkeep = 64'h0000_0000_0000_000F.
The example below showcases the tkeep signal assignments based on EOP locations. The signal assignment is identical for all available profiles.
Profile | All | All | All | All |
---|---|---|---|---|
tlast | 1 | 1 | 1 | 1 |
tuser_last_segment0 | 0 | 0 | 0 | 0 |
tuser_last_segment1 | 0 | 0 | 0 | 0 |
tuser_last_segment2 | 0 | 0 | 0 | 0 |
tuser_last_segment3 | 0 | 0 | 0 | 0 |
tkeep | {48'b0 MSB, (16 bytes showing number of valid bytes)} |
{32'b0 MSB, (16 bytes showing number of valid bytes), 1111_1111 1111_1111} |
{16'b0 MSB, (16 bytes showing number of valid bytes), 1111_1111 1111_1111 1111_1111 1111_1111} |
{(16 bytes showing number of valid bytes), 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111} |
DATA | ||||
tdata[127:0] | EOP | Data | Data | Data |
tdata[255:128] | IDLE | EOP | Data | Data |
tdata[391:256] | IDLE | IDLE | EOP | Data |
tdata[511:392] | IDLE | IDLE | IDLE | EOP |
The below example depicts a scenario of a multiple packet mode where SOP follows the EOP within the same cycle. The Symmetric Cryptographic IP core asserts the tuser_last_segment0/1/2/3 signals.
Profile | MACsec and IPsec | MACsec and IPsec | MACsec and IPsec | MACsec and IPsec | MACsec and IPsec | MACsec and IPsec |
---|---|---|---|---|---|---|
tlast | 1 | 1 | 1 | 1 | 1 | 1 |
tkeep | {0000_0000 0000_0000 0000_0000 0000_0000 1111_1111 1111_1111, (16 bytes showing number of valid bytes)} |
{0000_0000 0000_0000 1111_1111 1111_1111 0000_0000 0000_0000, (16 bytes showing number of valid bytes)} |
{1111_1111 1111_1111 0000_0000 0000_0000 0000_0000 0000_0000, (16 bytes showing number of valid bytes)} |
{1111_1111 1111_1111 1111_1111 1111_1111, (16 bytes showing number of valid bytes), 1111_1111 1111_1111} |
{1111_1111 1111_1111 0000_0000 0000_0000, (16 bytes showing number of valid bytes), 1111_1111 1111_1111} |
{1111_1111 1111_1111, (16 bytes showing number of valid bytes), 1111_1111 1111_1111 1111_1111 1111_1111} |
tuser_last_segment0 | 1 | 1 | 1 | 0 | 0 | 0 |
tuser_last_segment1 | 0 | 0 | 0 | 1 | 1 | 1 |
tuser_last_segment2 | 0 | 0 | 0 | 0 | 0 | 1 |
tuser_last_segment3 | 0 | 0 | 0 | 0 | 0 | 0 |
DATA | ||||||
tdata[127:0] | EOP | EOP | EOP | Data | Data | Data |
tdata[255:128] | SOP | IDLE | IDLE | EOP | EOP | Data |
tdata[391:256] | Data | SOP | IDLE | SOP | IDLE | EOP |
tdata[511:392] | Data | Data | SOP | Data | SOP | SOP |