Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проект падает при смене частоты в процессе работы
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
D-Luxe
В процессе работы меняется частота WFF_WR_CLK_2 ( с 12,5 на 125 Мгц или наоборот ). После смены частоты происходит следующее RTFIFO_CROSS_Empty блокируется и всегда находится в '1', несмотря на то, что данные в FIFO пишутся и WrAck'и приходят. Частота rocket_clk - 156 МГц.

Код
    ROCKET_CLK_OUT <= rocket_clk;
    RFF_DATA <= RTFIFO_CROSS_DataOut;
    RFF_WR_REQ <= RTFIFO_CROSS_RdAck;
    
  ROCKET_FIFO_I : entity fifo_generator_v4_3_4096
    port map
  (
    clk => rocket_clk,
    din => user_IP2RFIFO_Data,
    rd_en => Rocket_Fifo_RdReq,
    rst => ipif_Bus2IP_Reset,
    wr_en => user_IP2RFIFO_WrReq,
    almost_full => Rocket_Fifo_Almost_Full,
    data_count => Rocket_Fifo_DataCnt,
    dout => Rocket_Fifo_DataOut,
    empty => Rocket_Fifo_Empty,
    full => Rocket_Fifo_Full,
    valid => Rocket_Fifo_RdAck );
  
  Rocket_Fifo_RdReq <= not( Rocket_Fifo_Empty ) and not( RTFIFO_CROSS_Almost_Full or RTFIFO_CROSS_Full );
  
    Rocket_Almost_Full <= Rocket_Fifo_DataCnt(11) and Rocket_Fifo_DataCnt(10) and Rocket_Fifo_DataCnt(9) and Rocket_Fifo_DataCnt(8) and Rocket_Fifo_DataCnt(7);

    -- FIFO для развязки частоты ( 64x9 )
    ROCKET_FIFO_CROSS_I : entity fifo_generator_v4_3_64x9
    port map
    (
        din    => Rocket_Fifo_DataOut,
        rd_clk    => WFF_WR_CLK_2,
        rd_en    => RTFIFO_CROSS_Rd_En,
        rst    => ipif_Bus2IP_Reset,
        wr_clk    => rocket_clk,
        wr_en    => Rocket_Fifo_RdAck,
        dout    => RTFIFO_CROSS_DataOut,
--    wr_data_count => RTFIFO_CROSS_DataCnt,
        empty    => RTFIFO_CROSS_Empty,
        full    => RTFIFO_CROSS_Full,
        almost_full    => RTFIFO_CROSS_Almost_Full,
        valid    => RTFIFO_CROSS_RdAck );
    
  RTFIFO_CROSS_Rd_En <= not( RTFIFO_CROSS_Empty ) and not( RFF_FULL or RFF_FULL_2 );


3-й день над этим бьюсь, ничего в голову не приходит. Подкиньте идеи и напишите свои размышления по этому поводу.
Джеймс
Цитата(D-Luxe @ Oct 24 2011, 20:45) *
В процессе работы меняется частота WFF_WR_CLK_2 ( с 12,5 на 125 Мгц или наоборот ).

каким образом меняется частота? ЧТО из себя представляет схема изменения частоты?
максимум подробностей, плиз
D-Luxe
Цитата(Джеймс @ Oct 24 2011, 23:38) *
каким образом меняется частота? ЧТО из себя представляет схема изменения частоты?
максимум подробностей, плиз

Это частота Ethernet'а она меняется в процессе работы. Схема представляет собой мультиплексор, который проключает нужную частоту битом регистра.

Меняется она когда меняется скорость соединения с 1000 Гбит на 100 Мбит / с.
DmitryR
А ресет сделать после смены частоты?
Джеймс
Цитата(D-Luxe @ Oct 25 2011, 08:25) *
Это частота Ethernet'а она меняется в процессе работы. Схема представляет собой мультиплексор, который проключает нужную частоту битом регистра.

1) То есть как - снаружи в ПЛИС приходит 2 частоты. Внутри ПЛИС стоит обычный мультиплексор, который переключает частоты. Так? Или не так?
Возможна ли в таком случае ситуация, когда при переключении частоты возникнет "иголка":
http://www.vlsi-world.com/images/stories/E...with_glitch.png

2) Куда идет внутри ПЛИС мультиплексированная частота? Только на тактирование? Или также на логику, PLL?...
3) Тактовая частота после мультиплексирования оказалась на глобальной цепи?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.