UG0837
یوزر گائیڈ
IGLOO2 اور SmartFusion2 FPGA
سسٹم سروسز سمولیشن
جون 2018
نظرثانی کی تاریخ
نظرثانی کی تاریخ ان تبدیلیوں کو بیان کرتی ہے جو دستاویز میں لاگو کی گئی تھیں۔ تبدیلیاں نظر ثانی کے ذریعے درج کی جاتی ہیں، جو کہ سب سے زیادہ حالیہ اشاعت سے شروع ہوتی ہیں۔
1.1 نظرثانی 1.0
نظر ثانی 1.0 جون 2018 میں شائع ہوئی تھی۔ یہ اس دستاویز کی پہلی اشاعت تھی۔
IGLOO2 اور SmartFusion2 FPGA سسٹم سروسز سمولیشن
SmartFusion®2 FPGA فیملی کے سسٹم سروسز بلاک میں مختلف کاموں کے لیے ذمہ دار خدمات کا مجموعہ ہے۔ ان میں سمولیشن میسج سروسز، ڈیٹا پوائنٹر سروسز، اور ڈیٹا ڈسکرپٹر سروسز شامل ہیں۔ سسٹم سروسز تک SmartFusion3 میں Cortex-M2 کے ذریعے اور FPGA فیبرک سے فیبرک انٹرفیس کنٹرولر (FIC) کے ذریعے SmartFusion2 اور IGLOO®2 دونوں کے لیے رسائی حاصل کی جا سکتی ہے۔ رسائی کے یہ طریقے COMM_BLK کے ذریعے سسٹم کنٹرولر کو بھیجے جاتے ہیں۔ COMM_BLK میں ایک ایڈوانسڈ پیریفرل بس (APB) انٹرفیس ہے اور یہ سسٹم کنٹرولر کے ساتھ ڈیٹا کا تبادلہ کرنے کے لیے میسج پاس کرنے والے نالی کے طور پر کام کرتا ہے۔ سسٹم سروس کی درخواستیں سسٹم کنٹرولر کو بھیجی جاتی ہیں اور سسٹم سروس کے جوابات COMM BLK کے ذریعے CoreSysSerrvice کو بھیجے جاتے ہیں۔ 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 سسٹم کنٹرولر یوزر گائیڈ دیکھیں۔
2.2 IGLOO2 سسٹم سروس سمولیشن
سسٹم سروسز میں سسٹم کنٹرولر سے لکھنا اور پڑھنا شامل ہے۔ نقلی مقاصد کے لیے سسٹم کنٹرولر سے لکھنے اور پڑھنے کے لیے، آپ کو مندرجہ ذیل اقدامات کرنے کی ضرورت ہے۔
- CoreSysServices سافٹ آئی پی کور کو فوری بنائیں، جو SmartDesign کیٹلاگ میں دستیاب ہے۔
- ایک محدود ریاستی مشین (FSM) کے لیے HDL کوڈ لکھیں۔
HDL FSM CoreSysServices Core کے ساتھ انٹرفیس کرتا ہے، جو AHBLite بس کے فیبرک ماسٹر کے طور پر کام کرتا ہے۔ CoreSysServices کور COMM BLK کو سسٹم سروس کی درخواست شروع کرتا ہے اور FIC_0/1، فیبرک انٹرفیس کنٹرولر کے ذریعے COMM BLK سے سسٹم سروس کے جوابات حاصل کرتا ہے جیسا کہ مندرجہ ذیل مثال میں دکھایا گیا ہے۔
شکل 2 • IGLOO2 سسٹم سروسز سمولیشن ٹوپولوجی2.3 SmartFusion2 سسٹم سروس سمولیشن
SmartFusion2 ڈیوائسز میں سسٹم سروسز کی تقلید کرنے کے لیے، آپ کو سسٹم کنٹرولر کو لکھنا اور پڑھنا ہوگا۔ نقلی مقاصد کے لیے سسٹم کنٹرولر تک رسائی کے لیے دو اختیارات دستیاب ہیں۔
آپشن 1 — CoreSysService سافٹ آئی پی کور کے ساتھ انٹرفیس کرنے کے لیے FSM کے لیے HDL کوڈ لکھیں، جو AHBLite فیبرک ماسٹر کے طور پر کام کرتا ہے اور COMM BLK کو سسٹم سروس کی درخواست شروع کرتا ہے اور FIC_0/1 فیبرک کے ذریعے COMM BLK سے سسٹم سروس کے جوابات وصول کرتا ہے۔ انٹرفیس جیسا کہ مندرجہ ذیل مثال میں دکھایا گیا ہے۔
شکل 3 • SmartFusion2 سسٹم سروسز سمولیشن ٹوپولوجی
آپشن 2 - جیسا کہ Cortex-M3 SmartFusion2 آلات کے لیے دستیاب ہے، آپ سسٹم کنٹرولر کی میموری کی جگہ سے براہ راست لکھنے اور پڑھنے کے لیے BFM کمانڈز استعمال کر سکتے ہیں۔
BFM کمانڈز (آپشن 2) کا استعمال FSM کے لیے HDL کوڈز لکھنے کی ضرورت کو بچاتا ہے۔ اس صارف گائیڈ میں، آپشن 2 کا استعمال SmartFusion2 میں سسٹم سروسز سمولیشن دکھانے کے لیے کیا گیا ہے۔ اس اختیار کے ساتھ، جب آپ اپنی BFM کمانڈز لکھتے ہیں تو COMM BLK اور فیبرک انٹرفیس انٹرپٹ کنٹرولر (FIIC) بلاک کا میموری میپ معلوم کرنے کے لیے سسٹم کنٹرولر کی میموری اسپیس تک رسائی حاصل کی جاتی ہے۔
2.4 تخروپن Examples
صارف گائیڈ مندرجہ ذیل نقلوں کا احاطہ کرتا ہے۔
- IGLOO2 سیریل نمبر سروس سمولیشن (صفحہ 5 دیکھیں)
- SmartFusion2 سیریل نمبر سروس سمولیشن (صفحہ 8 دیکھیں)
- IGLOO2 زیروائزیشن سروس سمولیشن (صفحہ 13 دیکھیں)
- SmartFusion2 زیروائزیشن سروس سمولیشن (صفحہ 16 دیکھیں)
اسی طرح کے نقلی طریقے دیگر سسٹم سروسز پر لاگو کیے جا سکتے ہیں۔ دستیاب مختلف سسٹم سروسز کی مکمل فہرست کے لیے، ضمیمہ – سسٹم سروسز کی اقسام پر جائیں (صفحہ 19 دیکھیں)۔
2.5 IGLOO2 سیریل نمبر سروس سمولیشن
IGLOO2 سیریل نمبر سروس سمولیشن کی تیاری کے لیے، درج ذیل مراحل کو انجام دیں۔
- اپنا HPMS بلاک بنانے کے لیے سسٹم بلڈر کو طلب کریں۔
- ڈیوائس فیچرز پیج میں HPMS سسٹم سروسز کے چیک باکس کو چیک کریں۔ یہ سسٹم بنانے والے کو HPMS_FIC_0 SYS_SERVICES_MASTER بس انٹرفیس (BIF) کو بے نقاب کرنے کی ہدایت کرے گا۔
- باقی تمام چیک باکسز کو بغیر نشان کے رہنے دیں۔
- دوسرے تمام صفحات میں ڈیفالٹ کو قبول کریں اور سسٹم بلڈر بلاک کو مکمل کرنے کے لیے Finish پر کلک کریں۔ Libero® SoC کے HDL ایڈیٹر میں، FSM کے لیے HDL کوڈ لکھیں (File > نیا > ایچ ڈی ایل)۔ اپنے FSM میں درج ذیل تین ریاستوں کو شامل کریں۔
INIT حالت (ابتدائی حالت)
SERV_PHASE (سروس کی درخواست کی حالت)
RSP_PHASE (سروس کے جواب کی حالت)۔
درج ذیل اعداد و شمار FSM کی تین حالتوں کو ظاہر کرتا ہے۔
شکل 4 • تین ریاستی FSM FSM کے لیے اپنے HDL کوڈ میں، INIT ریاست سے سروس کی درخواست کی حالت میں داخل ہونے کے لیے درست کمانڈ کوڈ ("01" ہیکس برائے سیریل نمبر سروس ) استعمال کریں۔
- اپنے ایچ ڈی ایل کو محفوظ کریں۔ file. FSM ڈیزائن کے درجہ بندی میں ایک جزو کے طور پر ظاہر ہوتا ہے۔
- اسمارٹ ڈیزائن کھولیں۔ اپنے ٹاپ لیول سسٹم بلڈر بلاک اور اپنے FSM بلاک کو SmartDesign کینوس میں گھسیٹیں اور چھوڑیں۔ کیٹلاگ سے، CoreSysService نرم IP کور کو SmartDesign کینوس میں گھسیٹ کر چھوڑیں۔
- کنفیگریٹر کو کھولنے کے لیے CoreSysService سافٹ آئی پی کور پر دائیں کلک کریں۔ سیریل نمبر سروس چیک باکس کو چیک کریں (ڈیوائس اور ڈیزائن انفارمیشن سروسز کے تحت
گروپ) سیریل نمبر سروس کو فعال کرنے کے لیے۔ - باقی تمام چیک باکسز کو بغیر نشان کے رہنے دیں۔ کنفیگریٹر سے باہر نکلنے کے لیے ٹھیک ہے پر کلک کریں۔
شکل 5 • CoreSysServices نرم IP کور کنفیگریٹر
- سسٹم بلڈر بلاک کے HPMS_FIC_0 SYS_SERVICES_MASTER BIF کو CoreSysService بلاک کے AHBL_MASTER BIF سے مربوط کریں۔
- اپنے HDL FSM بلاک کے آؤٹ پٹ کو CoreSysService سافٹ آئی پی کور کے ان پٹ سے جوڑیں۔ دیگر تمام کنکشنز کو SmartDesign کینوس میں بنائیں جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے۔
شکل 6 • HDL بلاک، CoreSysServices Soft IP اور HPMS بلاکس کے ساتھ اسمارٹ ڈیزائن کینوس - SmartDesign کینوس میں، اوپر کی سطح کا ڈیزائن بنانے کے لیے > Generate Component پر دائیں کلک کریں۔
- ڈیزائن کے درجہ بندی میں view، ٹاپ لیول ڈیزائن پر دائیں کلک کریں اور Create Testbench > HDL کو منتخب کریں۔
- متن بنانے کے لیے ٹیکسٹ ایڈیٹر کا استعمال کریں۔ file "status.txt" کے نام سے۔
- سسٹم سروس کے لیے کمانڈ اور 128 بٹ سیریل نمبر شامل کریں۔ مزید معلومات کے لیے، ٹیبل 1 (سسٹم سروسز کمانڈ/رسپانس ویلیوز) میں دیکھیں۔ CoreSysServices v3.1 ہینڈ بک مختلف سسٹم سروسز کے لیے استعمال کیے جانے والے کمانڈ کوڈز (ہیکس) کے لیے۔ سیریل نمبر سروس کے لیے، کمانڈ کوڈ "01" ہیکس ہے۔
status.txt کا فارمیٹ file سیریل نمبر سروس کے لیے درج ذیل ہے۔
< 2 ہیکس ہندسہ CMD><32 ہیکس ہندسہ سیریل نمبر>
Example: 01A1A2A3A4B1B2B3B4C1C2C3C4D1D2D3D4
status.txt کو محفوظ کریں۔ file اپنے پروجیکٹ کے سمولیشن فولڈر میں۔ ڈیزائن اب نقلی کے لیے تیار ہے۔
ایک بار سروس پر عمل درآمد شروع ہونے کے بعد، ماڈل سم ٹرانسکرپٹ ونڈو میں منزل کے مقام اور سیریل نمبر کی نشاندہی کرنے والا ایک پیغام ظاہر ہوتا ہے، جیسا کہ درج ذیل تصویر میں دکھایا گیا ہے۔
شکل 7 • ماڈل سم سمولیشن ٹرانسکرپٹ ونڈوسسٹم کنٹرولر سیریل نمبر کے ساتھ ایڈریس پر AHB لکھتا ہے۔ سروس کی تکمیل پر، COMM_BLK کا RXFIFO سروس کے جواب کے ساتھ لوڈ ہو جائے گا۔
نوٹ: مختلف سسٹم سروسز کے لیے استعمال کیے جانے والے کمانڈ کوڈز کی مکمل فہرست کے لیے، CoreSysServices v1 ہینڈ بک یا UG3.1: SmartFusion0450 SoC اور IGLOO2 FPGA سسٹم کنٹرولر یوزر گائیڈ میں ٹیبل 2 (سسٹم سروسز کمانڈ/رسپانس ویلیوز) دیکھیں۔
2.6 SmartFusion2 سیریل نمبر سروس سمولیشن
اس صارف گائیڈ میں، BFM کمانڈز (آپشن 2) سسٹم سروس کے لیے سسٹم کنٹرولر تک رسائی کے لیے استعمال کی جاتی ہیں۔ BFM کمانڈز استعمال کی جاتی ہیں کیونکہ Cortex-M3 پروسیسر BFM سمولیشن کے لیے ڈیوائس پر دستیاب ہے۔ BFM کمانڈز آپ کو COMM_BLK کی میموری میپنگ جان لینے کے بعد براہ راست COMM BLK پر لکھنے اور پڑھنے کی اجازت دیتی ہیں۔
SmartFusion2 سیریل نمبر سروس سمولیشن کے لیے اپنے ڈیزائن کو تیار کرنے کے لیے، درج ذیل اقدامات انجام دیں۔
- MSS کو کیٹلاگ سے اپنے پروجیکٹ کے ڈیزائن کینوس پر گھسیٹیں اور چھوڑیں۔
- MSS_CCC، ری سیٹ کنٹرولر، انٹرپٹ مینجمنٹ، اور FIC_0، FIC_1 اور FIC_2 کے علاوہ تمام MSS پیری فیرلز کو غیر فعال کریں۔
- MSS کو فیبرک انٹرپٹ کے لیے استعمال کرنے کے لیے انٹرپٹ مینجمنٹ کو کنفیگر کریں۔
- serialnum.bfm تیار کریں۔ file ٹیکسٹ ایڈیٹر میں یا لائبیرو کے ایچ ڈی ایل ایڈیٹر میں۔ serialnum.bfm کو محفوظ کریں۔ file پروجیکٹ کے سمولیشن فولڈر میں۔ serialnum.bfm میں درج ذیل تفصیلات شامل ہونی چاہئیں۔
• COMM BLK (CMBLK) پر میموری میپنگ
• مینیجمنٹ پیریفرل (FIIC) میں خلل ڈالنے کے لیے میموری میپنگ
• سیریل نمبر سسٹم سروس کی درخواست کے لیے کمانڈ ("01" ہیکس)
• سیریل نمبر کے مقام کا پتہ
ایک سابقample of the serialnum.bfm file مندرجہ ذیل ہے.
memmap FIIC 0x40006000; #Memory Mapping to interrupt Management
memmap CMBLK 0x40016000؛ COMM BLK پر #میموری میپنگ
memmap DESCRIPTOR_ADDR 0x20000000؛ # سیریل نمبر کے لیے پتہ کا مقام
# ہیکساڈیسیمل میں کمانڈ کوڈ
سیریل نمبر سروس کے لیے مستقل CMD 0x1 # کمانڈ کوڈ
#FIIC کنفیگریشن رجسٹرز
مستقل FICC_INTERRUPT_ENABLE0 0x0
#COMM_BLK کنفیگریشن رجسٹرز
مستقل کنٹرول 0x00
مستقل حالت 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 # کو فعال کرنے کے لیے رجسٹر کریں
#comm_BLK بلاک سے فیبرک تک رکاوٹ
#درخواست کا مرحلہ
لکھیں w CMBLK CONTROL 0x10 # COMM BLK کنٹرول ترتیب دیں # رجسٹر کریں
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 # COMM BLK کنٹرول کنفیگر کریں
#COMM BLK انٹرفیس پر منتقلی کو فعال کرنے کے لیے رجسٹر کریں۔
W CMBLK DATA32 DESCRIPTOR_ADDR لکھیں۔
لکھیں w CMBLK INT_ENABLE 0x80
لکھیں w CMBLK CONTROL 0x10
endif
20 انتظار کرو
#ردعمل کا مرحلہ
انتظار 19
ریڈ اسٹور w CMBLK اسٹیٹس ایکس
xx اور 0x80 سیٹ کریں۔
اگر x
CMBLK FRAME_START8 CMD کے ساتھ دوبارہ چیک کریں۔
لکھیں w CMBLK INT_ENABLE 0x2
endif
انتظار 19
ریڈ اسٹور w CMBLK اسٹیٹس ایکس
xx اور 0x2 سیٹ کریں۔
اگر x
CMBLK DATA8 0x0 کے ساتھ دوبارہ چیک کریں۔
لکھیں w CMBLK CONTROL 0x18
endif
انتظار 19
FIIC 0x8 0x20000000 کے ساتھ پڑھیں
ریڈ اسٹور w CMBLK اسٹیٹس ایکس
xx اور 0x2 سیٹ کریں۔
اگر x
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 ایڈیٹر یا کسی ٹیکسٹ ایڈیٹر میں۔ سیریل نمبر سسٹم سروس کمانڈ (Hex میں "01") اور سٹیٹس میں سیریل نمبر شامل کریں۔ txt file. درست کمانڈ کوڈ استعمال کرنے کے لیے CoreSysServices v3.1 ہینڈ بک دیکھیں۔
- اس کی ترکیب file سیریل نمبر سروس کے لیے، <2 ہیکس ہندسہ CMD><32 ہیکس ہندسہ سیریل نمبر> ہے۔ سابقample: 01A1A2A3A4B1B2B3B4C1C2C3C4E1E2E3E4.
- اسٹیٹس .txt محفوظ کریں۔ file پروجیکٹ کے سمولیشن فولڈر میں۔
- سیریل نمبر شامل کرنے کے لیے صارف .bfm (سیمولیشن فولڈر کے اندر واقع) میں ترمیم کریں۔ bfm file اور سیریل نمبر کے طریقہ کار کو کال کریں جیسا کہ درج ذیل کوڈ کے ٹکڑوں میں دکھایا گیا ہے۔
"serialnum.bfm" شامل کریں # serialnum.bfm شامل کریں۔
طریقہ کار user_main؛
پرنٹ "معلومات: نقلی آغاز"؛
پرنٹ کریں "INFO:Service Command Code in decimal:%0d", CMD ;
کال سیریلنم؛ # سیریلنم طریقہ کار کو کال کریں۔
پرنٹ "معلومات: نقلی ختم"؛
واپسی - ڈیزائن کے درجہ بندی میں view، ٹیسٹ بینچ تیار کریں (دائیں کلک کریں، ٹاپ لیول ڈیزائن > ٹیسٹ بینچ بنائیں > ایچ ڈی ایل ) اور آپ سیریل نمبر سروس سمولیشن چلانے کے لیے تیار ہیں۔
ایک بار سروس پر عمل درآمد شروع ہونے کے بعد، ایک پیغام ظاہر ہوتا ہے جس میں منزل کے مقام اور سیریل نمبر کی نشاندہی ہوتی ہے۔ سسٹم کنٹرولر سیریل نمبر کے ساتھ ایڈریس پر AHB لکھتا ہے۔ سروس کی تکمیل پر، COMM_BLK کا RXFIFO سروس کے جواب کے ساتھ لوڈ ہو جائے گا۔ ModelSim ٹرانسکرپٹ ونڈو پتہ اور سیریل نمبر دکھاتی ہے جیسا کہ درج ذیل تصویر میں دکھایا گیا ہے۔
شکل 8 • ماڈل سم ٹرانسکرپٹ ونڈو میں SmartFusion2 سیریل نمبر سروس سمولیشن
2.7 IGLOO2 زیروائزیشن سروس سمولیشن
IGLOO2 زیروائزیشن سروس سمولیشن کی تیاری کے لیے، درج ذیل اقدامات کو انجام دیں۔
- HPMS بلاک بنانے کے لیے سسٹم بلڈر کو طلب کریں۔ ڈیوائس کی خصوصیات SYS_SERVICES_MASTER BIF میں HPMS سسٹم سروسز کے چیک باکس کو چیک کریں۔ باقی تمام چیک باکسز کو بغیر نشان کے رہنے دیں۔ دوسرے تمام صفحات میں ڈیفالٹ کو قبول کریں اور صفحہ پر کلک کریں۔ یہ سسٹم بلڈر کو HPMS_FIC_0 Finish کو ظاہر کرنے کی ہدایت کرتا ہے تاکہ سسٹم بلڈر بلاک کی کنفیگریشن کو مکمل کیا جا سکے۔
- Libero SoC کے HDL ایڈیٹر میں، FSM کے لیے HDL کوڈ لکھیں۔ FSM کے لیے اپنے HDL کوڈ میں، درج ذیل تین ریاستیں شامل کریں۔
INIT حالت (ابتدائی حالت)
SERV_PHASE (سروس کی درخواست کی حالت)
RSP_PHASE (سروس کے جواب کی حالت)
درج ذیل اعداد و شمار FSM کی تین حالتوں کو ظاہر کرتا ہے۔
شکل 9 • تین ریاستی FSM - اپنے HDL کوڈ میں، INIT ریاست سے سروس کی درخواست کی حالت میں داخل ہونے کے لیے کمانڈ کوڈ "F0″(Hex) استعمال کریں۔
- اپنے ایچ ڈی ایل کو محفوظ کریں۔ file.
- SmartDesign کھولیں، اپنے ٹاپ لیول سسٹم بلڈر بلاک اور اپنے HDL FSM بلاک کو SmartDesign کینوس میں گھسیٹیں اور چھوڑیں۔ کیٹلاگ سے، CoreSysService نرم IP کور کو SmartDesign کینوس میں گھسیٹ کر چھوڑیں۔
- CoreSysServices سافٹ آئی پی کور پر دائیں کلک کریں، کنفیگریٹر کو کھولنے کے لیے اور ڈیٹا سیکیورٹی سروسز گروپ کے تحت زیروائزیشن سروس چیک باکس کو چیک کریں۔ باقی تمام چیک باکسز کو بغیر نشان کے رہنے دیں۔ OK باہر نکلنے کے لیے کلک کریں۔
شکل 10 • CoreSysServices کنفیگریٹر
- سسٹم بلڈر بلاک کے HPMS_FIC_0 SYS_SERVICES_MASTER BIF کو CoreSysService بلاک کے AHBL_MASTER BIF سے مربوط کریں۔
- اپنے HDL FSM بلاک کے آؤٹ پٹ کو CoreSysService سافٹ آئی پی کور کے ان پٹ سے جوڑیں۔ دیگر تمام کنکشنز SmartDesign کینوس میں بنائیں۔
شکل 11 • HDL بلاک، CoreSysServices Soft IP، اور HPMS بلاکس کے ساتھ اسمارٹ ڈیزائن کینوس
9. SmartDesign کینوس میں، ٹاپ لیول ڈیزائن تیار کریں (دائیں کلک کریں > اجزاء تیار کریں)۔
10. ڈیزائن کے درجہ بندی میں view، ٹاپ لیول ڈیزائن پر دائیں کلک کریں اور Create Testbench > HDL کو منتخب کریں۔ اب آپ تخروپن چلانے کے لیے تیار ہیں۔
ایک بار سروس پر عمل درآمد شروع ہوجانے کے بعد، ایک پیغام جو ظاہر کرتا ہے کہ زیروائزیشن وقت x پر مکمل ہو چکی ہے جیسا کہ درج ذیل تصویر میں دکھایا گیا ہے۔
شکل 12 • IGLOO2 زیروائزیشن سسٹم سروس سمولیشن ٹرانسکرپٹ ونڈو
سسٹم کنٹرولر سیریل نمبر کے ساتھ ایڈریس پر AHB لکھتا ہے۔ سروس کی تکمیل پر، COMM_BLK کا RXFIFO سروس کے جواب کے ساتھ لوڈ ہو جائے گا۔ واضح رہے کہ تخروپن ماڈل خود ڈیزائن کو صفر کرنے کے بجائے تخروپن کو روک کر زیروائزیشن کی نقل کرتا ہے۔
نوٹ: مختلف سسٹم سروسز کے لیے استعمال کیے جانے والے کمانڈ کوڈز کی مکمل فہرست کے لیے، ٹیبل 1 (سسٹم سروسز کمانڈ/رسپانس ویلیوز) میں دیکھیں۔ CoreSysServices v3.1 ہینڈ بک:۔ یا UG0450: SmartFusion2 SoC اور IGLOO2 FPGA سسٹم کنٹرولر صارف گائیڈ
2.8 SmartFusion2 زیروائزیشن سروس سمولیشن
اس گائیڈ میں، BFM کمانڈز (آپشن 2) سسٹم سروس کے لیے سسٹم کنٹرولر تک رسائی کے لیے استعمال کی جاتی ہیں۔
BFM کمانڈز استعمال کی جاتی ہیں کیونکہ Cortex-M3 پروسیسر BFM سمولیشن کے لیے ڈیوائس پر دستیاب ہے۔ BFM کمانڈز آپ کو COMM_BLK کی میموری میپنگ جان لینے کے بعد براہ راست COMM BLK پر لکھنے اور پڑھنے کی اجازت دیتی ہیں۔ SmartFusion2 زیروائزیشن سروس سمولیشن کے لیے اپنے ڈیزائن کو تیار کرنے کے لیے، درج ذیل اقدامات انجام دیں۔
- MSS کو کیٹلاگ سے اپنے پروجیکٹ کے ڈیزائن کینوس پر گھسیٹیں اور چھوڑیں۔
- MSS_CCC، ری سیٹ کنٹرولر، انٹرپٹ مینجمنٹ، اور FIC_0، FIC_1 اور FIC_2 کے علاوہ تمام MSS پیری فیرلز کو غیر فعال کریں۔
- MSS کو فیبرک انٹرپٹ کے لیے استعمال کرنے کے لیے انٹرپٹ مینجمنٹ کو کنفیگر کریں۔
- zeroizaton.bfm تیار کریں۔ file ٹیکسٹ ایڈیٹر میں یا لائبیرو کے ایچ ڈی ایل ایڈیٹر میں۔ آپ کا صفر کرنا۔ bfm میں شامل ہونا چاہئے:
- COMM BLK (CMBLK) پر میموری میپنگ
- مینیجمنٹ پیریفرل (FIIC) میں خلل ڈالنے کے لیے میموری میپنگ
- زیروائزٹن سروس کی درخواست کے لیے کمانڈ ("F0" ہیکس برائے زیروائزیشن)
ایک سابقample of the serialnum.bfm file مندرجہ ذیل اعداد و شمار میں دکھایا گیا ہے۔
تصویر 13 • SmartFusion2 زیروائزیشن سسٹم سروسز سمولیشن کے لیے Zeroization.bfm
5. zeroization.bfm کو محفوظ کریں۔ file پروجیکٹ کے سمولیشن فولڈر میں۔ user.bfm
6. درج ذیل کوڈ کا ٹکڑا استعمال کرنے کے لیے (zeroization.bfm سمولیشن فولڈر میں موجود) میں ترمیم کریں۔
"zeroization.bfm" #include zeroization.bfm شامل کریں۔ file طریقہ کار user_main؛
پرنٹ "معلومات: نقلی آغاز"؛
پرنٹ کریں "INFO:Service Command Code in decimal:%0d", CMD ;
کال صفرائزیشن؛ زیروائزیشن کے طریقہ کار کی واپسی کو کال کریں۔
7. ڈیزائن کے درجہ بندی میں، Testbench (دائیں کلک اوپر کی سطح > Testbench بنائیں > HDL ) بنائیں اور آپ SmartFusion2 زیروائزیشن سمولیشن چلانے کے لیے تیار ہیں۔
ایک بار سروس پر عمل درآمد شروع ہوجانے کے بعد، ایک پیغام جس سے ظاہر ہوتا ہے کہ x ظاہر ہونے کے وقت ڈیوائس کو صفر کردیا گیا ہے۔ واضح رہے کہ تخروپن ماڈل خود ڈیزائن کو صفر کرنے کے بجائے تخروپن کو روک کر زیروائزیشن کی نقل کرتا ہے۔ مندرجہ ذیل تصویر میں ModelSim ٹرانسکرپٹ ونڈو سے پتہ چلتا ہے کہ ڈیوائس صفر ہو گئی ہے۔
شکل 14 • SmartFusion2 زیروائزیشن سسٹم سروس سمولیشن لاگ
ضمیمہ: سسٹم سروسز کی اقسام
یہ باب مختلف قسم کی سسٹم سروسز کی وضاحت کرتا ہے۔
3.1 نقلی پیغام کی خدمات
درج ذیل حصے نقلی پیغام کی خدمات کی مختلف اقسام کو بیان کرتے ہیں۔
3.1.1 فلیش* منجمد
جب مناسب سروس کی درخواست COMM_BLK کو FIC (IGLOO2 ڈیوائسز کی صورت میں) یا Cortex-M3 (SmartFusion2 ڈیوائسز میں) سے بھیجی جائے گی تو سمولیشن Flash*Freze حالت میں داخل ہوگی۔ ایک بار سسٹم کنٹرولر کے ذریعہ سروس کا پتہ لگ جانے کے بعد، سمولیشن کو روک دیا جائے گا اور سسٹم میں فلیش* فریز (منتخب کردہ آپشن کے ساتھ) داخل ہونے کی نشاندہی کرنے والا پیغام ظاہر ہوگا۔ سمولیشن کے دوبارہ شروع ہونے پر، COMM_BLK کا RXFIFO سروس کمانڈ اور سٹیٹس پر مشتمل سروس کے جواب سے بھر جائے گا۔ واضح رہے کہ فلیش*فریز ایگزٹ کے لیے کوئی نقلی تعاون نہیں ہے۔
3.1.2 زیروائزیشن
زیروائزیشن فی الحال COMM_BLK کے ذریعہ پروسیس شدہ سسٹم سروسز کے اندر واحد اعلی ترجیحی خدمت ہے۔ جیسے ہی COMM_BLK کے ذریعہ درست سروس کی درخواست کا پتہ چل جائے گا سمولیشن زیروائزیشن حالت میں داخل ہو جائے گا۔ سسٹم کنٹرولر کی طرف سے دیگر خدمات کی انجام دہی کو روک دیا جائے گا اور اسے مسترد کر دیا جائے گا، اور اس کی بجائے زیروائزیشن سروس کو عمل میں لایا جائے گا۔ ایک بار زیروائزیشن سروس کی درخواست کا پتہ چلنے کے بعد، سمولیشن رک جاتا ہے اور ایک پیغام ظاہر ہوتا ہے جس سے یہ ظاہر ہوتا ہے کہ سسٹم زیروائزیشن میں داخل ہو گیا ہے۔ زیروائزیشن کے بعد نقلی دستی دوبارہ شروع کرنا غلط ہے۔
3.2 ڈیٹا پوائنٹر سروسز
درج ذیل حصے ڈیٹا پوائنٹر سروسز کی مختلف اقسام کی وضاحت کرتے ہیں۔
3.2.1 سیریل نمبر
سیریل نمبر سروس سروس کی درخواست کے حصے کے طور پر فراہم کردہ ایڈریس کے مقام پر ایک 128 بٹ سیریل نمبر لکھے گی۔ یہ 128 بٹ پیرامیٹر سسٹم سروس سمولیشن سپورٹ کا استعمال کرتے ہوئے سیٹ کیا جا سکتا ہے۔ file (صفحہ 22 دیکھیں)۔ اگر 128 بٹ سیریل نمبر پیرامیٹر کی وضاحت نہیں کی گئی ہے۔ file0 کا ڈیفالٹ سیریل نمبر استعمال کیا جائے گا۔ ایک بار سروس پر عمل درآمد شروع ہونے کے بعد، ایک پیغام ظاہر ہوتا ہے جس میں منزل کے مقام اور سیریل نمبر کی نشاندہی ہوتی ہے۔ سسٹم کنٹرولر سیریل نمبر کے ساتھ ایڈریس پر AHB لکھتا ہے۔ سروس کی تکمیل پر، COMM_BLK کا RXFIFO سروس کے جواب کے ساتھ لوڈ ہو جائے گا۔
3.2.2 یوزر کوڈ
یوزر کوڈ سروس سروس کی درخواست کے حصے کے طور پر فراہم کردہ ایڈریس کے مقام پر 32 بٹ یوزر کوڈ پیرامیٹر لکھتی ہے۔ یہ 32 بٹ پیرامیٹر سسٹم سروس سمولیشن سپورٹ کا استعمال کرتے ہوئے سیٹ کیا جا سکتا ہے۔ file (صفحہ 22 دیکھیں)۔ اگر 32 بٹ پیرامیٹر کی وضاحت نہیں کی گئی ہے۔ file0 کی ڈیفالٹ قدر استعمال کی جاتی ہے۔ ایک بار جب سروس پر عمل درآمد شروع ہو جاتا ہے، ایک پیغام ظاہر ہوتا ہے جس میں ہدف کے مقام اور صارف کوڈ کی نشاندہی ہوتی ہے۔ سسٹم کنٹرولر 32 بٹ پیرامیٹر کے ساتھ پتے پر AHB لکھتا ہے۔ سروس کی تکمیل پر، COMM_BLK کا RXFIFO سروس کے جواب سے بھرا ہوا ہے، جس میں سروس کمانڈ اور ہدف کا پتہ شامل ہے۔
3.3 ڈیٹا ڈسکرپٹر سروسز
درج ذیل حصے ڈیٹا ڈسکرپٹر سروسز کی مختلف اقسام کی وضاحت کرتے ہیں۔
3.3.1 AES
اس سروس کے لیے نقلی تعاون کا تعلق صرف اصل ڈیٹا کو ماخذ سے منزل تک منتقل کرنے سے ہے، اصل میں ڈیٹا پر کوئی انکرپشن/ڈیکرپشن کیے بغیر۔ سروس کی درخواست بھیجے جانے سے پہلے جس ڈیٹا کو انکرپٹ/ڈیکرپٹ کرنے کی ضرورت ہے اور ڈیٹا کا ڈھانچہ لکھا جانا چاہیے۔ ایک بار سروس پر عمل درآمد شروع ہونے کے بعد، AES سروس کے نفاذ کی نشاندہی کرنے والا ایک پیغام ظاہر ہوتا ہے۔ AES سروس ڈیٹا ڈھانچہ اور ڈیٹا دونوں کو پڑھتی ہے جسے خفیہ/ڈیکرپٹ کیا جانا ہے۔ اصل ڈیٹا کو ڈیٹا ڈھانچے کے اندر فراہم کردہ پتے پر کاپی کرکے لکھا جاتا ہے۔ سروس مکمل ہونے کے بعد، کمانڈ، اسٹیٹس، اور ڈیٹا اسٹرکچر ایڈریس کو RXFIFO میں دھکیل دیا جاتا ہے۔
نوٹ: یہ سروس صرف 128-bit اور 256-bit ڈیٹا کے لیے ہے، اور 128-bit اور 256-bit دونوں ڈیٹا کی ساخت کی لمبائی مختلف ہوتی ہے۔
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 کی حد کے اندر نہیں ہے، تو RXFIFO میں "4" (زیادہ سے زیادہ پیدا کریں ) کا ایرر کوڈ ڈال دیا جائے گا۔ اگر اضافی ڈیٹا کی لمبائی 0-128 کی درخواست کی بہت بڑی حد کے اندر نہیں ہے تو، "5" کا ایک ایرر کوڈ (اضافی ڈیٹا کی زیادہ سے زیادہ لمبائی سے تجاوز کر گیا) کو RXFIFO میں دھکیل دیا جائے گا۔ اگر جنریٹ کے لیے درخواست کردہ ڈیٹا کی لمبائی اور اضافی ڈیٹا کی لمبائی دونوں ان کی متعین حد (0-128) کے اندر نہیں ہیں، تو RXFIFO میں "1" (Catastrophic Error ) کا ایرر کوڈ ڈال دیا جاتا ہے۔
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 uninstantiate سروس کے لیے simulation support درحقیقت پہلے سے instantiated DRBG کو ہٹانے کی غیر ضروری سروس انجام نہیں دیتی، جیسا کہ سلیکون کرتا ہے۔ سروس کی درخواست میں کمانڈ اور DRBG ہینڈل دونوں شامل ہونا چاہیے۔ سروس کی درخواست کا پتہ لگ جانے کے بعد، DRBG ہینڈل محفوظ ہو جائے گا۔ سمولیشن ایک پیغام دکھائے گا جس سے یہ ظاہر ہوتا ہے کہ DRBG غیر یقینی سروس شروع کر دی گئی ہے۔ سروس مکمل ہونے کے بعد، جواب، جس میں سروس کمانڈ، اسٹیٹس، اور DRBG ہینڈل شامل ہیں، کو RXFIFO میں دھکیل دیا جائے گا۔
3.3.9 DRBG Reseed
سسٹم سروسز بلاک کی نقلی نوعیت کی وجہ سے، ہر 65535 DRBG جنریٹ سروسز کے بعد سمولیشن میں DRBG ریسیڈ سروس خود بخود عمل میں نہیں آتی ہے۔ سروس کی درخواست COMM_BLK کو بھیجے جانے سے پہلے ڈیٹا کا ڈھانچہ اس کے مطلوبہ مقام پر درست لکھا جانا چاہیے۔ سروس کی درخواست کا پتہ لگانے کے بعد، MSS ایڈریس اسپیس میں ڈھانچہ اور اضافی ان پٹ پیرامیٹر پڑھا جائے گا۔ ایک پیغام جو اس بات کی نشاندہی کرتا ہے کہ DRBG reseed سروس شروع ہو گئی ہے، ڈسپلے کیا جائے گا۔ سروس کی درخواست COMM_BLK کو بھیجے جانے سے پہلے ڈیٹا کا ڈھانچہ اس کے مطلوبہ مقام پر درست لکھا جانا چاہیے۔ سروس مکمل ہونے کے بعد، جواب، جس میں سروس کمانڈ، اسٹیٹس، اور ڈیٹا سٹرکچر کا اشارہ شامل ہے، کو RXFIFO میں دھکیل دیا جائے گا۔
3.3.10 کی ٹری
اصل فنکشن 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، ڈیوائس سرٹیفکیٹ، اور DESIGNVER سروس۔
3.5 سسٹم سروسز سمولیشن سپورٹ File
سسٹم سروسز سمولیشن کو سپورٹ کرنے کے لیے، ایک ٹیکسٹ file "status.txt" نامی، تخروپن ماڈل کے مطلوبہ رویے کے بارے میں ہدایات نقلی ماڈل کو منتقل کرنے کے لیے استعمال کیا جا سکتا ہے۔ یہ file اسی فولڈر میں واقع ہونا چاہئے، جہاں سے نقلی چلائی جاتی ہے۔ دی file دیگر چیزوں کے علاوہ، سپورٹ شدہ سسٹم سروسز کے لیے بعض خامی کے جوابات کو مجبور کرنے کے لیے یا یہاں تک کہ تخروپن کے لیے درکار کچھ پیرامیٹرز کو ترتیب دینے کے لیے استعمال کیا جا سکتا ہے، (سابقہ کے لیےample، سیریل نمبر)۔ "status.txt" میں سپورٹ کردہ لائنوں کی زیادہ سے زیادہ تعداد file 256 ہے۔ لائن نمبر 256 کے بعد ظاہر ہونے والی ہدایات نقلی میں استعمال نہیں کی جائیں گی۔
3.5.1 غلطی کے جوابات پر مجبور کرنا
صارف "status.txt" کا استعمال کرتے ہوئے سمولیشن ماڈل کو معلومات بھیج کر جانچ کے دوران کسی خاص سروس کے لیے ایک مخصوص خامی کے جواب پر مجبور کر سکتا ہے۔ file، جسے اس فولڈر میں رکھا جانا چاہئے جس سے نقلی چلائی جاتی ہے۔ کسی خاص سروس میں غلطی کے جوابات کو مجبور کرنے کے لیے، کمانڈ اور مطلوبہ جواب کو ایک ہی لائن میں درج ذیل فارمیٹ میں ٹائپ کیا جانا چاہیے۔ample، کمانڈ کرنے کے لیے> ; سمولیشن ماڈل کو سیریل نمبر سروس کے لیے MSS میموری تک رسائی کی غلطی کا جواب تیار کرنے کی ہدایت کریں، کمانڈ مندرجہ ذیل ہے۔
سروس: سیریل نمبر: 01
غلطی کے پیغام کی درخواست کی گئی: MSS میموری تک رسائی کی خرابی: 7F
آپ کو "status.txt" میں لائن 017F درج کرنی چاہیے file.
3.5.2 پیرامیٹر کی ترتیب
"status.txt" file تخروپن میں درکار کچھ پیرامیٹرز کو سیٹ کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔ بطور سابقample، یوزر کوڈ کے لیے 32 بٹ پیرامیٹر سیٹ کرنے کے لیے، لائن کا فارمیٹ اس ترتیب میں ہونا چاہیے: <32 بٹ USERCODE>؛ جہاں دونوں قدریں ہیکساڈیسیمل میں درج کی گئی ہیں۔ سیریل نمبر کے لیے 128 بٹ پیرامیٹر سیٹ کرنے کے لیے، لائن کا فارمیٹ اس ترتیب میں ہونا چاہیے: <128 بٹ سیریل نمبر [127:0]> ; جہاں دونوں قدریں ہیکساڈیسیمل میں درج کی گئی ہیں۔ SHA 256 کلید کے لیے 256 بٹ پیرامیٹر سیٹ کرنے کے لیے؛ لائن کی شکل اس ترتیب میں ہونی چاہیے: <256 بٹ کلید [255:0]>؛ جہاں دونوں قدریں ہیکساڈیسیمل میں درج کی گئی ہیں۔ چیلنج رسپانس کلید کے لیے 256 بٹ پیرامیٹر سیٹ کرنے کے لیے، لائن کا فارمیٹ اس ترتیب میں ہونا چاہیے: <256 بٹ کلید [255:0]>؛
جہاں دونوں قدریں ہیکساڈیسیمل میں درج کی گئی ہیں۔
3.5.3 ڈیوائس کی ترجیح
سسٹم سروسز اور COMM_BLK ایک اعلی ترجیحی نظام کا استعمال کرتے ہیں۔ فی الحال، صرف اعلیٰ ترجیحی سروس صفر کرنا ہے۔ ایک اعلیٰ ترجیحی سروس کو انجام دینے کے لیے، جب کہ دوسری سروس پر عمل درآمد ہو رہا ہے، موجودہ سروس کو روک دیا گیا ہے اور اعلیٰ ترجیحی سروس کو اس کی جگہ پر عمل میں لایا جائے گا۔ COMM_BLK اعلی ترجیحی خدمت انجام دینے کے لیے موجودہ سروس کو مسترد کر دے گا۔ اگر موجودہ سروس کی تکمیل سے پہلے متعدد غیر اعلیٰ ترجیحی خدمات بھیجی جاتی ہیں، تو یہ خدمات TXFIFO کے اندر قطار میں لگ جائیں گی۔ ایک بار موجودہ سروس مکمل ہو جانے کے بعد، TXFIFO میں اگلی سروس کو عمل میں لایا جائے گا۔
Microsemi یہاں موجود معلومات یا کسی خاص مقصد کے لیے اس کی مصنوعات اور خدمات کی مناسبیت کے حوالے سے کوئی وارنٹی، نمائندگی، یا ضمانت نہیں دیتا، اور نہ ہی Microsemi کسی بھی مصنوعات یا سرکٹ کے اطلاق یا استعمال سے پیدا ہونے والی کوئی ذمہ داری قبول کرتا ہے۔ یہاں فروخت ہونے والی مصنوعات اور Microsemi کی طرف سے فروخت کردہ دیگر مصنوعات محدود جانچ کے تابع ہیں اور انہیں مشن کے اہم آلات یا ایپلی کیشنز کے ساتھ استعمال نہیں کیا جانا چاہیے۔ کسی بھی کارکردگی کی وضاحتیں قابل اعتماد سمجھی جاتی ہیں لیکن ان کی تصدیق نہیں کی جاتی ہے، اور خریدار کو کسی بھی حتمی مصنوعات کے ساتھ، اکیلے اور مل کر، یا ان میں نصب، تمام کارکردگی اور مصنوعات کی دیگر جانچ کرنا اور مکمل کرنا چاہیے۔ خریدار مائیکروسیمی کی طرف سے فراہم کردہ کسی بھی ڈیٹا اور کارکردگی کی تفصیلات یا پیرامیٹرز پر انحصار نہیں کرے گا۔ یہ خریدار کی ذمہ داری ہے کہ وہ آزادانہ طور پر کسی بھی مصنوعات کی مناسبیت کا تعین کرے اور اس کی جانچ اور تصدیق کرے۔ مائیکروسیمی کی طرف سے یہاں فراہم کردہ معلومات "جیسا ہے، جہاں ہے" اور تمام خرابیوں کے ساتھ فراہم کی گئی ہے، اور اس طرح کی معلومات سے منسلک تمام خطرہ خریدار کے ساتھ ہے۔ Microsemi کسی بھی فریق کو پیٹنٹ کے حقوق، لائسنس، یا کسی دوسرے IP حقوق، واضح طور پر یا واضح طور پر، عطا نہیں کرتا ہے، خواہ خود ایسی معلومات کے حوالے سے ہو یا اس طرح کی معلومات کے ذریعے بیان کردہ کسی بھی چیز کے حوالے سے۔ اس دستاویز میں فراہم کردہ معلومات Microsemi کی ملکیت ہے، اور Microsemi اس دستاویز میں موجود معلومات یا کسی بھی مصنوعات اور خدمات میں بغیر اطلاع کے کسی بھی وقت کوئی تبدیلی کرنے کا حق محفوظ رکھتی ہے۔
Microsemi، Microchip Technology Inc. (Nasdaq: MCHP) کا مکمل ملکیتی ذیلی ادارہ، ایرو اسپیس اور دفاع، مواصلات، ڈیٹا سینٹر اور صنعتی بازاروں کے لیے سیمی کنڈکٹر اور سسٹم سلوشنز کا ایک جامع پورٹ فولیو پیش کرتا ہے۔ مصنوعات میں اعلی کارکردگی اور تابکاری سے سخت ینالاگ مکسڈ سگنل انٹیگریٹڈ سرکٹس، FPGAs، SoCs اور ASICs شامل ہیں۔ پاور مینجمنٹ مصنوعات؛ ٹائمنگ اور سنکرونائزیشن ڈیوائسز اور وقت کے عین مطابق حل، وقت کے لیے دنیا کا معیار قائم کرنا؛ صوتی پروسیسنگ آلات؛ RF حل؛ مجرد اجزاء؛ انٹرپرائز اسٹوریج اور مواصلات کے حل؛ سیکورٹی ٹیکنالوجیز اور توسیع پذیر اینٹی ٹیamper مصنوعات؛ ایتھرنیٹ حل؛ پاور اوور ایتھرنیٹ آئی سی اور مڈ اسپینز؛ نیز اپنی مرضی کے مطابق ڈیزائن کی صلاحیتیں اور خدمات۔ Microsemi کا صدر دفتر Aliso Viejo، California میں ہے اور اس کے دنیا بھر میں تقریباً 4,800 ملازمین ہیں۔ پر مزید جانیں۔ www.microsemi.com.
مائیکروسیمی ہیڈ کوارٹر
ون انٹرپرائز، الیسو ویجو،
CA 92656 USA۔
USA کے اندر: +1 800-713-4113
امریکہ سے باہر: +1 949-380-6100
سیلز: +1 949-380-6136
فیکس: +1 949-215-4996
ای میل: فروخت۔support@microsemi.com
www.microsemi.com
© 2018 مائیکروسیمی۔ جملہ حقوق محفوظ ہیں۔ مائیکروسیمی اور مائیکروسیمی لوگو
Microsemi Corporation کے ٹریڈ مارک ہیں۔ دیگر تمام ٹریڈ مارک اور سروس
نشانات ان کے متعلقہ مالکان کی ملکیت ہیں۔
دستاویزات / وسائل
![]() |
مائیکروسیمی UG0837 IGLOO2 اور SmartFusion2 FPGA سسٹم سروسز سمولیشن [پی ڈی ایف] یوزر گائیڈ UG0837, UG0837 IGLOO2 اور SmartFusion2 FPGA سسٹم سروسز سمولیشن، IGLOO2 اور SmartFusion2 FPGA سسٹم سروسز سمولیشن، SmartFusion2 FPGA سسٹم سروسز سمولیشن، FPGA سسٹم سروسز سمولیشن، سروسز سمولیشن |