Po przejściu przez pierwszy dzielnik dostajemy max 50MHz.
![synplify pro rom inferencing synplify pro rom inferencing](https://slideplayer.com/slide/7905950/25/images/69/Synplicity+Synplify+Pro+7.3.jpg)
Jest pewien dość istotny problem - jaka jest maksymalna częstotliwość sygnału wyjściowego z naszego generatora? Załóżmy, że na wejściu mamy 100MHz (sporo, ale MachXO2 może się rozpędzić do większych prędkości). Można w ten sposób zrobić regulowany dzielnik, o stopniu podziału od 2 do 256 w przypadku licznika 8-bitowego.Ĭzy to jest rozwiązanie optymalne? Jeszcze nie. Jest to kolejny licznik, z tą różnicą, że nie musi liczyć do swojej maksymalnej wartości i można skrócić okres zliczania. Pomiędzy źródło sygnału zegarowego a licznik dodajemy regulowany dzielnik częstotliwości. Pierwszą wadę spróbujemy rozwiązać w przykładzie poniżej. Nie ma także możliwości regulowania amplitudy. Takie rozwiązanie ma dwie wady - chcąc zmienić częstotliwość musimy zmienić źródło zegarowe. Wyjście z pamięci (dla przykładu niech też będzie 8-bitowe) kierujemy do przetwornika cyfrowo-analogowego, który przekształca sygnał cyfrowy na napięcie, mogące przybrać 1 z 256 wartości. 8 bitów adresu daje nam 256 komórek pamięci, w których zapisana jest tablica poszczególnych wartości funkcji. Licznik ma wyjście 8-bitowe (w tym przykładzie!), które dalej prowadzimy do wejścia adresowego pamięci ROM.
#Synplify pro rom inferencing generator#
Najprostszy generator DDS składa się ze źródła sygnału zegarowego, który kierujemy do licznika. Zaletą jest to, że można wygenerować zupełnie dowolny przebieg i nie jesteśmy tu ograniczeni do szablonowego sinusa, trójkąta i prostokąta. Wszystkie elementy cyfrowe można schować do FPGA, dzięki czemu generator staje się bardzo prosty i łatwo go zmodyfikować, jeśli będzie taka potrzeba.
![synplify pro rom inferencing synplify pro rom inferencing](https://www.mdpi.com/applsci/applsci-12-00089/article_deploy/html/images/applsci-12-00089-g003.png)
Jedyne elementy analogowe w DDS to przetwornik cyfrowo-analogowy (co oczywiste) oraz ewentualnie jakiś wzmacniacz wyjściowy. Przetwornik jest najprostszy z możliwych, nie ma nawet wzmacniacza na wyjściu.ĭDS oznacza Direct Digital Synthesis czyli bezpośrednią syntezę cyfrową. Umożliwia przekształcenie sygnału cyfrowego 8-bitowego na sygnał analogowy. Ich obsługa zajmuje zdecydowanie mniej zasobów logicznych FPGA.ĭo płytki dołączyłem prosty przetwornik R-2R złożony z szeregu rezystorów. Pola dotykowe są fajne, ale mimo to stwierdziłem, że dolutuję zwykłe przyciski microswitch, bo są po prostu wygodniejsze do celów testowych.
![synplify pro rom inferencing synplify pro rom inferencing](https://slideplayer.com/slide/7905950/25/images/67/Synopsys+FPGA+Compiler+II.jpg)
Są w nim dwie przejściówki z USB: pierwsza na interfejs JTAG i służy do programowania, a drugą można wykorzystać do własnych celów, np. Oprócz tego jest też generator sygnału zegarowego, interfejsy szeregowe, pamięci oraz cała masa innych ciekawych rzeczy.ĭostępna jest płytka testowa MachXO2 Pico Board, zawierająca układ MachXO2-1200, cztery przyciski dotykowe, wyświetlacz LCD, parę innych gadżetów, a przede wszystkim programator na USB oparty o scalak FTDI FT2232HL. W przeciwieństwie do typowych FPGA jest on wyposażony w pamięć stałą, więc nie ma potrzeby stosowania dodatkowych (drogich!) pamięci konfiguracyjnych, zewnętrznych pamięci flash ani nic w tym stylu. Na początek chciałbym przedstawić mało w Polsce znany układ FPGA od Lattice. Przy okazji skopiowałem artykuł z mojej strony na temat "DDS - co to jest?" dla osób niezorientowanych w tej tematyce. Prezentowany tutaj generator zużywa zaledwie 1/4 zasobów MachXO2-1200 i umożliwia cyfrowe wygenerowanie sinusa o częstotliwości 16,5MHz. FPGA ciekawi mnie już od jakiegoś czasu, ze względu na to, że można na nim zrobić rzeczy, przy których procesory wymiękają. Tak więc proszę o konstruktywną krytykę i porady, co by tu można jeszcze ulepszyć. To moja trzecia konstrukcja na FPGA ) pierwszy był trywialny zegarek na kilku licznikach, a potem prosty kalkulatorek dodający dwie liczby.