Wszystkie cyfrowe pętle blokady fazy


9

Chcę zaimplementować blokadę fazy w układzie FPGA bez użycia zewnętrznych komponentów (innych niż ADC). Dla uproszczenia wystarczające jest zablokowanie prostym impulsem binarnym. Częstotliwość sygnałów wynosi ~ 0,1-1% zegara. Nie mogę korzystać z wbudowanych zegarów PLL, ponieważ zazwyczaj są to:

  1. Nie można konfigurować (ustawiane podczas syntezy).
  2. Roztrzęsiony.
  3. Nie obsługuj częstotliwości, której potrzebuję.

Przeglądałem literaturę i znalazłem kilka pętli zamkniętych w fazie binarnej. Najbardziej zauważalny projekt „kradzieży impulsów”, do którego mogę w razie potrzeby zamieścić link. Wdrożyłem i zsyntetyzowałem z pewnym sukcesem, ale jego zakres drgań i blokad nie był tak dobry, jak reklamowany. Odniosłem również sukces, korzystając z zewnętrznego DVCO, ale wolałbym, gdybym mógł zaimplementować wszystko na chipie.

Pomocny byłby projekt obwodu cyfrowego, a nawet wskazówka we właściwym kierunku (od jakiegoś czasu uderzam głową), sprawdzona implementacja FPGA byłaby cudowna, ale nie oczekiwana.

DODANO 10–27–2010

Rzeczywisty projekt DPLL, którego użyłem, ma „filtr losowego przejścia” jako filtr pętli (nie opisany wcześniej „kradzież impulsów”, przeglądający moje notatki, które nie działały dobrze), który następnie przesyła impulsy zegara do DCO . Zakres blokady ustawia się za pomocą dzielnika w DCO. Czułość pętli ustala się poprzez zmianę długości losowego marszu.

Artykuł, w którym się to znajduje, jest cytowany na końcu tego postu. Po samodzielnym wdrożeniu jego części odkryłem, że zostało ono już zaimplementowane na OpenCores, jednak okazuje się, że w ostatnich miesiącach projekt został usunięty, ale mam pliki Verilog zapisane, jeśli ktoś ich chce.

Yamamoto, H .; Mori, S .; , „Performance of Binary Quantized All Digital Digital Phase-Locked Loop with New Class of Sequential Filter,” Communications, IEEE Transactions on, tom 26, no.1, str. 35-45, styczeń 1978

doi: 10.1109 / TCOM.1978.1093972

URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1093972&isnumber=23895


1
Link do projektu „kradzież pulsacyjna” - nie ma powodu, aby tego nie robić.
Kevin Vermeer

Odpowiedzi:


6

Czy możesz podać więcej szczegółów dotyczących częstotliwości docelowej, jittera i przepustowości pętli (wymagany czas ustalania)? A także, jakiego rodzaju oscylatora chcesz użyć (zewnętrznego z przetwornikiem cyfrowo-analogowym, z / bez ditheringu ?, na cyfrowym liczniku / akumulatorze)?

Jeśli jesteś zadowolony z cyfrowego „oscylatora” (tj. Przepełnionego akumulatora) i jego drgań, to reszta obwodu może być dość prosta:

  • licznik (PFD) zliczający liczbę cykli między referencyjnym a (opcjonalnie podzielonym) wyjściem PLL,
  • filtr cyfrowy - wszystko zrobi przy założeniu, że wykonuje integrację (akumulator) i ma zero (minus (lub plus?) skalowane wyjście PFD) w celu ustabilizowania pętli, opcjonalnie jeden lub więcej biegunów powyżej szerokości pasma pętli, aby zmniejszyć wartość kontrolna „tętnienie” przy częstotliwości odniesienia (ma znaczenie tylko w przypadku fref
  • najbardziej znaczące bity wyjścia filtra cyfrowego (wartość kontrolna DVCO) są podawane jako dane wejściowe do przelewającego się akumulatora (DVCO).

Jeśli chodzi o przepustowość pętli, jeśli nie jest to wymuszone przez ustalanie czasu, zdecyduj na podstawie wkładu hałasu wszystkich komponentów.

  • Jeśli jitter pochodzi głównie z referencji lub z PFD - użyj mniejszej przepustowości,
  • Jeśli hałas pochodzi z oscylatora - zwiększ go.

W przypadku, gdy sygnał odniesienia jest modulowany fazowo lub częstotliwościowo - użyj szerokości pasma pętli mniejszej niż najmniejsza częstotliwość sygnału modulującego odniesienie.

Techniki trudniejsze są stosowane, jeśli częstotliwość wyjściowa jest bliska lub równa częstotliwości taktowania i / lub jeśli wymagany jest niski jitter lub bardzo szybki zakres blokowania. Być może w twoim przypadku nie są one potrzebne, poza tym mogą nie być dobrze dostosowane do implementacji FPGA.


Jeśli ktoś chce np. Pomnożyć częstotliwość stabilnego sygnału wejściowego przez 16 i ma do tego zegar, który jest szybki w stosunku do tego, jaką zaletą jest zastosowanie filtru cyfrowego zamiast pomiaru liczby zegarów między każdą krawędzią a poprzednim jeden i zastanawianie się, jaką częstotliwość należy wyprowadzić, aby impuls wyjściowy, który powinien pokrywać się z następnym zboczem zegara wejściowego, tak zrobił? Jeśli jitter wejściowy nie jest dłuższy niż cykl zegarowy, jitter wyjściowy powinien być równie dobry. Taki schemat mógłby zacząć generować czysty sygnał wyjściowy, gdy tylko otrzyma drugi impuls wejściowy.
supercat

1

Jeśli możesz tolerować drżenie, ale przeważnie potrzebujesz tylko precyzyjnego taktowania w stosunku do znoszonego zegara do odzyskiwania danych, możesz zaimplementować coś takiego jak CAN Standard PLL (zaczyna się na stronie 67 tego pliku PDF). Działa to w oparciu o licznik przepełnienia, który powinien być dostrojony nominalnie poprawnie, ale synchronizuje do krawędzi w strumieniu przychodzącego impulsu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.