สารบัญ:

การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน
การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน

วีดีโอ: การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน

วีดีโอ: การออกแบบ Interrupt Controller ที่ตั้งโปรแกรมได้ใน VHDL: 4 ขั้นตอน
วีดีโอ: การใช้งานโปรแกรม Quartus II ออกแบบวงจรดิจิตอล EP.1 2024, พฤศจิกายน
Anonim
การออกแบบตัวควบคุมการขัดจังหวะที่ตั้งโปรแกรมได้ใน VHDL
การออกแบบตัวควบคุมการขัดจังหวะที่ตั้งโปรแกรมได้ใน VHDL

ฉันรู้สึกท่วมท้นกับคำตอบที่ได้รับในบล็อกนี้ ขอบคุณสำหรับการเยี่ยมชมบล็อกของฉันและกระตุ้นให้ฉันแบ่งปันความรู้ของฉันกับคุณ ครั้งนี้ ฉันจะนำเสนอการออกแบบโมดูลที่น่าสนใจอีกอันที่เราเห็นใน SOC ทั้งหมด -- Interrupt Controller

เราจะออกแบบ Programmable Interrupt Controller ที่เรียบง่ายแต่ทรงพลัง เป็นการออกแบบที่กำหนดค่าได้อย่างสมบูรณ์และกำหนดพารามิเตอร์ได้ซึ่งสามารถเคลื่อนย้ายข้ามแพลตฟอร์มได้ ฉันออกแบบสิ่งนี้หลังจากอ่านมามากเกี่ยวกับสถาปัตยกรรมตัวควบคุมอินเตอร์รัปต์ยอดนิยมบางตัวเช่น NVIC, 8259a, RISC-V PLIC, INTC ของ Microblaze เป็นต้น หวังว่าพวกคุณจะพบว่าบล็อกนี้มีประโยชน์และช่วยให้คุณเข้าใจวิธีจัดการกับการขัดจังหวะโดยโปรเซสเซอร์ ด้วยความช่วยเหลือของตัวควบคุมการขัดจังหวะ

ขั้นตอนที่ 1: ข้อมูลจำเพาะ

ต่อไปนี้เป็นข้อกำหนดของ IP:

  • อินเทอร์เฟซ AHB3-Lite
  • พารามิเตอร์ที่กำหนดแบบคงที่:

    • จำนวนแหล่งอินเตอร์รัปต์ภายนอก รองรับได้ถึง 63 ขัดจังหวะ
    • จำนวนระดับความสำคัญ; รองรับได้ถึง 63 ระดับ
    • จำนวนระดับการซ้อน; รองรับการทำรังได้ถึง 8 ระดับ 
    • ความกว้างของบัส; 32 หรือ 64
  • การขัดจังหวะที่ปิดบังได้ทั่วโลกและในเครื่อง
  • ระดับความสำคัญที่กำหนดค่าได้แบบไดนามิกสำหรับการขัดจังหวะแต่ละครั้ง
  • โหมดการทำงานสองโหมด – โหมดซ้อนอย่างเต็มที่และโหมดลำดับความสำคัญเท่ากัน
  • รองรับการขัดจังหวะที่ละเอียดอ่อนระดับสูงที่ใช้งาน

RISC-V PLIC ได้แรงบันดาลใจจากกลไกการจับมือแบบขัดจังหวะในการออกแบบ

Interrupt pre-emption ได้แรงบันดาลใจจาก 8259a

อ่านอื่น ๆ: Microblaze INTC, NVIC

ขั้นตอนที่ 2: ภาพรวมของ PIC

ภาพรวมของ PIC
ภาพรวมของ PIC

Programmable Interrupt Controller (PIC) รับอินเตอร์รัปต์หลายรายการจากอุปกรณ์ต่อพ่วงภายนอก และรวมเข้าเป็นเอาต์พุตอินเทอร์รัปต์เดียวไปยังแกนประมวลผลเป้าหมาย

PIC ถูกควบคุมผ่านการควบคุมและการลงทะเบียนสถานะ การลงทะเบียน PIC ทั้งหมดถูกแมปหน่วยความจำ และเข้าถึงได้ผ่านอินเทอร์เฟซบัส AHB3-Lite

ธนาคารการลงทะเบียนประกอบด้วยการลงทะเบียนการกำหนดค่า เปิดใช้งานการลงทะเบียน การลงทะเบียนที่รอดำเนินการ การลงทะเบียนในบริการ การลงทะเบียนลำดับความสำคัญ และการลงทะเบียน ID ซึ่งเป็นเรื่องปกติในตัวควบคุมการขัดจังหวะ

การลงทะเบียนการกำหนดค่าใช้เพื่อกำหนดโหมดการทำงานของ PIC สามารถทำงานได้ทั้งในโหมดซ้อนอย่างสมบูรณ์หรือโหมดความสำคัญเท่าเทียมกัน

แต่ละอินเตอร์รัปต์สามารถกำหนดลำดับความสำคัญและปิดบังแยกกันได้ รองรับการปิดบังส่วนกลางของการขัดจังหวะทั้งหมด

ธนาคารลงทะเบียนโต้ตอบกับ Priority Resolver และ BTC (Binary-Tree-Comparator) เพื่อแก้ไขลำดับความสำคัญของการขัดจังหวะที่ค้างอยู่และยืนยันการขัดจังหวะกับโปรเซสเซอร์ตามลำดับ การลงทะเบียน ID มี ID ของการขัดจังหวะที่รอดำเนินการที่มีลำดับความสำคัญสูงสุด

ขั้นตอนที่ 3: การออกแบบและการใช้งาน RTL

การออกแบบและการใช้งาน RTL
การออกแบบและการใช้งาน RTL

การออกแบบของ PIC เน้นที่การลดเวลาแฝงของการแก้ไขลำดับความสำคัญ ซึ่งเป็นส่วนที่สำคัญที่สุดของการออกแบบ เนื่องจากการออกแบบแก้ไขลำดับความสำคัญในวงจรสัญญาณนาฬิกาเดียว ประสิทธิภาพจะลดลงตามจำนวนแหล่งที่มาที่เพิ่มขึ้นด้วยความซับซ้อนของ Log2

การออกแบบถูกนำไปใช้อย่างประสบความสำเร็จและกำหนดเวลาตรวจสอบได้ถึงความถี่ที่ตามมาบน Artix-7 FPGA

  • สูงสุด 15 แหล่ง: 100 MHz
  • สูงสุด 63 แหล่ง: 50 MHz

Interrupt Latency ที่เพิ่มโดย PIC เพียงอย่างเดียวคือ 3 รอบสัญญาณนาฬิกา (ไม่รวมเวลาการสลับบริบทของตัวประมวลผลและเวลาในการดึงคำสั่ง ISR ครั้งแรก)

ขั้นตอนที่ 4: หมายเหตุสำคัญและไฟล์แนบ

หมายเหตุสำคัญ:

  • หากไม่ต้องการอินเทอร์เฟซ AHB3-Lite คุณสามารถเปลี่ยนโมดูลด้านบนและใช้การออกแบบโครงกระดูกของ PIC อย่างไรก็ตาม ม้านั่งทดสอบที่มีให้นั้นมีไว้สำหรับ IP ที่มีอินเทอร์เฟซ AHB3-Lite
  • PIC IP v1.0 เป็นการออกแบบ RTL แบบเปลือยแบบพกพาอย่างสมบูรณ์
  • ตรวจสอบการทำงานเพื่อใช้งานได้ทั้งสองโหมด

ไฟล์ที่แนบมาด้วย:

  • ออกแบบโค้ดและชุดทดสอบใน VHDL
  • เอกสาร IP แบบเต็ม

เป็นการออกแบบโอเพ่นซอร์ส … ใช้ได้ฟรี …

สำหรับข้อสงสัยใด ๆ ได้ตลอดเวลา:

มิตู ราจ

แนะนำ: