Mundarija:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 qadam
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 qadam

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 qadam

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 qadam
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Oktyabr
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Bu qo'llanma sizga UART Serial terminal moduli va matritsa hal qilish moduli yordamida 2 dan 2 gacha matritsali yechuvchi yasashni ko'rsatadi. Foydalanuvchi 2 dan 2 gacha matritsani kiritishi mumkin bo'ladi, so'ngra amalga oshirilgan dizayn chiziqli tizimga yechim chiqarib yuboradi.

Ushbu kodni ishlatish uchun sizga kerak bo'ladi:

- Digilent Basys 3 FPGA kengashi

- Xilinx Vivado dasturi o'rnatilgan kompyuter (Webpack Edition ishlaydi). Ushbu modul uchun biz 2017.2 versiyasidan foydalanganmiz.

- Micro USB kabeli (ma'lumotlarni uzatish imkoniyati)

Mualliflar: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO klassi: Raqamli dizayn

- EE/CPE 133 O'qituvchi: Jozef Kallenes

Manbalar:

  • UART_TX, UART_RX:
  • Qabul qilish:

Ikkita belgisiz raqamni ajratish funktsiyasi:

1 -qadam: 1 -qadam: Bu qanday ishlaydi

1 -qadam: Bu qanday ishlaydi
1 -qadam: Bu qanday ishlaydi
1 -qadam: Bu qanday ishlaydi
1 -qadam: Bu qanday ishlaydi

Kirish: Foydalanuvchi kompyuter terminaliga chiziqli tizimni kiritadi, keyin UART moduli ularni matritsani hal qilish moduli manipulyatsiyasi uchun ularni qatorga aylantiradi. UART moduli foydalanuvchi bilan aloqa o'rnatadi va ularga kerakli matritsani kiritishga, shuningdek ma'lumotlarni to'g'ri kiritishiga yo'l ochishga imkon beradi. Tizimda, shuningdek, Basys3 kartasining eng chap tugmachasida joylashgan reset/yoqish tugmasi mavjud.

Chiqish: matritsa hal qiluvchi natijalari UART moduli interfeysi orqali uzatiladi va keyin ekranda ko'rsatilgan echimlar bilan kompyuter terminalida ko'rsatiladi. Matritsa hal qiluvchi UART moduliga belgisiz standart mantiq vektorlarini chiqaradi, bu ularni foydalanuvchilar uchun qulayroq chiqishga aylantiradi. Hozirgi matritsa hal qiluvchi faqat 15 tagacha raqamni kiritishga qodir va chiqish natijasi toza tamsayı bo'lishi kerak yoki matritsa hal qiluvchi dastur to'g'ri echimni chiqara olmaydi.

Yuqori darajali "Seriyali boshqaruv" moduli: Foydalanuvchi UART_TX va UART_RX modullari orqali kerakli chiziqli tizimni ushbu modulga kiritadi va u kompyuter terminalidan kirishni matritsa hal qiluvchi moduli tomonidan ishlov beriladigan standart mantiq vektorlari qatoriga o'zgartiradi. Matritsa hal qiluvchi moduli keyinchalik standart mantiq vektorlarini qaytaradi, ular keyinchalik UART ketma -ket interfeysi orqali ekranda aks etadi. UART modullari orqali ma'lumotlarni uzatish va qabul qilish ushbu modulda juda uzun FSM yordamida amalga oshiriladi.

UART_TX moduli: foydalanuvchi USB interfeysi orqali ma'lumotlarni yuborish uchun 8 bitli standart mantiq vektorini va yuborish signalini kiritadi. Ma'lumot yuborilganda, TX_Active signali yuqori bo'ladi. Ma'lumot yuborilgandan so'ng, TX_Done signali pulsatsiyalanadi.

UART_RX moduli: Foydalanuvchi USB interfeysidan bir vaqtning o'zida 8 bit ma'lumot oladi. RX_DV dan keladigan puls - bu ma'lumot olinganligi va RX_Byte vektor mantig'ini o'qish mumkinligidan dalolat.

Matritsa hal qiluvchi moduli: matritsa hal qiluvchi UART modulidan matritsani ifodalovchi hisoblangan massivni oladi. Keyin matritsani hal qiluvchi chiziqli tizimdagi har bir sonni ishlashni osonlashtirish uchun butun sonlarga aylantiradi. Matritsa hal qiluvchi moduli ichida bir nechta kichik modullar mavjud. Birinchi pastki modul - bu matritsani oladigan va keyin berilgan matritsaning teskarisini beradigan inverse_matrix_1. Keyingi kichik modul - umumiy matritsani standart matritsali operatsiyalar yordamida teskari matritsaga ko'paytiruvchi multiplikator. Birinchidan, asosiy modul bitta javobni chiqarish uchun ularni xaritada ko'rsatadi.

2 -qadam: 2 -qadam: Basys 3 taxtasini dasturlash

Manba kodini pastdan olganingizdan so'ng, interfeysdan foydalanish uchun uni basys 3 taxtasiga yuklang.

reference.digilentinc.com/basys3/refmanual

3 -qadam: 3 -qadam: uni qanday ishlatish kerak

Basys3 UART bilan bog'lanish uchun ketma -ket interfeysdan 9600 boddan foydalaning. Men Linuxda quyidagi buyruq bilan ekranni ishlatardim:

ekran /dev /ttyUSB1 9600

Buni Linuxda qilish uchun men o'z foydalanuvchilarimni "dialout" guruhiga qo'shishim kerak edi. Windows -da macun ishlashi kerak va MacOSX -da bu Linuxga o'xshash jarayon bo'lishi kerak.

Chap tarafdagi kalitni yoqish holatiga o'tkazish matritsa hal qiluvchini ishga tushiradi. Uni o'chirish matritsa hal qiluvchini asl holatiga qaytaradi.

Tavsiya: