Სარჩევი:
- ნაბიჯი 1: სპეციფიკაციები
- ნაბიჯი 2: PIC– ის მიმოხილვა
- ნაბიჯი 3: RTL დიზაინი და განხორციელება
- ნაბიჯი 4: მნიშვნელოვანი შენიშვნები და თანდართული ფაილები
ვიდეო: პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
მე აღფრთოვანებული ვარ იმ სახის პასუხებით, რასაც ამ ბლოგში ვიღებ. მადლობა ბიჭებს, რომ ეწვიეთ ჩემს ბლოგს და მოტივაცია მომეცით გაგიზიაროთ ჩემი ცოდნა. ამჯერად, მე წარმოგიდგენთ სხვა საინტერესო მოდულის დიზაინს, რომელსაც ყველა SOC– ში ვხედავთ - Interrupt Controller.
ჩვენ შევქმნით მარტივ, მაგრამ მძლავრ პროგრამირებად შეფერხების კონტროლერს. ეს არის სრულიად კონფიგურირებადი და პარამეტრირებული დიზაინი, რომელიც პორტატულია პლატფორმებზე. მე ეს შევქმენი მას შემდეგ, რაც ბევრს ვკითხულობდი ზოგიერთ პოპულარულ შეწყვეტის კონტროლერულ არქიტექტურაზე, როგორიცაა NVIC, 8259a, RISC-V PLIC, Microblaze's INTC და ა.შ. შეწყვეტის კონტროლერის დახმარებით.
ნაბიჯი 1: სპეციფიკაციები
ქვემოთ მოცემულია IP მახასიათებლები:
- AHB3-Lite ინტერფეისი.
-
სტატისტიკურად კონფიგურირებადი პარამეტრები:
- გარე წყვეტილი წყაროების რაოდენობა; მხარს უჭერს 63 - მდე შეფერხებას.
- პრიორიტეტული დონის ნომერი; მხარს უჭერს 63 დონეს.
- ბუდეების დონის რაოდენობა; მხარს უჭერს ბუდის 8 დონეს.
- ავტობუსის სიგანე; 32 ან 64.
- გლობალურად და ადგილობრივად ნიღბიანი შეფერხებები.
- დინამიურად კონფიგურირებადი პრიორიტეტული დონე თითოეული შეფერხებისთვის.
- ოპერაციის ორი რეჟიმი - სრულად ჩადგმული რეჟიმი და თანაბარი პრიორიტეტული რეჟიმი.
- მხარს უჭერს აქტიური მაღალი დონის მგრძნობიარე შეფერხებებს.
დიზაინში გამოყენებულია RISC-V PLIC სპეციფიკაციების შთაგონებული ხელის ჩამორთმევის მექანიზმი.
შეწყვეტის წინამორბედი შთაგონებულია 8259 ა
სხვა ნათქვამია: Microblaze INTC, NVIC
ნაბიჯი 2: PIC– ის მიმოხილვა
პროგრამირებადი შეფერხების კონტროლერი (PIC) იღებს მრავალჯერადი შეფერხებას გარე პერიფერიებიდან და აერთიანებს მათ ერთ შეწყვეტის გამომუშავებაში სამიზნე პროცესორის ბირთვში.
PIC კონტროლდება კონტროლისა და სტატუსის რეესტრების საშუალებით. ყველა PIC რეგისტრი მეხსიერების რუქაზეა და ხელმისაწვდომია AHB3-Lite ავტობუსის ინტერფეისის საშუალებით.
სარეგისტრაციო ბანკი შედგება კონფიგურაციის რეესტრისგან, ჩართვის რეესტრებისაგან, მომლოდინე რეგისტრებისგან, მომსახურების რეგისტრებიდან, პრიორიტეტული რეგისტრებიდან და პირადობის მოწმობის რეგისტრიდან, რომლებიც ტიპიურია შეფერხების კონტროლერებში.
კონფიგურაციის რეგისტრი გამოიყენება PIC– ის მუშაობის რეჟიმის დასადგენად. მას შეუძლია მუშაობა სრულად ჩადგმული რეჟიმში ან თანაბარი პრიორიტეტული რეჟიმში.
თითოეულ შეფერხებას შეიძლება მიენიჭოს პრიორიტეტები და ინდივიდუალურად ნიღბიანი. ასევე არის მხარდაჭერილი ყველა შეფერხების გლობალური დაფარვა.
რეგისტრირებული ბანკი ურთიერთქმედებს პრიორიტეტულ გადამწყვეტთან და BTC- სთან (Binary-Tree-Comparator) წყვეტილი შეფერხებების პრიორიტეტების გადასაჭრელად და შესაბამისად დამამტკიცებელ პროცესორთან. პირადობის მოწმობა შეიცავს უმაღლესი პრიორიტეტის მომლოდინე შეფერხების პირადობის მოწმობას.
ნაბიჯი 3: RTL დიზაინი და განხორციელება
PIC- ის დიზაინი ხაზს უსვამს პრიორიტეტების გადაწყვეტის დაგვიანების შემცირებას, რაც დიზაინის ყველაზე მნიშვნელოვანი ნაწილია. მას შემდეგ, რაც დიზაინი წყვეტს პრიორიტეტებს ერთი საათის ციკლში, შესრულება მცირდება Log2 სირთულის მქონე წყაროების რაოდენობის ზრდასთან ერთად.
დიზაინი წარმატებით განხორციელდა და დრო დადასტურდა Artix-7 FPGA– ს შემდეგ სიხშირეებამდე.
- 15 -მდე წყარო: 100 MHz
- 63 -მდე წყარო: 50 MHz
მხოლოდ PIC– ით დამატებული შეფერხების შეფერხება არის 3 საათის ციკლი (პროცესორის კონტექსტის გადართვის დროის და პირველი ISR ინსტრუქციის გამოყვანის დროის გამოკლებით) გამოკლებით.
ნაბიჯი 4: მნიშვნელოვანი შენიშვნები და თანდართული ფაილები
მნიშვნელოვანი შენიშვნები:
- თუ AHB3-Lite ინტერფეისი არასასურველია, შეგიძლიათ შეცვალოთ ზედა მოდული და გამოიყენოთ PIC- ის ჩონჩხის დიზაინი. ამასთან, საცდელი სკამი არის IP– სთვის AHB3-Lite ინტერფეისით.
- PIC IP v1.0 არის სრულიად პორტატული, შიშველი RTL დიზაინი.
- ფუნქციურად შემოწმებულია ორივე რეჟიმში მუშაობისთვის.
Მიმაგრებული ფაილები:
- შეიმუშავეთ კოდები და testbench VHDL– ში.
- სრული IP დოკუმენტაცია.
ეს არის ღია კოდის დიზაინი… მოგერიდებათ გამოიყენოთ…
ნებისმიერი შეკითხვისთვის, ნებისმიერ დროს:
მიტუ რაჯი
გირჩევთ:
ორმაგი შეფერხების ეფექტი: 10 ნაბიჯი (სურათებით)
ორმაგი შეფერხების ეფექტი: სუპერ მარტივი ორმაგი შეფერხების ეფექტი! ჩემი მიზანი იყო შემექმნა ყველაზე კომპაქტური, ყველაზე მასშტაბური შეფერხება, მხოლოდ რამდენიმე კომპონენტის გამოყენებით. შედეგი არის გარსაცმის გარეშე, ადვილად მოდიფიცირებადი ხმაურის მანქანა საოცრად მასიური ხმით. განახლება: დეტალები
VHDL– ში მარტივი ოთხმხრივი კომპაქტური ქეში კონტროლერის დიზაინი: 4 ნაბიჯი
VHDL– ში მარტივი ოთხმხრივი კომპლექტი ასოციაციური ქეში კონტროლერის დიზაინი: ჩემს წინა ინსტრუქციებში ჩვენ ვნახეთ, თუ როგორ უნდა შევადგინოთ მარტივი შენახული ქეში კონტროლერი. ამჯერად, ჩვენ წინ მივდივართ. ჩვენ შევქმნით მარტივ ოთხმხრივ მითითებულ ასოციაციურ ქეში კონტროლერს. უპირატესობა? ნაკლები გამოტოვების მაჩვენებელი, მაგრამ შესრულების ფასად
მარტივი ქეში კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი
მარტივი ქეში კონტროლერის დიზაინი VHDL– ში: მე ვწერ ამას სასწავლებლად, რადგან ცოტა გამიჭირდა რაიმე საცნობარო VHDL კოდის მოპოვება, რომ ვისწავლო და დავიწყო ქეში კონტროლერის დიზაინი. ასე რომ, მე თვითონ შევქმენი ქეში კონტროლერი ნულიდან და წარმატებით გამოვცადე FPGA– ზე. მე მაქვს პ
მარტივი VGA კონტროლერის დიზაინი VHDL და Verilog– ში: 5 ნაბიჯი
მარტივი VGA კონტროლერის დიზაინი VHDL– ში და Verilog– ში: ამ ინსტრუქციურად, ჩვენ ვაპირებთ შევქმნათ მარტივი VGA კონტროლერი RTL– ში. VGA კონტროლერი არის ციფრული წრე, რომელიც შექმნილია VGA დისპლეების მართვისთვის. ის იკითხება ჩარჩო ბუფერიდან (VGA მეხსიერება), რომელიც წარმოადგენს ჩვენების ჩარჩოს და ქმნის საჭირო
პროგრამირებადი აკვარიუმის თევზის მიმწოდებელი - დიზაინი გრანულირებული საკვები: 7 ნაბიჯი (სურათებით)
პროგრამირებადი აკვარიუმის თევზის მიმწოდებელი - შემუშავებული გრანულირებული საკვები: თევზის მიმწოდებელი - შექმნილია გრანულირებული საკვები აკვარიუმის თევზებისთვის. მისი სრულად ავტომატური თევზის მიმწოდებლის ძალიან მარტივი დიზაინი. იგი მუშაობს მცირე ზომის SG90 მიკრო სერვო 9 გ -ით და არდუინო ნანოთი. თქვენ კვებავთ მთელ მიმწოდებელს USB კაბელით (USB დამტენიდან ან თქვენი USB პორტიდან