Სარჩევი:

VHDL ერთი წუთის წამზომი: 5 ნაბიჯი
VHDL ერთი წუთის წამზომი: 5 ნაბიჯი

ვიდეო: VHDL ერთი წუთის წამზომი: 5 ნაბიჯი

ვიდეო: VHDL ერთი წუთის წამზომი: 5 ნაბიჯი
ვიდეო: Fun with Music and Programming by Connor Harris and Stephen Krewson 2024, ნოემბერი
Anonim
Image
Image

ეს არის გაკვეთილი, თუ როგორ უნდა ავაშენოთ ერთი წუთიანი წამზომი VHDL და Basys 3 დაფის გამოყენებით. ასეთი მოწყობილობა იდეალურია თამაშებისთვის, სადაც თითოეულ მოთამაშეს აქვს მაქსიმუმ ერთი წუთი თავისი ნაბიჯის გასაკეთებლად. წამზომი ზუსტად აჩვენებს წამებსა და მილიწამებს შვიდ სეგმენტის ეკრანზე, დაწყებული 0 წამიდან და 0 მილიწამიდან, 60 წამამდე და 0 მილიწამამდე. ასევე გამოიყენება ორი ღილაკი: ცენტრალური ღილაკი, რომელიც გამოიყენება ტაიმერის დასაწყებად, შესაჩერებლად და გასაგრძელებლად და მარჯვენა ღილაკი, რომელიც გამოიყენება ტაიმერის გადატვირთვისთვის. როდესაც მოწყობილობა შედარებულია სმარტფონის ჩაშენებულ წამზომით, საათის სიზუსტე შესამჩნევია.

ნაბიჯი 1: აიღეთ აპარატურა/პროგრამული უზრუნველყოფა

ბლოკის დიაგრამა
ბლოკის დიაგრამა

1. Basys 3 Artix-7 FPGA ტრენერის დაფა Digilent– დან მიკრო USB– დან USB კაბელამდე

2. Vivado 2016.2 Design Suite Xilinx– დან

ნაბიჯი 2: ბლოკირების დიაგრამა

ეს სქემა აგებულია ქცევით და იყენებს ჩაშენებულ Xilinx კომპონენტებს, მაგრამ ასევე შეიძლება აღწერილი იყოს სტრუქტურულად, როგორც ეს ნაჩვენებია ზემოთ ზოგადი სტრუქტურული დიაგრამით. დიაგრამადან ჩანს, რომ წრე მოძრაობს ორი სიხშირის გამყოფით. სიხშირის ერთ-ერთი გამყოფი გადის 1 წმ-ზე და მართავს კათოდურ მრიცხველს, რომელიც გამოიყენება შვიდ სეგმენტიან ეკრანზე გამოსახულ ციფრებად. მეორე სიხშირის გამყოფი მუშაობს 240 ჰც-ზე და გამოიყენება ანოდის მრიცხველის გადასაყვანად, რომელიც ბრუნავს ანოდებში ისე, რომ ყველა რიცხვი სწორად იყოს ნაჩვენები შვიდ სეგმენტიან ეკრანზე. კოდირება იღებს კათოდური ლოგიკას კათოდური მრიცხველიდან და ანოდის ლოგიკას ანოდის მრიცხველიდან და აკოდირებს მას გამომავალი კათოდისა და ანოდისკენ, რომლებიც აწარმოებენ შვიდ სეგმენტიან ეკრანს. ამ კოდირების ფუნქციაა კათოდური გამომავალი შეიცვალოს ყოველ ჯერზე, როდესაც ანოდის გამოსასვლელი იცვლება. კათოდის გამომუშავება შეუძლებელია მრიცხველისგან დამოუკიდებლად, რადგან ანოდები უნდა ბრუნავდეს 4 ცალკეულ ციფრზე.

ნაბიჯი 3: პროექტის მოდული

პირველ რიგში, CEN– ის პროცესის ბლოკი კეთდება ისე, რომ როდესაც გამოჩნდება ღილაკის დაჭერა, ENABLE გადართულია. ეს ემსახურება როგორც კათოდური მრიცხველის გაჩერება/დაწყებას.

მომდევნო პროცესის ბლოკში ცენტრის წამი და 240Hz საათის სიგნალები ისეა დაყენებული, რომ მათი შესაბამისი მრიცხველები იზრდება 1 -ით ყოველ ჯერზე, როდესაც შიდა 100mHz საათის საათი აღმავალ ზღვარს მიაღწევს. მას შემდეგ, რაც ცენტის წამის მრიცხველი მიაღწევს 500000 -ს, ის დაუბრუნდება 0 -ს. ამასობაში 240Hz მრიცხველი გადატვირთავს მას შემდეგ, რაც რიცხვი 41667 -ს მიაღწევს.

კოდის კათოდური მონაკვეთისთვის, თუ ჩართულია '0', კათოდების დათვლა შეჩერდება. თუ გადატვირთვის ღილაკს დააწკაპუნებთ ამ დროის განმავლობაში, მაშინ ყველა რაოდენობა გადატვირთულია "0000" -ზე. იმავდროულად, თუ ჩართვა არის "1", კათოდების დათვლა გაგრძელდება მანამ, სანამ კათოდების რაოდენობა არ მიაღწევს 60.00 -ს, რომელშიც ის იწვევს გაჩერების სიგნალს "1". გაჩერების სიგნალი ბრუნდება CEN პროცესის ბლოკში და იწვევს ჩართვას "0", ხოლო გაჩერების სიგნალი არის "1" და არ შეიცვლება გადატვირთვის ღილაკზე დაჭერის წინ.

დაბოლოს, შვიდი სეგმენტის ჩვენება იქმნება 4 ანოდის სწორად შეერთებით თითოეულ 8 კათოდთან, რათა აჩვენოს შესაბამისი ციფრები 0-9 ერთდროულად.

ნაბიჯი 4: შეზღუდვები

შეზღუდვები
შეზღუდვები

ეს შეზღუდვების ფაილი აკავშირებს VHDL– დან მითითებულ შეყვანებსა და გამოსვლებს Basys დაფის აუცილებელ, ფიზიკურ ნაწილებში. ამ პროექტისთვის კომპონენტები მოიცავს ოთხ ანოდს და თითოეულ მათგანს რვა კათოდს შვიდი სეგმენტის ჩვენებისათვის, შიდა 100 მჰც საათისათვის, ცენტრის ღილაკს და მარჯვენა ღილაკს.

ნაბიჯი 5: ტესტი

მას შემდეგ რაც დაასრულებთ კოდს, ახლა შეგიძლიათ დააპროგრამოთ FPGA USB კაბელის საშუალებით. შვიდი სეგმენტის ჩვენება უნდა აჩვენოს 0.00. შეამოწმეთ, მუშაობს თუ არა ღილაკები ცენტრალურ ღილაკზე დაჭერით, რომ დაიწყოთ ტაიმერი, სანამ არ მიაღწევს 60.00 საათს და გაჩერდება; ნებისმიერ დროს შუალედში, შეგიძლიათ კვლავ დააჭიროთ ცენტრალურ ღილაკს მისი პაუზისთვის. პაუზის შემდეგ შეგიძლიათ დააჭიროთ მარჯვენა ღილაკს ტაიმერის 0.00 -ზე დასაბრუნებლად. თუ ყველაფერი სწორად მუშაობს, გილოცავთ, თქვენ შექმენით ერთი წუთიანი ტაიმერი!

გირჩევთ: