реклама на сайте
подробности

 
 
> xilinx tri mode ethernet mac, Работа корки сгенерированной в xilinx-е
NSergeevich
сообщение Mar 20 2015, 08:03
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716



Всем привет. Есть ли у кого-нибудь опыт в реализации проекта xilinx tri mode ethernet mac ? На RGMII гигабитный PHY.
У меня появилось несколько вопросов:
1. RGMII - Reduce Gigabit Media Independent Interface. RGMII использует половину цепей, используемых в GMII интерфейсе. Всего 12 контактов, и среди них TXD и RXD по [3:0], т.е. по 4 цепи.
Но, генерируемая корка MAC-а (tri mode ethernet mac) в xilinxe при выборе RGMII интерфейса выдает TXD и RXD по [7:0], т.е. по 8 цепей, (как обычный GMII). Вопрос, я же не могу свой PHY с 4-мя цепями коннектить только на половину цепей, что выходит из мака? Что с этим делать?
2. Если я правильно разобрался, то на GTX_CLK (клок на phy) и на tx_axi_clk (клок на mac)(опять же все применимо к rgmii) нужно подавать 125mhz clk ?
3. Я пробую протащить пакеты через MAC. Подаю на вход [7:0] tx_axis_mac_tdata (Frame data to be transmitt) вместе с tx_axis_mac_tvalid (TX Data Valid), но пакеты не попадают на PHY (и на выходе мака нету). Почему не проходят, как правильно отправить? Есть ли пример?
Заранее спасибо за терпение)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
egorman44
сообщение Jun 3 2015, 11:55
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 22-11-12
Из: Нижний Новгород
Пользователь №: 74 507



Я бы Вам рекомендовал почитать что-нибудь от Sunburst Design - у этих ребят много рассуждений по поводу реализации конечного автомата на Verilog и SV, конечно если с английским хорошо. У Iosifk на сайте есть краткий курс , там тоже описаны FSM'ки. Да собственно по первому же запросу в Google на тему "fsm verilog" вывалился пример от Altera.
Я думаю лучше самому понять как это работает, потому что конечный автомат - есть очень важный момент в цифровой схемотехнике. sm.gif
Go to the top of the page
 
+Quote Post
NSergeevich
сообщение Jun 3 2015, 15:03
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716



Цитата(egorman44 @ Jun 3 2015, 14:55) *
Я бы Вам рекомендовал почитать что-нибудь от Sunburst Design - у этих ребят много рассуждений по поводу реализации конечного автомата на Verilog и SV, конечно если с английским хорошо. У Iosifk на сайте есть краткий курс , там тоже описаны FSM'ки. Да собственно по первому же запросу в Google на тему "fsm verilog" вывалился пример от Altera.
Я думаю лучше самому понять как это работает, потому что конечный автомат - есть очень важный момент в цифровой схемотехнике. sm.gif


Будьте добры не отсылайте меня в школу. У меня много литературы по верилогу, в том числе и о конечных автоматах.
Мне интеречно где может быть у меня ошибка...
Часть кода:
Код
parameter S1 = 1'b0;
parameter S2 = 1'b1;


parameter [7:0] DA1[0:0] = {8'b1111000};
parameter [7:0] DA2[0:4] = {8'b100100,8'b10101111,8'b111100,8'b1101110,8'b10101000};//{7'b1111000,6'b100100,8'b10101111,6'b111100,7'b1101110,8'b10101000};
parameter [7:0] SA[0:5] = {8'b11010,8'b11011,8'b11100,8'b11101,8'b11110,8'b11111};//{5'b11010,5'b11011,5'b11100,5'b11101,5'b11110,5'b11111};
parameter [7:0] L_T[0:1] = {8'b1000,8'b0};
parameter [7:0] DATA[0:47] =

{

8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010,
8'b10101010,8'b10101010,8'b10101010

};

parameter [7:0] frame[0:60] = {DA2[0:4], SA[0:5], L_T[0:1], DATA[0:47]};  

always @(posedge handshake)
begin
    got_handshake <= 1;
end
    
    

always @(*)
begin
   if (counter_next > 1024)
       begin
                counter_next <= 0;
      end
    else
      counter_next <= counter + 1'b1;
end

reg [0:0] state, next_state;
always@(*)
begin
      if (rst) begin
         out <= 0;
         out2 <= 0;
         counter <= 0;
            state <= S1;
      end
      else
          case (state)
            S1 : begin
                  out <= DA1[counter];
                        out2 <= 1'h1;
                        next_state = got_handshake ? S2 : S1;  
                        counter <= counter_next;
                 end              
                S2 : begin
                  out <= frame[counter];
                        out2 <= 1'h1;
                        next_state = S1;
                        counter <= 0;
                      end
          endcase                      
end


Почемуто автомат не переходит во 2-е состояние (S2), судя по всему handshke не приходит. А должен так как первый byte на MAC приходит.

Сообщение отредактировал NSergeevich - Jun 3 2015, 15:05
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- NSergeevich   xilinx tri mode ethernet mac   Mar 20 2015, 08:03
- - NSergeevich   Я разобрался с вопросами которые выше. Появился но...   May 29 2015, 14:23
|- - Artemius_tv   Цитата(NSergeevich @ May 29 2015, 18:23) ...   May 29 2015, 16:26
|- - tolik1   Цитата(NSergeevich @ May 29 2015, 18:23) ...   Jun 1 2015, 08:03
|- - Trashy_2   Вы в хексе напишите, что вы получаете, вместе с пр...   Jun 1 2015, 08:31
- - egorman44   Цитата(tolik1 @ Jun 1 2015, 11:03) К сожа...   Jun 1 2015, 10:51
|- - Trashy_2   Цитата(egorman44 @ Jun 1 2015, 13:51) ...   Jun 1 2015, 15:08
|- - NSergeevich   Цитата(Trashy_2 @ Jun 1 2015, 18:08) А чт...   Jun 1 2015, 16:15
- - NSergeevich   Не успел написать. Я разобрался, в чем дело, на пр...   Jun 1 2015, 14:25
- - NSergeevich   Как на Verilog описать задержку первого байта до п...   Jun 2 2015, 10:09
- - NSergeevich   Может быть, кто-нибудь использовал конструкцию The...   Jun 2 2015, 12:21
- - egorman44   Цитата(NSergeevich @ Jun 2 2015, 13:09) К...   Jun 2 2015, 13:48
|- - NSergeevich   Цитата(egorman44 @ Jun 2 2015, 16:48) мож...   Jun 3 2015, 06:56
- - egorman44   Цитата(NSergeevich @ Jun 3 2015, 09:56) Т...   Jun 3 2015, 11:12
|- - NSergeevich   Цитата(egorman44 @ Jun 3 2015, 14:12) А ч...   Jun 3 2015, 11:37
|- - doom13   У Вас тут асинхронщина какая-то: Кодalways@(*...   Jun 3 2015, 15:48
|- - Artemius_tv   Выложите весь исходник. Вот так: Цитата(NSergeevic...   Jun 3 2015, 16:44
- - NSergeevich   Код`timescale 1ns / 1ps //////////////////////...   Jun 4 2015, 06:22
- - egorman44   Кодalways @(posedge handshake) begin got_...   Jun 4 2015, 07:05
- - NSergeevich   Кому интересно, почитайте очень интересную статью ...   Jun 4 2015, 11:26
- - egorman44   Цитата(NSergeevich @ Jun 4 2015, 14:26) К...   Jun 4 2015, 12:05


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 19:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016