Სარჩევი:
- ნაბიჯი 1: მასალები
- ნაბიჯი 2: შეყვანისა და გამოყვანის დაყენება
- ნაბიჯი 3: საათების დამზადება
- ნაბიჯი 4: ათამდე დათვლა
- ნაბიჯი 5: რიცხვების ჩვენება
- ნაბიჯი 6: როგორ გამოვაჩინოთ წამზომი
- ნაბიჯი 7: შეაგროვეთ ყველაფერი ერთად
- ნაბიჯი 8: შეზღუდვები
- ნაბიჯი 9: ტესტირება
ვიდეო: ძირითადი წამზომი VHDL და Basys3 დაფის გამოყენებით: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
კეთილი იყოს თქვენი მობრძანება ინსტრუქციის შესახებ, თუ როგორ უნდა ავაშენოთ წამზომი ძირითადი VHDL და Basys 3 დაფის გამოყენებით. ჩვენ მოხარული ვართ გაგიზიაროთ ჩვენი პროექტი! ეს იყო საბოლოო პროექტი კურსის CPE 133 (ციფრული დიზაინი) Cal Poly- ში, SLO 2016 წლის შემოდგომაზე. პროექტი, რომელიც ჩვენ ავაშენეთ არის მარტივი წამზომი, რომელიც იწყებს, გადატვირთავს და აჩერებს დროს. იგი იღებს სამი ღილაკს Basys3 დაფაზე შეყვანის სახით და დრო ნაჩვენებია დაფის ოთხნიშნა შვიდ სეგმენტიან ეკრანზე. გასული დრო ნაჩვენებია წამებში: ცენტიწამიანი ფორმატი. ის იყენებს დაფის სისტემურ საათს, როგორც შეყვანისას, რათა თვალყური ადევნოს დროის გასვლას და აჩვენებს დროს შვიდ სეგმენტიანი ეკრანის ოთხ ციფრზე.
ნაბიჯი 1: მასალები
ამ პროექტისთვის დაგჭირდებათ მასალები:
- 1 კომპიუტერი Vivado Design Suite WebPack– ით დაინსტალირებული Xilinx– დან (სასურველია ვერსია 2016.2)
- 1 Digilent Basys3 Xilinx Artix-7 FPGA დაფა
- 1 USB პორტის კაბელი
ნაბიჯი 2: შეყვანისა და გამოყვანის დაყენება
ზემოთ მოყვანილი ფიგურა გვიჩვენებს წამზომი წამყვანი მოდულის ზედა დონის ბლოკ -დიაგრამას. წამზომი იღებს შეყვანის "CLK" (საათი), "S1" (დაწყების ღილაკს), "S2" (პაუზის ღილაკს) და "RST" (გადატვირთვა) და აქვს 4 ბიტიანი გამომავალი "ანოდები", 7 ბიტიანი გამომავალი "სეგმენტი" და ერთ ბიტიანი გამომავალი "DP" (ათობითი წერტილი). როდესაც შეყვანა "S1" მაღალია, წამზომი იწყებს დროის ათვლას. როდესაც "S2" დაბალია, წამზომი აჩერებს დროს. როდესაც "RST" მაღალია, წამზომი ჩერდება და აღადგენს დროს. წრეში არის ოთხი ქვემოდული: საათის გამყოფი, ციფრული მრიცხველი, შვიდი სეგმენტის ჩვენების დრაივერი და შვიდი სეგმენტის ჩვენების კოდირება. წამზომი წამყვანი ძირითადი მოდული აკავშირებს ყველა ქვემოდუმს ერთმანეთთან და შესასვლელთან და გამოსავალთან.
ნაბიჯი 3: საათების დამზადება
საათის გამყოფი მოდული იღებს სისტემის საათს და იყენებს გამყოფის შეყვანას, რომ შექმნას ნებისმიერი საათის სიჩქარე, რომელიც არ აღემატება სისტემის საათს. წამზომი იყენებს ორ სხვადასხვა საათის მოდულს, ერთი რომელიც ქმნის 500 ჰერც საათს და მეორე რომელიც ქმნის 100 ჰც საათს. საათის გამყოფის სქემა ნაჩვენებია ზემოთ მოცემულ ფიგურაში. საათის გამყოფი იღებს ერთ – ბიტიან შეყვანას „CLK“, ხოლო 32 – ბიტიან შეყვანას „გამყოფი“და ერთ ბიტიან გამომავალს „CLKOUT“. "CLK" არის სისტემის საათი და "CLKOUT" არის შედეგად მიღებული საათი. მოდული ასევე შეიცავს NOT კარიბჭეს, რომელიც ცვლის სიგნალს "CLKTOG" როდესაც რიცხვი აღწევს გამყოფის მნიშვნელობას.
ნაბიჯი 4: ათამდე დათვლა
ციფრული მრიცხველი ითვლის თითოეულ ციფრს 0-დან 10-მდე და ქმნის სხვა საათს მომდევნო ციფრის ფუნქციონირებისთვის, რომელიც იცვლება, როდესაც რიცხვი აღწევს 10-ს. მოდული იღებს 3 ერთ ბიტიან შეყვანას "S", "RST" და "CLK" "და იწვევს ერთ ბიტიან გამომავალს" N "და 4 ბიტიან გამომავალს" D ". შეყვანა "S" არის ჩართვის ჩართვა. საათი ჩართულია, როდესაც "S" მაღალია და გამორთულია, როდესაც "S" დაბალია. "RST" არის გადატვირთვის შეყვანა ისე, რომ საათი გადატვირთოს როდესაც "RST" მაღალია. "CLK" არის ციფრული მრიცხველის საათის შეყვანა. "N" არის საათის გამომავალი, რომელიც ხდება შემდგომი ციფრის შეყვანის საათი. გამომავალი "D" წარმოადგენს ციფრის ორობითი მნიშვნელობას, რომელზეც მრიცხველი იმყოფება.
ნაბიჯი 5: რიცხვების ჩვენება
შვიდი სეგმენტის ჩვენების კოდირება დაშიფვრავს შვიდ სეგმენტიანი ჩვენების დრაივერის მოდულიდან მიღებული ორობითი რიცხვი და გადააქცევს ბიტების ნაკადს, რომელიც ინტერპრეტირდება როგორც "1" ან "0" მნიშვნელობები ეკრანის თითოეული სეგმენტისთვის. ორობითი რიცხვი მიიღება მოდულის მიერ, როგორც 4 ბიტიანი შეყვანის "ციფრი" და იწვევს 7 ბიტიან გამომავალ "სეგმენტებს". მოდული შედგება ერთი საქმის პროცესის ბლოკისგან, რომელიც ანიჭებს კონკრეტულ 7 ბიტიან ნაკადს თითოეული შესაძლო შეყვანის მნიშვნელობიდან 0-დან 9. თითოეული ბიტი შვიდ ბიტიან ნაკადებში წარმოადგენს ეკრანის ციფრების შვიდი სეგმენტიდან ერთს. ნაკადის სეგმენტების თანმიმდევრობა არის "abcdefg", სადაც '0' წარმოადგენს სეგმენტებს, რომლებიც ანათებენ მოცემულ რიცხვს.
ნაბიჯი 6: როგორ გამოვაჩინოთ წამზომი
შვიდი სეგმენტის ჩვენების დრაივერის მოდულში არის ოთხი 4 ბიტიანი შეყვანა "D0", "D1", "D2" და "D3", რომელთაგან თითოეული წარმოადგენს ჩვენების ოთხ ციფრს. შეყვანა "CLK" არის სისტემის საათის შეყვანა. ერთ ბიტიანი გამომავალი "DP" წარმოადგენს ათ წერტილს შვიდ სეგმენტიან ეკრანზე. 4 ბიტიანი გამომავალი "ანოდები" განსაზღვრავს რომელი ციფრია ნაჩვენები შვიდი სეგმენტის ეკრანზე და 4 ბიტიანი გამომავალი "ტემპი" დამოკიდებულია 2 ბიტიანი საკონტროლო შეყვანის მდგომარეობაზე "SEL". მოდული იყენებს 4 მულტიპლექსერს საკონტროლო შეყვანისთვის "SEL" და სამ გამომავალს; "ანოდები", "ტემპი" და "DP".
ნაბიჯი 7: შეაგროვეთ ყველაფერი ერთად
დაწყების და პაუზის ღილაკების შესაქმნელად გამოიყენება "თუ" პროცესის ბლოკი, რომელიც მუშაობს 500 ჰც -ის საათის განმავლობაში. შემდეგ დაუკავშირეთ ყველა ქვემოდული წამზომის წამყვან მოდულში თითოეული ცალკეული ქვემოდულის კომპონენტების გამოცხადებით და სხვადასხვა სიგნალების გამოყენებით. ციფრული ქვემოდულები იღებს წინა ციფრული ქვემოდულის საათის გამომავალს, პირველი იღებს 100 ჰც -ის საათს. ციფრული ქვემოდულის "D" გამომავალი შემდეგ ხდება შვიდი სეგმენტის ჩვენების დრაივერის მოდულის "D" შეყვანა. და ბოლოს, შვიდი სეგმენტის ჩვენების მოდულის "ტემპ" გამომავალი ხდება შვიდი სეგმენტის კოდირების მოდულის "ტემპ" შეყვანა.
ნაბიჯი 8: შეზღუდვები
გამოიყენეთ 3 ღილაკი (W19, T17 და U18) "RST", "S1" და "S2" შეყვანისთვის. W19 არის გადატვირთვის ღილაკი, T17 არის დაწყების ღილაკი (S1) და U18 არის პაუზის ღილაკი (S2). საათის შეყვანის შეზღუდვა ასევე საჭიროა პორტი W5- ის გამოყენებით. ასევე, გახსოვდეთ დაამატეთ ეს ხაზი საათის შეზღუდვას:
create_clock -add -name sys_clk_pin -პერიოდი 10.00 -ტალღური ფორმა {0 5} [get_ports {CLK}]
ასევე დაუკავშირეთ ანოდები და სეგმენტები დაფაზე, რათა წამზომი იყოს ნაჩვენები შვიდი სეგმენტის ეკრანზე, როგორც ეს ჩანს შეზღუდვების ფაილში.
ნაბიჯი 9: ტესტირება
დარწმუნდით, რომ თქვენი მოწყობილობა მუშაობს სამი ღილაკით: დააწკაპუნეთ და დაიჭირეთ ისინი ყოველგვარი თანმიმდევრობით, რათა იპოვოთ რაიმე პრობლემა თქვენს კოდთან.
გირჩევთ:
Arduino წამზომი I2C LCD გამოყენებით: 5 ნაბიჯი
Arduino წამზომი I2C LCD– ის გამოყენებით: ამ პროექტში მე გასწავლით გამოიყენოთ LCD ეკრანი და Arduino, როგორც ინტერაქტიული წამზომი. როდესაც თქვენი პროექტი დასრულებულია მოწოდებული კოდით, ის უნდა გამოიყურებოდეს ზემოთ მოცემულ ფოტოზე. გადადით შემდეგ საფეხურზე, რომ გაიგოთ სად უნდა დაიწყოს
როგორ გავაკეთოთ წამზომი Arduino– ს გამოყენებით: 8 ნაბიჯი (სურათებით)
როგორ შევქმნათ წამზომი Arduino– ს გამოყენებით: ეს არის ძალიან მარტივი Arduino 16*2 LCD ეკრანის წამზომი ……….. თუ მოგწონთ ეს ინსტრუქცია გთხოვთ გამოიწეროთ ჩემი არხი https://www.youtube.com /ზენომოდიფი
როგორ გააკეთოთ ციფრული წამზომი 555: 3 ნაბიჯის გამოყენებით
როგორ გავაკეთოთ ციფრული წამზომი 555 -ის გამოყენებით: მე გავაკეთე მარტივი წამზომი 3 შვიდ სეგმენტიანი LED დისპლეით, რომლითაც თქვენ პირველად აჩვენებდით მეათე ნაწილის მეორეს მეორე და მესამე მეორედ 10 ინ წამში. მე გამოვიყენე 555 ტაიმერი სტაბილურ რეჟიმში რომელიც სიგნალს აძლევს 1 წამში
VHDL ერთი წუთის წამზომი: 5 ნაბიჯი
VHDL One Minute წამზომი: ეს არის გაკვეთილი, თუ როგორ უნდა ავაშენოთ ერთი წუთიანი წამზომი VHDL და Basys 3 დაფის გამოყენებით. ასეთი მოწყობილობა იდეალურია თამაშებისთვის, სადაც თითოეულ მოთამაშეს აქვს მაქსიმუმ ერთი წუთი თავისი ნაბიჯის გასაკეთებლად. წამზომი ზუსტად აჩვენებს წამებსა და მილიწამებში
VHDL წამზომი: 8 ნაბიჯი (სურათებით)
VHDL წამზომი: ეს არის გაკვეთილი, თუ როგორ უნდა გააკეთოთ წამზომი VHDL და FPGA მიკროსქემის გამოყენებით, როგორიცაა Basys3 Atrix-7 დაფა. წამზომს შეუძლია დათვლა 00.00 წამიდან 99.99 წამამდე. ის იყენებს ორ ღილაკს, ერთი დაწყების/გაჩერების ღილაკს და მეორე