โลโก้ไมโครเซมิ

ยูจี0837
คู่มือการใช้งาน
IGLOO2 และ SmartFusion2 FPGA
การจำลองบริการระบบ
มิถุนายน 2018

ประวัติการแก้ไข

ประวัติการแก้ไขจะอธิบายการเปลี่ยนแปลงที่เกิดขึ้นในเอกสาร โดยจะแสดงรายการการเปลี่ยนแปลงตามการแก้ไข โดยเริ่มจากการเผยแพร่ครั้งล่าสุด
1.1 การแก้ไข 1.0
การแก้ไข 1.0 เผยแพร่ในเดือนมิถุนายน 2018 เป็นการเผยแพร่ครั้งแรกของเอกสารนี้

การจำลองบริการระบบ FPGA ของ IGLOO2 และ SmartFusion2

บล็อกบริการระบบของตระกูล SmartFusion®2 FPGA มีชุดบริการที่รับผิดชอบสำหรับงานต่างๆ ซึ่งรวมถึงบริการข้อความจำลอง บริการตัวชี้ข้อมูล และบริการตัวอธิบายข้อมูล บริการระบบสามารถเข้าถึงได้ผ่าน Cortex-M3 ใน SmartFusion2 และจากแฟบริค FPGA ผ่านแฟบริคคอนโทรลเลอร์ (FIC) สำหรับทั้ง SmartFusion2 และ IGLOO®2 วิธีการเข้าถึงเหล่านี้จะถูกส่งไปยังตัวควบคุมระบบผ่าน COMM_BLK COMM_BLK มีอินเทอร์เฟซ peripheral bus (APB) ขั้นสูง และทำหน้าที่เป็นท่อส่งผ่านข้อความเพื่อแลกเปลี่ยนข้อมูลกับตัวควบคุมระบบ คำขอบริการระบบจะถูกส่งไปยังตัวควบคุมระบบ และการตอบสนองของบริการระบบจะถูกส่งไปยัง CoreSysSerrvice ผ่าน COMM BLK ตำแหน่งที่อยู่สำหรับ COMM_BLK มีอยู่ในระบบย่อยไมโครคอนโทรลเลอร์ (MSS)/ระบบย่อยหน่วยความจำประสิทธิภาพสูง (HPMS) สำหรับรายละเอียด โปรดดูที่ UG0450: SmartFusion2 SoC และ IGLOO2 FPGA System Controller
คู่มือการใช้งาน
ภาพประกอบต่อไปนี้แสดงการไหลของข้อมูลบริการระบบ
รูปที่ 1 • แผนภาพการไหลของข้อมูลบริการระบบMicrosemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - แผนภาพการไหลของข้อมูลสำหรับการจำลองบริการระบบทั้ง IGLOO2 และ SmartFusion2 คุณต้องส่งคำขอบริการระบบและตรวจสอบการตอบสนองของบริการระบบเพื่อตรวจสอบว่าการจำลองนั้นถูกต้อง ขั้นตอนนี้จำเป็นในการเข้าถึงตัวควบคุมระบบ ซึ่งให้บริการระบบ วิธีการเขียนและอ่านจากตัวควบคุมระบบนั้นแตกต่างกันสำหรับอุปกรณ์ IGLOO2 และ SmartFusion2 สำหรับ SmartFusion2 มี Coretex-M3 และคุณสามารถเขียนและอ่านจากตัวควบคุมระบบโดยใช้คำสั่ง bus functional model (BFM) สำหรับ IGLOO2 นั้น Cortex-M3 ไม่พร้อมใช้งานและไม่สามารถเข้าถึงตัวควบคุมระบบได้โดยใช้คำสั่ง BFM
2.1 ประเภทของบริการระบบที่มีอยู่
มีบริการระบบที่แตกต่างกันสามประเภทและบริการแต่ละประเภทมีประเภทย่อยที่แตกต่างกัน
บริการข้อความจำลอง
บริการตัวชี้ข้อมูล
บริการอธิบายข้อมูล
ภาคผนวก –System Services Types (ดูหน้า 19) บทของคู่มือนี้อธิบายถึงประเภทต่างๆ ของบริการระบบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริการระบบ โปรดดู UG0450: คู่มือผู้ใช้ SmartFusion2 SoC และ IGLOO2 FPGA System Controller
2.2 การจำลองบริการระบบ IGLOO2
บริการระบบเกี่ยวข้องกับการเขียนและอ่านจากตัวควบคุมระบบ ในการเขียนและอ่านจากตัวควบคุมระบบเพื่อวัตถุประสงค์ในการจำลอง คุณต้องทำตามขั้นตอนต่อไปนี้

  1. สร้างอินสแตนซ์ให้กับซอฟต์คอร์ CoreSysServices ซึ่งมีอยู่ในแคตตาล็อก SmartDesign
  2. เขียนรหัส HDL สำหรับเครื่องสถานะจำกัด (FSM)

อินเทอร์เฟซ HDL FSM กับ CoreSysServices Core ซึ่งทำหน้าที่เป็นแฟบริคมาสเตอร์ของบัส AHBLite CoreSysServices core เริ่มต้นคำขอบริการระบบไปยัง COMM BLK และรับการตอบกลับบริการระบบจาก COMM BLK ผ่าน FIC_0/1 ซึ่งเป็นตัวควบคุมส่วนต่อประสานแฟบริคตามที่แสดงในภาพประกอบต่อไปนี้
รูปที่ 2 • โทโพโลยีการจำลองบริการระบบ IGLOO2Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - แผนภาพการไหลของข้อมูล 12.3 การจำลองบริการระบบ SmartFusion2
ในการจำลองบริการระบบในอุปกรณ์ SmartFusion2 คุณต้องเขียนและอ่านจากตัวควบคุมระบบ มีสองตัวเลือกในการเข้าถึงตัวควบคุมระบบเพื่อวัตถุประสงค์ในการจำลอง
ตัวเลือกที่ 1 — เขียนรหัส HDL สำหรับ FSM เพื่อเชื่อมต่อกับ CoreSysService soft IP core ซึ่งทำหน้าที่เป็นต้นแบบแฟบริค AHBLite และเริ่มต้นคำขอบริการระบบไปยัง COMM BLK และรับการตอบกลับบริการระบบจาก COMM BLK ผ่านแฟบริค FIC_0/1 อินเทอร์เฟซตามที่แสดงในภาพประกอบต่อไปนี้
รูปที่ 3 • โทโพโลยีการจำลองบริการระบบ SmartFusion2Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - แผนภาพการไหลของข้อมูล 2

ตัวเลือกที่ 2 — เนื่องจาก Cortex-M3 พร้อมใช้งานสำหรับอุปกรณ์ SmartFusion2 คุณจึงสามารถใช้คำสั่ง BFM เพื่อเขียนและอ่านโดยตรงจากพื้นที่หน่วยความจำของตัวควบคุมระบบ
การใช้คำสั่ง BFM (ตัวเลือกที่ 2) ช่วยลดความจำเป็นในการเขียนรหัส HDL สำหรับ FSM ในคู่มือผู้ใช้นี้ ตัวเลือก 2 ใช้เพื่อแสดงการจำลองบริการระบบใน SmartFusion2 ด้วยตัวเลือกนี้ พื้นที่หน่วยความจำของตัวควบคุมระบบจะเข้าถึงเพื่อค้นหาแผนที่หน่วยความจำของ COMM BLK และบล็อคตัวควบคุมการขัดจังหวะอินเทอร์เฟซแฟบริค (FIIC) เมื่อคุณเขียนคำสั่ง BFM
2.4 การจำลองสถานการณ์ เช่นampเลส
คู่มือผู้ใช้ครอบคลุมการจำลองต่อไปนี้

  • IGLOO2 การจำลองบริการหมายเลขซีเรียล (ดูหน้า 5)
  • การจำลองบริการหมายเลขซีเรียล SmartFusion2 (ดูหน้า 8)
  • IGLOO2 Zeroization Service Simulation (ดูหน้า 13)
  • SmartFusion2 Zeroization Service Simulation (ดูหน้า 16)

วิธีการจำลองแบบเดียวกันนี้สามารถนำไปใช้กับบริการระบบอื่นได้ สำหรับรายการบริการระบบต่างๆ ทั้งหมดที่มีอยู่ ให้ไปที่ภาคผนวก – ประเภทบริการระบบ (ดูหน้า 19)

2.5 IGLOO2 การจำลองบริการหมายเลขซีเรียล
เพื่อเตรียมพร้อมสำหรับการจำลองบริการหมายเลขซีเรียล IGLOO2 ให้ทำตามขั้นตอนต่อไปนี้

  1. เรียกใช้ตัวสร้างระบบเพื่อสร้างบล็อก HPMS ของคุณ
  2. ทำเครื่องหมายที่ช่องทำเครื่องหมาย HPMS System Services ในหน้าคุณสมบัติอุปกรณ์ วิธีนี้จะสั่งให้ผู้สร้างระบบเปิดเผยอินเทอร์เฟซบัส HPMS_FIC_0 SYS_SERVICES_MASTER (BIF)
  3. ไม่ต้องเลือกช่องทำเครื่องหมายอื่นๆ ทั้งหมด
  4. ยอมรับค่าเริ่มต้นในหน้าอื่นๆ ทั้งหมด แล้วคลิก เสร็จสิ้น เพื่อดำเนินการบล็อกตัวสร้างระบบให้เสร็จสมบูรณ์ ในโปรแกรมแก้ไข HDL ของ Libero® SoC ให้เขียนรหัส HDL สำหรับ FSM (File > ใหม่ > HDL) . รวมสามสถานะต่อไปนี้ใน FSM ของคุณ
    สถานะ INIT (สถานะเริ่มต้น)
    SERV_PHASE (สถานะคำขอบริการ)
    RSP_PHASE (สถานะการตอบสนองของบริการ)
    รูปต่อไปนี้แสดงสามสถานะของ FSM
    รูปที่ 4 • FSM สามสถานะ
  5. Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - FSM 1 สามสถานะในรหัส HDL ของคุณสำหรับ FSM ให้ใช้รหัสคำสั่งที่ถูกต้อง (“01” Hex สำหรับบริการหมายเลขซีเรียล ) เพื่อป้อนสถานะคำขอบริการจากสถานะ INIT
  6. บันทึก HDL ของคุณ file. FSM ปรากฏเป็นส่วนประกอบในลำดับชั้นการออกแบบ
  7. เปิด SmartDesign ลากและวางบล็อกตัวสร้างระบบระดับบนสุดและบล็อก FSM ลงในผืนผ้าใบ SmartDesign จากแค็ตตาล็อก ให้ลากและวาง CoreSysService soft IP core ลงใน SmartDesign canvas
  8. คลิกขวาที่ CoreSysService soft IP core เพื่อเปิดตัวกำหนดค่า เลือกช่องทำเครื่องหมาย Serial Number Service (ใต้ Device and Design Information Services
    กลุ่ม) เพื่อเปิดใช้งานบริการหมายเลขซีเรียล
  9. ไม่ต้องเลือกช่องทำเครื่องหมายอื่นๆ ทั้งหมด คลิกตกลงเพื่อออกจากตัวกำหนดค่า
    รูปที่ 5 • CoreSysServices soft IP Core Configurator
    Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - ตัวกำหนดค่าหลัก
  10. เชื่อมต่อ HPMS_FIC_0 SYS_SERVICES_MASTER BIF ของบล็อกตัวสร้างระบบกับ AHBL_MASTER BIF ของบล็อก CoreSysService
  11. เชื่อมต่อเอาต์พุตของบล็อก HDL FSM เข้ากับอินพุตของ CoreSysService soft IP core ทำการเชื่อมต่ออื่นๆ ทั้งหมดในผืนผ้าใบ SmartDesign ดังแสดงในรูปต่อไปนี้
    รูปที่ 6 • SmartDesign Canvas พร้อม HDL Block, CoreSysServices Soft IP และ HPMS BlocksMicrosemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - บล็อก HPMS
  12. ในพื้นที่ทำงาน SmartDesign ให้คลิกขวา >สร้างส่วนประกอบ เพื่อสร้างการออกแบบระดับบนสุด
  13. ในลำดับชั้นการออกแบบ viewคลิกขวาที่การออกแบบระดับบนสุดแล้วเลือก create Testbench > HDL
  14. ใช้โปรแกรมแก้ไขข้อความเพื่อสร้างข้อความ file ชื่อ “status.txt”
  15. รวมคำสั่งสำหรับบริการระบบและหมายเลขซีเรียล 128 บิต สำหรับข้อมูลเพิ่มเติม โปรดดูตารางที่ 1 (ค่าคำสั่ง/การตอบสนองของบริการระบบ) ใน คู่มือ CoreSysServices v3.1 สำหรับรหัสคำสั่ง (Hex) ที่จะใช้กับบริการระบบต่างๆ สำหรับบริการหมายเลขซีเรียล รหัสคำสั่งคือ “01” Hex

รูปแบบของ status.txt file สำหรับบริการซีเรียลนัมเบอร์มีดังนี้
< 2 เลขฐานสิบหก CMD><32 เลขฐานสิบหกหลัก >
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
บันทึกสถานะ.txt file ในโฟลเดอร์จำลองของโครงการของคุณ การออกแบบพร้อมสำหรับการจำลองแล้ว
เมื่อบริการเริ่มดำเนินการ ข้อความระบุตำแหน่งปลายทางและหมายเลขซีเรียลจะแสดงในหน้าต่างถอดเสียง ModelSim ดังแสดงในรูปต่อไปนี้
รูปที่ 7 • หน้าต่างถอดเสียงแบบจำลอง ModelSimMicrosemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - หน้าต่างถอดเสียงตัวควบคุมระบบดำเนินการเขียน AHB ไปยังที่อยู่พร้อมหมายเลขซีเรียล เมื่อบริการเสร็จสิ้น RXFIFO ของ COMM_BLK จะถูกโหลดพร้อมกับการตอบสนองของบริการ
หมายเหตุ: สำหรับรายการรหัสคำสั่งทั้งหมดที่จะใช้สำหรับบริการระบบต่างๆ โปรดดูตารางที่ 1 (ค่าคำสั่ง/การตอบสนองของบริการระบบ) ในคู่มือ CoreSysServices v3.1 หรือ UG0450: คู่มือผู้ใช้ SmartFusion2 SoC และ IGLOO2 FPGA System Controller
2.6 SmartFusion2 การจำลองบริการหมายเลขซีเรียล
ในคู่มือผู้ใช้นี้ คำสั่ง BFM (ตัวเลือก 2) ใช้เพื่อเข้าถึงตัวควบคุมระบบสำหรับบริการระบบ คำสั่ง BFM ถูกใช้เนื่องจากโปรเซสเซอร์ Cortex-M3 มีอยู่ในอุปกรณ์สำหรับการจำลอง BFM คำสั่ง BFM ช่วยให้คุณสามารถเขียนและอ่านโดยตรงจาก COMM BLK เมื่อคุณทราบการแมปหน่วยความจำของ COMM_BLK
เพื่อเตรียมการออกแบบของคุณสำหรับการจำลองบริการหมายเลขซีเรียล SmartFusion2 ให้ทำตามขั้นตอนต่อไปนี้

  1. ลากและวาง MSS จากแค็ตตาล็อกไปยังผืนผ้าใบการออกแบบของโครงการของคุณ
  2. ปิดใช้งานอุปกรณ์ต่อพ่วง MSS ทั้งหมด ยกเว้น MSS_CCC, Reset Controller, Interrupt Management และ FIC_0, FIC_1 และ FIC_2
  3. กำหนดค่าการจัดการอินเตอร์รัปต์เพื่อใช้ MSS เพื่อแฟบริคอินเตอร์รัปต์
  4. เตรียม serialnum.bfm file ในโปรแกรมแก้ไขข้อความหรือในโปรแกรมแก้ไข HDL ของ Libero บันทึก serialnum.bfm file ในโฟลเดอร์จำลองของโครงการ serialnum.bfm ควรมีรายละเอียดต่อไปนี้
    • การแมปหน่วยความจำกับ COMM BLK (CMBLK)
    • การแมปหน่วยความจำกับอุปกรณ์ต่อพ่วงการจัดการการขัดจังหวะ (FIIC)
    • คำสั่งสำหรับคำขอบริการระบบหมายเลขซีเรียล (“01” Hex)
    • ที่อยู่สำหรับตำแหน่งของหมายเลขซีเรียล
    อดีตampไฟล์ของ serialnum.bfm file เป็นดังต่อไปนี้.
    เมมแมป FIIC 0x40006000; #Memory Mapping เพื่อขัดจังหวะการจัดการ
    เมมแมป CMBLK 0x40016000; #Memory การจับคู่กับ COMM BLK
    เมมแมป DESCRIPTOR_ADDR 0x20000000; #ที่อยู่สำหรับหมายเลขซีเรียล
    #รหัสคำสั่งเป็นเลขฐานสิบหก
    รหัส CMD 0x1 # คงที่สำหรับ Serial NumberService
    #การลงทะเบียนการกำหนดค่า FIIC
    ค่าคงที่ FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK การลงทะเบียนการกำหนดค่า
    การควบคุมคงที่ 0x00
    สถานะคงที่ 0x04
    ค่าคงที่ INT_ENABLE 0x08
    ค่าคงที่ DATA8 0x10
    ค่าคงที่ DATA32 0x14
    FRAME_START8 0x18 คงที่
    FRAME_START32 0x1C คงที่
    หมายเลขซีเรียลของขั้นตอน;
    จำนวน x;
    เขียน w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Configure
    #FICC_INTERRUPT_ENABLE0 # ลงทะเบียนเพื่อเปิดใช้งาน COMBLK_INTR #
    #interrupt จากบล็อก COMM_BLK เป็นแฟบริค
    #ขอเฟส
    เขียน w CMBLK CONTROL 0x10 # กำหนดค่า COMM BLK Control # ลงทะเบียนเป็น
    เปิดใช้งานการถ่ายโอนบนอินเทอร์เฟซ COMMM BLK
    เขียน w CMBLK INT_ENABLE 0x1 # กำหนดค่า COMM BLK Interrupt Enable
    #ลงทะเบียนเพื่อเปิดใช้งานการขัดจังหวะสำหรับ TXTOKAY (บิตที่เกี่ยวข้องในไฟล์
    #ทะเบียนสถานะ)
    waitint 19 # รอ COMM BLK Interrupt ที่นี่ #BFM รอ
    #till COMBLK_INTR ถูกยืนยัน
    readstore w CMBLK STATUS x # อ่านสถานะ COMM BLK ลงทะเบียนสำหรับ #TXTOKAY
    # ขัดจังหวะ
    ตั้ง xx & 0x1
    ถ้า x
    เขียน w CMBLK FRAME_START8 CMD # กำหนดค่า COMM BLK FRAME_START8
    #ลงทะเบียนขอรับบริการ Serial Number
    เอ็นดิฟ
    เอ็นดิฟ
    waitint 19 # รอ COMM BLK Interrupt ที่นี่
    #BFM รอจนกว่า COMBLK_INTR จะถูกยืนยัน
    readstore w CMBLK STATUS x # อ่านสถานะ COMM BLK ลงทะเบียนสำหรับ
    #TXTOKAY ขัดจังหวะ
    ตั้ง xx & 0x1
    ตั้ง xx & 0x1
    ถ้า x
    เขียน w CMBLK CONTROL 0x14 #Configure COMM BLK Control
    #ลงทะเบียนเพื่อเปิดใช้งานการถ่ายโอนบนอินเทอร์เฟซ COMM BLK
    เขียน w CMBLK DATA32 DESCRIPTOR_ADDR
    เขียน w CMBLK INT_ENABLE 0x80
    เขียน w CMBLK CONTROL 0x10
    เอ็นดิฟ
    รอ 20
    #ตอบเฟส
    รอ 19
    readstore ด้วย CMBLK STATUS x
    ตั้ง xx & 0x80
    ถ้า x
    อ่านตรวจสอบ CMBLK FRAME_START8 CMD
    เขียน w CMBLK INT_ENABLE 0x2
    เอ็นดิฟ
    รอ 19
    readstore ด้วย CMBLK STATUS x
    ตั้ง xx & 0x2
    ถ้า x
    อ่านตรวจสอบด้วย CMBLK DATA8 0x0
    เขียน w CMBLK CONTROL 0x18
    เอ็นดิฟ
    รอ 19
    อ่านตรวจสอบด้วย FIIC 0x8 0x20000000
    readstore ด้วย CMBLK STATUS x
    ตั้ง xx & 0x2
    ถ้า x
    อ่านเครื่องหมายถูกด้วย CMBLK DATA32 DESCRIPTOR_ADDR
    เอ็นดิฟ
    อ่านตรวจสอบด้วย DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #อ่านตรวจสอบเพื่อตรวจสอบ S/N
    อ่านตรวจสอบด้วย DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #อ่านตรวจสอบเพื่อตรวจสอบ S/N
    อ่านตรวจสอบด้วย DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #อ่านตรวจสอบเพื่อตรวจสอบ S/N
    อ่านตรวจสอบด้วย DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #อ่านตรวจสอบเพื่อตรวจสอบ S/N
    กลับ
  5. สร้างสถานะ txt file ในโปรแกรมแก้ไข HDL ของ Libero หรือโปรแกรมแก้ไขข้อความใดๆ รวมคำสั่งบริการระบบหมายเลขซีเรียล (“01” ในฐานสิบหก) และหมายเลขประจำเครื่องในสถานะ txt file. ดูคู่มือ CoreSysServices v3.1 สำหรับการใช้รหัสคำสั่งที่ถูกต้อง
  6. ไวยากรณ์ของสิ่งนี้ file สำหรับบริการหมายเลขซีเรียลคือ <2 Hex digit CMD>< 32 Hex digit Serial Number> อดีตample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. บันทึกสถานะ .txt file ในโฟลเดอร์จำลองของโครงการ
  8. แก้ไขผู้ใช้ .bfm (อยู่ในโฟลเดอร์ Simulation) เพื่อรวม serialnum บีเอฟเอ็ม file และเรียกใช้ขั้นตอนหมายเลขซีเรียลตามที่แสดงในข้อมูลโค้ดต่อไปนี้
    รวม “serialnum.bfm” #รวม serialnum.bfm
    ขั้นตอน user_main;
    พิมพ์ “INFO:Simulation Starts”;
    พิมพ์ “INFO:Service Command Code in Decimal:%0d”, CMD ;
    โทร serialnum; #เรียกขั้นตอนซีเรียลนัม
    พิมพ์ “INFO:Simulation Ends”;
    กลับ
  9. ในลำดับชั้นการออกแบบ viewสร้าง Testbench (คลิกขวาที่ Top Level Design > Create Testbench > HDL ) และคุณพร้อมที่จะเรียกใช้การจำลองบริการหมายเลขซีเรียล

เมื่อบริการเริ่มดำเนินการ ข้อความระบุตำแหน่งปลายทางและหมายเลขประจำเครื่องจะแสดงขึ้น ตัวควบคุมระบบดำเนินการเขียน AHB ไปยังที่อยู่พร้อมหมายเลขซีเรียล เมื่อบริการเสร็จสิ้น RXFIFO ของ COMM_BLK จะถูกโหลดพร้อมกับการตอบสนองของบริการ หน้าต่างบันทึก ModelSim จะแสดงที่อยู่และหมายเลขซีเรียลที่ได้รับดังแสดงในรูปต่อไปนี้
รูปที่ 8 • การจำลองบริการหมายเลขซีเรียล SmartFusion2 ในหน้าต่าง ModelSim TranscriptMicrosemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - หน้าต่างถอดเสียง 1

2.7 การจำลองบริการ IGLOO2 Zeroization
เพื่อเตรียมพร้อมสำหรับการจำลองบริการการทำให้เป็นศูนย์ของ IGLOO2 ให้ทำตามขั้นตอนต่อไปนี้

  1. เรียกใช้ตัวสร้างระบบเพื่อสร้างบล็อก HPMS ทำเครื่องหมายในช่อง HPMS System Services ใน Device Features SYS_SERVICES_MASTER BIF ไม่ต้องเลือกช่องทำเครื่องหมายอื่นๆ ทั้งหมด ยอมรับค่าเริ่มต้นในหน้าอื่นๆ ทั้งหมดแล้วคลิกหน้า ซึ่งจะสั่งให้ตัวสร้างระบบเปิดเผย HPMS_FIC_0 Finish เพื่อให้การกำหนดค่าของบล็อกตัวสร้างระบบเสร็จสมบูรณ์
  2. ในโปรแกรมแก้ไข HDL ของ Libero SoC ให้เขียนโค้ด HDL สำหรับ FSM ในรหัส HDL ของคุณสำหรับ FSM ให้รวมสามสถานะต่อไปนี้
    สถานะ INIT (สถานะเริ่มต้น)
    SERV_PHASE (สถานะคำขอบริการ)
    RSP_PHASE (สถานะการตอบสนองของบริการ)
    รูปต่อไปนี้แสดงสามสถานะของ FSM
    รูปที่ 9 • FSM สามสถานะMicrosemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - FSM สามสถานะ

     

  3. ในรหัส HDL ของคุณ ให้ใช้รหัสคำสั่ง “F0″(Hex) เพื่อป้อนสถานะคำขอบริการจากสถานะ INIT
  4. บันทึก HDL ของคุณ file.
  5. เปิด SmartDesign ลากและวางบล็อกตัวสร้างระบบระดับบนสุดและบล็อก HDL FSM ลงในผืนผ้าใบ SmartDesign จากแค็ตตาล็อก ให้ลากและวาง CoreSysService soft IP core ลงใน SmartDesign canvas
  6. คลิกขวาที่แกนซอฟต์ IP ของ CoreSysServices เพื่อเปิดตัวกำหนดค่าและเลือกช่องทำเครื่องหมาย Zeroization Service ภายใต้กลุ่ม Data Security Services ไม่ต้องเลือกช่องทำเครื่องหมายอื่นๆ ทั้งหมด คลิกเพื่อตกลงออก
    รูปที่ 10 • CoreSysServices Configurator
    Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - Core Configurator 1
  7. เชื่อมต่อ HPMS_FIC_0 SYS_SERVICES_MASTER BIF ของบล็อกตัวสร้างระบบกับ AHBL_MASTER BIF ของบล็อก CoreSysService
  8. เชื่อมต่อเอาต์พุตของบล็อก HDL FSM เข้ากับอินพุตของ CoreSysService soft IP core ทำการเชื่อมต่ออื่นๆ ทั้งหมดในผืนผ้าใบ SmartDesign
    รูปที่ 11 • SmartDesign Canvas พร้อม HDL Block, CoreSysServices Soft IP และ HPMS Blocks
    Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - HPMS Blocks 19. ในผืนผ้าใบ SmartDesign สร้างการออกแบบระดับบนสุด (คลิกขวา > สร้างส่วนประกอบ)
    10. ในลำดับชั้นการออกแบบ viewคลิกขวาที่การออกแบบระดับบนสุดแล้วเลือกสร้าง Testbench > HDL ตอนนี้คุณพร้อมที่จะเรียกใช้การจำลองแล้ว
    เมื่อบริการเริ่มดำเนินการ ข้อความระบุว่าการทำให้มีค่าเป็นศูนย์เสร็จสิ้นในเวลา x จะแสดงดังรูปต่อไปนี้
    รูปที่ 12 • หน้าต่างถอดเสียงการจำลองการบริการระบบการทำให้เป็นศูนย์ IGLOO2
    Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - หน้าต่างถอดเสียง 3

ตัวควบคุมระบบดำเนินการเขียน AHB ไปยังที่อยู่พร้อมหมายเลขซีเรียล เมื่อบริการเสร็จสิ้น RXFIFO ของ COMM_BLK จะถูกโหลดพร้อมกับการตอบสนองของบริการ ควรสังเกตว่าแบบจำลองจำลองจำลองการทำให้เป็นศูนย์โดยการหยุดการจำลองแทนที่จะทำให้การออกแบบเป็นศูนย์
หมายเหตุ: สำหรับรายการรหัสคำสั่งทั้งหมดที่จะใช้สำหรับบริการระบบต่างๆ โปรดดูตารางที่ 1 (ค่าคำสั่ง/การตอบสนองของบริการระบบ) ใน คู่มือ CoreSysServices v3.1:. หรือ UG0450: คู่มือผู้ใช้ SmartFusion2 SoC และ IGLOO2 FPGA System Controller

2.8 การจำลองบริการ SmartFusion2 Zeroization
ในคู่มือนี้ คำสั่ง BFM (ตัวเลือก 2) ใช้เพื่อเข้าถึงตัวควบคุมระบบสำหรับบริการระบบ
คำสั่ง BFM ถูกใช้เนื่องจากโปรเซสเซอร์ Cortex-M3 มีอยู่ในอุปกรณ์สำหรับการจำลอง BFM คำสั่ง BFM ช่วยให้คุณสามารถเขียนและอ่านโดยตรงจาก COMM BLK เมื่อคุณทราบการแมปหน่วยความจำของ COMM_BLK เพื่อเตรียมการออกแบบของคุณสำหรับการจำลองบริการการทำให้เป็นศูนย์ของ SmartFusion2 ให้ทำตามขั้นตอนต่อไปนี้

  1. ลากและวาง MSS จากแค็ตตาล็อกไปยังผืนผ้าใบการออกแบบของโครงการของคุณ
  2. ปิดใช้งานอุปกรณ์ต่อพ่วง MSS ทั้งหมด ยกเว้น MSS_CCC, Reset Controller, Interrupt Management และ FIC_0, FIC_1 และ FIC_2
  3. กำหนดค่าการจัดการอินเตอร์รัปต์เพื่อใช้ MSS เพื่อแฟบริคอินเตอร์รัปต์
  4. เตรียม zeroizaton.bfm file ในโปรแกรมแก้ไขข้อความหรือโปรแกรมแก้ไข HDL ของ Libero การทำให้เป็นศูนย์ของคุณ bfm ควรรวมถึง:
  • การแมปหน่วยความจำกับ COMM BLK (CMBLK)
  • การแมปหน่วยความจำกับอุปกรณ์ต่อพ่วงการจัดการการขัดจังหวะ (FIIC)
  • คำสั่งสำหรับคำขอบริการ zeroizaton (“F0” Hex สำหรับ zeriozation)

อดีตampไฟล์ของ serialnum.bfm file แสดงดังรูปต่อไปนี้
รูปที่ 13 • Zeroization.bfm สำหรับการจำลองบริการระบบ Zeroization ของ SmartFusion2

Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - หน้าต่างถอดเสียง 4

5. บันทึก zeroization.bfm file ในโฟลเดอร์จำลองของโครงการ user.bfm
6. แก้ไข (อยู่ในโฟลเดอร์ zeroization.bfm Simulation) เพื่อรวมโดยใช้ข้อมูลโค้ดต่อไปนี้
รวม “zeroization.bfm” #include zeroization.bfm file ขั้นตอน user_main;
พิมพ์ “INFO:Simulation Starts”;
พิมพ์ “INFO:Service Command Code in Decimal:%0d”, CMD ;
โทรเป็นศูนย์; #call กลับขั้นตอนการทำให้เป็นศูนย์
7. ใน Design Hierarchy ให้สร้าง Testbench (คลิกขวาที่ระดับบนสุด > สร้าง Testbench > HDL ) และคุณพร้อมที่จะเรียกใช้การจำลองการทำให้เป็นศูนย์ของ SmartFusion2
เมื่อบริการเริ่มดำเนินการ ข้อความระบุว่าอุปกรณ์ได้รับการทำให้เป็นศูนย์ ณ เวลา x จะปรากฏขึ้น ควรสังเกตว่าแบบจำลองจำลองจำลองการทำให้เป็นศูนย์โดยการหยุดการจำลองแทนที่จะทำให้การออกแบบเป็นศูนย์ หน้าต่างบันทึก ModelSim ในรูปต่อไปนี้แสดงว่าอุปกรณ์ถูกทำให้เป็นศูนย์

รูปที่ 14 • บันทึกการจำลองการบริการระบบการทำให้เป็นศูนย์ SmartFusion2

Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA - หน้าต่างถอดเสียง 5

ภาคผนวก: ประเภทของบริการระบบ

บทนี้อธิบายประเภทของบริการระบบต่างๆ
3.1 บริการข้อความจำลอง
ส่วนต่อไปนี้อธิบายบริการข้อความจำลองประเภทต่างๆ
3.1.1 แฟลช*ค้าง
การจำลองจะเข้าสู่สถานะ Flash*Freeze เมื่อมีการส่งคำขอบริการที่เหมาะสมไปยัง COMM_BLK จาก FIC (ในกรณีของอุปกรณ์ IGLOO2) หรือ Cortex-M3 (ในอุปกรณ์ SmartFusion2) เมื่อตัวควบคุมระบบตรวจพบบริการ การจำลองจะหยุดลงและข้อความแจ้งว่าระบบเข้าสู่ Flash*Freeze (พร้อมกับตัวเลือกที่เลือก) จะแสดงขึ้น เมื่อเริ่มต้นการจำลองใหม่ RXFIFO ของ COMM_BLK จะถูกเติมเต็มด้วยการตอบกลับบริการซึ่งประกอบด้วยคำสั่งบริการและสถานะ ควรสังเกตว่าไม่มีการสนับสนุนการจำลองสำหรับทางออก Flash*Freeze
3.1.2 การทำให้เป็นศูนย์
ปัจจุบัน Zeroization เป็นบริการที่มีลำดับความสำคัญสูงเพียงบริการเดียวภายในบริการระบบที่ประมวลผลโดย COMM_BLK การจำลองจะเข้าสู่สถานะ Zeroization ทันทีที่ตรวจพบคำขอบริการที่ถูกต้องโดย COMM_BLK การดำเนินการของบริการอื่น ๆ จะถูกหยุดและยกเลิกโดยตัวควบคุมระบบ และบริการ Zeroization จะถูกดำเนินการแทน เมื่อตรวจพบคำขอบริการการทำให้เป็นศูนย์ การจำลองจะหยุดลงและข้อความระบุว่าระบบได้เข้าสู่การทำให้เป็นศูนย์แล้วจะปรากฏขึ้น การรีสตาร์ทด้วยตนเองของการจำลองหลังจากการทำให้เป็นศูนย์ไม่ถูกต้อง
3.2 บริการตัวชี้ข้อมูล
ส่วนต่อไปนี้อธิบายบริการตัวชี้ข้อมูลประเภทต่างๆ
3.2.1 หมายเลขประจำเครื่อง
บริการหมายเลขซีเรียลจะเขียนหมายเลขซีเรียล 128 บิตไปยังตำแหน่งที่อยู่ซึ่งเป็นส่วนหนึ่งของคำขอบริการ พารามิเตอร์ 128 บิตนี้สามารถตั้งค่าได้โดยใช้ System Service Simulation Support file (ดูหน้า 22) . หากไม่ได้กำหนดพารามิเตอร์ซีเรียลนัมเบอร์ 128 บิตภายใน fileจะใช้หมายเลขซีเรียลเริ่มต้นเป็น 0 เมื่อบริการเริ่มดำเนินการ ข้อความระบุตำแหน่งปลายทางและหมายเลขประจำเครื่องจะแสดงขึ้น ตัวควบคุมระบบดำเนินการเขียน AHB ไปยังที่อยู่พร้อมหมายเลขซีเรียล เมื่อบริการเสร็จสิ้น RXFIFO ของ COMM_BLK จะถูกโหลดพร้อมกับการตอบสนองของบริการ
3.2.2 รหัสผู้ใช้
บริการรหัสผู้ใช้เขียนพารามิเตอร์รหัสผู้ใช้ 32 บิตไปยังตำแหน่งที่อยู่ซึ่งเป็นส่วนหนึ่งของคำขอบริการ พารามิเตอร์ 32 บิตนี้สามารถตั้งค่าได้โดยใช้ System Service Simulation Support file (ดูหน้า 22) หากไม่ได้กำหนดพารามิเตอร์ 32 บิตภายใน fileจะใช้ค่าเริ่มต้นเป็น 0 เมื่อบริการเริ่มดำเนินการ ข้อความระบุตำแหน่งเป้าหมายและรหัสผู้ใช้จะปรากฏขึ้น ตัวควบคุมระบบดำเนินการเขียน AHB ไปยังที่อยู่ด้วยพารามิเตอร์ 32 บิต เมื่อเสร็จสิ้นบริการ RXFIFO ของ COMM_BLK จะถูกโหลดพร้อมกับการตอบกลับของบริการ ซึ่งรวมถึงคำสั่งบริการและที่อยู่เป้าหมาย
3.3 บริการอธิบายข้อมูล
ส่วนต่อไปนี้อธิบายบริการตัวอธิบายข้อมูลประเภทต่างๆ

3.3.1 เออีเอส
การสนับสนุนการจำลองสำหรับบริการนี้เกี่ยวข้องกับการย้ายข้อมูลต้นฉบับจากต้นทางไปยังปลายทางเท่านั้น โดยไม่ได้ทำการเข้ารหัส/ถอดรหัสใดๆ กับข้อมูล ข้อมูลที่ต้องเข้ารหัส/ถอดรหัสและโครงสร้างข้อมูลควรเขียนก่อนที่จะส่งคำขอบริการ เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่ระบุการดำเนินการของบริการ AES จะปรากฏขึ้น บริการ AES อ่านทั้งโครงสร้างข้อมูลและข้อมูลที่จะเข้ารหัส/ถอดรหัส ข้อมูลต้นฉบับจะถูกคัดลอกและเขียนไปยังที่อยู่ที่ให้ไว้ในโครงสร้างข้อมูล เมื่อบริการเสร็จสิ้น คำสั่ง สถานะ และที่อยู่โครงสร้างข้อมูลจะถูกส่งไปยัง RXFIFO
บันทึก: บริการนี้ใช้สำหรับข้อมูล 128 บิตและ 256 บิตเท่านั้น และข้อมูลทั้ง 128 บิตและ 256 บิตมีความยาวโครงสร้างข้อมูลที่แตกต่างกัน

3.3.2 มช. 256
การสนับสนุนการจำลองสำหรับบริการนี้เกี่ยวข้องกับการย้ายข้อมูลเท่านั้น โดยไม่ต้องทำการแฮชข้อมูลใดๆ ฟังก์ชัน SHA 256 ได้รับการออกแบบมาเพื่อสร้างคีย์แฮช 256 บิตตามข้อมูลอินพุต ข้อมูลที่ต้องแฮชและโครงสร้างข้อมูลควรเขียนไปยังที่อยู่ที่เกี่ยวข้องก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK ความยาวเป็นบิตและตัวชี้ที่กำหนดภายในโครงสร้างข้อมูล SHA 256 จะต้องสอดคล้องกับความยาวและที่อยู่ของข้อมูลที่จะแฮชอย่างถูกต้อง เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่ระบุการดำเนินการของบริการ SHA 256 จะปรากฏขึ้น แทนที่จะเรียกใช้ฟังก์ชันจริง คีย์แฮชเริ่มต้นจะถูกเขียนไปยังตัวชี้ปลายทางจากโครงสร้างข้อมูล คีย์แฮชเริ่มต้นคือเลขฐานสิบหก “ABCD1234” สำหรับการตั้งค่าคีย์แบบกำหนดเอง ให้ไปที่ส่วนการตั้งค่าพารามิเตอร์ (ดูหน้า 23) เมื่อเสร็จสิ้นบริการ RXFIFO จะถูกโหลดด้วยการตอบสนองของบริการซึ่งประกอบด้วยคำสั่งบริการ สถานะ และตัวชี้โครงสร้างข้อมูล SHA 256
3.3.3 เอชแมค
การสนับสนุนการจำลองสำหรับบริการนี้เกี่ยวข้องกับการย้ายข้อมูลเท่านั้น โดยไม่มีการแฮชข้อมูลใดๆ ข้อมูลที่ต้องแฮชและโครงสร้างข้อมูลควรเขียนไปยังที่อยู่ที่เกี่ยวข้องก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK บริการ HMAC ต้องการคีย์ขนาด 32 ไบต์ นอกเหนือจากความยาวเป็นไบต์ ตัวชี้ต้นทาง และตัวชี้ปลายทาง เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่ระบุการดำเนินการของบริการ HMAC จะปรากฏขึ้น คีย์ถูกอ่านและคีย์ 256 บิตถูกคัดลอกจากโครงสร้างข้อมูลไปยังตัวชี้ปลายทาง เมื่อเสร็จสิ้นบริการ RXFIFO จะถูกโหลดพร้อมกับการตอบสนองของบริการซึ่งประกอบด้วยคำสั่งบริการ สถานะ และตัวชี้โครงสร้างข้อมูล HMAC

3.3.4 DRBG สร้าง
บริการนี้สร้างบิตแบบสุ่ม ควรสังเกตว่าแบบจำลองจำลองไม่เป็นไปตามวิธีการสร้างตัวเลขสุ่มแบบเดียวกับที่ใช้โดยซิลิกอน ต้องเขียนโครงสร้างข้อมูลอย่างถูกต้องในตำแหน่งที่ต้องการก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK โครงสร้างข้อมูล ตัวชี้ปลายทาง ความยาว และข้อมูลที่เกี่ยวข้องอื่นๆ จะถูกอ่านโดยตัวควบคุมระบบ บริการสร้าง DRBG จะสร้างชุดข้อมูลแบบสุ่มหลอกของความยาวที่ร้องขอ (0-128) ตัวควบคุมระบบเขียนข้อมูลสุ่มลงในตัวชี้ปลายทาง ข้อความที่ระบุการดำเนินการของบริการสร้าง DRBG จะแสดงในการจำลอง เมื่อบริการเสร็จสิ้น คำสั่ง สถานะ และที่อยู่โครงสร้างข้อมูลจะถูกส่งไปยัง RXFIFO หากความยาวข้อมูลที่ร้องขอไม่อยู่ในช่วง 0-128 รหัสข้อผิดพลาด “4” (สร้างสูงสุด) จะถูกพุชลงใน RXFIFO หากความยาวของข้อมูลเพิ่มเติมไม่อยู่ในช่วงคำขอมากเกินไปที่ 0-128 รหัสข้อผิดพลาด "5" (ความยาวสูงสุดของข้อมูลเพิ่มเติมเกิน) จะถูกพุชลงใน RXFIFO หากทั้งความยาวข้อมูลที่ร้องขอสำหรับการสร้างและความยาวข้อมูลเพิ่มเติมไม่อยู่ในช่วงที่กำหนด (0-128) รหัสข้อผิดพลาด "1" (ข้อผิดพลาดจากภัยพิบัติ) จะถูกพุชลงใน RXFIFO

3.3.5 รีเซ็ต DRBG
ฟังก์ชันรีเซ็ตจริงดำเนินการโดยการลบอินสแตนซ์ DRBG และรีเซ็ต DRBG เมื่อตรวจพบคำขอบริการ การจำลองจะแสดงข้อความบริการรีเซ็ต DRBG เสร็จสมบูรณ์ การตอบสนอง ซึ่งรวมถึงบริการและสถานะ จะถูกส่งไปยัง RXFIFO
3.3.6 การทดสอบตัวเองของ DRBG
การรองรับการจำลองสำหรับการทดสอบตัวเองของ DRBG ไม่ได้เรียกใช้ฟังก์ชันการทดสอบตัวเองอย่างแท้จริง เมื่อตรวจพบคำขอบริการ การจำลองจะแสดงข้อความดำเนินการบริการทดสอบตัวเอง DRBG การตอบสนองซึ่งรวมถึงบริการและสถานะจะถูกส่งไปยัง RXFIFO
3.3.7 DRBG สร้างอินสแตนซ์
การรองรับการจำลองสำหรับบริการสร้างอินสแตนซ์ DRBG ไม่ได้ให้บริการอินสแตนซ์จริง ต้องเขียนโครงสร้างข้อมูลอย่างถูกต้องในตำแหน่งที่ต้องการก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK เมื่อตรวจพบคำขอบริการ โครงสร้างและสตริงการตั้งค่าส่วนบุคคลที่กำหนดไว้ภายในพื้นที่ที่อยู่ MSS จะถูกอ่าน การจำลองจะแสดงข้อความที่ระบุว่าบริการ DRBG Instantiate ได้เริ่มดำเนินการแล้ว เมื่อบริการเสร็จสมบูรณ์ การตอบสนอง ซึ่งรวมถึงคำสั่งบริการ สถานะ และตัวชี้ไปยังโครงสร้างข้อมูล จะถูกพุชเข้าไปใน RXFIFO หากความยาวข้อมูล (ความยาวส่วนบุคคล) ไม่อยู่ในช่วง 0-128 รหัสข้อผิดพลาด "1" (ข้อผิดพลาดจากภัยพิบัติ) จะถูกส่งไปยัง RXFIFO สำหรับสถานะ
3.3.8 DRBG ไม่เป็นความจริง
การสนับสนุนการจำลองสำหรับบริการที่ไม่สร้างอินสแตนติของ DRBG นั้นไม่ได้ดำเนินการบริการที่ไม่สร้างอินสแตนติของการนำ DRBG ที่อินสแตนซ์ก่อนหน้านี้ออกจริงๆ อย่างที่ซิลิคอนทำ คำขอบริการต้องมีทั้งคำสั่งและแฮนเดิล DRBG เมื่อตรวจพบคำขอบริการแล้ว หมายเลขอ้างอิง DRBG จะถูกเก็บไว้ การจำลองจะแสดงข้อความที่ระบุว่าบริการที่ไม่สร้างอินสแตนติเอตของ DRBG ได้รับการเริ่มต้นแล้ว เมื่อบริการเสร็จสมบูรณ์ การตอบสนองซึ่งรวมถึงคำสั่งบริการ สถานะ และแฮนเดิล DRBG จะถูกส่งไปยัง RXFIFO
3.3.9 DRBG รีซีด
เนื่องจากลักษณะการจำลองของบล็อกบริการระบบ DRBG reseed บริการในการจำลองจะไม่ดำเนินการโดยอัตโนมัติหลังจากทุกๆ 65535 DRBG สร้างบริการ ต้องเขียนโครงสร้างข้อมูลอย่างถูกต้องในตำแหน่งที่ต้องการก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK เมื่อตรวจพบคำขอบริการแล้ว โครงสร้างและพารามิเตอร์อินพุตเพิ่มเติมในพื้นที่ที่อยู่ MSS จะถูกอ่าน ข้อความที่ระบุว่าบริการ DRBG reseed ได้เริ่มดำเนินการแล้ว จะแสดงขึ้น ต้องเขียนโครงสร้างข้อมูลอย่างถูกต้องในตำแหน่งที่ต้องการก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK เมื่อบริการเสร็จสมบูรณ์ การตอบสนอง ซึ่งรวมถึงคำสั่งบริการ สถานะ และตัวชี้ไปยังโครงสร้างข้อมูล จะถูกพุชเข้าไปใน RXFIFO
3.3.10 คีย์ทรี
ฟังก์ชันจริงไม่ได้ดำเนินการในการจำลองสำหรับบริการ KeyTree โครงสร้างข้อมูลบริการ KeyTree ประกอบด้วยคีย์ 32 ไบต์ ข้อมูล optype 7 บิต (ละเว้น MSB) และพาธ 16 ไบต์ ข้อมูลภายในโครงสร้างข้อมูลควรเขียนไปยังที่อยู่ที่เกี่ยวข้อง ก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่ระบุการดำเนินการของบริการ KeyTree จะปรากฏขึ้น เนื้อหาของโครงสร้างข้อมูลจะถูกอ่าน คีย์ขนาด 32 ไบต์จะถูกเก็บไว้ และคีย์เดิมที่อยู่ในโครงสร้างข้อมูลจะถูกเขียนทับ หลังจากการเขียน AHB นี้ ค่าของคีย์ภายในโครงสร้างข้อมูลไม่ควรเปลี่ยนแปลง แต่ธุรกรรม AHB สำหรับการเขียนจะเกิดขึ้น เมื่อเสร็จสิ้นการบริการ RXFIFO จะถูกโหลดพร้อมกับการตอบกลับของบริการ ซึ่งประกอบด้วยคำสั่งการบริการ สถานะ และตัวชี้โครงสร้างข้อมูล KeyTree
3.3.11 การตอบสนองความท้าทาย
ฟังก์ชันจริง เช่น การรับรองความถูกต้องของอุปกรณ์ ไม่ได้ดำเนินการในการจำลองสำหรับบริการตอบสนองความท้าทาย โครงสร้างข้อมูลสำหรับบริการนี้ต้องการตัวชี้ไปยังบัฟเฟอร์ เพื่อรับผลลัพธ์ 32 ไบต์ optype 7 บิต และพาธ 128 บิต ข้อมูลภายในโครงสร้างข้อมูลควรเขียนไปยังที่อยู่ที่เกี่ยวข้องก่อนที่จะส่งคำขอบริการไปยัง COMM_BLK เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่ระบุการดำเนินการของบริการตอบสนองความท้าทายจะแสดงขึ้น การตอบสนองทั่วไป 256 บิตจะถูกเขียนลงในตัวชี้ที่ให้ไว้ในโครงสร้างข้อมูล คีย์เริ่มต้นถูกกำหนดเป็นเลขฐานสิบหก “ABCD1234” ในการรับคีย์แบบกำหนดเอง ตรวจสอบการตั้งค่าพารามิเตอร์ (ดูหน้า 23) เมื่อเสร็จสิ้นบริการ RXFIFO จะถูกโหลดด้วยการตอบสนองของบริการ ซึ่งประกอบด้วยคำสั่งบริการ สถานะ และตัวชี้โครงสร้างข้อมูลการตอบสนองที่ท้าทาย
3.4 บริการอื่นๆ
ส่วนต่อไปนี้อธิบายถึงบริการระบบอื่นๆ ที่หลากหลาย
3.4.1 ตรวจสอบไดเจสต์
ฟังก์ชันจริงของการคำนวณใหม่และการเปรียบเทียบไดเจสต์ของส่วนประกอบที่เลือกจะไม่ถูกดำเนินการสำหรับบริการตรวจสอบไดเจสต์ในการจำลอง คำขอบริการนี้ประกอบด้วยคำสั่งบริการ และตัวเลือกบริการ (LSB 5 บิต) เมื่อบริการเริ่มดำเนินการแล้ว ข้อความที่มีรายละเอียดการดำเนินการของบริการตรวจสอบสรุปจะแสดงขึ้นพร้อมกับตัวเลือกที่เลือกจากคำขอ เมื่อเสร็จสิ้นบริการ RXFIFO จะถูกโหลดด้วยการตอบกลับของบริการ ซึ่งประกอบด้วยคำสั่งบริการ และแฟล็กตรวจสอบการย่อยผ่าน/ไม่ผ่าน
3.4.2 การตอบสนองคำสั่งที่ไม่รู้จัก
เมื่อมีการส่งคำขอบริการที่ไม่รู้จักไปยัง COMM_BLK COMM_BLK จะตอบกลับโดยอัตโนมัติพร้อมกับข้อความคำสั่งที่ไม่รู้จักที่ส่งไปยัง RXFIFO ข้อความประกอบด้วยคำสั่งที่ส่งไปยัง COMM_BLK และสถานะคำสั่งที่ไม่รู้จัก (252D) ข้อความแสดงที่ระบุว่าตรวจพบคำขอบริการที่ไม่รู้จักก็จะปรากฏขึ้นเช่นกัน COMM_BLK จะกลับสู่สถานะว่าง รอรับคำขอบริการถัดไป
3.4.3 บริการที่ไม่รองรับ
บริการที่ไม่รองรับที่ตั้งค่าเป็น COMM_BLK จะทริกเกอร์ข้อความในการจำลองที่ระบุว่าคำขอบริการไม่ได้รับการสนับสนุน COMM_BLK จะกลับสู่สถานะว่าง รอรับคำขอบริการถัดไป PINTERRUPT จะไม่ถูกตั้งค่า แสดงว่าบริการเสร็จสมบูรณ์แล้ว รายการบริการที่ไม่รองรับในปัจจุบัน ได้แก่ IAP, ISP, Device Certificate และบริการ DESIGNVER
3.5 การสนับสนุนการจำลองบริการระบบ File
เพื่อสนับสนุนการจำลองบริการระบบ ข้อความ file เรียกว่า "status.txt" สามารถใช้เพื่อส่งคำแนะนำเกี่ยวกับพฤติกรรมที่จำเป็นของแบบจำลองการจำลองไปยังแบบจำลองการจำลอง นี้ file ควรอยู่ในโฟลเดอร์เดียวกันกับที่เรียกใช้การจำลอง เดอะ file สามารถใช้เพื่อบังคับการตอบสนองข้อผิดพลาดบางอย่างสำหรับบริการระบบที่รองรับ หรือแม้แต่การตั้งค่าพารามิเตอร์บางอย่างที่จำเป็นสำหรับการจำลอง (เช่นample, หมายเลขซีเรียล) จำนวนบรรทัดสูงสุดที่รองรับใน ” status.txt” file คือ 256 คำแนะนำที่ปรากฏหลังบรรทัดหมายเลข 256 จะไม่ถูกนำมาใช้ในการจำลอง
3.5.1 บังคับให้ตอบสนองข้อผิดพลาด
ผู้ใช้สามารถบังคับให้ตอบสนองข้อผิดพลาดบางอย่างสำหรับบริการเฉพาะในระหว่างการทดสอบโดยส่งข้อมูลไปยังแบบจำลองโดยใช้ "status.txt" fileซึ่งควรอยู่ในโฟลเดอร์ที่เรียกใช้การจำลอง เพื่อบังคับให้ตอบสนองข้อผิดพลาดกับบริการบางอย่าง คำสั่งและการตอบสนองที่จำเป็นควรพิมพ์ในบรรทัดเดียวกันในรูปแบบต่อไปนี้:ample ไปที่ Command> ; สั่งให้แบบจำลองสร้างการตอบสนองข้อผิดพลาดการเข้าถึงหน่วยความจำ MSS ไปยังบริการหมายเลขซีเรียล คำสั่งมีดังนี้
บริการ: หมายเลขซีเรียล: 01
ข้อความแสดงข้อผิดพลาดที่ร้องขอ: ข้อผิดพลาดการเข้าถึงหน่วยความจำ MSS: 7F
คุณควรป้อนบรรทัด 017F ใน "status.txt" file.
3.5.2 การตั้งค่าพารามิเตอร์
"status.txt" file นอกจากนี้ยังสามารถใช้เพื่อตั้งค่าพารามิเตอร์บางอย่างที่จำเป็นในการจำลอง ในฐานะอดีตampในการตั้งค่าพารามิเตอร์ 32 บิตสำหรับรหัสผู้ใช้ รูปแบบของบรรทัดต้องอยู่ในลำดับนี้: <รหัสผู้ใช้ 32 บิต>; โดยที่ทั้งสองค่าป้อนเป็นเลขฐานสิบหก ในการตั้งค่าพารามิเตอร์ 128 บิตสำหรับหมายเลขซีเรียล รูปแบบของบรรทัดต้องอยู่ในลำดับต่อไปนี้: <หมายเลขซีเรียล 128 บิต [127:0]> ; โดยที่ทั้งสองค่าป้อนเป็นเลขฐานสิบหก เพื่อตั้งค่าพารามิเตอร์ 256 บิตสำหรับคีย์ SHA 256 รูปแบบของเส้นต้องเรียงตามนี้ <คีย์ 256 บิต [255:0]>; โดยที่ทั้งสองค่าป้อนเป็นเลขฐานสิบหก ในการตั้งค่าพารามิเตอร์ 256 บิตสำหรับคีย์ตอบกลับความท้าทาย รูปแบบของบรรทัดต้องอยู่ในลำดับต่อไปนี้: <คีย์ 256 บิต [255:0]>;
โดยที่ทั้งสองค่าป้อนเป็นเลขฐานสิบหก
3.5.3 ลำดับความสำคัญของอุปกรณ์
บริการระบบและ COMM_BLK ใช้ระบบที่มีลำดับความสำคัญสูง ปัจจุบัน บริการที่มีลำดับความสำคัญสูงเพียงอย่างเดียวคือการทำให้เป็นศูนย์ เพื่อดำเนินการบริการที่มีลำดับความสำคัญสูง ในขณะที่บริการอื่นกำลังดำเนินการอยู่ บริการปัจจุบันจะหยุดทำงานและบริการที่มีลำดับความสำคัญสูงกว่าจะถูกดำเนินการแทน COMM_BLK จะยกเลิกบริการปัจจุบันเพื่อให้บริการที่มีลำดับความสำคัญสูงกว่า หากมีการส่งบริการที่ไม่ใช่ลำดับความสำคัญสูงหลายรายการก่อนที่บริการปัจจุบันจะเสร็จสมบูรณ์ บริการเหล่านี้จะถูกจัดคิวภายใน TXFIFO เมื่อบริการปัจจุบันเสร็จสมบูรณ์ บริการถัดไปใน TXFIFO จะถูกดำเนินการ

Microsemi ไม่รับประกัน รับรอง หรือรับประกันเกี่ยวกับข้อมูลที่มีอยู่ในที่นี้ หรือความเหมาะสมของผลิตภัณฑ์และบริการสำหรับวัตถุประสงค์เฉพาะใดๆ และ Microsemi จะไม่รับผิดใด ๆ ที่เกิดขึ้นจากการใช้งานหรือการใช้ผลิตภัณฑ์หรือวงจรใดๆ ผลิตภัณฑ์ที่จำหน่ายในที่นี้และผลิตภัณฑ์อื่นๆ ที่จำหน่ายโดย Microsemi ได้รับการทดสอบอย่างจำกัด และไม่ควรใช้ร่วมกับอุปกรณ์หรือการใช้งานที่มีความสำคัญต่อภารกิจ ข้อมูลจำเพาะด้านประสิทธิภาพใด ๆ ที่เชื่อว่าเชื่อถือได้แต่ไม่ได้รับการตรวจสอบ และผู้ซื้อต้องดำเนินการและดำเนินการตามประสิทธิภาพและการทดสอบผลิตภัณฑ์อื่นๆ ทั้งหมด เพียงอย่างเดียวและร่วมกับหรือติดตั้งในผลิตภัณฑ์ขั้นสุดท้ายใดๆ ผู้ซื้อจะไม่พึ่งพาข้อมูลและประสิทธิภาพการทำงานหรือพารามิเตอร์ใด ๆ ที่ Microsemi ให้มา เป็นความรับผิดชอบของผู้ซื้อในการพิจารณาความเหมาะสมของผลิตภัณฑ์ใดๆ อย่างอิสระ และเพื่อทดสอบและตรวจสอบสิ่งเดียวกัน ข้อมูลที่ Microsemi ให้ไว้ด้านล่างนี้มีให้ "ตามที่เป็นอยู่" และมีข้อบกพร่องทั้งหมด และความเสี่ยงทั้งหมดที่เกี่ยวข้องกับข้อมูลดังกล่าวตกอยู่ที่ผู้ซื้อทั้งหมด Microsemi ไม่ให้สิทธิ์ในสิทธิบัตร ใบอนุญาต หรือสิทธิ์ในทรัพย์สินทางปัญญาอื่นใดแก่ฝ่ายใด ไม่ว่าโดยชัดแจ้งหรือโดยปริยาย ไม่ว่าจะเกี่ยวกับข้อมูลดังกล่าวเองหรือสิ่งใด ๆ ที่อธิบายโดยข้อมูลดังกล่าว ข้อมูลที่ให้ไว้ในเอกสารนี้เป็นกรรมสิทธิ์ของ Microsemi และ Microsemi ขอสงวนสิทธิ์ในการเปลี่ยนแปลงข้อมูลในเอกสารนี้หรือผลิตภัณฑ์และบริการใดๆ ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ
Microsemi ซึ่งเป็นบริษัทในเครือของ Microchip Technology Inc. (Nasdaq: MCHP) นำเสนอผลงานที่ครอบคลุมของเซมิคอนดักเตอร์และระบบโซลูชันสำหรับการบินและอวกาศและการป้องกัน การสื่อสาร ศูนย์ข้อมูล และตลาดอุตสาหกรรม ผลิตภัณฑ์ประกอบด้วยวงจรรวมสัญญาณผสมแบบอะนาล็อกที่มีประสิทธิภาพสูงและชุบแข็งด้วยรังสี, FPGA, SoCs และ ASIC; ผลิตภัณฑ์การจัดการพลังงาน อุปกรณ์จับเวลาและซิงโครไนซ์และการแก้ปัญหาเวลาที่แม่นยำ การกำหนดมาตรฐานโลกสำหรับเวลา อุปกรณ์ประมวลผลเสียง โซลูชั่น RF; ส่วนประกอบที่ไม่ต่อเนื่อง โซลูชันการจัดเก็บข้อมูลและการสื่อสารระดับองค์กร เทคโนโลยีความปลอดภัยและ anti-t ที่ปรับขนาดได้ampเอ้อ ผลิตภัณฑ์; โซลูชันอีเทอร์เน็ต Power-over-Ethernet ICs และมิดสแปน; ตลอดจนความสามารถในการออกแบบและบริการที่กำหนดเอง Microsemi มีสำนักงานใหญ่อยู่ที่เมือง Aliso Viejo รัฐแคลิฟอร์เนีย และมีพนักงานประมาณ 4,800 คนทั่วโลก ศึกษาเพิ่มเติมได้ที่ www.microsemi.com.

โลโก้ไมโครเซมิ

สำนักงานใหญ่ไมโครเซมิ
One Enterprise, อลิโซ วีโจ,
CA 92656 สหรัฐอเมริกา
ภายในสหรัฐอเมริกา: +1 800-713-4113
นอกสหรัฐอเมริกา: +1 949-380-6100
ยอดขาย: +1 949-380-6136
แฟกซ์: +1 949-215-4996
อีเมล์:ฝ่ายขาย.support@microsemi.com
www.microsemi.com
© 2018 ไมโครเซมิ สงวนลิขสิทธิ์. Microsemi และโลโก้ Microsemi
เป็นเครื่องหมายการค้าของ Microsemi Corporation เครื่องหมายการค้าและบริการอื่นๆ ทั้งหมด
เครื่องหมายเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง

เอกสาร / แหล่งข้อมูล

Microsemi UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA [พีดีเอฟ] คู่มือการใช้งาน
UG0837, UG0837 IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA, IGLOO2 และ SmartFusion2 การจำลองบริการระบบ FPGA, การจำลองบริการระบบ SmartFusion2 FPGA, การจำลองบริการระบบ FPGA, การจำลองบริการ

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *