Spisu treści:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroki
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroki

Wideo: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroki

Wideo: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 kroki
Wideo: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Listopad
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Ten instruktażowy samouczek pokazuje, jak wykonać solwer macierzy 2 na 2, implementując moduł terminala szeregowego UART, a także moduł solwera macierzy. Użytkownik będzie mógł wprowadzić macierz 2 na 2, a następnie zaimplementowany projekt wypluje rozwiązanie do układu liniowego.

Aby użyć tego kodu, będziesz potrzebować:

- Płyta FPGA Digilent Basys 3

- Komputer z oprogramowaniem Xilinx Vivado (będzie działać Webpack Edition). W tym module użyliśmy wersji 2017.2.

- Przewód Micro USB (z możliwością przesyłania danych)

Autorzy: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Klasa: Digital Design

- Instruktor EE/CPE 133: Joseph Callenes

Źródła:

  • UART_TX, UART_RX z:
  • Odbij z:

Funkcja dzielenia dwóch liczb bez znaku:

Krok 1: Krok 1: Jak to działa

Krok 1: Jak to działa
Krok 1: Jak to działa
Krok 1: Jak to działa
Krok 1: Jak to działa

Wejścia: użytkownik wprowadza system liniowy do terminala komputerowego, a następnie moduł UART przekształca je w macierz, którą ma manipulować moduł solwera macierzy. Moduł UART sprzęga się z użytkownikiem i pozwala mu wejść do odpowiedniej matrycy, a także poprowadzić go do prawidłowego wprowadzania danych. System posiada również przełącznik resetowania/włączania mapowany na skrajnie lewy przełącznik na płycie Basys3.

Wyjścia: Wyniki z solvera macierzy są przekazywane przez interfejs modułu UART, a następnie wyświetlane na terminalu komputerowym z rozwiązaniami wymienionymi na ekranie. Solver macierzy wyprowadza standardowe wektory logiczne bez znaku do modułu UART, który konwertuje je na bardziej przyjazne dla użytkownika dane wyjściowe, które użytkownik może docenić. Bieżący solwer macierzy może wprowadzać tylko liczby do 15, a wynik musi być czystą liczbą całkowitą, w przeciwnym razie program solwera macierzy nie jest w stanie wypisać poprawnego rozwiązania.

Moduł „Sterowania szeregowego” najwyższego poziomu: Użytkownik wprowadza żądany system liniowy do tego modułu poprzez moduły UART_TX i UART_RX i konwertuje dane wejściowe z terminala komputerowego na tablicę standardowych wektorów logicznych, które są przetwarzane przez moduł rozwiązywania macierzy. Moduł solwera macierzy zwraca następnie tablicę standardowych wektorów logicznych, które są następnie wyświetlane na ekranie przez interfejs szeregowy UART. Transmisja i odbieranie danych przez moduły UART odbywa się poprzez użycie bardzo długiego FSM w tym module.

Moduł UART_TX: Użytkownik wprowadza 8-bitowy standardowy wektor logiczny i sygnał wysyłania w celu wysłania danych przez interfejs USB. Podczas wysyłania danych sygnał TX_Active jest wysoki. Po wysłaniu danych pulsuje sygnał TX_Done.

Moduł UART_RX: Użytkownik otrzymuje jednocześnie 8 bitów danych z interfejsu USB. Impuls z RX_DV wskazuje, że dane zostały odebrane i że można odczytać wektor logiczny RX_Byte.

Moduł Solvera Macierzy: Solver macierzy otrzymuje z modułu UART tablicę imputowaną, która reprezentuje macierz. Solver macierzy konwertuje następnie każdą liczbę w systemie liniowym na liczby całkowite, aby ułatwić na nich operowanie. Wewnątrz modułu solwera macierzy znajduje się kilka podmodułów. Pierwszym podmodułem jest inverse_matrix_1, który pobiera macierz, a następnie daje odwrotność podanej macierzy. Następnym podmodułem jest mnożnik, który mnoży macierz total_macierz przez macierz odwrotną przy użyciu standardowych operacji na macierzach. Na koniec moduł główny mapuje je razem, aby uzyskać jedną odpowiedź.

Krok 2: Krok 2: Programowanie płytki Basys 3

Po zdobyciu kodu źródłowego z dołu, prześlij go na płytę bases 3, aby korzystać z interfejsu.

reference.digilentinc.com/basys3/refmanual

Krok 3: Krok 3: Jak z niego korzystać

Użyj interfejsu szeregowego z prędkością 9600 bodów w celu komunikacji z UART Basys3. Użyłem screena na Linuksie z następującym poleceniem:

ekran /dev/ttyUSB1 9600

Aby to zrobić na Linuksie, musiałem dodać mojego użytkownika do grupy "dialout". W systemie Windows putty powinien działać, a w systemie MacOSX powinien to być proces podobny do linuksa.

Przestawienie przełącznika znajdującego się najbardziej po lewej stronie do pozycji włączonej uruchamia solwer macierzy. Wyłączenie go powoduje zresetowanie solvera macierzy.

Zalecana: