UG0837
მომხმარებლის სახელმძღვანელო
IGLOO2 და SmartFusion2 FPGA
სისტემის სერვისების სიმულაცია
2018 წლის ივნისი
გადასინჯვის ისტორია
გადასინჯვის ისტორია აღწერს ცვლილებებს, რომლებიც განხორციელდა დოკუმენტში. ცვლილებები ჩამოთვლილია გადასინჯვით, დაწყებული უახლესი პუბლიკაციით.
1.1 რევიზია 1.0
Revision 1.0 გამოქვეყნდა 2018 წლის ივნისში. ეს იყო ამ დოკუმენტის პირველი გამოცემა.
IGLOO2 და SmartFusion2 FPGA სისტემის სერვისების სიმულაცია
SmartFusion®2 FPGA ოჯახის სისტემური სერვისების ბლოკი შეიცავს სერვისების კრებულს, რომლებიც პასუხისმგებელნი არიან სხვადასხვა ამოცანებზე. ეს მოიცავს სიმულაციური შეტყობინების სერვისებს, მონაცემთა მაჩვენებლის სერვისებს და მონაცემთა აღწერის სერვისებს. სისტემის სერვისებზე წვდომა შესაძლებელია Cortex-M3-ის მეშვეობით SmartFusion2-ში და FPGA ქსოვილიდან ქსოვილის ინტერფეისის კონტროლერის (FIC) მეშვეობით SmartFusion2-ისთვის და IGLOO®2-ისთვის. დაშვების ეს მეთოდები ეგზავნება სისტემის კონტროლერს COMM_BLK-ის მეშვეობით. COMM_BLK-ს აქვს მოწინავე პერიფერიული ავტობუსის (APB) ინტერფეისი და მოქმედებს როგორც მესიჯის გამტარი არხი სისტემის კონტროლერთან მონაცემთა გაცვლისთვის. სისტემის სერვისის მოთხოვნები იგზავნება სისტემის კონტროლერთან და სისტემის სერვისის პასუხები იგზავნება CoreSysSerrvice-ზე COMM BLK-ის მეშვეობით. COMM_BLK-ის მისამართის მდებარეობა ხელმისაწვდომია მიკროკონტროლერის ქვესისტემაში (MSS)/მაღალი წარმადობის მეხსიერების ქვესისტემაში (HPMS). დეტალებისთვის იხილეთ UG0450: SmartFusion2 SoC და IGLOO2 FPGA სისტემის კონტროლერი.
მომხმარებლის სახელმძღვანელო
შემდეგი ილუსტრაცია აჩვენებს სისტემის სერვისების მონაცემთა ნაკადს.
სურათი 1 • სისტემის სერვისის მონაცემთა ნაკადის დიაგრამაროგორც IGLOO2, ასევე SmartFusion2 სისტემის სერვისის სიმულაციისთვის, თქვენ უნდა გამოაგზავნოთ სისტემის სერვისის მოთხოვნები და შეამოწმოთ სისტემის სერვისის პასუხები, რათა დაადასტუროთ, რომ სიმულაცია სწორია. ეს ნაბიჯი აუცილებელია სისტემის კონტროლერთან წვდომისთვის, რომელიც უზრუნველყოფს სისტემის სერვისებს. სისტემის კონტროლერზე ჩაწერისა და წაკითხვის გზა განსხვავებულია IGLOO2 და SmartFusion2 მოწყობილობებისთვის. SmartFusion2-ისთვის ხელმისაწვდომია Coretex-M3 და შეგიძლიათ დაწეროთ და წაიკითხოთ სისტემის კონტროლერიდან ავტობუსის ფუნქციური მოდელის (BFM) ბრძანებების გამოყენებით. IGLOO2-სთვის Cortex-M3 მიუწვდომელია და სისტემის კონტროლერი მიუწვდომელია BFM ბრძანებების გამოყენებით.
2.1 ხელმისაწვდომი სისტემის სერვისების ტიპები
ხელმისაწვდომია სამი სხვადასხვა ტიპის სისტემური სერვისი და თითოეულ სერვისს აქვს სხვადასხვა ქვეტიპები.
სიმულაციური შეტყობინების სერვისები
მონაცემთა მაჩვენებლის სერვისები
მონაცემთა აღწერის სერვისები
ამ სახელმძღვანელოს დანართი – სისტემური სერვისების ტიპები (იხილეთ გვერდი 19) თავი აღწერს სისტემური სერვისების სხვადასხვა ტიპს. სისტემური სერვისების შესახებ დამატებითი ინფორმაციისთვის იხილეთ UG0450: SmartFusion2 SoC და IGLOO2 FPGA System Controller მომხმარებლის სახელმძღვანელო.
2.2 IGLOO2 სისტემის სერვისის სიმულაცია
სისტემის სერვისები გულისხმობს სისტემის კონტროლერთან მიწერას და კითხვას. იმისათვის, რომ ჩაწეროთ და წაიკითხოთ სისტემის კონტროლერზე სიმულაციური მიზნებისთვის, თქვენ უნდა შეასრულოთ შემდეგი ნაბიჯები.
- შექმენით CoreSysServices რბილი IP ბირთვი, რომელიც ხელმისაწვდომია SmartDesign კატალოგში.
- ჩაწერეთ HDL კოდი სასრული მდგომარეობის აპარატისთვის (FSM).
HDL FSM აკავშირებს CoreSysServices Core-თან, რომელიც ემსახურება AHBLite ავტობუსის ქსოვილის მთავარს. CoreSysServices ბირთვი იწყებს სისტემის სერვისის მოთხოვნას COMM BLK-ს და იღებს სისტემის სერვისის პასუხებს COMM BLK-დან FIC_0/1, ქსოვილის ინტერფეისის კონტროლერის მეშვეობით, როგორც ნაჩვენებია შემდეგ ილუსტრაციაში.
სურათი 2 • IGLOO2 სისტემის სერვისების სიმულაციის ტოპოლოგია2.3 SmartFusion2 სისტემის სერვისის სიმულაცია
SmartFusion2 მოწყობილობებში სისტემური სერვისების სიმულაციისთვის საჭიროა ჩაწეროთ და წაიკითხოთ სისტემის კონტროლერიდან. სიმულაციური მიზნებისთვის სისტემის კონტროლერზე წვდომისთვის ხელმისაწვდომია ორი ვარიანტი.
ვარიანტი 1 - დაწერეთ HDL კოდი FSM-ისთვის, რათა ინტერფეისი იყოს CoreSysService რბილ IP ბირთვთან, რომელიც ემსახურება როგორც AHBLite ქსოვილის მასტერს და იწყებს სისტემის სერვისის მოთხოვნას COMM BLK-სთვის და იღებს სისტემის სერვისის პასუხებს COMM BLK-დან FIC_0/1 ქსოვილის მეშვეობით. ინტერფეისი, როგორც ნაჩვენებია შემდეგ ილუსტრაციაში.
სურათი 3 • SmartFusion2 სისტემის სერვისების სიმულაციის ტოპოლოგია
ვარიანტი 2 - ვინაიდან Cortex-M3 ხელმისაწვდომია SmartFusion2 მოწყობილობებისთვის, შეგიძლიათ გამოიყენოთ BFM ბრძანებები სისტემის კონტროლერის მეხსიერების სივრციდან პირდაპირ ჩასაწერად და წასაკითხად.
BFM ბრძანებების გამოყენება (ვარიანტი 2) ზოგავს FSM-ისთვის HDL კოდების ჩაწერის საჭიროებას. ამ მომხმარებლის სახელმძღვანელოში, ვარიანტი 2 გამოიყენება SmartFusion2-ში სისტემის სერვისების სიმულაციის საჩვენებლად. ამ პარამეტრით, სისტემის კონტროლერის მეხსიერების სივრცეში წვდომა ხდება COMM BLK-ის მეხსიერების რუკაზე და ქსოვილის ინტერფეისის შეფერხების კონტროლერის (FIIC) ბლოკის გასარკვევად, როდესაც წერთ თქვენს BFM ბრძანებებს.
2.4 სიმულაცია მაგamples
მომხმარებლის სახელმძღვანელო მოიცავს შემდეგ სიმულაციებს.
- IGLOO2 სერიული ნომრის სერვისის სიმულაცია (იხ. გვერდი 5)
- SmartFusion2 სერიული ნომრის სერვისის სიმულაცია (იხ. გვერდი 8)
- IGLOO2 ნულიზაციის სერვისის სიმულაცია (იხ. გვერდი 13)
- SmartFusion2 Zeroization Service Simulation (იხილეთ გვერდი 16)
მსგავსი სიმულაციური მეთოდები შეიძლება გამოყენებულ იქნას სხვა სისტემის სერვისებზე. სხვადასხვა ხელმისაწვდომი სისტემური სერვისების სრული სიისთვის გადადით დანართში – სისტემის სერვისების ტიპები (იხ. გვერდი 19).
2.5 IGLOO2 სერიული ნომრის სერვისის სიმულაცია
IGLOO2 სერიული ნომრის სერვისის სიმულაციისთვის მოსამზადებლად, შეასრულეთ შემდეგი ნაბიჯები.
- გამოიძახეთ სისტემის შემქმნელი თქვენი HPMS ბლოკის შესაქმნელად.
- შეამოწმეთ HPMS სისტემის სერვისების ჩამრთველი მოწყობილობის მახასიათებლების გვერდზე. ეს დაავალებს სისტემის შემქმნელს, გამოავლინოს HPMS_FIC_0 SYS_SERVICES_MASTER ავტობუსის ინტერფეისი (BIF).
- დატოვეთ ყველა სხვა ველი მონიშნული.
- მიიღეთ ნაგულისხმევი ყველა სხვა გვერდი და დააწკაპუნეთ Finish სისტემის შემქმნელის ბლოკის დასასრულებლად. Libero® SoC-ის HDL რედაქტორში ჩაწერეთ HDL კოდი FSM-ისთვის (File > ახალი > HDL). ჩართეთ შემდეგი სამი მდგომარეობა თქვენს FSM-ში.
INIT მდგომარეობა (საწყისი მდგომარეობა)
SERV_PHASE (მომსახურების მოთხოვნის მდგომარეობა)
RSP_PHASE (სერვისის პასუხის მდგომარეობა).
შემდეგი სურათი გვიჩვენებს FSM-ის სამ მდგომარეობას.
ნახაზი 4 • სამი სახელმწიფოს FSM თქვენს HDL კოდში FSM-ისთვის გამოიყენეთ სწორი ბრძანების კოდი („01“ Hex სერიული ნომრის სერვისისთვის) სერვისის მოთხოვნის მდგომარეობა INIT მდგომარეობიდან შესასვლელად.
- შეინახეთ თქვენი HDL file. FSM ჩნდება როგორც კომპონენტი დიზაინის იერარქიაში.
- გახსენით SmartDesign. გადაიტანეთ და ჩამოაგდეთ თქვენი უმაღლესი დონის სისტემის შემქმნელი ბლოკი და თქვენი FSM ბლოკი SmartDesign ტილოში. კატალოგიდან გადაიტანეთ და ჩააგდეთ CoreSysService რბილი IP ბირთვი SmartDesign ტილოში.
- დააწკაპუნეთ მარჯვენა ღილაკით CoreSysService რბილ IP ბირთვზე კონფიგურატორის გასახსნელად. შეამოწმეთ სერიული ნომრის სერვისის ჩამრთველი (მოწყობილობისა და დიზაინის საინფორმაციო სერვისების ქვეშ
ჯგუფი) სერიული ნომრის სერვისის გასააქტიურებლად. - დატოვეთ ყველა სხვა ველი მონიშნული. დააწკაპუნეთ OK კონფიგურატორიდან გასასვლელად.
სურათი 5 • CoreSysServices soft IP Core Configurator
- შეაერთეთ სისტემის შემქმნელი ბლოკის HPMS_FIC_0 SYS_SERVICES_MASTER BIF CoreSysService ბლოკის AHBL_MASTER BIF-თან.
- შეაერთეთ თქვენი HDL FSM ბლოკის გამომავალი CoreSysService რბილი IP ბირთვის შესასვლელთან. გააკეთეთ ყველა სხვა კავშირი SmartDesign-ის ტილოში, როგორც ნაჩვენებია შემდეგ სურათზე.
სურათი 6 • SmartDesign ტილო HDL ბლოკით, CoreSysServices რბილი IP და HPMS ბლოკებით - SmartDesign-ის ტილოზე, დააწკაპუნეთ მაუსის მარჯვენა ღილაკით >Generate Component, რათა გენერიროთ უმაღლესი დონის დიზაინი.
- დიზაინის იერარქიაში viewდააწკაპუნეთ ზედა დონის დიზაინზე და აირჩიეთ შექმნა Testbench > HDL.
- გამოიყენეთ ტექსტური რედაქტორი ტექსტის შესაქმნელად file სახელწოდებით "status.txt".
- ჩართეთ ბრძანება სისტემის სერვისისთვის და 128-ბიტიანი სერიული ნომერი. დამატებითი ინფორმაციისთვის იხილეთ ცხრილი 1 (System Services Command/Response Values) CoreSysServices v3.1 სახელმძღვანელო ბრძანების კოდებისთვის (Hex), რომლებიც გამოიყენება სხვადასხვა სისტემის სერვისებისთვის. სერიული ნომრის სერვისისთვის, ბრძანების კოდია "01" Hex.
სტატუსის ფორმატი.txt file სერიული ნომრის სერვისისთვის არის შემდეგი.
< 2 თექვსმეტი ციფრი CMD><32 თექვსმეტი ციფრი სერიული ნომერი>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
შეინახეთ status.txt file თქვენი პროექტის Simulation საქაღალდეში. დიზაინი ახლა მზად არის სიმულაციისთვის.
სერვისის შესრულების დაწყების შემდეგ, შეტყობინება, რომელშიც მითითებულია დანიშნულების ადგილი და სერიული ნომერი, გამოჩნდება ModelSim ტრანსკრიპტის ფანჯარაში, როგორც ეს ნაჩვენებია შემდეგ სურათზე.
სურათი 7 • ModelSim სიმულაციის ტრანსკრიპტის ფანჯარასისტემის კონტროლერი ატარებს AHB ჩაწერას სერიული ნომრით მისამართზე. სერვისის დასრულების შემდეგ, COMM_BLK-ის RXFIFO დატვირთული იქნება სერვისის პასუხით.
შენიშვნა: სხვადასხვა სისტემის სერვისებისთვის გამოსაყენებელი ბრძანებების კოდების სრული ჩამონათვალისთვის იხილეთ ცხრილი 1 (System Services Command/Response Values) CoreSysServices v3.1 სახელმძღვანელოში ან UG0450: SmartFusion2 SoC და IGLOO2 FPGA System Controller User Guide.
2.6 SmartFusion2 სერიული ნომრის სერვისის სიმულაცია
ამ მომხმარებლის სახელმძღვანელოში BFM ბრძანებები (ვარიანტი 2) გამოიყენება სისტემის კონტროლერზე წვდომისათვის სისტემის სერვისისთვის. BFM ბრძანებები გამოიყენება, რადგან Cortex-M3 პროცესორი ხელმისაწვდომია მოწყობილობაზე BFM სიმულაციისთვის. BFM ბრძანებები საშუალებას გაძლევთ პირდაპირ დაწეროთ და წაიკითხოთ COMM BLK-დან, როგორც კი შეიტყობთ COMM_BLK-ის მეხსიერების რუკას.
თქვენი დიზაინის მოსამზადებლად SmartFusion2 სერიული ნომრის სერვისის სიმულაციისთვის, შეასრულეთ შემდეგი ნაბიჯები.
- გადაიტანეთ და ჩამოაგდეთ MSS კატალოგიდან თქვენი პროექტის დიზაინის ტილოზე.
- გამორთეთ ყველა MSS პერიფერიული მოწყობილობა, გარდა MSS_CCC, გადატვირთვის კონტროლერი, შეფერხებების მართვა და FIC_0, FIC_1 და FIC_2.
- შეფერხების მართვის კონფიგურაცია, რათა გამოიყენოს MSS ქსოვილის შეფერხებისთვის.
- მოამზადეთ serialnum.bfm file ტექსტურ რედაქტორში ან Libero-ს HDL რედაქტორში. შეინახეთ serialnum.bfm file პროექტის Simulation საქაღალდეში. serialnum.bfm უნდა შეიცავდეს შემდეგ დეტალებს.
• მეხსიერების რუკა COMM BLK (CMBLK)
• მეხსიერების რუკა მართვის პერიფერიის (FIIC) გასაწყვეტად
• ბრძანება სერიული ნომრის სისტემის სერვისის მოთხოვნისთვის („01“ Hex)
• სერიული ნომრის ადგილმდებარეობის მისამართი
ყოფილიampserialnum.bfm-ის ლე file არის შემდეგი.
memmap FIIC 0x40006000; #Memory Mapping შეწყვეტის მართვისთვის
memmap CMBLK 0x40016000; #Memory Mapping to COMM BLK
memmap DESCRIPTOR_ADDR 0x20000000; #მისამართის მდებარეობა სერიული ნომრისთვის
#ბრძანების კოდი თექვსმეტობით
მუდმივი CMD 0x1 # ბრძანების კოდი სერიული ნომრის სერვისისთვის
#FIIC კონფიგურაციის რეგისტრები
მუდმივი FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK კონფიგურაციის რეგისტრები
მუდმივი CONTROL 0x00
მუდმივი STATUS 0x04
მუდმივი INT_ENABLE 0x08
მუდმივი DATA8 0x10
მუდმივი DATA32 0x14
მუდმივი FRAME_START8 0x18
მუდმივი FRAME_START32 0x1C
პროცედურის სერიული ნომერი;
int x;
ჩაწერეთ w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #კონფიგურაცია
#FICC_INTERRUPT_ENABLE0 # დარეგისტრირდით COMBLK_INTR #-ის გასააქტიურებლად
#interrupt COMM_BLK ბლოკიდან ქსოვილამდე
#მოთხოვნის ფაზა
ჩაწერეთ w CMBLK CONTROL 0x10 # COMM BLK Control-ის კონფიგურაცია #რეგისტრაცია
ჩართეთ გადარიცხვები COMM BLK ინტერფეისზე
ჩაწერეთ w CMBLK INT_ENABLE 0x1 # COMM BLK შეფერხების ჩართვა
#რეგისტრაცია, რომ ჩართოთ შეფერხება TXTOKAY-ისთვის (შესაბამისი ბიტი
#სტატუსის რეგისტრაცია)
დაველოდოთ 19 # დაველოდოთ COMM BLK შეფერხებას, აქ #BFM ელოდება
#სანამ COMBLK_INTR დამტკიცებულია
readstore w CMBLK STATUS x # წაკითხვა COMM BLK სტატუსი რეგისტრაცია #TXTOKAY
# შეწყვეტა
კომპლექტი xx & 0x1
თუ x
ჩაწერეთ w CMBLK FRAME_START8 CMD # კონფიგურაცია COMM BLK FRAME_START8
#დარეგისტრირდით სერიული ნომრის სერვისის მოთხოვნით
endif
endif
დაველოდოთ 19 # დაელოდეთ COMM BLK შეფერხებას, აქ
#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
endif
დაელოდე 20
#პასუხის ფაზა
ველოდები 19
readstore w CMBLK STATUS x
კომპლექტი xx & 0x80
თუ x
გადაამოწმეთ w CMBLK FRAME_START8 CMD
ჩაწერეთ w CMBLK INT_ENABLE 0x2
endif
ველოდები 19
readstore w CMBLK STATUS x
კომპლექტი xx & 0x2
თუ x
გადაამოწმეთ w CMBLK DATA8 0x0
ჩაწერეთ w CMBLK CONTROL 0x18
endif
ველოდები 19
გადაამოწმეთ w FIIC 0x8 0x20000000
readstore w CMBLK STATUS x
კომპლექტი xx & 0x2
თუ x
გადაამოწმეთ w CMBLK DATA32 DESCRIPTOR_ADDR
endif
გადაამოწმეთ w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #წაიკითხეთ შემოწმება S/N-ის შესამოწმებლად
გადაამოწმეთ w DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #წაიკითხეთ შემოწმება S/N-ის შესამოწმებლად
გადაამოწმეთ w DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #წაიკითხეთ შემოწმება S/N-ის შესამოწმებლად
გადაამოწმეთ w DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #წაიკითხეთ შემოწმება S/N-ის შესამოწმებლად
დაბრუნება - შექმენით სტატუსი. txt file Libero-ს HDL რედაქტორში ან ნებისმიერ ტექსტურ რედაქტორში. ჩართეთ სერიული ნომრის სისტემის სერვისის ბრძანება („01“ Hex-ში) და სერიული ნომერი სტატუსში. txt file. იხილეთ CoreSysServices v3.1 სახელმძღვანელო სწორი ბრძანების კოდის გამოსაყენებლად.
- ამის სინტაქსი file სერიული ნომრის სერვისისთვის არის <2 თექვსმეტი ციფრი CMD>< 32 თექვსმეტი ციფრი სერიული ნომერი> . მაგample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- შეინახეთ სტატუსი .txt file პროექტის Simulation საქაღალდეში.
- შეცვალეთ მომხმარებლის .bfm (მდებარეობს Simulation საქაღალდეში) სერიული ნომრის ჩასართავად. bfm file და დარეკეთ სერიული ნომრის პროცედურაზე, როგორც ნაჩვენებია კოდის შემდეგ ნაწყვეტში.
მოიცავს "serialnum.bfm" #include the serialnum.bfm
პროცედურა user_main;
დაბეჭდეთ „INFO:Simulation Starts“;
დაბეჭდეთ „INFO:Service Command Code in decimal:%0d“, CMD ;
ზარის სერიული ნომერი; #დარეკე სერიული ნომრის პროცედურა
დაბეჭდეთ „INFO:Simulation Ends“;
დაბრუნება - დიზაინის იერარქიაში view, გენერირება testbench (დააწკაპუნეთ მარჯვენა ღილაკით, Top Level Design > Create Testbench > HDL ) და თქვენ მზად ხართ აწარმოოთ სერიული ნომრის სერვისის სიმულაცია.
სერვისის შესრულების დაწყების შემდეგ გამოჩნდება შეტყობინება დანიშნულების ადგილისა და სერიული ნომრის მითითებით. სისტემის კონტროლერი ატარებს AHB ჩაწერას სერიული ნომრით მისამართზე. სერვისის დასრულების შემდეგ, COMM_BLK-ის RXFIFO დატვირთული იქნება სერვისის პასუხით. ModelSim ტრანსკრიპტის ფანჯარა აჩვენებს მისამართს და მიღებულ სერიულ ნომერს, როგორც ნაჩვენებია შემდეგ სურათზე.
სურათი 8 • SmartFusion2 სერიული ნომრის სერვისის სიმულაცია ModelSim-ის ტრანსკრიპტის ფანჯარაში
2.7 IGLOO2 ნულიზაციის სერვისის სიმულაცია
IGLOO2 ნულიზაციის სერვისის სიმულაციის მოსამზადებლად, შეასრულეთ შემდეგი ნაბიჯები.
- გამოიძახეთ სისტემის შემქმნელი HPMS ბლოკის შესაქმნელად. შეამოწმეთ HPMS სისტემის სერვისების ჩამრთველი მოწყობილობის ფუნქციები SYS_SERVICES_MASTER BIF. დატოვეთ ყველა სხვა ველი მონიშნული. მიიღეთ ნაგულისხმევი ყველა სხვა გვერდი და დააწკაპუნეთ გვერდზე. ეს ავალებს სისტემის შემქმნელს გამოავლინოს HPMS_FIC_0 Finish სისტემის შემქმნელის ბლოკის კონფიგურაციის დასასრულებლად.
- Libero SoC-ის HDL რედაქტორში ჩაწერეთ HDL კოდი FSM-ისთვის. თქვენს HDL კოდში FSM-ისთვის შეიტანეთ შემდეგი სამი მდგომარეობა.
INIT მდგომარეობა (საწყისი მდგომარეობა)
SERV_PHASE (მომსახურების მოთხოვნის მდგომარეობა)
RSP_PHASE (სერვისის პასუხის მდგომარეობა)
შემდეგი სურათი გვიჩვენებს FSM-ის სამ მდგომარეობას.
ნახაზი 9 • სამი სახელმწიფოს FSM - თქვენს HDL კოდში გამოიყენეთ ბრძანების კოდი „F0″(Hex), რათა შეიყვანოთ სერვისის მოთხოვნის მდგომარეობა INIT მდგომარეობიდან.
- შეინახეთ თქვენი HDL file.
- გახსენით SmartDesign, გადაიტანეთ და ჩამოაგდეთ თქვენი უმაღლესი დონის სისტემის შემქმნელი ბლოკი და თქვენი HDL FSM ბლოკი SmartDesign ტილოში. კატალოგიდან გადაიტანეთ და ჩააგდეთ CoreSysService რბილი IP ბირთვი SmartDesign ტილოში.
- დააწკაპუნეთ მაუსის მარჯვენა ღილაკით CoreSysServices რბილ IP ბირთვზე, რათა გახსნათ კონფიგურატორი და შეამოწმოთ Zeroization Service ჩამრთველი მონაცემთა უსაფრთხოების სერვისების ჯგუფში. დატოვეთ ყველა სხვა ველი მონიშნული. დააწკაპუნეთ OK გასასვლელად.
სურათი 10 • CoreSysServices Configurator
- შეაერთეთ სისტემის შემქმნელი ბლოკის HPMS_FIC_0 SYS_SERVICES_MASTER BIF CoreSysService ბლოკის AHBL_MASTER BIF-თან.
- შეაერთეთ თქვენი HDL FSM ბლოკის გამომავალი CoreSysService რბილი IP ბირთვის შესასვლელთან. გააკეთეთ ყველა სხვა კავშირი SmartDesign-ის ტილოში.
სურათი 11 • SmartDesign ტილო HDL ბლოკით, CoreSysServices Soft IP და HPMS ბლოკებით
9. SmartDesign-ის ტილოზე, გენერირება ზედა დონის დიზაინი (დააწკაპუნეთ მარჯვენა ღილაკით > გენერირება კომპონენტი).
10. დიზაინის იერარქიაში view, დააწკაპუნეთ ზედა დონის დიზაინზე და აირჩიეთ შექმნა Testbench > HDL. ახლა თქვენ მზად ხართ სიმულაციის გასაშვებად.
სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება, რომელიც მიუთითებს, რომ ნულიზაცია დასრულდა x მომენტში, როგორც ნაჩვენებია შემდეგ ფიგურაში.
სურათი 12 • IGLOO2 ნულიზაციის სისტემის სერვისის სიმულაციის ტრანსკრიპტის ფანჯარა
სისტემის კონტროლერი ატარებს AHB ჩაწერას სერიული ნომრით მისამართზე. სერვისის დასრულების შემდეგ, COMM_BLK-ის RXFIFO დატვირთული იქნება სერვისის პასუხით. უნდა აღინიშნოს, რომ სიმულაციური მოდელი ახდენს სიმულაციის სიმულაციას სიმულაციის შეჩერებით, ვიდრე თავად დიზაინის ნულიზაცია.
შენიშვნა: სხვადასხვა სისტემის სერვისებისთვის გამოსაყენებელი ბრძანების კოდების სრული ჩამონათვალისთვის იხილეთ ცხრილი 1 (სისტემის სერვისების ბრძანება/პასუხის მნიშვნელობები) CoreSysServices v3.1 სახელმძღვანელო:. ან UG0450: SmartFusion2 SoC და IGLOO2 FPGA System Controller მომხმარებლის სახელმძღვანელო
2.8 SmartFusion2 ნულიზაციის სერვისის სიმულაცია
ამ სახელმძღვანელოში BFM ბრძანებები (ვარიანტი 2) გამოიყენება სისტემის კონტროლერზე წვდომისათვის სისტემის სერვისისთვის.
BFM ბრძანებები გამოიყენება, რადგან Cortex-M3 პროცესორი ხელმისაწვდომია მოწყობილობაზე BFM სიმულაციისთვის. BFM ბრძანებები საშუალებას გაძლევთ პირდაპირ დაწეროთ და წაიკითხოთ COMM BLK-დან, როგორც კი შეიტყობთ COMM_BLK-ის მეხსიერების რუკას. თქვენი დიზაინის მოსამზადებლად SmartFusion2 ნულიზაციის სერვისის სიმულაციისთვის, შეასრულეთ შემდეგი ნაბიჯები.
- გადაიტანეთ და ჩამოაგდეთ MSS კატალოგიდან თქვენი პროექტის დიზაინის ტილოზე.
- გამორთეთ ყველა MSS პერიფერიული მოწყობილობა, გარდა MSS_CCC, გადატვირთვის კონტროლერი, შეფერხებების მართვა და FIC_0, FIC_1 და FIC_2.
- შეფერხების მართვის კონფიგურაცია, რათა გამოიყენოს MSS ქსოვილის შეფერხებისთვის.
- მოამზადეთ zeroizaton.bfm file ტექსტურ რედაქტორში ან Libero-ს HDL რედაქტორში. შენი ნულიზაცია. bfm უნდა შეიცავდეს:
- მეხსიერების რუკა COMM BLK (CMBLK)
- მეხსიერების რუკება მართვის პერიფერიის შეფერხებისთვის (FIIC)
- ბრძანება zeroizaton სერვისის მოთხოვნისთვის ("F0" Hex zeriozation-ისთვის)
ყოფილიampserialnum.bfm-ის ლე file ნაჩვენებია შემდეგ ფიგურაში.
სურათი 13 • Zeroization.bfm SmartFusion2 Zeroization System Services Simulation-ისთვის
5. შეინახეთ zeroization.bfm file პროექტის Simulation საქაღალდეში. 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 ;
ზარის ნულიზაცია; #ზარის ნულიზაციის პროცედურის დაბრუნების
7. დიზაინის იერარქიაში შექმენით Testbench (დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ზედა დონე > Create Testbench > HDL) და თქვენ მზად ხართ გაუშვათ SmartFusion2 ნულიზაციის სიმულაცია.
სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება, რომელიც მიუთითებს, რომ მოწყობილობა ნულოვანია x მომენტში. უნდა აღინიშნოს, რომ სიმულაციური მოდელი ახდენს სიმულაციის სიმულაციას სიმულაციის შეჩერებით, ვიდრე თავად დიზაინის ნულიზაცია. ModelSim-ის ტრანსკრიპტის ფანჯარა შემდეგ ფიგურაში გვიჩვენებს, რომ მოწყობილობა ნულოვანია.
სურათი 14 • SmartFusion2 Zeroization System Service Simulation Log
დანართი: სისტემის სერვისების ტიპები
ეს თავი აღწერს სხვადასხვა ტიპის სისტემის სერვისებს.
3.1 სიმულაციური შეტყობინების სერვისები
შემდეგი სექციები აღწერს სხვადასხვა ტიპის სიმულაციური შეტყობინების სერვისებს.
3.1.1 Flash*Freeze
სიმულაცია შევა Flash*Freeze მდგომარეობაში, როდესაც სათანადო სერვისის მოთხოვნა გაეგზავნება COMM_BLK-ს FIC-დან (IGLOO2 მოწყობილობების შემთხვევაში) ან Cortex-M3-დან (SmartFusion2 მოწყობილობებში). როგორც კი სერვისი აღმოაჩენს სისტემის კონტროლერს, სიმულაცია შეჩერდება და გამოჩნდება შეტყობინება, რომელიც მიუთითებს, რომ სისტემა შევიდა Flash*Freeze-ში (არჩეულ ვარიანტთან ერთად). სიმულაციის განახლების შემდეგ, COMM_BLK-ის RXFIFO შეივსება სერვისის პასუხით, რომელიც შედგება სერვისის ბრძანებისა და სტატუსისგან. უნდა აღინიშნოს, რომ Flash*Freeze გასასვლელის სიმულაციური მხარდაჭერა არ არსებობს.
3.1.2 ნულიზაცია
ნულიზაცია ამჟამად ერთადერთი მაღალი პრიორიტეტული სერვისია სისტემის სერვისებში, რომლებიც დამუშავებულია COMM_BLK-ის მიერ. სიმულაცია შევა ნულიზაციის მდგომარეობაში, როგორც კი COMM_BLK-ის მიერ გამოვლენილია სწორი სერვისის მოთხოვნა. სხვა სერვისების შესრულება შეჩერდება და გაუქმდება სისტემის კონტროლერის მიერ და მის ნაცვლად შესრულდება ნულიზაციის სერვისი. მას შემდეგ, რაც გამოვლენილია ნულიზაციის სერვისის მოთხოვნა, სიმულაცია ჩერდება და გამოჩნდება შეტყობინება, რომელიც მიუთითებს, რომ სისტემა შევიდა ნულიზაციაში. სიმულაციის ხელით გადატვირთვა ნულიზაციის შემდეგ არასწორია.
3.2 მონაცემთა მაჩვენებლის სერვისები
შემდეგი სექციები აღწერს მონაცემთა მაჩვენებლის სხვადასხვა ტიპებს.
3.2.1 სერიული ნომერი
სერიული ნომრის სერვისი ჩაწერს 128-ბიტიან სერიულ ნომერს სერვისის მოთხოვნის ფარგლებში მითითებულ მისამართზე. ამ 128-ბიტიანი პარამეტრის დაყენება შესაძლებელია სისტემის სერვისის სიმულაციის მხარდაჭერის გამოყენებით file (იხ. გვერდი 22). თუ 128-ბიტიანი სერიული ნომრის პარამეტრი არ არის განსაზღვრული ფარგლებში file, გამოყენებული იქნება ნაგულისხმევი სერიული ნომერი 0. სერვისის შესრულების დაწყების შემდეგ გამოჩნდება შეტყობინება დანიშნულების ადგილისა და სერიული ნომრის მითითებით. სისტემის კონტროლერი ატარებს AHB ჩაწერას სერიული ნომრით მისამართზე. სერვისის დასრულების შემდეგ, COMM_BLK-ის RXFIFO დატვირთული იქნება სერვისის პასუხით.
3.2.2 მომხმარებლის კოდი
მომხმარებლის კოდის სერვისი წერს 32-ბიტიან მომხმარებლის კოდის პარამეტრს მისამართის ადგილმდებარეობაზე, რომელიც მოწოდებულია სერვისის მოთხოვნის ნაწილი. ამ 32-ბიტიანი პარამეტრის დაყენება შესაძლებელია სისტემის სერვისის სიმულაციის მხარდაჭერის გამოყენებით file (იხ. გვერდი 22). თუ 32-ბიტიანი პარამეტრი არ არის განსაზღვრული ფარგლებში file, გამოიყენება ნაგულისხმევი მნიშვნელობა 0. სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება სამიზნე მდებარეობისა და მომხმარებლის კოდის მითითებით. სისტემის კონტროლერი ატარებს AHB ჩაწერას მისამართზე 32-ბიტიანი პარამეტრით. სერვისის დასრულების შემდეგ, COMM_BLK-ის RXFIFO იტვირთება სერვისის პასუხით, რომელიც მოიცავს სერვისის ბრძანებას და სამიზნე მისამართს.
3.3 მონაცემთა აღწერის სერვისები
შემდეგი სექციები აღწერს სხვადასხვა ტიპის მონაცემთა აღწერის სერვისებს.
3.3.1 AES
ამ სერვისის სიმულაციური მხარდაჭერა ეხება მხოლოდ ორიგინალური მონაცემების წყაროდან დანიშნულების ადგილზე გადატანას, რეალურად მონაცემების დაშიფვრის/გაშიფვრის გარეშე. მონაცემები, რომლებიც საჭიროებს დაშიფვრას/გაშიფვრას და მონაცემთა სტრუქტურა უნდა დაიწეროს სერვისის მოთხოვნის გაგზავნამდე. სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება, რომელიც მიუთითებს AES სერვისის შესრულებაზე. AES სერვისი კითხულობს როგორც მონაცემთა სტრუქტურას, ასევე დაშიფრულ/გაშიფრულ მონაცემებს. ორიგინალური მონაცემები კოპირებულია და იწერება მონაცემთა სტრუქტურაში მითითებულ მისამართზე. სერვისის დასრულების შემდეგ, ბრძანება, სტატუსი და მონაცემთა სტრუქტურის მისამართი გადადის RXFIFO-ში.
შენიშვნა: ეს სერვისი განკუთვნილია მხოლოდ 128-ბიტიანი და 256-ბიტიანი მონაცემებისთვის და ორივე 128-ბიტიან და 256-ბიტიან მონაცემებს აქვთ მონაცემთა სტრუქტურის განსხვავებული სიგრძე.
3.3.2 SHA 256
ამ სერვისის სიმულაციური მხარდაჭერა მხოლოდ მონაცემთა გადატანას ეხება, მონაცემების ჰეშირების გარეშე. SHA 256 ფუნქცია შექმნილია შეყვანის მონაცემების საფუძველზე 256-ბიტიანი ჰეშის გასაღების შესაქმნელად. მონაცემები, რომლებიც უნდა იყოს ჰეშირებული და მონაცემთა სტრუქტურა უნდა დაიწეროს მათ შესაბამის მისამართებზე, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. SHA 256 მონაცემთა სტრუქტურის ფარგლებში განსაზღვრული სიგრძე ბიტებში და მაჩვენებელი სწორად უნდა შეესაბამებოდეს გასაშლელი მონაცემების სიგრძეს და მისამართს. სერვისის შესრულების დაწყების შემდეგ გამოჩნდება შეტყობინება SHA 256 სერვისის შესრულებაზე. ფაქტობრივი ფუნქციის შესრულების ნაცვლად, ნაგულისხმევი ჰეშის გასაღები დაიწერება დანიშნულების მაჩვენებელზე მონაცემთა სტრუქტურიდან. ნაგულისხმევი ჰეშის გასაღები არის თექვსმეტობითი „ABCD1234“. მორგებული კლავიშის დასაყენებლად გადადით პარამეტრის პარამეტრებში (იხილეთ გვერდი 23) განყოფილებაში. სერვისის დასრულების შემდეგ, RXFIFO იტვირთება სერვისის პასუხით, რომელიც შედგება სერვისის ბრძანებისგან, სტატუსისა და SHA 256 მონაცემთა სტრუქტურის მაჩვენებლისგან.
3.3.3 HMAC
ამ სერვისის სიმულაციური მხარდაჭერა მხოლოდ მონაცემთა გადატანას ეხება, მონაცემების ჰეშირების გარეშე. მონაცემები, რომლებიც უნდა იყოს ჰეშირებული და მონაცემთა სტრუქტურა უნდა დაიწეროს მათ შესაბამის მისამართებზე, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. HMAC სერვისი საჭიროებს 32-ბაიტიან კლავიშს, გარდა სიგრძისა ბაიტებში, წყაროს მაჩვენებელსა და დანიშნულების მაჩვენებელს. სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება, რომელიც მიუთითებს HMAC სერვისის შესრულებაზე. გასაღები იკითხება და 256-ბიტიანი გასაღები კოპირდება მონაცემთა სტრუქტურიდან დანიშნულების მაჩვენებელზე. სერვისის დასრულების შემდეგ, RXFIFO იტვირთება სერვისის პასუხით, რომელიც შედგება სერვისის ბრძანებისგან, სტატუსისა და HMAC მონაცემთა სტრუქტურის მაჩვენებლისგან.
3.3.4 DRBG გენერირება
შემთხვევითი ბიტების გენერაცია ხორციელდება ამ სერვისის მიერ. უნდა აღინიშნოს, რომ სიმულაციური მოდელი ზუსტად არ მიჰყვება სილიკონის მიერ გამოყენებული შემთხვევითი რიცხვების წარმოქმნის იმავე მეთოდოლოგიას. მონაცემთა სტრუქტურა სწორად უნდა იყოს ჩაწერილი მის დანიშნულ ადგილას, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. მონაცემთა სტრუქტურა, დანიშნულების მაჩვენებელი, სიგრძე და სხვა შესაბამისი მონაცემები იკითხება სისტემის კონტროლერის მიერ. DRBG გენერირების სერვისი აგენერირებს მოთხოვნილი სიგრძის (0-128) მონაცემების ფსევდო შემთხვევით კომპლექტს. სისტემის კონტროლერი წერს შემთხვევით მონაცემებს დანიშნულების მაჩვენებელში. შეტყობინება, რომელიც მიუთითებს DRBG გენერირების სერვისის შესრულებაზე, ნაჩვენებია სიმულაციაში. სერვისის დასრულების შემდეგ, ბრძანება, სტატუსი და მონაცემთა სტრუქტურის მისამართი გადადის RXFIFO-ში. თუ მონაცემთა მოთხოვნილი სიგრძე არ არის 0-128-ის დიაპაზონში, შეცდომის კოდი „4“ (Max Generate ) ჩაიწერება 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 Instantiate
DRBG მყისიერი სერვისის სიმულაციური მხარდაჭერა რეალურად არ ასრულებს მყისიერ მომსახურებას. მონაცემთა სტრუქტურა სწორად უნდა იყოს ჩაწერილი მის დანიშნულ ადგილას, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. სერვისის მოთხოვნის აღმოჩენის შემდეგ, MSS მისამართების სივრცეში განსაზღვრული სტრუქტურა და პერსონალიზაციის სტრიქონი წაიკითხება. სიმულაცია აჩვენებს შეტყობინებას, რომელიც მიუთითებს, რომ DRBG Instantiate სერვისმა დაიწყო შესრულება. სერვისის დასრულების შემდეგ, პასუხი, რომელიც მოიცავს სერვისის ბრძანებას, სტატუსს და მონაცემთა სტრუქტურის მაჩვენებელს, გადაიცემა RXFIFO-ში. თუ მონაცემთა სიგრძე (PERSONALIZATIONLENGTH) არ არის 0-128 დიაპაზონში, შეცდომის კოდი „1“ (კატასტროფული შეცდომა) შეიტანება RXFIFO-ში სტატუსისთვის.
3.3.8 DRBG არაინსტანციური
DRBG არაინსტანციური სერვისის სიმულაციური მხარდაჭერა რეალურად არ ასრულებს ადრე ინსტანციირებული DRBG-ის ამოღების არაინსტანციურ სერვისს, როგორც ამას აკეთებს სილიკონი. სერვისის მოთხოვნა უნდა შეიცავდეს როგორც ბრძანებას, ასევე DRBG სახელურს. სერვისის მოთხოვნის აღმოჩენის შემდეგ, DRBG სახელური შეინახება. სიმულაცია აჩვენებს შეტყობინებას, რომელიც მიუთითებს, რომ DRBG uninstantiate სერვისი დაწყებულია. სერვისის დასრულების შემდეგ, პასუხი, რომელიც მოიცავს სერვისის ბრძანებას, სტატუსს და DRBG სახელურს, გადაიცემა RXFIFO-ში.
3.3.9 DRBG ხელახალი თესლი
სისტემის სერვისების ბლოკის სიმულაციური ბუნების გამო, DRBG reseed სერვისი სიმულაციაში ავტომატურად არ სრულდება ყოველი 65535 DRBG გენერირებული სერვისების შემდეგ. მონაცემთა სტრუქტურა სწორად უნდა იყოს ჩაწერილი მის დანიშნულ ადგილას, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. სერვისის მოთხოვნის აღმოჩენის შემდეგ, სტრუქტურა და დამატებითი შეყვანის პარამეტრი MSS მისამართების სივრცეში წაიკითხება. გამოჩნდება შეტყობინება, რომელიც მიუთითებს, რომ DRBG reseed სერვისის შესრულება დაიწყო. მონაცემთა სტრუქტურა სწორად უნდა იყოს ჩაწერილი მის დანიშნულ ადგილას, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. სერვისის დასრულების შემდეგ, პასუხი, რომელიც მოიცავს სერვისის ბრძანებას, სტატუსს და მონაცემთა სტრუქტურის მაჩვენებელს, გადაიცემა RXFIFO-ში.
3.3.10 KeyTree
ფაქტობრივი ფუნქცია არ არის შესრულებული KeyTree სერვისის სიმულაციაში. KeyTree სერვისის მონაცემთა სტრუქტურა შედგება 32-ბაიტიანი გასაღებისგან, 7-ბიტიანი ოპტიპის მონაცემებისგან (MSB იგნორირებულია) და 16 ბაიტიანი ბილიკისაგან. მონაცემთა სტრუქტურაში არსებული მონაცემები უნდა დაიწეროს მათ შესაბამის მისამართებზე, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება KeyTree სერვისის შესრულების შესახებ. წაიკითხება მონაცემთა სტრუქტურის შიგთავსი, შეინახება 32 ბაიტიანი გასაღები და მონაცემთა სტრუქტურაში მდებარე ორიგინალური გასაღები გადაიწერება. ამ AHB ჩაწერის შემდეგ, გასაღების მნიშვნელობა მონაცემთა სტრუქტურაში არ უნდა შეიცვალოს, მაგრამ AHB ტრანზაქციები ჩაწერისთვის მოხდება. სერვისის დასრულების შემდეგ, RXFIFO იტვირთება სერვისის პასუხით, რომელიც შედგება სერვისის ბრძანებისგან, სტატუსისა და KeyTree მონაცემთა სტრუქტურის მაჩვენებლისგან.
3.3.11 გამოწვევის პასუხი
ფაქტობრივი ფუნქცია, ისევე როგორც მოწყობილობის ავტორიზაცია, არ არის შესრულებული სიმულაციისას გამოწვევის რეაგირების სერვისისთვის. ამ სერვისის მონაცემთა სტრუქტურა მოითხოვს ბუფერულ მაჩვენებელს, რათა მიიღოთ 32-ბიტიანი შედეგი, 7-ბიტიანი ოპტიპი და 128-ბიტიანი გზა. მონაცემთა სტრუქტურაში არსებული მონაცემები უნდა დაიწეროს მათ შესაბამის მისამართებზე, სანამ სერვისის მოთხოვნა გაიგზავნება COMM_BLK-ში. სერვისის შესრულების დაწყების შემდეგ, გამოჩნდება შეტყობინება, რომელიც მიუთითებს გამოწვევაზე რეაგირების სერვისის შესრულებაზე. ზოგადი 256-ბიტიანი პასუხი ჩაიწერება მონაცემთა სტრუქტურაში მოწოდებულ მაჩვენებელში. ნაგულისხმევი გასაღები დაყენებულია როგორც ექვსკუთხა „ABCD1234“. მორგებული გასაღების მისაღებად, შეამოწმეთ პარამეტრის პარამეტრი (იხ. გვერდი 23). სერვისის დასრულების შემდეგ, RXFIFO დაიტვირთება სერვისის პასუხით, რომელიც შედგება სამსახურის ბრძანების, სტატუსისა და გამოწვევის პასუხის მონაცემთა სტრუქტურის მაჩვენებლისგან.
3.4 სხვა სერვისები
შემდეგი სექციები აღწერს სხვადასხვა სისტემის სერვისებს.
3.4.1 დაიჯესტის შემოწმება
შერჩეული კომპონენტების დაჯესტების ხელახალი გამოთვლისა და შედარების ფაქტობრივი ფუნქცია არ არის შესრულებული სიმულაციაში დაიჯესტის შემოწმების სერვისისთვის. სერვისის ეს მოთხოვნა შედგება სერვისის ბრძანებებისგან და სერვისის ვარიანტებისგან (5-ბიტიანი LSB). როგორც კი სერვისი დაიწყებს შესრულებას, გამოჩნდება შეტყობინება, რომელშიც დეტალურადაა აღწერილი შემოწმების შემოწმების სერვისის შესრულება, მოთხოვნიდან არჩეულ ვარიანტებთან ერთად. სერვისის დასრულების შემდეგ, 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 Service.
3.5 სისტემის სერვისების სიმულაციის მხარდაჭერა File
სისტემის სერვისების სიმულაციის მხარდასაჭერად, ტექსტი file სახელწოდებით, „status.txt“ შეიძლება გამოყენებულ იქნას სიმულაციური მოდელის საჭირო ქცევის შესახებ ინსტრუქციების გადასაცემად სიმულაციური მოდელისთვის. ეს file უნდა განთავსდეს იმავე საქაღალდეში, საიდანაც გაშვებულია სიმულაცია. The file შეიძლება გამოყენებულ იქნას, სხვა საკითხებთან ერთად, გარკვეული შეცდომების პასუხების იძულებით მხარდაჭერილი სისტემის სერვისებისთვის ან თუნდაც სიმულაციისთვის საჭირო ზოგიერთი პარამეტრის დასაყენებლად (მაგ.ample, სერიული ნომერი). "status.txt"-ში მხარდაჭერილი ხაზების მაქსიმალური რაოდენობა file არის 256. ინსტრუქციები, რომლებიც გამოჩნდება 256-ე სტრიქონის შემდეგ, არ იქნება გამოყენებული სიმულაციაში.
3.5.1 იძულებითი შეცდომის პასუხები
მომხმარებელს შეუძლია აიძულოს გარკვეული შეცდომის პასუხი კონკრეტული სერვისისთვის ტესტირების დროს ინფორმაციის სიმულაციის მოდელზე გადაცემით "status.txt"-ის გამოყენებით. file, რომელიც უნდა განთავსდეს იმ საქაღალდეში, საიდანაც გაშვებულია სიმულაცია. გარკვეული სერვისისთვის შეცდომის პასუხების იძულების მიზნით, ბრძანება და საჭირო პასუხი უნდა იყოს აკრეფილი იმავე სტრიქონში შემდეგ ფორმატში:ampლე, ბრძანება> ; დაავალეთ სიმულაციური მოდელი შექმნას MSS მეხსიერების წვდომის შეცდომის პასუხი სერიული ნომრის სერვისზე, ბრძანება შემდეგია.
სერვისი: სერიული ნომერი: 01
მოთხოვნილი შეცდომის შეტყობინება: MSS მეხსიერებაზე წვდომის შეცდომა: 7F
თქვენ უნდა გქონდეთ ხაზი 017F შეყვანილი "status.txt"-ში file.
3.5.2 პარამეტრის დაყენება
"status.txt" file ასევე შეიძლება გამოყენებულ იქნას სიმულაციისთვის საჭირო ზოგიერთი პარამეტრის დასაყენებლად. როგორც ყოფილიampასე რომ, მომხმარებლის კოდისთვის 32-ბიტიანი პარამეტრის დასაყენებლად, ხაზის ფორმატი უნდა იყოს შემდეგი თანმიმდევრობით: <32 ბიტიანი USERCODE>; სადაც ორივე მნიშვნელობა შეყვანილია თექვსმეტობით. სერიული ნომრისთვის 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 არ ანიჭებს ცალსახად ან ირიბად, არცერთ მხარეს პატენტის უფლებას, ლიცენზიას ან სხვა IP უფლებას, იქნება ეს თავად ამ ინფორმაციასთან დაკავშირებით, ან რაიმე აღწერილ ინფორმაციას. ამ დოკუმენტში მოცემული ინფორმაცია ეკუთვნის Microsemi-ს და Microsemi იტოვებს უფლებას ნებისმიერ დროს შეიტანოს ნებისმიერი ცვლილება ამ დოკუმენტის ინფორმაციაში ან ნებისმიერ პროდუქტსა და სერვისში ნებისმიერ დროს გაფრთხილების გარეშე.
Microsemi, Microchip Technology Inc.-ის (Nasdaq: MCHP) სრულ საკუთრებაში არსებული შვილობილი კომპანია, გთავაზობთ ნახევარგამტარული და სისტემური გადაწყვეტილებების ყოვლისმომცველ პორტფელს აერონავტიკისა და თავდაცვის, კომუნიკაციების, მონაცემთა ცენტრისა და სამრეწველო ბაზრებისთვის. პროდუქტებში შედის მაღალი ხარისხის და რადიაციით გამაგრებული ანალოგური შერეული სიგნალის ინტეგრირებული სქემები, FPGA, SoC და ASIC; ენერგიის მართვის პროდუქტები; დროისა და სინქრონიზაციის მოწყობილობები და ზუსტი დროის გადაწყვეტილებები, დროის მსოფლიო სტანდარტების დაწესება; ხმის დამუშავების მოწყობილობები; RF გადაწყვეტილებები; დისკრეტული კომპონენტები; საწარმოს შენახვისა და საკომუნიკაციო გადაწყვეტილებები; უსაფრთხოების ტექნოლოგიები და მასშტაბირებადი ანტი-ტamper პროდუქტები; Ethernet გადაწყვეტილებები; Power-over-Ethernet ICs და midspans; ასევე მორგებული დიზაინის შესაძლებლობები და სერვისები. Microsemi-ის სათაო ოფისი მდებარეობს ალისო ვიეხოში, კალიფორნიაში და ჰყავს დაახლოებით 4,800 თანამშრომელი მსოფლიოში. შეიტყვეთ მეტი აქ www.microsemi.com.
მიკროსემიის შტაბი
One Enterprise, Aliso Viejo,
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 ლოგო
არის Microsemi Corporation-ის სავაჭრო ნიშნები. ყველა სხვა სავაჭრო ნიშანი და სერვისი
ნიშნები მათი შესაბამისი მფლობელების საკუთრებაა.
დოკუმენტები / რესურსები
![]() |
Microsemi UG0837 IGLOO2 და SmartFusion2 FPGA სისტემის სერვისების სიმულაცია [pdf] მომხმარებლის სახელმძღვანელო UG0837, UG0837 IGLOO2 და SmartFusion2 FPGA სისტემის სერვისების სიმულაცია, IGLOO2 და SmartFusion2 FPGA სისტემის სერვისების სიმულაცია, SmartFusion2 FPGA სისტემის სერვისების სიმულაცია, FPGA სისტემის სერვისების სიმულაცია, სერვისების სიმულაცია |