İçindekiler:

Tamsayı_Matrix_Solver_UART_SERIAL_VHDL: 3 Adım
Tamsayı_Matrix_Solver_UART_SERIAL_VHDL: 3 Adım

Video: Tamsayı_Matrix_Solver_UART_SERIAL_VHDL: 3 Adım

Video: Tamsayı_Matrix_Solver_UART_SERIAL_VHDL: 3 Adım
Video: Голубая стрела (1958) фильм 2024, Ekim
Anonim
Tamsayı_Matrix_Solver_UART_SERIAL_VHDL
Tamsayı_Matrix_Solver_UART_SERIAL_VHDL

Bu öğretici öğretici, UART Seri terminal modülünün yanı sıra bir matris çözücü modülü uygulayarak 2'ye 2 matris çözücünün nasıl yapıldığını gösterir. Kullanıcı 2'ye 2 matris girebilecek ve ardından uygulanan tasarım çözümü lineer sisteme tükürecektir.

Bu kodu kullanmak için ihtiyacınız olacak:

- Digilent Basys 3 FPGA Kartı

- Xilinx Vivado Yazılımına sahip bilgisayar (Webpack Edition çalışacaktır). Bu modül için 2017.2 sürümünü kullandık.

- Bir Mikro USB Kablosu (Veri aktarımı özellikli)

Yazarlar: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Sınıfı: Dijital Tasarım

- EE/CPE 133 Eğitmen: Joseph Callenes

Kaynaklar:

  • UART_TX, UART_RX:
  • Geri dönme:

İşaretsiz iki sayıyı bölme işlevi:

Adım 1: Adım 1: Nasıl Çalışır

Adım 1: Nasıl Çalışır?
Adım 1: Nasıl Çalışır?
Adım 1: Nasıl Çalışır?
Adım 1: Nasıl Çalışır?

Girdiler: Kullanıcı, bilgisayar terminaline doğrusal bir sistem girer ve ardından bir UART Modülü, bunları matris çözücü modülünün manipüle etmesi için bir diziye dönüştürür. UART modülü, kullanıcıyla arayüz oluşturur ve uygun matrisi girmelerine ve verileri doğru şekilde girmeleri için onlara rehberlik etmelerine olanak tanır. Sistemde ayrıca Basys3 kartının en solundaki anahtara eşlenmiş bir sıfırlama/etkinleştirme anahtarı vardır.

Çıktılar: Matris çözücüden elde edilen sonuçlar UART modül arayüzünden geçirilir ve daha sonra ekranda listelenen çözümlerle bilgisayar terminalinde görüntülenir. Matris çözücü, imzasız standart mantık vektörlerini UART modülüne verir ve bu da onları kullanıcının takdir etmesi için daha kullanıcı dostu çıktılara dönüştürür. Geçerli matris çözücü yalnızca 15'e kadar sayıları girebilmektedir ve çıktı sonucu temiz bir tamsayı olmalıdır, aksi takdirde matris çözücü programı doğru çözümü çıkaramaz.

Üst Düzey "Seri Kontrol" Modülü: Kullanıcı, UART_TX ve UART_RX modülleri aracılığıyla bu modüle istediği lineer sistemi girer ve bilgisayar terminalinden gelen girdileri matris çözücü modülü tarafından işlenen bir dizi standart mantık vektörüne dönüştürür. Matris çözücü modülü daha sonra UART seri arabirimi tarafından ekranda görüntülenen bir dizi standart mantık vektörü döndürür. UART modülleri aracılığıyla veri gönderme ve alma, bu modülde çok uzun bir FSM kullanılarak gerçekleştirilir.

UART_TX Modülü: Kullanıcı, USB arabirimi aracılığıyla veri göndermek için 8 bitlik bir standart mantık vektörü ve bir gönderme sinyali girer. Veri gönderirken TX_Active sinyali yüksek. Verileri gönderdikten sonra, TX_Done sinyali darbeler.

UART_RX Modülü: Kullanıcı, USB arayüzünden bir seferde 8 bit veri alır. RX_DV'den gelen bir darbe, verilerin alındığının ve RX_Byte vektör mantığının okunabileceğinin bir göstergesidir.

Matris Çözücü Modülü: Matris çözücü, matrisi temsil eden UART modülünden empoze edilmiş bir dizi alır. Matris çözücü daha sonra lineer sistemdeki her sayıyı tam sayılara dönüştürerek üzerlerinde çalışmayı kolaylaştırır. Matris çözücü modülünün içinde birkaç alt modül vardır. İlk alt modül, matrisi alan ve ardından verilen matrisin tersini veren inverse_matrix_1'dir. Sonraki alt modül, standart matris işlemlerini kullanarak ters matris ile total_matrix'i çarpan çarpandır. Son olarak, ana modül bunları tek bir yanıt verecek şekilde eşleştirir.

Adım 2: Adım 2: Basys 3 Board'un Programlanması

Aşağıdan kaynak kodunu aldıktan sonra, arayüzü kullanmak için bunu basys 3 kartına yükleyin.

reference.digilentinc.com/basys3/refmanual

Adım 3: Adım 3: Nasıl Kullanılır

Basys3 UART ile iletişim kurmak için 9600 baud'da bir seri arabirim kullanın. Linux'ta ekranı aşağıdaki komutla kullandım:

ekran /dev/ttyUSB1 9600

Bunu linux üzerinde yapabilmek için kullanıcımı "dialout" grubuna eklemem gerekiyordu. Windows'ta macun çalışmalı ve MacOSX'te linux'a benzer bir süreç olmalıdır.

En soldaki anahtarı açık konuma çevirmek matris çözücüyü başlatır. Kapatmak, matris çözücüyü sıfırlar.

Önerilen: