Სარჩევი:

Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 ნაბიჯი
Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 ნაბიჯი

ვიდეო: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 ნაბიჯი

ვიდეო: Integer_Matrix_Solver_UART_SERIAL_VHDL: 3 ნაბიჯი
ვიდეო: 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 სერიული ტერმინალური მოდულის დანერგვით, ასევე მატრიქსის ამოხსნის მოდულით. მომხმარებელს შეეძლება შეიყვანოს 2 -დან 2 -ის მატრიცა და შემდეგ განხორციელებული დიზაინი ამოაფურთხებს გამოსავალს ხაზოვან სისტემაში.

ამ კოდის გამოსაყენებლად დაგჭირდებათ:

- Digilent Basys 3 FPGA დაფა

- კომპიუტერი Xilinx Vivado პროგრამული უზრუნველყოფით (Webpack Edition იმუშავებს). ამ მოდულისთვის ჩვენ გამოვიყენეთ 2017.2 ვერსია.

- მიკრო USB კაბელი (მონაცემთა გადაცემის შესაძლებლობა)

ავტორები: დრიუ მილერი, EE Major, Cal Poly SLO, Sukhdeep Singh, EE Major, Cal Poly SLO კლასი: ციფრული დიზაინი

- EE/CPE 133 ინსტრუქტორი: ჯოზეფ კალენესი

წყაროები:

  • 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 მოდული: მომხმარებელი ერთდროულად იღებს 8 ბიტიან მონაცემს USB ინტერფეისიდან. პულსი 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– ზე, putty უნდა მუშაობდეს, ხოლო MacOSX– ზე, ეს უნდა იყოს Linux– ის მსგავსი პროცესი.

მარცხენა გადამრთველის ჩართვა პოზიციისკენ იწყებს მატრიცის გამხსნელს. მისი გამორთვა აღადგენს მატრიცის ამომხსნელს.

გირჩევთ: