Агуулгын хүснэгт:
- Алхам 1: Алхам 1: Энэ нь хэрхэн ажилладаг талаар
- Алхам 2: Алхам 2: Basys 3 самбарыг програмчлах
- Алхам 3: Алхам 3: Үүнийг хэрхэн ашиглах талаар
Видео: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Энэхүү зааварчилгааны заавар нь UART Serial терминал модуль болон матриц шийдвэрлэх модулийг ашиглан 2 -оос 2 матриц шийдэгчийг хэрхэн яаж хийхийг танд үзүүлэх болно. Хэрэглэгч 2 -оос 2 матриц оруулах боломжтой бөгөөд дараа нь хэрэгжүүлсэн загвар нь шугаман системийн шийдлийг гадагшлуулах болно.
Энэ кодыг ашиглахын тулд танд дараахь зүйл хэрэгтэй болно.
- Digilent Basys 3 FPGA самбар
- Xilinx Vivado програм хангамжтай компьютер (Webpack Edition ажиллах болно). Энэ модулийн хувьд бид 2017.2 хувилбарыг ашигласан.
- Микро USB залгуур (мэдээлэл дамжуулах чадвартай)
Зохиогчид: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Class: Digital Design
- EE/CPE 133 Багш: Жозеф Калленес
Эх сурвалж:
- UART_TX, UART_RX:
- Татгалзах:
Гарын үсэг зураагүй хоёр тоог хуваах функц:
Алхам 1: Алхам 1: Энэ нь хэрхэн ажилладаг талаар
Оролт: Хэрэглэгч шугаман системийг компьютерийн терминал руу оруулдаг бөгөөд дараа нь UART модуль нь матриц шийдвэрлэх модулийг удирдахын тулд тэдгээрийг массив болгон хөрвүүлдэг. UART модуль нь хэрэглэгчтэй харилцаж, зохих матриц руу орохоос гадна өгөгдлийг зөв оруулахад чиглүүлдэг. Систем нь мөн Basys3 самбарын хамгийн зүүн талын унтраалгатай зураг тохируулах/идэвхжүүлэх унтраалгатай.
Үр дүн: Матрицын шийдлийн үр дүнг UART модулийн интерфейсээр дамжуулж, дэлгэц дээр жагсаасан шийдлүүдийн хамт компьютерийн терминал дээр харуулна. Матриц шийдэгч нь гарын үсэг зураагүй стандарт логик векторуудыг UART модульд гаргадаг бөгөөд энэ нь хэрэглэгчдэд илүү ээлтэй гаралт болж хувирдаг. Одоогийн матриц шийдэгч нь зөвхөн 15 хүртэлх тоог оруулах боломжтой бөгөөд гаралтын үр дүн нь цэвэр бүхэл тоо байх ёстой эсвэл матриц шийдвэрлэх програм нь зөв шийдлийг гаргаж чадахгүй байна.
Дээд түвшний "Цуваа хяналт" модуль: Хэрэглэгч UART_TX ба UART_RX модулиар дамжуулан хүссэн шугаман системээ энэ модульд оруулдаг бөгөөд энэ нь компьютерийн терминал дахь оролтыг матриц шийдвэрлэх модулийн боловсруулдаг стандарт логик векторууд болгон хувиргадаг. Матриц шийдвэрлэх модуль нь UART цуваа интерфейсээр дэлгэц дээр гарч ирдэг логик векторуудын массивыг буцаана. UART модулиудаар өгөгдөл дамжуулах, хүлээн авах нь энэ модульд маш урт FSM ашиглан хийгддэг.
UART_TX модуль: Хэрэглэгч USB интерфэйсээр өгөгдөл дамжуулахын тулд 8 битийн стандарт логик вектор болон илгээх дохиог оруулдаг. Мэдээлэл илгээх явцад TX_Active дохио өндөр байна. Өгөгдлийг илгээсэний дараа TX_Done дохио импульс өгдөг.
UART_RX модуль: Хэрэглэгч USB интерфэйсээс нэг удаад 8 бит өгөгдөл хүлээн авдаг. RX_DV -ийн импульс нь өгөгдөл хүлээн авсан бөгөөд RX_Byte вектор логикийг унших боломжтой гэсэн дохио юм.
Матриц шийдэгч модуль: Матрицыг шийдэгч нь UART модулаас матрицыг илэрхийлсэн массивыг хүлээн авдаг. Матриц шийдэгч нь шугаман систем дэх тоо бүрийг бүхэл тоо болгон хувиргаж, ажиллахад хялбар болгоно. Матриц шийдвэрлэх модуль дотор хэд хэдэн дэд модуль байдаг. Эхний дэд модуль нь матрицыг авч, дараа нь өгсөн матрицын урвуу өгөгдлийг өгдөг inverse_matrix_1 юм. Дараагийн дэд модуль нь стандарт матрицын үйлдлийг ашиглан total_matrix -ийг урвуу матрицаар үржүүлдэг үржүүлэгч юм. Нэгдүгээрт, мастер модуль нь нэг хариуг гаргахын тулд тэдгээрийг нэгтгэн харуулдаг.
Алхам 2: Алхам 2: Basys 3 самбарыг програмчлах
Та доорх эх кодыг олж авсны дараа интерфэйсийг ашиглахын тулд basys 3 самбар дээр байршуулна уу.
reference.digilentinc.com/basys3/refmanual
Алхам 3: Алхам 3: Үүнийг хэрхэн ашиглах талаар
Basys3 UART -тэй холбогдохын тулд 9600 baud дээр цуваа интерфэйсийг ашиглана уу. Би дараах тушаалыг ашиглан линукс дээр дэлгэц ашигласан.
дэлгэц /dev /ttyUSB1 9600
Үүнийг linux дээр хийхийн тулд би хэрэглэгчээ "dialout" бүлэгт оруулах ёстой байсан. Windows дээр шаваас ажиллах ёстой бөгөөд MacOSX дээр энэ нь linux -тэй ижил төстэй процесс байх ёстой.
Зүүн талын шилжүүлэгчийг асаах байрлал руу шилжүүлснээр матриц шийдэгчийг эхлүүлнэ. Үүнийг унтраах нь матрицын шийдлийг дахин тохируулдаг.
Зөвлөмж болгож буй:
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт): Сайн байна уу! Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн бүтээж, бүтээсэн тухай түүх юм. Үүнийг " газрын зураг " уралдааны хүрээнд бичсэн болно. Харамсалтай нь би үүнийг бүрэн дуусгаж чадаагүй
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
Алхам алхамаар PC -ийн барилга: 9 алхам
Алхам алхамаар PC барилга: хангамж: хангамж: техник хангамж: MotherboardCPU & CPU хөргөгч PSU (Цахилгаан хангамжийн хэсэг) Хадгалалт (HDD/SSD) RAMGPU (шаардлагагүй) Кейс Хэрэгсэл: Халив ESD бугуйвч/матстермал оо
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно