Բովանդակություն:

Integer_Matrix_Solver_UART_SERIAL_VHDL ՝ 3 քայլ
Integer_Matrix_Solver_UART_SERIAL_VHDL ՝ 3 քայլ

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL ՝ 3 քայլ

Video: Integer_Matrix_Solver_UART_SERIAL_VHDL ՝ 3 քայլ
Video: Mark Geisbrecht "Eigenvalues, invariant and random integer matrices" 2024, Նոյեմբեր
Anonim
Integer_Matrix_Solver_UART_SERIAL_VHDL
Integer_Matrix_Solver_UART_SERIAL_VHDL

Այս ուսանելի ձեռնարկը ցույց է տալիս ձեզ, թե ինչպես պատրաստել 2 -ից 2 մատրիցային լուծիչ ՝ UART Serial տերմինալային մոդուլի ներդրմամբ, ինչպես նաև մատրիցային լուծիչ մոդուլով: Օգտվողը կկարողանա մուտքագրել 2 x 2 մատրիցա, այնուհետև իրականացվող դիզայնը լուծումը կթքի գծային համակարգում:

Այս ծածկագիրն օգտագործելու համար ձեզ հարկավոր է.

- A Digilent Basys 3 FPGA Board

- Համակարգիչ Xilinx Vivado ծրագրով (աշխատելու է Webpack Edition): Այս մոդուլի համար մենք օգտագործել ենք 2017.2 տարբերակը:

- Micro USB լար (տվյալների փոխանցման ունակություն)

Հեղինակներ ՝ Դրյու Միլեր, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO դաս. Թվային դիզայն

- EE/CPE 133 Ուսուցիչ ՝ Josephոզեֆ Կալենես

Աղբյուրներ:

  • UART_TX, UART_RX ՝
  • Հրաժարվեք ՝

Երկու անստորագիր թվերի բաժանման գործառույթ ՝

Քայլ 1: Քայլ 1: Ինչպես է այն աշխատում

Քայլ 1: Ինչպես է այն աշխատում
Քայլ 1: Ինչպես է այն աշխատում
Քայլ 1: Ինչպես է այն աշխատում
Քայլ 1: Ինչպես է այն աշխատում

Մուտքեր. Օգտատերը համակարգչային տերմինալ է մուտքագրում գծային համակարգ, այնուհետև UART մոդուլը դրանք վերածում է զանգվածի ՝ մատրիցային լուծիչ մոդուլը շահարկելու համար: UART մոդուլը ինտերֆեյս է օգտագործողի հետ և թույլ է տալիս մուտքագրել համապատասխան մատրիցա, ինչպես նաև ուղղորդել ճիշտ մուտքագրել տվյալները: Համակարգն ունի նաև վերակայման/միացման անջատիչ, որը քարտեզագրված է Basys3 տախտակի ձախ ձախ անջատիչին:

Արդյունքները. Մատրիցային լուծիչի արդյունքները փոխանցվում են UART մոդուլի ինտերֆեյսի միջոցով և այնուհետև ցուցադրվում են համակարգչի տերմինալում `էկրանին թվարկված լուծումներով: Մատրիցայի լուծիչը դուրս է բերում անստորագիր ստանդարտ տրամաբանական վեկտորներ UART մոդուլին, ինչը դրանք փոխակերպում է օգտագործողի համար ավելի բարեկամական արդյունքների, որպեսզի օգտագործողը գնահատի դրանք: Ընթացիկ մատրիցային լուծիչը կարող է ունենալ միայն մինչև 15 թվեր, իսկ ելքային արդյունքը պետք է լինի մաքուր ամբողջ թիվ, կամ մատրիցային լուծիչ ծրագիրը չի կարողանում ճիշտ լուծում տալ:

Առաջին մակարդակի «Սերիական վերահսկողություն» մոդուլ. Օգտագործողը մուտքագրում է իր ցանկալի գծային համակարգը այս մոդուլում UART_TX և UART_RX մոդուլների միջոցով և այն համակարգչի տերմինալից մուտքագրում է ստանդարտ տրամաբանական վեկտորների զանգված, որոնք մշակվում են մատրիցային լուծիչ մոդուլով: Այնուհետև մատրիցային լուծիչ մոդուլը վերադարձնում է ստանդարտ տրամաբանական վեկտորների զանգված, որոնք այնուհետև ցուցադրվում են էկրանին UART սերիական ինտերֆեյսի միջոցով: UART մոդուլների միջոցով տվյալների փոխանցումը և ստացումը կատարվում է այս մոդուլում շատ երկար FSM- ի միջոցով:

UART_TX մոդուլ. Օգտվողը մուտքագրում է 8 բիթ ստանդարտ տրամաբանական վեկտոր և ուղարկելու ազդանշան `USB ինտերֆեյսի միջոցով տվյալներ ուղարկելու համար: Մինչ այն ուղարկում է տվյալներ, 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. Ինչպես օգտագործել այն

Օգտագործեք 9600 baud սերիական ինտերֆեյս `Basys3 UART- ի հետ շփվելու համար: Ես օգտագործել եմ էկրանը linux- ում ՝ հետևյալ հրամանով.

էկրան /dev /ttyUSB1 9600

Որպեսզի դա անեմ linux- ում, ես ստիպված էի իմ օգտվողին ավելացնել «dialout» խմբին: Windows- ում, ծեփամածիկը պետք է աշխատի, իսկ MacOSX- ում ՝ այն պետք է լինի Linux- ի նման գործընթաց:

Ձախ ձախ անջատիչը միացնելով դիրքի վրա, սկսում է մատրիցային լուծիչը: Անջատելով այն վերականգնում է մատրիցային լուծիչը:

Խորհուրդ ենք տալիս: