Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky udhëzues udhëzues ju tregon se si të bëni një zgjidhës matricë 2 me 2 duke zbatuar modulin e terminalit UART Serial, si dhe një modul zgjidhës matricash. Përdoruesi do të jetë në gjendje të futë një matricë 2 me 2 dhe më pas dizajni i zbatuar do të pështyjë zgjidhjen në sistemin linear.
Për të përdorur këtë kod, do t'ju duhet:
- Një bord FPGA Digilent Basys 3
- Kompjuter me Softuerin Xilinx Vivado (Webpack Edition do të funksionojë). Për këtë modul, ne përdorëm versionin 2017.2.
- Një kabllo Micro USB (transferimi i të dhënave i aftë)
Autorët: Drew Miller, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO Klasa: Dizajn Digjital
- EE/CPE 133 Instruktor: Joseph Callenes
Burimet:
- UART_TX, UART_RX nga:
- Deboni nga:
Funksioni për ndarjen e dy numrave të panënshkruar:
Hapi 1: Hapi 1: Si funksionon
Hyrjet: Përdoruesi fut një sistem linear në terminalin e kompjuterit dhe më pas një modul UART i konverton ato në një grup për modulimin e modulit të zgjidhjes së matricës. Moduli UART ndërfaqet me përdoruesin dhe i lejon ata të hyjnë në matricën e duhur, si dhe t'i udhëzojnë ata të futin siç duhet të dhënat. Sistemi gjithashtu ka një çelës të rivendosjes/aktivizimit të hartuar në ndërprerësin më të majtë të tabelës Basys3.
Rezultatet: Rezultatet nga zgjidhësi i matricës kalohen përmes ndërfaqes së modulit UART dhe më pas shfaqen në terminalin e kompjuterit me zgjidhjet e listuara në ekran. Zgjidhësi i matricës nxjerr vektorë logjikë standardë të panënshkruar në modulin UART i cili i konverton ato në rezultate më miqësore për përdoruesit që përdoruesi të vlerësojë. Zgjidhësi aktual i matricës mund të ketë vetëm numra deri në 15 dhe rezultati i daljes duhet të jetë një numër i plotë i pastër ose programi i zgjidhjes së matricës nuk është në gjendje të nxjerrë zgjidhjen e duhur.
Moduli i "Kontrollit Serial" i Nivelit të Lartë: Përdoruesi fut sistemin e tij linear të dëshiruar në këtë modul përmes moduleve UART_TX dhe UART_RX dhe konverton hyrjet nga terminali i kompjuterit në një grup vektorësh logjikë standardë që përpunohen nga moduli i zgjidhjes së matricës. Moduli i zgjidhjes së matricës pastaj kthen një sërë vektorësh logjikë standardë që shfaqen më pas në ekran nga ndërfaqja serike UART. Transmetimi dhe marrja e të dhënave përmes moduleve UART realizohet përmes përdorimit të një FSM shumë të gjatë në këtë modul.
Moduli UART_TX: Përdoruesi fut një vektor logjik standard 8 bit dhe një sinjal dërgimi në mënyrë që të dërgojë të dhëna përmes ndërfaqes USB. Ndërsa po dërgon të dhëna, sinjali TX_Active është i lartë. Pasi të ketë dërguar të dhënat, sinjali TX_Done pulmon.
Moduli UART_RX: Përdoruesi merr 8 bit të dhëna në të njëjtën kohë nga ndërfaqja USB. Një impuls nga RX_DV është një tregues se të dhënat janë marrë dhe se logjika vektoriale RX_Byte mund të lexohet.
Moduli i zgjidhjes së matricës: Zgjidhësi i matricës merr një grup të imputuar nga moduli UART që përfaqëson matricën. Zgjidhësi i matricës më pas konverton çdo numër në sistemin linear në numra të plotë për ta bërë më të lehtë funksionimin e tyre. Brenda modulit të zgjidhjes së matricës ka disa nën -module. Nën -moduli i parë është inverse_matrix_1 i cili merr matricën dhe më pas jep të kundërtën e matricës së dhënë. Nën moduli tjetër është shumëzuesi i cili shumëzon matricën total_ me matricën invers duke përdorur operacionet standarde të matricës. Së fundi, moduli master i harton ato së bashku për të nxjerrë një përgjigje të vetme.
Hapi 2: Hapi 2: Programimi i Bordit Basys 3
Pasi të keni marrë kodin burimor nga poshtë, ngarkojeni atë në tabelën basys 3 për të përdorur ndërfaqen.
reference.digilentinc.com/basys3/refmanual
Hapi 3: Hapi 3: Si ta përdorni
Përdorni një ndërfaqe serike në 9600 baud në mënyrë që të komunikoni me Basys3 UART. Kam përdorur ekranin në linux me komandën e mëposhtme:
ekran /dev /ttyUSB1 9600
Për ta bërë këtë në linux, më duhej të shtoja përdoruesin tim në grupin "dialout". Në Windows, stuko duhet të funksionojë, dhe në MacOSX, duhet të jetë një proces i ngjashëm me Linux.
Kthimi i ndërprerësit më të majtë në pozicionin e ndezjes fillon zgjidhësin e matricës. Fikja e tij në çaktivizon zgjidhësin e matricës.