Перейти к содержанию
    

Мне надо реализовать транспортный протокол UDP, TCP и PTP1588 на Cyclone 5 5CEFA9217I7.

В связи с этим возникло два вопроса

1. Этот IP подойдёт?

2. Какой транспортный леер купить?

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не открывается ссылка под санкциями ) Но там смотрю обычный Ethernet MAC.

Если под словом "реализовать", имеется ввиду генерация пакетов udp, tcp, то у интела вроде не было таких корок. Все приходится делать самому. Особенно весь tcp стэк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/24/2023 at 10:32 AM, new123 said:

Не открывается ссылка под санкциями ) Но там смотрю обычный Ethernet MAC.

Если под словом "реализовать", имеется ввиду генерация пакетов udp, tcp, то у интела вроде не было таких корок. Все приходится делать самому. Особенно весь tcp стэк

Quote

Overview

The Triple-Speed Ethernet Intel® FPGA IP core consists of a 10/100/1000 Mbps Ethernet media access control (MAC) and physical coding sublayer (PCS) Intellectual Property (IP). This IP function enables Intel® FPGAs to interface to an external Ethernet PHY device, which interfaces to the Ethernet network.

This IP is offered in MAC-only mode or in MAC+PHY mode. In the MAC only mode, the IP uses an external PHY chip to do signaling. The two supported interfaces to the external PHYs are: GMII (8-bit interface at 125 MHz SDR) and RGMII (4-bit interface at 125 MHz DDR).

In the MAC+PHY mode, the PHY is realized using on-chip transceivers or LVDS I/O with dynamic phase alignment (DPA) logic that can operate up to 1.25 Gbps. SGMII or 1000Base-X protocol is used in this case. The usage of LVDS I/Os enables very scalable multiport gigabit Ethernet (GbE) system designs while saving the serial transceivers for higher performance protocols.

Features

  • Complete 10/100/1000 Mbps Ethernet IP with all the necessary IP modules
  • 10/100/1000 Mbps MAC, PCS, and PMA
  • Flexible IP options
  • MAC only, PCS only, MAC + PCS, MAC + PCS + PMA, PCS + PMA
  • Many options for various applications and sizes as small as 900 logic elements (small-MAC)
  • Standard-based statistics counters supporting simple network management protocol (SNMP) Management Information Base (MIB and MIB-II) and Remote Network Monitoring (RMON)
  • Parameterizable FIFO or FIFO-less MAC options
  • IEEE 1588 v2 high accuracy and high precision time stamping option in hardware IP
  • 1-step and 2-step time sync
  • Supports IEEE 1588 v2 PTP packet encapsulation in IPv4, IPv6, and Ethernet
  • Real time of day clock generator (ToD) IP in design example
  • Many external Ethernet interface options for various Intel® FPGA families
  • MII (10/100 Mbps), GMII, RGMII, and SGMII (10/100/1000 Mbps), 1000BASE-X, and TBI (1 Gbps)
  • Management data I/O (MDIO) for external PHY device management

image.thumb.png.2c19ae7bc7d64930638a693e5653a9fc.png

 

это описание.

а что ни у кого нет TCP стека купить?

 

я вижу что Triple-Speed Ethernet Intel FPGA IP есть в библиотеке. я его подключил и получил топ

entity ETH is
	port (
		clk           : in  std_logic                     := '0';             -- control_port_clock_connection.clk
		reset         : in  std_logic                     := '0';             -- reset_connection.reset
		reg_addr      : in  std_logic_vector(7 downto 0)  := (others => '0'); -- control_port.address
		reg_data_out  : out std_logic_vector(31 downto 0);                    -- .readdata
		reg_rd        : in  std_logic                     := '0';             -- .read
		reg_data_in   : in  std_logic_vector(31 downto 0) := (others => '0'); -- .writedata
		reg_wr        : in  std_logic                     := '0';             -- .write
		reg_busy      : out std_logic;                                        -- .waitrequest
		tx_clk        : in  std_logic                     := '0';             -- pcs_mac_tx_clock_connection.clk
		rx_clk        : in  std_logic                     := '0';             -- pcs_mac_rx_clock_connection.clk
		set_10        : in  std_logic                     := '0';             -- mac_status_connection.set_10
		set_1000      : in  std_logic                     := '0';             -- .set_1000
		eth_mode      : out std_logic;                                        -- .eth_mode
		ena_10        : out std_logic;                                        -- .ena_10
		rgmii_in      : in  std_logic_vector(3 downto 0)  := (others => '0'); -- mac_rgmii_connection.rgmii_in
		rgmii_out     : out std_logic_vector(3 downto 0);                     -- .rgmii_out
		rx_control    : in  std_logic                     := '0';             -- .rx_control
		tx_control    : out std_logic;                                        -- .tx_control
		ff_rx_clk     : in  std_logic                     := '0';             -- receive_clock_connection.clk
		ff_tx_clk     : in  std_logic                     := '0';             -- transmit_clock_connection.clk
		ff_rx_data    : out std_logic_vector(7 downto 0);                     -- receive.data
		ff_rx_eop     : out std_logic;                                        -- .endofpacket
		rx_err        : out std_logic_vector(5 downto 0);                     -- .error
		ff_rx_rdy     : in  std_logic                     := '0';             -- .ready
		ff_rx_sop     : out std_logic;                                        -- .startofpacket
		ff_rx_dval    : out std_logic;                                        -- .valid
		ff_tx_data    : in  std_logic_vector(7 downto 0)  := (others => '0'); -- transmit.data
		ff_tx_eop     : in  std_logic                     := '0';             -- .endofpacket
		ff_tx_err     : in  std_logic                     := '0';             -- .error
		ff_tx_rdy     : out std_logic;                                        -- .ready
		ff_tx_sop     : in  std_logic                     := '0';             -- .startofpacket
		ff_tx_wren    : in  std_logic                     := '0';             -- .valid
		magic_wakeup  : out std_logic;                                        -- mac_misc_connection.magic_wakeup
		magic_sleep_n : in  std_logic                     := '0';             -- .magic_sleep_n
		ff_tx_crc_fwd : in  std_logic                     := '0';             -- .ff_tx_crc_fwd
		ff_tx_septy   : out std_logic;                                        -- .ff_tx_septy
		tx_ff_uflow   : out std_logic;                                        -- .tx_ff_uflow
		ff_tx_a_full  : out std_logic;                                        -- .ff_tx_a_full
		ff_tx_a_empty : out std_logic;                                        -- .ff_tx_a_empty
		rx_err_stat   : out std_logic_vector(17 downto 0);                    -- .rx_err_stat
		rx_frm_type   : out std_logic_vector(3 downto 0);                     -- .rx_frm_type
		ff_rx_dsav    : out std_logic;                                        -- .ff_rx_dsav
		ff_rx_a_full  : out std_logic;                                        -- .ff_rx_a_full
		ff_rx_a_empty : out std_logic                                         -- .ff_rx_a_empty
	);
end entity ETH;

 

для подключения к PHY

 

image.thumb.png.5d2acf9510a229e38a7a6afedb5d1b63.png

 

остальные сигналы надо подключать к транспортному лееру?

странно что я не вижу сигналов PTP 1588 хотя заявлено что в коре есть полная поддержка протокола.

 

то есть по сути нужен LWIP но для FPGA.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, jenya7 сказал:

а что ни у кого нет TCP стека купить?

Попробуйте купить тут

https://comblock.com/com5402soft.html

https://comblock.com/com5403soft.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/24/2023 at 4:47 PM, sorok-odin said:

выглядит неплохо. а что скажете насчёт их родного? он наверно к их мак кору хорошо подойдёт.

 

image.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего не скажу, при попытке купить comblock нам отказали из-за санкций. Может, вам повезет больше. Если что, у них и mac свой есть для легкой стыковки с TCP/IP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/24/2023 at 10:22 PM, gosha-z said:

Ээээ, а чем дядька Форенкич плох?

стрёмно как то. а если проблемы какие? поддержки нет если что. кроме того я пишу в VHDL, исходники я могу вставить в проект и на верилоге, не впервой, но примеры он даёт на верилоге. и у него нет PTP 1588.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использовать Triple speed ethernet корку от интела, поднять Nios-II и на нем стек уже реализовать. Делал на операционке uCos-II. Но было уже очень давно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/25/2023 at 9:43 AM, Realking said:

Использовать Triple speed ethernet корку от интела, поднять Nios-II и на нем стек уже реализовать. Делал на операционке uCos-II? Но было уже очень давно.

я не очень понимаю работу с  Nios-II. это же CPU. на нём на С надо писать? и как он сопрягается с MAC IP?

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, gosha-z said:

Ээээ, а чем дядька Форенкич плох?

активно его юзаю, но там вроде нет tcp стэка. И udp нет. реализован только полноценный ethernet

еще он больше под xil с их axi

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/25/2023 at 10:14 AM, new123 said:

активно его юзаю, но там вроде нет tcp стэка. И udp нет. реализован только полноценный ethernet

еще он больше под xil с их axi

 

а как его вставить в проект? там куча зависимостей. все файлы из rtl и lib включать надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.01.2023 в 11:26, jenya7 сказал:

реализовать транспортный протокол UDP, TCP и PTP1588

А какая точность PTP этого бутерброда планируется? На сколько я понимаю для точности PTP выше 10 мкс требуется выделенная среда без коммутаторов и вланов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...