Utworzenie sprzętu (Zybo + CC1000)

Wstęp

Korzystając z płytki Zybo, utworzymy system mikroelektroniczny, zawierający następujące bloki:

  • ZYNQ processing system
  • cc1000 IP core
  • opcjonalnie bloki GPIO z dołączonymi przyciskami i diodami 

System mikroelektroniczny będzie nam służył do uruchamiania oprogramowania do nadawania i odbierania pakietów danych przez radio.

Procedura postępowania 

Część sprzętowa (hardware), realizujemy w Vivado: 

  • Utworzyć w C:\Designs folder np. ip_repo na bloki IP użytkownika i skopiować tam rozpakowany folder z blokiem cc1000 (do pobrania na dole głównej strony laboratorium ZSS).
  • Uruchomić Vivado i utworzyć nowy projekt dla płytki Zybo Z7-20. Instrukcja tworzenia projektu została podana na przedmiocie Mikroelektroniczne Systemy Programowalne w ćw. 6 (step 1-4, wyłącznie płytka Zybo, bez Nexys A7).
  • Dodać now utworzony folder ip_repo do IP repository

  • Utworzyć Block Design (IP Integrator/Create Block Design) i dodać bloki:

    • ZYNQ7 Processing System
    • cc1000
    • opcjonalnie GPIO do obsługi diod LED i przycisków oraz przełączników.
    • w blokach GPIO włączyć drugi kanał o ile jest potrzeba (Customize Block/Enable Dual Channel)
  • Korzystając z Designer Assistance, wykonać połączenia (Run Connection Automation i Run Block Automation), podłączyć odpowiednie wyścia do LED i przycisków;

Dodać porty zewnętrzne dla końcówek CC1000_* i MCP3201_* bloku cc1000 (Make External). Port dbg_o pozostawić nie podłączony. Przykładowy wygląd zbudowanego systemu:

  • Utworzyć wrapper bloku w języku HDL (pozwolić Vivado na zarządzanie nim): 

  • Dodać do projektu plik constraints i dopasować nazwy końcówek do zbudowanego systemu (można zajrzeć do pliku wrapper i porównać z plikiem xdc).
  • Zbudować system i wygenerować bitstream.
  • Wyeksportować sprzęt wraz z bitstream (File/Export/Export Hardware, zaznaczyć także eksport bitstream'u).
  • Uruchomić SDK: File/Launch SDK.

Część programowa (software), realizujemy w SDK:

  • Utworzyć nowy projekt (File/New/Application project), korzystając z template np. Hello world.
  • Do projektu dołączyć pliki ze sterownikami cc1000 (do pobrania na dole głównej strony laboratorium ZSS) i napisać kod realizujący wymaganą w danym ćwiczeniu funkcjonalność.
  • Zaleca się dodanie na początku programu funkcji ResetFpgaOnly() z pliku ze sterownikami, aby resetować sprzęt przed każdym uruchamianiem programu.
  • Zaprogramować układ FPGA (Xilinx/Program FPGA). W przypadku zdalnej realizacji, do komputera podłączone są dwie płytki Vivado. Jednej z nich nie należy przeprogramowywać, bo zawiera ona stację referencyjną. Wybór płytki do programowania układu FPGA.
  • Uruchomić oprogramowanie. W przypadku zdalnej realizacji, należy również wybrać, którą płytkę programujemy. Wybór płytki do uruchamiania oprogramowania.

Na koniec należy zresetować płytkę z naszym projektem, aby przywrócić ją do stanu początkowego dla innych. Jeśli niechcący przeprogramowało się stację referencyjną, to należy ją również zresetować.

Opracował: dr hab. inż. M. Wójcikowski, 2020r.

W ćwiczeniu wykorzystano wyniki pracy dyplomowej mgr inż. B. Durskiego.