Обработка входящих пакетов

Version 1 (Dmitry Smekhov, 09/22/2011 09:00 am)

1 1
h1. Обработка входящих пакетов
2 1
3 1
Входящие пакеты обрабатывает узел core64_rx_engine. В связи с различиями в реализации ядра Xilinx для различных ПЛИС существует несколько реализаций обработчика пакетов, они различаются способом подключения к компоненту Xilinx.
4 1
5 1
Список компонентов:
6 1
7 1
* core64_rx_engine - для Virtex 5
8 1
* core64_rx_engine_m2 - для Virtex 6
9 1
* core64_rx_engine_m4 - для Spartan 6
10 1
11 1
Внутри обработчика существуют два FIFO:
12 1
* FIFO0 - для запросов чтения или записи
13 1
* FIFO1 - для ответов на запросы чтения
14 1
15 1
Процесс pr_fifo0_wr определяет тип пакета и разрешает передачу пакета в FIFO0.
16 1
В FIFO0 передаются пакеты следующих типов:
17 1
* MEMORY READ REQUEST 32 bit
18 1
* MEMORY READ REQUEST-LOCKED 32 bit
19 1
* MEMORY WRITE REQUEST 32 bit
20 1
* MEMORY WRITE REQUEST-LOCKED 32 bit
21 1
22 1
Процесс pr_fifo1_wr определяет тип пакета и разрешает передачу пакета в FIFO1.
23 1
В FIFO1 передаются пакеты следующих типов:
24 1
* COMPLETION WITH DATA
25 1
* COMPLETION LOCKED WITH DATA
26 1
27 1
Все остальные типы пакетов игнорируются.
28 1
29 1
В процессе pr_stp реализован автомат чтения данных из FIFO0. Автомат читает пакет, определяет его тип (чтение или запись) и формирует запрос к компоненту core64_reg_access.
30 1
31 1
В процессе pr_stf реализован автомат чтения данных из FIFO1. Автомат читает пакет и передаёт данные в компонент block_pe_fifo.