logo mikrosemi

UG0837
Panduan Pengguna
IGLOO2 dan SmartFusion2 FPGA
Simulasi Layanan Sistem
Juni 2018

Riwayat Revisi

Riwayat revisi menjelaskan perubahan yang diterapkan dalam dokumen. Perubahan dicantumkan berdasarkan revisi, dimulai dari publikasi terkini.
1.1 Revisi 1.0
Revisi 1.0 diterbitkan pada bulan Juni 2018. Ini adalah publikasi pertama dokumen ini.

Simulasi Layanan Sistem FPGA IGLOO2 dan SmartFusion2

Blok Layanan Sistem keluarga SmartFusion®2 FPGA menampilkan kumpulan layanan yang bertanggung jawab untuk berbagai tugas. Ini termasuk layanan pesan simulasi, layanan penunjuk data, dan layanan deskriptor data. Layanan sistem dapat diakses melalui Cortex-M3 di SmartFusion2 dan dari fabric FPGA melalui pengontrol antarmuka fabric (FIC) untuk SmartFusion2 dan IGLOO®2. Metode akses ini dikirim ke pengontrol sistem melalui COMM_BLK. COMM_BLK memiliki antarmuka advanced peripheral bus (APB) dan bertindak sebagai saluran penyampaian pesan untuk bertukar data dengan pengontrol sistem. Permintaan layanan sistem dikirim ke pengontrol sistem dan respons layanan sistem dikirim ke CoreSysSerrvice melalui COMM BLK. Lokasi alamat untuk COMM_BLK tersedia di dalam subsistem mikrokontroler (MSS)/subsistem memori kinerja tinggi (HPMS). Untuk detailnya, lihat UG0450: SmartFusion2 SoC dan Pengontrol Sistem FPGA IGLOO2.
Panduan Pengguna
Ilustrasi berikut menunjukkan aliran data layanan sistem.
Gambar 1 • Diagram Alir Data Layanan SistemSimulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Diagram Aliran DataUntuk simulasi layanan sistem IGLOO2 dan SmartFusion2, Anda perlu mengirimkan permintaan layanan sistem dan memeriksa respons layanan sistem untuk memverifikasi bahwa simulasi tersebut benar. Langkah ini diperlukan untuk mengakses pengontrol sistem, yang menyediakan layanan sistem. Cara menulis dan membaca dari pengontrol sistem berbeda untuk perangkat IGLOO2 dan SmartFusion2. Untuk SmartFusion2, Coretex-M3 tersedia dan Anda dapat menulis dan membaca dari pengontrol sistem menggunakan perintah model fungsional bus (BFM). Untuk IGLOO2, Cortex-M3 tidak tersedia dan pengontrol sistem tidak dapat diakses menggunakan perintah BFM.
2.1 Jenis Layanan Sistem yang Tersedia
Tersedia tiga jenis layanan sistem yang berbeda dan setiap jenis layanan memiliki subtipe yang berbeda.
Layanan pesan simulasi
Layanan penunjuk data
Layanan deskriptor data
Bab Lampiran –Jenis Layanan Sistem (lihat halaman 19) dalam panduan ini menjelaskan berbagai jenis layanan sistem. Untuk informasi lebih lanjut tentang layanan sistem, lihat UG0450: Panduan Pengguna SmartFusion2 SoC dan IGLOO2 FPGA System Controller .
2.2 Simulasi Layanan Sistem IGLOO2
Layanan sistem melibatkan penulisan dan pembacaan dari pengontrol sistem. Untuk menulis dan membaca dari pengontrol sistem untuk tujuan simulasi, Anda perlu melakukan langkah-langkah sebagai berikut.

  1. Buat instance inti IP lunak CoreSysServices, yang tersedia di katalog SmartDesign.
  2. Tulis kode HDL untuk mesin negara terbatas (FSM).

HDL FSM berinteraksi dengan CoreSysServices Core, yang berfungsi sebagai master fabric bus AHBLite. Inti CoreSysServices memulai permintaan layanan sistem ke COMM BLK dan menerima respons layanan sistem dari COMM BLK melalui FIC_0/1, pengontrol antarmuka fabric seperti yang ditunjukkan dalam ilustrasi berikut.
Gambar 2 • Topologi Simulasi Layanan Sistem IGLOO2Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Diagram Aliran Data 12.3 Simulasi Layanan Sistem SmartFusion2
Untuk menyimulasikan layanan sistem di perangkat SmartFusion2, Anda perlu menulis dan membaca dari pengontrol sistem. Tersedia dua opsi untuk mengakses pengontrol sistem untuk tujuan simulasi.
Opsi 1 — Tulis kode HDL untuk FSM untuk berinteraksi dengan inti IP lunak CoreSysService, yang berfungsi sebagai master fabric AHBLite dan memulai permintaan layanan sistem ke COMM BLK dan menerima respons layanan sistem dari COMM BLK melalui FIC_0/1 fabric antarmuka seperti yang ditunjukkan pada ilustrasi berikut.
Gambar 3 • Topologi Simulasi Layanan Sistem SmartFusion2Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Diagram Aliran Data 2

Opsi 2 — Karena Cortex-M3 tersedia untuk perangkat SmartFusion2, Anda dapat menggunakan perintah BFM untuk menulis dan membaca secara langsung dari ruang memori pengontrol sistem.
Menggunakan perintah BFM (opsi 2) menghemat kebutuhan untuk menulis kode HDL untuk FSM. Dalam panduan pengguna ini, opsi 2 digunakan untuk menampilkan simulasi layanan sistem di SmartFusion2. Dengan opsi ini, ruang memori pengontrol sistem diakses untuk mengetahui peta memori COMM BLK dan blok pengontrol interupsi antarmuka fabric (FIIC) saat Anda menulis perintah BFM.
2.4 Simulasi Kelampsedikit
Panduan pengguna mencakup simulasi berikut.

  • Simulasi Layanan Nomor Seri IGLOO2 (lihat halaman 5)
  • Simulasi Layanan Nomor Seri SmartFusion2 (lihat halaman 8)
  • Simulasi Layanan Zeroisasi IGLOO2 (lihat halaman 13)
  • Simulasi Layanan Zeroisasi SmartFusion2 (lihat halaman 16)

Metode simulasi serupa dapat diterapkan pada layanan sistem lainnya. Untuk daftar lengkap berbagai layanan sistem yang tersedia, buka Lampiran – Jenis Layanan Sistem (lihat halaman 19).

2.5 Simulasi Layanan Nomor Seri IGLOO2
Untuk mempersiapkan simulasi layanan nomor seri IGLOO2, lakukan langkah-langkah sebagai berikut.

  1. Panggil pembangun sistem untuk membuat blok HPMS Anda.
  2. Centang kotak Layanan Sistem HPMS di halaman Fitur Perangkat. Ini akan menginstruksikan pembuat sistem untuk mengekspos antarmuka bus (BIF) HPMS_FIC_0 SYS_SERVICES_MASTER.
  3. Biarkan semua kotak centang lainnya tidak dicentang.
  4. Terima default di semua halaman lainnya dan klik Selesai untuk menyelesaikan blok pembangun sistem. Di editor HDL Libero® SoC, tulis kode HDL untuk FSM (File > Baru > HDL) . Sertakan tiga negara bagian berikut di FSM Anda.
    Status INIT (keadaan awal)
    SERV_PHASE (status permintaan layanan)
    RSP_PHASE (status respons layanan).
    Gambar berikut menunjukkan tiga status FSM.
    Gambar 4 • FSM Tiga Negara
  5. Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - FSM Tiga Negara 1Dalam kode HDL Anda untuk FSM, gunakan kode perintah yang benar (“01” Hex untuk layanan nomor seri ) untuk memasukkan status permintaan layanan dari status INIT.
  6. Simpan HDL Anda file. FSM muncul sebagai komponen dalam Hierarki Desain.
  7. Buka Desain Cerdas. Seret dan lepas blok pembuat sistem tingkat atas dan blok FSM Anda ke kanvas SmartDesign. Dari katalog, seret dan lepas inti IP lunak CoreSysService ke kanvas SmartDesign.
  8. Klik kanan inti IP lunak CoreSysService untuk membuka konfigurator. Centang kotak Layanan Nomor Seri (di bawah Layanan Informasi Perangkat dan Desain
    grup) untuk mengaktifkan layanan nomor seri.
  9. Biarkan semua kotak centang lainnya tidak dicentang. Klik OK untuk keluar dari konfigurator.
    Gambar 5 • Konfigurator Inti IP lunak CoreSysServices
    Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Konfigurator Inti
  10. Hubungkan BIF HPMS_FIC_0 SYS_SERVICES_MASTER dari blok pembangun sistem ke AHBL_MASTER BIF dari blok CoreSysService.
  11. Hubungkan output blok HDL FSM Anda ke input inti IP lunak CoreSysService. Buat semua koneksi lainnya di kanvas SmartDesign seperti yang ditunjukkan pada gambar berikut.
    Gambar 6 • Kanvas SmartDesign dengan Blok HDL, Soft IP CoreSysServices, dan Blok HPMSSimulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Blok HPMS
  12. Di kanvas SmartDesign, klik kanan >Generate Component untuk menghasilkan Desain Tingkat atas.
  13. Dalam Hierarki Desain view, klik kanan desain tingkat atas dan pilih buat Testbench > HDL .
  14. Gunakan editor teks untuk membuat teks file bernama “status.txt” .
  15. Sertakan perintah untuk layanan sistem dan nomor seri 128-bit. Untuk informasi lebih lanjut, lihat Tabel 1 (Nilai Perintah/Respon Layanan Sistem) di Buku Panduan CoreSysServices v3.1 untuk kode perintah (Hex) yang akan digunakan untuk layanan sistem yang berbeda. Untuk servis serial number, kode perintahnya adalah “01” Hex.

Format status.txt file untuk service serial numbernya adalah sebagai berikut.
< 2 digit hex CMD><32 Nomor Seri hex digit>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
Simpan status.txt file di folder Simulasi proyek Anda. Desain sekarang siap untuk disimulasikan.
Setelah layanan mulai dijalankan, pesan yang menunjukkan lokasi tujuan dan nomor seri ditampilkan di jendela transkrip ModelSim, seperti yang ditunjukkan pada gambar berikut.
Gambar 7 • Jendela Transkrip Simulasi ModelSimSimulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Jendela TranskripPengontrol sistem melakukan penulisan AHB ke alamat dengan nomor seri. Setelah layanan selesai, RXFIFO COMM_BLK akan dimuat dengan respons layanan.
Catatan: Untuk daftar lengkap kode perintah yang akan digunakan untuk layanan sistem yang berbeda, lihat Tabel 1 (Nilai Perintah/Respon Layanan Sistem) di Buku Pegangan CoreSysServices v3.1 atau UG0450: SmartFusion2 SoC dan Panduan Pengguna Pengontrol Sistem FPGA IGLOO2.
2.6 Simulasi Layanan Nomor Seri SmartFusion2
Dalam panduan pengguna ini, perintah BFM (opsi 2) digunakan untuk mengakses pengontrol sistem untuk layanan sistem. Perintah BFM digunakan karena prosesor Cortex-M3 tersedia di perangkat untuk simulasi BFM. Perintah BFM memungkinkan Anda menulis langsung ke dan membaca dari COMM BLK setelah Anda mengetahui pemetaan memori COMM_BLK.
Untuk mempersiapkan desain Anda untuk simulasi layanan nomor seri SmartFusion2, lakukan langkah-langkah berikut.

  1. Seret dan lepas MSS dari katalog ke kanvas desain proyek Anda.
  2. Nonaktifkan semua periferal MSS kecuali MSS_CCC, Reset Controller, Interrupt Management, dan FIC_0, FIC_1 dan FIC_2.
  3. Konfigurasikan manajemen interupsi untuk menggunakan MSS untuk membuat interupsi.
  4. Siapkan nomor seri.bfm file di editor teks atau di editor HDL Libero. Simpan nomor seri.bfm file di folder Simulasi proyek. Serialnum.bfm harus menyertakan rincian berikut.
    • Pemetaan memori ke COMM BLK (CMBLK)
    • Pemetaan memori ke perangkat manajemen interupsi (FIIC)
    • Perintah untuk permintaan layanan sistem nomor seri (“01” Hex)
    • Alamat lokasi nomor seri
    mantanample dari nomor seri.bfm file adalah sebagai berikut.
    memmap FIIC 0x40006000; #Pemetaan Memori ke Manajemen Interupsi
    memmap CMBLK 0x40016000; #Pemetaan Memori ke COMM BLK
    memmap DESCRIPTOR_ADDR 0x20000000; #Alamat lokasi untuk Nomor Seri
    #Kode Perintah dalam Heksadesimal
    CMD konstan 0x1 # Kode perintah untuk Layanan Nomor Seri
    #Register Konfigurasi FIIC
    konstan FICC_INTERRUPT_ENABLE0 0x0
    #COMM_BLK Register Konfigurasi
    KONTROL konstan 0x00
    STATUS konstan 0x04
    konstan INT_ENABLE 0x08
    DATA8 konstan 0x10
    DATA32 konstan 0x14
    konstan FRAME_START8 0x18
    FRAME_START32 0x1C konstan
    nomor seri prosedur;
    bahasa pemrograman x-ray;
    tulis w FIIC FICC_INTERRUPT_ENABLE0 0x20000000 #Konfigurasi
    #FICC_INTERRUPT_ENABLE0 # Daftar untuk mengaktifkan COMBLK_INTR #
    #interupsi dari blok COMM_BLK ke fabric
    #Fase Permintaan
    tulis w CMBLK CONTROL 0x10 # Konfigurasi COMM BLK Control #Daftar ke
    aktifkan transfer pada Antarmuka COMM BLK
    tulis w CMBLK INT_ENABLE 0x1 # Konfigurasi Aktifkan Interupsi COMM BLK
    #Daftar untuk mengaktifkan Interupsi untuk TXTOKAY (bit yang sesuai di
    #Status Daftar)
    waitint 19 # tunggu COMM BLK Interrupt , Sini #BFM tunggu
    #sampai COMBLK_INTR ditegaskan
    readstore w CMBLK STATUS x # Baca Status COMM BLK Daftar #TXTOKAY
    # Mengganggu
    atur xx & 0x1
    jika x
    tulis w CMBLK FRAME_START8 CMD # Konfigurasi COMM BLK FRAME_START8
    #Daftar untuk meminta layanan Nomor Seri
    berakhir jika
    berakhir jika
    waitint 19 # tunggu COMM BLK Interrupt , Sini
    #BFM menunggu hingga COMBLK_INTR ditegaskan
    readstore w CMBLK STATUS x # Baca Status COMM BLK Daftar
    #TXTOKAY Interupsi
    atur xx & 0x1
    atur xx & 0x1
    jika x
    tulis w CMBLK CONTROL 0x14 #Konfigurasi COMM BLK Control
    #Daftar untuk mengaktifkan transfer pada Antarmuka COMM BLK
    tulis dengan CMBLK DATA32 DESCRIPTOR_ADDR
    tulis w CMBLK INT_ENABLE 0x80
    tulis dengan KONTROL CMBLK 0x10
    berakhir jika
    tunggu 20
    #Fase Respon
    tunggu 19
    baca toko dengan STATUS CMBLK x
    atur xx & 0x80
    jika x
    periksa baca dengan CMBLK FRAME_START8 CMD
    tulis w CMBLK INT_ENABLE 0x2
    berakhir jika
    tunggu 19
    baca toko dengan STATUS CMBLK x
    atur xx & 0x2
    jika x
    periksa baca dengan CMBLK DATA8 0x0
    tulis dengan KONTROL CMBLK 0x18
    berakhir jika
    tunggu 19
    periksa baca dengan FIIC 0x8 0x20000000
    baca toko dengan STATUS CMBLK x
    atur xx & 0x2
    jika x
    periksa baca dengan CMBLK DATA32 DESCRIPTOR_ADDR
    berakhir jika
    periksa baca w DESCRIPTOR_ADDR 0x0 0xE1E2E3E4; #Readcheck untuk memeriksa S/N
    periksa baca dengan DESCRIPTOR_ADDR 0x4 0xC1C2C3C4; #Readcheck untuk memeriksa S/N
    periksa baca dengan DESCRIPTOR_ADDR 0x8 0xB1B2B3B4; #Readcheck untuk memeriksa S/N
    periksa baca dengan DESCRIPTOR_ADDR 0xC 0xA1A2A3A4; #Readcheck untuk memeriksa S/N
    kembali
  5. Buat statusnya. txt file di editor HDL Libero atau editor teks apa pun. Sertakan perintah layanan sistem nomor seri (“01” dalam Hex) dan nomor seri dalam status . txt file. Lihat Buku Panduan CoreSysServices v3.1 untuk menggunakan kode perintah yang benar.
  6. Sintaksnya ini file untuk layanan serial number adalah, <2 Hex digit CMD>< 32 Hex digit Serial Number> . Mantanample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
  7. Simpan statusnya .txt file di folder Simulasi proyek.
  8. Edit pengguna .bfm (terletak di dalam folder Simulasi) untuk memasukkan nomor seri. bfm file dan panggil prosedur nomor seri seperti yang ditunjukkan pada cuplikan kode berikut.
    sertakan “serialnum.bfm” #sertakan serialnum.bfm
    prosedur pengguna_main;
    cetak “INFO:Simulasi Dimulai”;
    cetak “INFO:Kode Perintah Layanan dalam Desimal:%0d”, CMD ;
    nomor seri panggilan; #panggil prosedur nomor seri
    print “INFO:Simulasi Berakhir”;
    kembali
  9. Dalam Hierarki Desain view, buat testbench (Klik kanan, Top Level Design > Create Testbench > HDL ) dan Anda siap menjalankan simulasi layanan nomor seri.

Setelah layanan mulai dijalankan, pesan yang menunjukkan lokasi tujuan dan nomor seri ditampilkan. Pengontrol sistem melakukan penulisan AHB ke alamat dengan nomor seri. Setelah layanan selesai, RXFIFO COMM_BLK akan dimuat dengan respons layanan. Jendela transkrip ModelSim menampilkan alamat dan nomor seri yang diterima seperti yang ditunjukkan pada gambar berikut.
Gambar 8 • Simulasi Layanan Nomor Seri SmartFusion2 di Jendela Transkrip ModelSimSimulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Jendela Transkrip 1

2.7 Simulasi Layanan Zeroisasi IGLOO2
Untuk mempersiapkan simulasi layanan zeroisasi IGLOO2, lakukan langkah-langkah berikut.

  1. Panggil pembangun sistem untuk membuat blok HPMS. Centang kotak Layanan Sistem HPMS di Fitur Perangkat SYS_SERVICES_MASTER BIF. Biarkan semua kotak centang lainnya tidak dicentang. Terima default di semua halaman lainnya dan klik halaman. Ini menginstruksikan pembuat sistem untuk mengekspos HPMS_FIC_0 Finish untuk menyelesaikan konfigurasi blok pembangun sistem.
  2. Di editor HDL Libero SoC, tulis kode HDL untuk FSM. Dalam kode HDL Anda untuk FSM, sertakan tiga status berikut.
    Status INIT (keadaan awal)
    SERV_PHASE (status permintaan layanan)
    RSP_PHASE (status respons layanan)
    Gambar berikut menunjukkan tiga status FSM.
    Gambar 9 • FSM Tiga NegaraSimulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - FSM Tiga Negara

     

  3. Pada kode HDL Anda, gunakan kode perintah “F0″(Hex) untuk memasukkan status permintaan layanan dari status INIT.
  4. Simpan HDL Anda file.
  5. Buka SmartDesign, seret dan lepas blok pembuat sistem tingkat atas dan blok HDL FSM Anda ke dalam kanvas SmartDesign. Dari katalog, seret dan lepas inti IP lunak CoreSysService ke kanvas SmartDesign.
  6. Klik kanan inti IP lunak CoreSysServices, untuk membuka konfigurator dan centang kotak Zeroization Service di bawah grup Layanan Keamanan Data. Biarkan semua kotak centang lainnya tidak dicentang. Klik untuk OK keluar.
    Gambar 10 • Konfigurator CoreSysServices
    Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Konfigurator Inti 1
  7. Hubungkan BIF HPMS_FIC_0 SYS_SERVICES_MASTER dari blok pembangun sistem ke AHBL_MASTER BIF dari blok CoreSysService.
  8. Hubungkan output blok HDL FSM Anda ke input inti IP lunak CoreSysService. Buat semua koneksi lainnya di kanvas SmartDesign.
    Gambar 11 • Kanvas SmartDesign dengan Blok HDL, Soft IP CoreSysServices, dan Blok HPMS
    Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Blok HPMS 19. Di kanvas SmartDesign, buat desain tingkat atas (Klik kanan > Generate Component).
    10. Dalam Hirarki Desain view, klik kanan desain tingkat atas dan pilih buat Testbench > HDL. Anda sekarang siap menjalankan simulasi.
    Setelah layanan memulai eksekusi, pesan yang menunjukkan bahwa zeroisasi telah selesai pada waktu x ditampilkan seperti yang ditunjukkan pada gambar berikut.
    Gambar 12 • Jendela Transkrip Simulasi Layanan Sistem Zeroisasi IGLOO2
    Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Jendela Transkrip 3

Pengontrol sistem melakukan penulisan AHB ke alamat dengan nomor seri. Setelah layanan selesai, RXFIFO COMM_BLK akan dimuat dengan respons layanan. Perlu dicatat bahwa model simulasi mensimulasikan zeroisasi dengan menghentikan simulasi daripada melakukan zeroisasi pada desain itu sendiri.
Catatan: Untuk daftar lengkap kode perintah yang akan digunakan untuk layanan sistem yang berbeda, lihat Tabel 1 (Nilai Perintah/Respon Layanan Sistem) di bagian Buku Panduan CoreSysServices v3.1:. atau UG0450: Panduan Pengguna Pengontrol Sistem SmartFusion2 SoC dan IGLOO2 FPGA

2.8 Simulasi Layanan Zeroisasi SmartFusion2
Dalam panduan ini, perintah BFM (opsi 2) digunakan untuk mengakses pengontrol sistem untuk layanan sistem.
Perintah BFM digunakan karena prosesor Cortex-M3 tersedia di perangkat untuk simulasi BFM. Perintah BFM memungkinkan Anda menulis langsung ke dan membaca dari COMM BLK setelah Anda mengetahui pemetaan memori COMM_BLK. Untuk mempersiapkan desain Anda untuk simulasi layanan zeroisasi SmartFusion2, lakukan langkah-langkah berikut.

  1. Seret dan lepas MSS dari katalog ke kanvas desain proyek Anda.
  2. Nonaktifkan semua periferal MSS kecuali MSS_CCC, Reset Controller, Interrupt Management, dan FIC_0, FIC_1 dan FIC_2.
  3. Konfigurasikan manajemen interupsi untuk menggunakan MSS untuk membuat interupsi.
  4. Siapkan zeroizaton.bfm file di editor teks atau di editor HDL Libero. Zeroisasi Anda. bfm harus mencakup:
  • Pemetaan memori ke COMM BLK (CMBLK)
  • Pemetaan memori untuk perangkat manajemen interupsi (FIIC)
  • Perintah untuk permintaan layanan zeroizaton (“F0” Hex untuk zeroisasi)

mantanample dari nomor seri.bfm file ditunjukkan pada gambar berikut.
Gambar 13 • Zeroization.bfm untuk Simulasi Layanan Sistem Zeroisasi SmartFusion2

Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Jendela Transkrip 4

5. Simpan zeroisasi.bfm file di folder Simulasi proyek. pengguna.bfm
6. Edit (terletak di folder Simulasi zeroization.bfm) untuk menyertakannya menggunakan cuplikan kode berikut.
sertakan “zeroisasi.bfm” #sertakan zeroisasi.bfm file prosedur pengguna_main;
cetak “INFO:Simulasi Dimulai”;
cetak “INFO:Kode Perintah Layanan dalam Desimal:%0d”, CMD ;
panggilan zeroisasi; #panggilan prosedur nolisasi kembali
7. Dalam Hierarki Desain, buat Testbench (Klik kanan tingkat atas > Buat Testbench > HDL ) dan Anda siap menjalankan simulasi zeroisasi SmartFusion2.
Setelah layanan mulai dijalankan, pesan yang menunjukkan bahwa perangkat telah di-zerokan pada waktu x akan ditampilkan. Perlu dicatat bahwa model simulasi mensimulasikan zeroisasi dengan menghentikan simulasi daripada melakukan zeroisasi pada desain itu sendiri. Jendela transkrip ModelSim pada gambar berikut menunjukkan bahwa perangkat telah di-zero-kan.

Gambar 14 • Log Simulasi Layanan Sistem Zeroisasi SmartFusion2

Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 - Jendela Transkrip 5

Lampiran: Jenis Layanan Sistem

Bab ini menjelaskan berbagai jenis layanan sistem.
3.1 Layanan Pesan Simulasi
Bagian berikut menjelaskan berbagai jenis layanan pesan simulasi.
3.1.1 Lampu Kilat*Membekukan
Simulasi akan memasuki status Flash*Freeze ketika permintaan layanan yang tepat dikirim ke COMM_BLK baik dari FIC (dalam kasus perangkat IGLOO2) atau Cortex-M3 (dalam perangkat SmartFusion2). Setelah layanan terdeteksi oleh pengontrol sistem, simulasi akan dihentikan dan pesan yang menunjukkan sistem telah memasuki Flash*Freeze (bersama dengan opsi yang dipilih) akan ditampilkan. Setelah simulasi dimulai kembali, RXFIFO dari COMM_BLK akan diisi dengan respons layanan yang terdiri dari perintah layanan dan status. Perlu dicatat bahwa tidak ada dukungan simulasi untuk keluar dari Flash*Freeze.
3.1.2 Zeroisasi
Zeroisasi saat ini merupakan satu-satunya layanan berprioritas tinggi dalam layanan sistem yang diproses oleh COMM_BLK. Simulasi akan memasuki keadaan nolisasi segera setelah permintaan layanan yang benar terdeteksi oleh COMM_BLK. Eksekusi layanan lain akan dihentikan dan dibuang oleh pengontrol sistem, dan layanan zeroisasi akan dijalankan sebagai gantinya. Setelah permintaan layanan zeroisasi terdeteksi, simulasi berhenti dan pesan yang menunjukkan sistem telah memasuki zeroisasi ditampilkan. Memulai ulang simulasi secara manual setelah nolisasi tidak valid.
3.2 Layanan Penunjuk Data
Bagian berikut menjelaskan berbagai jenis layanan penunjuk data.
3.2.1 Nomor Seri
Layanan nomor seri akan menulis nomor seri 128-bit ke lokasi alamat yang disediakan sebagai bagian dari permintaan layanan. Parameter 128-bit ini dapat diatur menggunakan Dukungan Simulasi Layanan Sistem file (lihat halaman 22) . Jika parameter nomor seri 128-bit tidak ditentukan dalam file, nomor seri default 0 akan digunakan. Setelah layanan mulai dijalankan, pesan yang menunjukkan lokasi tujuan dan nomor seri ditampilkan. Pengontrol sistem melakukan penulisan AHB ke alamat dengan nomor seri. Setelah layanan selesai, RXFIFO COMM_BLK akan dimuat dengan respons layanan.
3.2.2 Kode Pengguna
Layanan kode pengguna menulis parameter kode pengguna 32-bit ke lokasi alamat yang disediakan sebagai bagian dari permintaan layanan. Parameter 32-bit ini dapat diatur menggunakan Dukungan Simulasi Layanan Sistem file (lihat halaman 22). Jika parameter 32-bit tidak ditentukan dalam file, nilai default 0 digunakan. Setelah layanan mulai dijalankan, pesan yang menunjukkan lokasi target dan kode pengguna ditampilkan. Pengontrol sistem melakukan penulisan AHB ke alamat dengan parameter 32-bit. Setelah menyelesaikan layanan, RXFIFO COMM_BLK dimuat dengan respons layanan, yang mencakup perintah layanan dan alamat target.
3.3 Layanan Deskriptor Data
Bagian berikut menjelaskan berbagai jenis layanan deskriptor data.

3.3.1 AES
Dukungan simulasi pada layanan ini hanya mementingkan pemindahan data asli dari sumber ke tujuan, tanpa benar-benar melakukan enkripsi/dekripsi apa pun pada data tersebut. Data yang perlu dienkripsi/didekripsi dan struktur datanya harus ditulis sebelum permintaan layanan dikirim. Setelah layanan mulai dijalankan, pesan yang menunjukkan pelaksanaan layanan AES ditampilkan. Layanan AES membaca struktur data dan data yang akan dienkripsi/didekripsi. Data asli disalin dan ditulis ke alamat yang disediakan dalam struktur data. Setelah layanan selesai, perintah, status, dan alamat struktur data dimasukkan ke RXFIFO.
Catatan: Layanan ini hanya untuk data 128-bit dan 256-bit, dan data 128-bit dan 256-bit memiliki panjang struktur data yang berbeda.

3.3.2 SHA 256
Dukungan simulasi untuk layanan ini hanya berkaitan dengan pemindahan data, tanpa benar-benar melakukan hashing apa pun pada data. Fungsi SHA 256 dirancang untuk menghasilkan kunci hash 256-bit berdasarkan data masukan. Data yang perlu di-hash dan struktur datanya harus ditulis ke alamatnya masing-masing sebelum permintaan layanan dikirim ke COMM_BLK. Panjang bit dan penunjuk yang ditentukan dalam struktur data SHA 256 harus sesuai dengan panjang dan alamat data yang akan di-hash. Setelah layanan mulai dijalankan, pesan yang menunjukkan pelaksanaan layanan SHA 256 ditampilkan. Daripada menjalankan fungsi sebenarnya, kunci hash default akan ditulis ke penunjuk tujuan dari struktur data. Kunci hash default adalah hex “ABCD1234”. Untuk mengatur kunci khusus, buka bagian Pengaturan Parameter (lihat halaman 23). Setelah layanan selesai, RXFIFO dimuat dengan respons layanan yang terdiri dari perintah layanan, status, dan penunjuk struktur data SHA 256.
3.3.3 HMAC
Dukungan simulasi untuk layanan ini hanya berkaitan dengan pemindahan data, tanpa benar-benar melakukan hashing apa pun pada data tersebut. Data yang perlu di-hash dan struktur datanya harus ditulis ke alamatnya masing-masing sebelum permintaan layanan dikirim ke COMM_BLK. Layanan HMAC memerlukan kunci 32-byte selain panjang dalam byte, penunjuk sumber, dan penunjuk tujuan. Setelah layanan mulai dijalankan, pesan yang menunjukkan pelaksanaan layanan HMAC ditampilkan. Kuncinya dibaca dan kunci 256-bit disalin dari struktur data ke penunjuk tujuan. Setelah layanan selesai, RXFIFO dimuat dengan respons layanan yang terdiri dari perintah layanan, status, dan penunjuk struktur data HMAC.

3.3.4 Hasilkan DRBG
Pembuatan bit acak dilakukan oleh layanan ini. Perlu dicatat bahwa model simulasi tidak mengikuti metodologi pembangkitan bilangan acak yang sama yang digunakan oleh silikon. Struktur data harus ditulis dengan benar ke lokasi yang dituju sebelum permintaan layanan dikirim ke COMM_BLK. Struktur data, penunjuk tujuan, panjang dan data relevan lainnya dibaca oleh pengontrol sistem. Layanan pembangkitan DRBG menghasilkan kumpulan data acak semu dengan panjang yang diminta (0-128). Pengontrol sistem menulis data acak ke dalam penunjuk tujuan. Sebuah pesan yang menunjukkan pelaksanaan layanan pembangkitan DRBG ditampilkan dalam simulasi. Setelah layanan selesai, perintah, status, dan alamat struktur data dimasukkan ke RXFIFO. Jika panjang data yang diminta tidak berada dalam kisaran 0-128, kode kesalahan “4” (Max Generate ) akan dimasukkan ke dalam RXFIFO. Jika panjang data tambahan tidak berada dalam rentang Permintaan Terlalu Besar 0-128, kode kesalahan “5” ( Panjang Maks Data Tambahan Terlampaui ) akan dimasukkan ke dalam RXFIFO. Jika panjang data yang diminta untuk dibuat dan panjang data tambahan tidak berada dalam rentang yang ditentukan (0-128), kode kesalahan “1” ( Catastrophic Error ) dimasukkan ke dalam RXFIFO.

3.3.5 Reset DRBG
Fungsi reset sebenarnya dilakukan dengan menghapus instantiasi DRBG dan menyetel ulang DRBG. Setelah permintaan layanan terdeteksi, simulasi menampilkan pesan DRBG Reset layanan selesai. Responsnya, yang mencakup layanan dan status, dimasukkan ke dalam RXFIFO.
3.3.6 Uji Mandiri DRBG
Dukungan simulasi untuk uji mandiri DRBG tidak benar-benar menjalankan fungsi uji mandiri. Setelah permintaan layanan terdeteksi, simulasi akan menampilkan pesan eksekusi layanan uji mandiri DRBG. Responsnya, yang mencakup layanan dan status, akan dimasukkan ke dalam RXFIFO.
3.3.7 Instansiasi DRBG
Dukungan simulasi untuk layanan instantiate DRBG sebenarnya tidak menjalankan layanan instantiate. Struktur data harus ditulis dengan benar ke lokasi yang dituju sebelum permintaan layanan dikirim ke COMM_BLK. Setelah permintaan layanan terdeteksi, struktur dan string personalisasi yang ditentukan dalam ruang alamat MSS akan dibaca. Simulasi akan menampilkan pesan yang menunjukkan bahwa layanan DRBG Instantiate telah mulai dijalankan. Setelah layanan selesai, respons, yang mencakup perintah layanan, status, dan penunjuk ke struktur data, akan dimasukkan ke dalam RXFIFO. Jika panjang data (PERSONALIZATIONLENGTH) tidak berada dalam rentang 0-128, kode kesalahan “1” ( Catastrophic Error ) akan dimasukkan ke RXFIFO untuk statusnya.
3.3.8 DRBG Tidak Instansisasi
Dukungan simulasi untuk layanan uninstantiate DRBG sebenarnya tidak melakukan layanan uninstantiate untuk menghapus DRBG yang dibuat sebelumnya, seperti yang dilakukan silikon. Permintaan layanan harus menyertakan perintah dan pegangan DRBG. Setelah permintaan layanan terdeteksi, pegangan DRBG akan disimpan. Simulasi akan menampilkan pesan yang menunjukkan bahwa layanan uninstantiate DRBG telah diinisialisasi. Setelah layanan selesai, respons, yang mencakup perintah layanan, status, dan pegangan DRBG, akan dimasukkan ke dalam RXFIFO.
3.3.9 Benih Ulang DRBG
Karena sifat simulatif dari blok layanan sistem, layanan reseed DRBG dalam simulasi tidak dijalankan secara otomatis setelah setiap 65535 DRBG menghasilkan layanan. Struktur data harus ditulis dengan benar ke lokasi yang dituju sebelum permintaan layanan dikirim ke COMM_BLK. Setelah permintaan layanan terdeteksi, struktur dan parameter input tambahan di ruang alamat MSS akan dibaca. Sebuah pesan yang menunjukkan bahwa layanan reseed DRBG telah mulai dijalankan, akan ditampilkan. Struktur data harus ditulis dengan benar ke lokasi yang dituju sebelum permintaan layanan dikirim ke COMM_BLK. Setelah layanan selesai, respons, yang mencakup perintah layanan, status, dan penunjuk ke struktur data, akan dimasukkan ke dalam RXFIFO.
3.3.10 Pohon Kunci
Fungsi sebenarnya tidak dijalankan dalam simulasi untuk layanan KeyTree. Struktur data layanan KeyTree terdiri dari kunci 32-byte, data optype 7-bit (MSB diabaikan), dan jalur 16-byte. Data dalam struktur data harus ditulis ke alamatnya masing-masing, sebelum permintaan layanan dikirim ke COMM_BLK. Setelah layanan mulai dijalankan, pesan yang menunjukkan pelaksanaan layanan KeyTree akan ditampilkan. Isi struktur data akan dibaca, kunci 32 byte akan disimpan, dan kunci asli yang terletak di dalam struktur data akan ditimpa. Setelah penulisan AHB ini, nilai kunci dalam struktur data tidak boleh berubah, namun transaksi AHB untuk penulisan akan terjadi. Setelah layanan selesai, RXFIFO dimuat dengan respons layanan, yang terdiri dari perintah layanan, status, dan penunjuk struktur data KeyTree.
3.3.11 Respon Tantangan
Fungsi sebenarnya, seperti otentikasi perangkat, tidak dijalankan dalam simulasi untuk layanan respons tantangan. Struktur data untuk layanan ini memerlukan penunjuk ke buffer, untuk menerima hasil 32-byte, optype 7-bit, dan jalur 128-bit. Data dalam struktur data harus ditulis ke alamatnya masing-masing sebelum permintaan layanan dikirim ke COMM_BLK. Setelah layanan mulai dijalankan, pesan yang menunjukkan pelaksanaan layanan respons tantangan akan ditampilkan. Respons generik 256-bit akan ditulis ke dalam penunjuk yang disediakan dalam struktur data. Kunci default ditetapkan sebagai hex “ABCD1234”. Untuk mendapatkan kunci khusus, periksa Pengaturan Parameter (lihat halaman 23). Setelah layanan selesai, RXFIFO akan dimuat dengan respons layanan, yang terdiri dari perintah layanan, status, dan penunjuk struktur data respons tantangan.
3.4 Layanan Lainnya
Bagian berikut menjelaskan berbagai layanan sistem lainnya.
3.4.1 Pemeriksaan Intisari
Fungsi sebenarnya dari menghitung ulang dan membandingkan intisari komponen yang dipilih tidak dijalankan untuk layanan pemeriksaan intisari dalam simulasi. Permintaan layanan ini terdiri dari perintah layanan, dan opsi layanan (LSB 5-bit). Setelah layanan mulai dijalankan, pesan yang merinci pelaksanaan layanan pemeriksaan intisari akan ditampilkan, bersama dengan opsi yang dipilih dari permintaan. Setelah menyelesaikan layanan, RXFIFO akan dimuat dengan respons layanan, yang terdiri dari perintah layanan, dan tanda lulus/gagal pemeriksaan intisari.
3.4.2 Respon Perintah Tidak Dikenal
Ketika permintaan layanan yang tidak dikenal dikirim ke COMM_BLK, COMM_BLK akan secara otomatis membalas dengan pesan perintah tidak dikenal yang dimasukkan ke RXFIFO. Pesan tersebut terdiri dari perintah yang dikirim ke COMM_BLK dan status perintah tidak dikenal (252D). Pesan tampilan yang menunjukkan permintaan layanan yang tidak dikenal telah terdeteksi juga akan ditampilkan. COMM_BLK akan kembali ke keadaan idle, menunggu untuk menerima permintaan layanan berikutnya.
3.4.3 Layanan yang Tidak Didukung
Layanan yang tidak didukung yang disetel ke COMM_BLK akan memicu pesan dalam simulasi yang menunjukkan bahwa permintaan layanan tidak didukung. COMM_BLK akan kembali ke keadaan idle, menunggu untuk menerima permintaan layanan berikutnya. PINTERRUPT tidak akan disetel, menandakan bahwa layanan telah selesai. Daftar layanan yang tidak didukung saat ini meliputi: IAP, ISP, Sertifikat Perangkat, dan Layanan DESIGNVER.
3.5 Dukungan Simulasi Layanan Sistem File
Untuk mendukung simulasi layanan sistem, sebuah teks file disebut, “status.txt” dapat digunakan untuk meneruskan instruksi tentang perilaku yang diperlukan dari model simulasi ke model simulasi. Ini file harus ditempatkan di folder yang sama, tempat simulasi dijalankan. Itu file dapat digunakan, antara lain, untuk memaksa respons kesalahan tertentu untuk layanan sistem yang didukung atau bahkan untuk mengatur beberapa parameter yang diperlukan untuk simulasi, (misalnyaample, nomor seri). Jumlah maksimum baris yang didukung di ” status.txt” file adalah 256. Instruksi yang muncul setelah nomor baris 256 tidak akan digunakan dalam simulasi.
3.5.1 Memaksa Respons Kesalahan
Pengguna dapat memaksakan respons kesalahan tertentu untuk layanan tertentu selama pengujian dengan meneruskan informasi ke model simulasi menggunakan “status.txt” file, yang harus ditempatkan di folder tempat simulasi dijalankan. Untuk memaksa respons kesalahan pada layanan tertentu, perintah dan respons yang diperlukan harus diketik pada baris yang sama dalam format berikut:ample, ke Perintah> ; menginstruksikan model simulasi untuk menghasilkan respon kesalahan akses memori MSS ke layanan nomor seri, perintahnya adalah sebagai berikut.
Layanan: Nomor Seri: 01
Pesan kesalahan yang diminta: Kesalahan Akses Memori MSS: 7F
Anda harus memasukkan baris 017F di “status.txt” file.
3.5.2 Pengaturan Parameter
"status.txt" file juga dapat digunakan untuk mengatur beberapa parameter yang diperlukan dalam simulasi. Sebagai mantanample, untuk menyetel parameter 32-bit untuk kode pengguna, format baris harus dalam urutan ini: <KODE PENGGUNA 32 Bit>; di mana kedua nilai dimasukkan dalam heksadesimal. Untuk mengatur parameter 128-bit untuk nomor seri, format baris harus dalam urutan ini: <Nomor Seri 128 Bit [127:0]> ; di mana kedua nilai dimasukkan dalam heksadesimal. Untuk menyetel parameter 256-bit untuk kunci SHA 256; format baris harus dalam urutan ini: <Kunci 256 Bit [255:0]>; di mana kedua nilai dimasukkan dalam heksadesimal. Untuk menyetel parameter 256-bit untuk kunci respons tantangan, format baris harus dalam urutan ini: <Kunci 256 Bit [255:0]>;
di mana kedua nilai dimasukkan dalam heksadesimal.
3.5.3 Prioritas Perangkat
Layanan sistem dan COMM_BLK menggunakan sistem prioritas tinggi. Saat ini, satu-satunya layanan dengan prioritas tinggi adalah zeroisasi. Untuk menjalankan layanan dengan prioritas tinggi, sementara layanan lain sedang dijalankan, layanan saat ini dihentikan dan layanan dengan prioritas lebih tinggi akan dijalankan sebagai gantinya. COMM_BLK akan membuang layanan saat ini untuk menjalankan layanan dengan prioritas lebih tinggi. Jika beberapa layanan non-prioritas tinggi dikirim sebelum penyelesaian layanan saat ini, layanan ini akan dimasukkan ke dalam antrian dalam TXFIFO. Setelah layanan saat ini selesai, layanan berikutnya di TXFIFO akan dijalankan.

Microsemi tidak memberikan jaminan, representasi, atau jaminan mengenai informasi yang terkandung di sini atau kesesuaian produk dan layanannya untuk tujuan tertentu, Microsemi juga tidak bertanggung jawab apa pun yang timbul dari aplikasi atau penggunaan produk atau sirkuit apa pun. Produk yang dijual di bawah ini dan produk lain yang dijual oleh Microsemi telah menjalani pengujian terbatas dan tidak boleh digunakan bersama dengan peralatan atau aplikasi penting misi. Spesifikasi kinerja apa pun diyakini dapat diandalkan tetapi tidak diverifikasi, dan Pembeli harus melakukan dan menyelesaikan semua kinerja dan pengujian produk lainnya, sendiri dan bersama-sama dengan, atau dipasang di, setiap produk akhir. Pembeli tidak boleh mengandalkan data dan spesifikasi kinerja atau parameter apa pun yang disediakan oleh Microsemi. Pembeli bertanggung jawab untuk secara independen menentukan kesesuaian produk apa pun dan menguji serta memverifikasinya. Informasi yang diberikan oleh Microsemi di bawah ini disediakan “sebagaimana adanya, di mana adanya” dan dengan semua kesalahan, dan seluruh risiko yang terkait dengan informasi tersebut sepenuhnya ditanggung oleh Pembeli. Microsemi tidak memberikan, secara eksplisit atau implisit, kepada pihak mana pun hak paten, lisensi, atau hak IP lainnya, baik yang berkaitan dengan informasi itu sendiri atau apa pun yang dijelaskan oleh informasi tersebut. Informasi yang diberikan dalam dokumen ini adalah hak milik Microsemi, dan Microsemi berhak untuk membuat perubahan apa pun pada informasi dalam dokumen ini atau pada produk dan layanan apa pun kapan saja tanpa pemberitahuan.
Microsemi, anak perusahaan yang sepenuhnya dimiliki oleh Microchip Technology Inc. (Nasdaq: MCHP), menawarkan portofolio lengkap semikonduktor dan solusi sistem untuk kedirgantaraan & pertahanan, komunikasi, pusat data, dan pasar industri. Produk termasuk sirkuit terpadu sinyal campuran analog berkinerja tinggi dan pengerasan radiasi, FPGA, SoC, dan ASIC; produk manajemen daya; perangkat pengaturan waktu dan sinkronisasi dan solusi waktu yang tepat, menetapkan standar waktu dunia; perangkat pengolah suara; solusi RF; komponen diskrit; solusi penyimpanan dan komunikasi perusahaan; teknologi keamanan dan anti-t yang dapat diskalakanampeh produk; solusi Ethernet; Power-over-Ethernet IC dan midspans; serta kemampuan dan layanan desain khusus. Microsemi berkantor pusat di Aliso Viejo, California, dan memiliki sekitar 4,800 karyawan di seluruh dunia. Pelajari lebih lanjut di www.microsemi.com.

logo mikrosemi

Markas Mikrosemi
Satu Perusahaan, Aliso Viejo,
CA 92656 AS
Di AS: +1 Telepon: 800-713-4113
Di luar AS: +1 Telepon: 949-380-6100
Penjualan: +1 Telepon: 949-380-6136
Telp: +1 Telepon: 949-215-4996
E-mail: penjualan.dukungan@microsemi.com
www.microsemi.com
© 2018 Mikrosemi. Seluruh hak cipta. Mikrosemi dan logo Mikrosemi
adalah merek dagang dari Microsemi Corporation. Semua merek dagang dan layanan lainnya
merek adalah milik dari pemiliknya masing-masing.

Dokumen / Sumber Daya

Simulasi Layanan Sistem FPGA Microsemi UG0837 IGLOO2 dan SmartFusion2 [Bahasa Indonesia:] Panduan Pengguna
UG0837, UG0837 IGLOO2 dan Simulasi Layanan Sistem FPGA SmartFusion2, Simulasi Layanan Sistem FPGA IGLOO2 dan SmartFusion2, Simulasi Layanan Sistem FPGA SmartFusion2, Simulasi Layanan Sistem FPGA, Simulasi Layanan

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *