Სარჩევი:

პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი
პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი

ვიდეო: პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი

ვიდეო: პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში: 4 ნაბიჯი
ვიდეო: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, ნოემბერი
Anonim
პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში
პროგრამირებადი შეფერხების კონტროლერის დიზაინი VHDL– ში

მე აღფრთოვანებული ვარ იმ სახის პასუხებით, რასაც ამ ბლოგში ვიღებ. მადლობა ბიჭებს, რომ ეწვიეთ ჩემს ბლოგს და მოტივაცია მომეცით გაგიზიაროთ ჩემი ცოდნა. ამჯერად, მე წარმოგიდგენთ სხვა საინტერესო მოდულის დიზაინს, რომელსაც ყველა 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) იღებს მრავალჯერადი შეფერხებას გარე პერიფერიებიდან და აერთიანებს მათ ერთ შეწყვეტის გამომუშავებაში სამიზნე პროცესორის ბირთვში.

PIC კონტროლდება კონტროლისა და სტატუსის რეესტრების საშუალებით. ყველა PIC რეგისტრი მეხსიერების რუქაზეა და ხელმისაწვდომია AHB3-Lite ავტობუსის ინტერფეისის საშუალებით.

სარეგისტრაციო ბანკი შედგება კონფიგურაციის რეესტრისგან, ჩართვის რეესტრებისაგან, მომლოდინე რეგისტრებისგან, მომსახურების რეგისტრებიდან, პრიორიტეტული რეგისტრებიდან და პირადობის მოწმობის რეგისტრიდან, რომლებიც ტიპიურია შეფერხების კონტროლერებში.

კონფიგურაციის რეგისტრი გამოიყენება PIC– ის მუშაობის რეჟიმის დასადგენად. მას შეუძლია მუშაობა სრულად ჩადგმული რეჟიმში ან თანაბარი პრიორიტეტული რეჟიმში.

თითოეულ შეფერხებას შეიძლება მიენიჭოს პრიორიტეტები და ინდივიდუალურად ნიღბიანი. ასევე არის მხარდაჭერილი ყველა შეფერხების გლობალური დაფარვა.

რეგისტრირებული ბანკი ურთიერთქმედებს პრიორიტეტულ გადამწყვეტთან და BTC- სთან (Binary-Tree-Comparator) წყვეტილი შეფერხებების პრიორიტეტების გადასაჭრელად და შესაბამისად დამამტკიცებელ პროცესორთან. პირადობის მოწმობა შეიცავს უმაღლესი პრიორიტეტის მომლოდინე შეფერხების პირადობის მოწმობას.

ნაბიჯი 3: RTL დიზაინი და განხორციელება

RTL დიზაინი და განხორციელება
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 დოკუმენტაცია.

ეს არის ღია კოდის დიზაინი… მოგერიდებათ გამოიყენოთ…

ნებისმიერი შეკითხვისთვის, ნებისმიერ დროს:

მიტუ რაჯი

გირჩევთ: