SmartFusion2
کنترلر DDR و کنترلر پرسرعت سریال
روش اولیه سازی
راهنمای کاربر
مقدمه
هنگام ایجاد طرح با استفاده از دستگاه SmartFusion2، اگر از یکی از دو کنترلر DDR (FDDR یا MDDR) یا هر یک از بلوکهای کنترلکننده سریع سریال (SERDESIF) استفاده میکنید، باید رجیسترهای پیکربندی این بلوکها را در زمان اجرا قبل از آن مقداردهی اولیه کنید. می توان از آنها استفاده کرد. برای مثالampبرای کنترلر DDR، باید حالت DDR (DDR3/DDR2/LPDDR)، عرض PHY، حالت انفجاری و ECC را تنظیم کنید.
به طور مشابه، برای بلوک SERDESIF که به عنوان نقطه پایانی PCIe استفاده می شود، باید نوار PCIE را روی پنجره AXI (یا AHB) تنظیم کنید.
این سند مراحل لازم برای ایجاد یک طراحی Libero را شرح می دهد که به طور خودکار کنترلر DDR و بلوک های SERDESIF را در هنگام روشن شدن مقداردهی اولیه می کند. همچنین نحوه تولید کد میانافزار از Libero SOC را که در جریان طراحی تعبیهشده استفاده میشود، توضیح میدهد.
ابتدا شرح مفصلی از تئوری عملیات ارائه شده است.
بخش بعدی نحوه ایجاد چنین طرحی را با استفاده از Libero SoC System Builder توضیح میدهد، ابزار طراحی قدرتمندی که در کنار سایر ویژگیها، در صورتی که از بلوکهای DDR یا SERDESIF در طراحی خود استفاده میکنید، راهحل 'initialization' را برای شما ایجاد میکند.
بخش بعدی نحوه قرار دادن یک راه حل کامل «ابتدایی» را بدون استفاده از SmartFusion2 System Builder توضیح می دهد. این کمک می کند تا در صورت عدم تمایل به استفاده از System Builder چه کاری باید انجام شود و همچنین توضیح می دهد که ابزار System Builder واقعاً چه چیزی را برای شما ایجاد می کند. این بخش به:
- ایجاد داده های پیکربندی برای کنترل کننده DDR و رجیسترهای پیکربندی SERDESIF
- ایجاد منطق FPGA مورد نیاز برای انتقال داده های پیکربندی به رجیسترهای پیکربندی مختلف ASIC
در نهایت ما تولید شده را شرح می دهیم fileمربوط به:
- ایجاد راه حل اولیه سازی میان افزار.
- شبیهسازی طراحی راهحل اولیهسازی DDR.
برای جزئیات در مورد کنترل کننده DDR و رجیسترهای پیکربندی SERDESIF، به آدرس مراجعه کنید راهنمای کاربر سریال Microsemi SmartFusion2 با سرعت بالا و رابط های DDR.
تئوری عملیات
راه حل اولیه سازی محیطی از اجزای اصلی زیر استفاده می کند:
- تابع CMSIS SystemInit() که روی Cortex-M3 اجرا می شود و فرآیند اولیه سازی را هماهنگ می کند.
- هسته IP نرم CoreConfigP که رجیسترهای پیکربندی لوازم جانبی را مقداردهی اولیه می کند.
- هسته IP نرم CoreResetP، که توالی بازنشانی بلوکهای MSS، DDR و بلوکهای SERDESIF را مدیریت میکند.
فرآیند اولیه سازی محیطی به صورت زیر عمل می کند:
- پس از تنظیم مجدد، Cortex-M3 تابع CMSIS SystemInit() را اجرا می کند. این تابع قبل از اجرای تابع main() برنامه به طور خودکار اجرا می شود.
سیگنال خروجی CoreResetP MSS_HPMS_READY در ابتدای فرآیند اولیه سازی مشخص می شود، که نشان می دهد MSS و تمام تجهیزات جانبی (به جز MDDR) برای ارتباط آماده هستند. - تابع SystemInit() داده های پیکربندی را به کنترل کننده های DDR می نویسد و پیکربندی SERDESIF را از طریق گذرگاه MSS FIC_2 APB3 ثبت می کند. این رابط به هسته نرم CoreConfigP که در پارچه FPGA ساخته شده است متصل است.
- پس از پیکربندی همه رجیسترها، تابع SystemInit() به رجیسترهای کنترلی CoreConfigP می نویسد تا تکمیل فاز پیکربندی رجیستر را نشان دهد. سپس سیگنال های خروجی CoreConfigP CONFIG1_DONE و CONIG2_DONE اعلام می شوند.
دو مرحله از پیکربندی رجیستر (CONFIG1 و CONFIG2) بسته به تجهیزات جانبی مورد استفاده در طراحی وجود دارد. - اگر از یک یا هر دو MDDR/FDDR استفاده شود و هیچ یک از بلوک های SERDESIF در طراحی استفاده نشود، تنها یک مرحله پیکربندی ثبت وجود دارد. هر دو سیگنال خروجی CoreConfigP CONFIG1_DONE و CONIG2_DONE بدون هیچ گونه انتظار/تاخیر یکی پس از دیگری اعلام می شوند.
اگر یک یا چند بلوک SERDESIF در حالت غیر PCIe در طراحی استفاده شود، تنها یک مرحله از پیکربندی رجیستر وجود دارد. CONFIG1_DONE و CONIG2_DONE یکی پس از دیگری بدون هیچ گونه انتظار/تأخیر اظهار می شوند.
اگر یک یا چند بلوک SERDESIF در حالت PCIe در طراحی استفاده شود، پیکربندی رجیستر دو مرحله دارد. CONFIG1_DONE پس از تکمیل مرحله اول پیکربندی ثبت نام مشخص می شود. سیستم SERDESIF و رجیسترهای خطوط در این مرحله پیکربندی می شوند. اگر SERDESIF در حالت غیر PCIE پیکربندی شده باشد، سیگنال CONFIG2_DONE نیز بلافاصله اعلام می شود. - سپس مرحله دوم پیکربندی رجیستر دنبال می شود (اگر SERDESIF در حالت PCIE پیکربندی شده باشد). وقایع مختلفی که در مرحله دوم اتفاق می افتد به شرح زیر است:
– CoreResetP سیگنالهای PHY_RESET_N و CORE_RESET_N مربوط به هر یک از بلوکهای SERDESIF مورد استفاده را از بین میبرد. همچنین یک سیگنال خروجی SDIF_RELEASED پس از بازنشانی شدن تمام بلوکهای SERDESIF اعلام میکند. این سیگنال SDIF_RELEASED برای نشان دادن به CoreConfigP استفاده میشود که هسته SERDESIF از تنظیم مجدد خارج شده و برای مرحله دوم پیکربندی ثبت آماده است.
– هنگامی که سیگنال SDIF_RELEASED اعلام شد، تابع SystemInit() شروع به نظرسنجی برای اظهار PMA_READY در خط SERDESIF مناسب میکند. هنگامی که PMA_READY مشخص شد، مجموعه دوم رجیسترهای SERDESIF (رجیسترهای PCIE) توسط تابع SystemInit() پیکربندی/نوشتن میشوند. - پس از پیکربندی همه رجیسترهای PCIE، تابع SystemInit() به رجیسترهای کنترلی CoreConfigP می نویسد تا تکمیل فاز دوم پیکربندی رجیستر را نشان دهد. سپس سیگنال خروجی CoreConfigP CONIG2_DONE اعلام می شود.
- جدای از ادعاها/دعوتهای سیگنال فوق، CoreResetP با انجام توابع زیر، مقدار دهی اولیه بلوکهای مختلف را نیز مدیریت میکند:
- عدم تایید تنظیم مجدد هسته FDDR
- عدم تایید SERDESIF، بازنشانی های PHY و CORE را مسدود می کند
- نظارت بر سیگنال قفل FDDR PLL (FPLL). FPLL باید قفل شده باشد تا تضمین کند که رابط داده FDDR AXI/AHBLite و پارچه FPGA می توانند به درستی با هم ارتباط برقرار کنند.
- نظارت بر سیگنال های قفل بلوک SERDESIF PLL (SPLL). SPLL باید قفل شده باشد تا تضمین کند که رابط AXI/AHBLite (حالت PCIe) یا رابط XAUI میتواند به درستی با فابریک FPGA ارتباط برقرار کند.
- منتظر بمانید تا حافظههای DDR خارجی تثبیت شوند و برای دسترسی به کنترلکنندههای DDR آماده شوند. - هنگامی که تمام تجهیزات جانبی مقدار دهی اولیه خود را کامل کردند، CoreResetP سیگنال INIT_DONE را تأیید می کند. سپس رجیستر داخلی CoreConfigP INIT_DONE مشخص می شود.
اگر از یک یا هر دو MDDR/FDDR استفاده شود و به زمان اولیه سازی DDR رسیده باشد، سیگنال خروجی CoreResetP DDR_READY مشخص می شود. تأیید این سیگنال DDR_READY می تواند به عنوان نشانه ای از آماده بودن DDR (MDDR/FDDR) برای ارتباط نظارت شود.
اگر یک یا چند بلوک SERDESIF استفاده شود و مرحله دوم پیکربندی رجیستر با موفقیت انجام شود، سیگنال خروجی CoreResetP SDIF_READY اعلام می شود. تایید این سیگنال SDIF_READY می تواند به عنوان نشانه ای از آماده بودن تمام بلوک های SERDESIF برای ارتباط نظارت شود. - تابع SystemInit() که منتظر اعلام INIT_DONE بوده است کامل می شود و تابع main() برنامه اجرا می شود. در آن زمان، تمام کنترلکنندههای DDR و بلوکهای SERDESIF مورد استفاده، مقداردهی اولیه شدهاند، و نرمافزار میانافزار و منطق فابریک FPGA میتوانند به طور قابل اعتمادی با آنها ارتباط برقرار کنند.
متدولوژی توصیف شده در این سند متکی بر Cortex-M3 است که فرآیند مقداردهی اولیه را به عنوان بخشی از کد اولیه سازی سیستم اجرا می کند که قبل از تابع ()main برنامه اجرا می شود.
نمودارهای جریان را در شکل 1-1، شکل 1-2 و شکل 1-3 برای مراحل اولیه سازی FDDR/MDDR، SEREDES (حالت غیر PCIe) و SERDES (حالت PCIe) ببینید.
شکل 1-4 نمودار زمانبندی اولیه سازی محیطی را نشان می دهد.
![]() |
![]() |
شکل 1-3 • نمودار جریان اولیه سازی SERDESIF (PCIe).
روش مقداردهی اولیه توضیح داده شده در این سند از شما میخواهد که Cortex-M3 را در طول فرآیند مقداردهی اولیه اجرا کنید، حتی اگر قصد اجرای هیچ کدی در Cortex-M3 ندارید. شما باید یک برنامه سیستم عامل اصلی ایجاد کنید که هیچ کاری انجام نمی دهد (مثلاً یک حلقه سادهample) و آن قابل اجرا را در حافظه غیر فرار تعبیه شده (eNVM) بارگذاری کنید تا کنترل کننده های DDR و بلوک های SERDESIF هنگام بوت شدن Cortex-M3 مقداردهی اولیه شوند.
استفاده از System Builder برای ایجاد طرح با استفاده از بلوک های DDR و SERDESIF
SmartFusion2 System Builder یک ابزار طراحی قدرتمند است که به شما کمک می کند نیازهای سطح سیستم خود را درک کنید و طرحی را ایجاد کنید که این الزامات را اجرا کند. یکی از عملکردهای بسیار مهم System Builder ایجاد خودکار زیرسیستم اولیه سازی محیطی است. «استفاده از SmartDesign برای ایجاد طرح با استفاده از بلوکهای DDR و SERDESIF» در صفحه 17 نحوه ایجاد چنین راهحلی را بدون System Builder به تفصیل شرح میدهد.
اگر از System Builder استفاده میکنید، باید کارهای زیر را برای ایجاد طرحی انجام دهید که کنترلکنندههای DDR و بلوکهای SERDESIF را در هنگام روشن شدن مقداردهی اولیه کند:
- در صفحه ویژگی های دستگاه (شکل 2-1)، مشخص کنید که از کدام کنترلرهای DDR استفاده شده و چه تعداد بلوک SERDESIF در طراحی شما استفاده شده است.
- در صفحه حافظه، نوع DDR (DDR2/DDR3/LPDDR) و داده های پیکربندی حافظه های DDR خارجی خود را مشخص کنید. برای جزئیات بیشتر به بخش Memory Page مراجعه کنید.
- در صفحه لوازم جانبی، Fabric Masters پیکربندی شده به عنوان AHBLite/AXI را به زیرسیستم Fabric DDR و/یا زیرسیستم MSS DDR FIC (اختیاری) اضافه کنید.
- در صفحه تنظیمات ساعت، فرکانس های ساعت را برای زیرسیستم های DDR مشخص کنید.
- مشخصات طراحی خود را تکمیل کرده و روی Finish کلیک کنید. این طرح ایجاد شده توسط System Builder را ایجاد می کند، از جمله منطق لازم برای راه حل "Initialization".
- اگر از بلوکهای SERDESIF استفاده میکنید، باید بلوکهای SERDESIF را در طراحی خود نمونهسازی کنید و پورتهای اولیهسازی آنها را به پورتهای هسته تولید شده توسط System Builder متصل کنید.
صفحه ویژگی های دستگاه سازنده سیستم
در صفحه ویژگی های دستگاه، مشخص کنید که از کدام کنترلرهای DDR (MDDR و/یا FDDR) استفاده می شود و چه تعداد بلوک SERDESIF در طراحی شما استفاده شده است (شکل 2-1).
شکل 2-1 • صفحه ویژگی های دستگاه سازنده سیستم
صفحه حافظه سازنده سیستم
برای استفاده از MSS DDR (MDDR) یا Fabric DDR (FDDR)، نوع حافظه را از لیست کشویی انتخاب کنید (شکل 2-2).
شکل 2-2 • حافظه خارجی MSS
شما باید:
- نوع DDR (DDR2، DDR3 یا LPDDR) را انتخاب کنید.
- زمان ته نشین شدن حافظه DDR را تعریف کنید. برای تنظیم زمان تنظیم صحیح حافظه، با مشخصات حافظه DDR خارجی خود مشورت کنید. اگر زمان تثبیت حافظه به درستی تنظیم نشده باشد، ممکن است حافظه DDR به درستی مقداردهی اولیه نشود.
- یا داده های پیکربندی ثبت DDR را وارد کنید یا پارامترهای حافظه DDR خود را تنظیم کنید. برای جزئیات، مراجعه کنید راهنمای کاربر سریال Microsemi SmartFusion2 با سرعت بالا و رابط های DDR.
این داده ها برای تولید BFM ثبت DDR و پیکربندی سیستم عامل استفاده می شود fileهمانطور که در «ایجاد و کامپایل برنامه سفتافزار» در صفحه 26 و «BFM» توضیح داده شده است. Files مورد استفاده برای شبیه سازی طراحی" در صفحه 27. برای جزئیات بیشتر در مورد رجیسترهای پیکربندی کنترلر DDR، به راهنمای کاربر سریال Microsemi SmartFusion2 با سرعت بالا و رابط های DDR.
یک سابقampاز پیکربندی file نحو در شکل 2-3 نشان داده شده است. نام های ثبت استفاده شده در این file همان مواردی هستند که در راهنمای کاربر سریال Microsemi SmartFusion2 با سرعت بالا و رابط های DDR
شکل 2-3 • پیکربندی File نحو پیشینample
صفحه ابزارهای جانبی سیستم ساز
در صفحه لوازم جانبی، برای هر کنترلر DDR یک زیرسیستم جداگانه ایجاد می شود (Fabric DDR Subsystem for FDDR و MSS DDR FIC Subsystem for MDDR). شما می توانید یک هسته Fabric AMBA Master (پیکربندی شده به عنوان AXI/AHBLite) به هر یک از این زیرسیستم ها اضافه کنید تا دسترسی فابریک اصلی به کنترل کننده های DDR را فعال کنید. پس از تولید، System Builder به طور خودکار هستههای گذرگاه (بسته به نوع AMBA Master اضافه شده) را نمونهسازی میکند و BIF اصلی هسته گذرگاه و پینهای ساعت و تنظیم مجدد زیرسیستمهای مربوطه (FDDR/MDDR) را تحت گروههای پین مناسب، در معرض دید قرار میدهد. بالا. تنها کاری که باید انجام دهید این است که BIF ها را به هسته های Fabric Master مناسب که در طراحی نمونه سازی می کنید، متصل کنید. در مورد MDDR، اضافه کردن یک هسته Fabric AMBA Master به زیرسیستم MSS DDR FIC اختیاری است. Cortex-M3 یک استاد پیش فرض در این زیرسیستم است. شکل 2-4 صفحه ابزارهای جانبی System Builder را نشان می دهد.
شکل 2-4 • صفحه ابزارهای جانبی سازنده سیستم
صفحه تنظیمات ساعت سازنده سیستم
در صفحه تنظیمات ساعت، برای هر کنترلر DDR، باید فرکانس ساعت مربوط به هر زیرسیستم DDR (MDDR و/یا FDDR) را مشخص کنید.
برای MDDR باید مشخص کنید:
- MDDR_CLK - این ساعت فرکانس عملکرد کنترلر DDR را تعیین می کند و باید با فرکانس ساعتی که می خواهید حافظه DDR خارجی شما در آن اجرا شود مطابقت داشته باشد. این ساعت به عنوان مضربی از M3_CLK تعریف می شود (ساعت اصلی Cortex-M3 و MSS، شکل 2-5). MDDR_CLK باید کمتر از 333 مگاهرتز باشد.
- DDR_FIC_CLK - اگر انتخاب کرده اید که از پارچه FPGA نیز به MDDR دسترسی داشته باشید، باید DDR_FIC_CLK را مشخص کنید. این فرکانس ساعت به عنوان نسبت MDDR_CLK تعریف می شود و باید با فرکانسی که زیرسیستم فابریک FPGA که به MDDR دسترسی دارد، مطابقت داشته باشد.
شکل 2-5 • ساعت اصلی Cortex-M3 و MSS. ساعت های MDDR
برای FDDR باید مشخص کنید:
- FDDR_CLK - فرکانس عملکرد کنترلر DDR را تعیین می کند و باید با فرکانس ساعتی که می خواهید حافظه DDR خارجی شما در آن اجرا شود مطابقت داشته باشد. توجه داشته باشید که این ساعت به عنوان مضربی از M3_CLK تعریف شده است (ساعت MSS و Cortex-M3، شکل 2-5). FDDR_CLK باید در 20 مگاهرتز و 333 مگاهرتز باشد.
- FDDR_SUBSYSTEM_CLK - این فرکانس ساعت به عنوان نسبتی از FDDR_CLK تعریف می شود و باید با فرکانسی که زیر سیستم فابریک FPGA که به FDDR در حال اجرا است مطابقت داشته باشد.
شکل 2-6 • ساعت های DDR پارچه ای
پیکربندی SERDESIF
بلوک های SERDESIF در طراحی ایجاد شده توسط System Builder نمونه سازی نشده اند. با این حال، برای تمام بلوکهای SERDESIF، سیگنالهای اولیه در رابط هسته سازنده سیستم در دسترس هستند و میتوان آنها را در سطح بعدی سلسله مراتب به هستههای SERDESIF متصل کرد، همانطور که در شکل 2-7 نشان داده شده است.شکل 2-7 • اتصال اولیه سازی محیطی SERDESIF
مشابه رجیسترهای پیکربندی DDR، هر بلوک SERDES دارای رجیسترهای پیکربندی است که باید در زمان اجرا بارگذاری شوند. می توانید این مقادیر ثبت را وارد کنید یا از پیکربندی رابط سریال پرسرعت (شکل 2-8) برای وارد کردن پارامترهای PCIe یا EPCS خود استفاده کنید و مقادیر ثبت به طور خودکار برای شما محاسبه می شوند. برای جزئیات، مراجعه کنید راهنمای کاربر پیکربندی SERDES.شکل 2-8 • پیکربندی رابط سریال با سرعت بالا
هنگامی که منطق کاربری خود را با بلوک System Builder و بلوک SERDES ادغام کردید، می توانید SmartDesign سطح بالای خود را ایجاد کنید. این همه HDL و BFM را تولید می کند fileمواردی که برای پیاده سازی و شبیه سازی طرح شما ضروری است. سپس میتوانید بقیه مراحل طراحی را ادامه دهید.
استفاده از SmartDesign برای ایجاد طرح با استفاده از بلوک های DDR و SERDESIF
این بخش نحوه قرار دادن یک راه حل کامل "ابتدای سازی" را بدون استفاده از SmartFusion2 System Builder توضیح می دهد. هدف این است که به شما کمک کند تا بفهمید اگر نمی خواهید از System Builder استفاده کنید چه کاری باید انجام دهید. این بخش همچنین توضیح میدهد که ابزار System Builder واقعاً چه چیزی را برای شما ایجاد میکند. این بخش نحوه انجام:
- داده های پیکربندی کنترلر DDR و رجیسترهای پیکربندی SERDESIF را وارد کنید.
- هستههای فابریک مورد نیاز برای انتقال دادههای پیکربندی به کنترلکنندههای DDR و رجیسترهای پیکربندی SERDESIF را نمونهسازی و وصل کنید.
پیکربندی کنترلر DDR
کنترلرهای MSS DDR (MDDR) و Fabric DDR (FDDR) باید به صورت پویا (در زمان اجرا) پیکربندی شوند تا با الزامات پیکربندی حافظه DDR خارجی (حالت DDR، عرض PHY، حالت انفجاری، ECC و غیره) مطابقت داشته باشند. داده های وارد شده در پیکربندی کننده MDDR/FDDR توسط تابع ()CMSIS SystemInit در رجیسترهای پیکربندی کنترلر DDR نوشته می شود. Configurator دارای سه تب مختلف برای وارد کردن انواع مختلف داده های پیکربندی است:
- داده های عمومی (حالت DDR، عرض داده، فرکانس ساعت، ECC، رابط فابریک، قدرت درایو)
- داده های اولیه سازی حافظه (طول پشت سر هم، ترتیب پشت سر هم، حالت زمان بندی، تأخیر و غیره)
- داده های زمان بندی حافظه
به مشخصات حافظه DDR خارجی خود مراجعه کنید و کنترل کننده DDR را برای مطابقت با نیازهای حافظه DDR خارجی خود پیکربندی کنید.
برای جزئیات بیشتر در مورد پیکربندی DDR، مراجعه کنید راهنمای کاربر پیکربندی SmartFusion2 MSS DDR.
پیکربندی SERDESIF
روی بلوک SERDES در بوم SmartDesign دوبار کلیک کنید تا Configurator برای پیکربندی SERDES باز شود (شکل 3-1). می توانید این مقادیر ثبت را وارد کنید یا از پیکربندی SERDES برای وارد کردن پارامترهای PCIe یا EPCS خود استفاده کنید و مقادیر ثبت به طور خودکار برای شما محاسبه می شود. برای جزئیات، مراجعه کنید راهنمای کاربر پیکربندی SERDES.شکل 3-1 • پیکربندی رابط سریال با سرعت بالا
ایجاد زیرسیستم اولیه سازی طراحی FPGA
برای مقداردهی اولیه بلوک های DDR و SERDESIF، باید زیرسیستم اولیه سازی را در فابریک FPGA ایجاد کنید. زیرسیستم مقداردهی اولیه پارچه FPGA داده ها را از Cortex-M3 به رجیسترهای پیکربندی DDR و SERDESIF منتقل می کند، توالی های بازنشانی مورد نیاز برای عملیاتی شدن این بلوک ها را مدیریت می کند و زمانی که این بلوک ها آماده ارتباط با بقیه طرح شما هستند سیگنال می دهد. برای ایجاد زیرسیستم اولیه سازی، باید:
- FIC_2 را در داخل MSS پیکربندی کنید
- هسته های CoreConfigP و CoreResetP را نمونه سازی و پیکربندی کنید
- اسیلاتور RC 25/50 مگاهرتز روی تراشه را نمونه سازی کنید
- ماکرو System Reset (SYSRESET) را نمونه برداری کنید
- این مؤلفهها را به رابطهای پیکربندی، ساعتها، تنظیم مجدد و درگاههای قفل PLL هر دستگاه متصل کنید.
پیکربندی MSS FIC_2 APB
برای پیکربندی MSS FIC_2:
- کادر گفتگوی پیکربندی FIC_2 را از پیکربندی MSS باز کنید (شکل 3-2).
- Initialize peripherals using Cortex-M3 را انتخاب کنید.
- بسته به سیستم خود، یکی یا هر دو کادر زیر را علامت بزنید:
– MSS DDR
– بلوک های DDR و/یا SERDES پارچه ای - روی OK کلیک کنید و به تولید MSS ادامه دهید (شما می توانید این عمل را تا زمانی که MSS را به طور کامل بر اساس نیازهای طراحی خود پیکربندی کنید به تعویق بیاندازید). پورتهای FIC_2 (FIC_2_APB_MASTER، FIC_2_APB_M_PCLK و FIC_2_APB_M_RESET_N) اکنون در رابط MSS در معرض دید هستند و میتوانند به هستههای CoreConfigP و CoreResetP متصل شوند.
شکل 3-2 • MSS FIC_2 Configurator
CoreConfigP
برای پیکربندی CoreConfigP:
- CoreConfigP را در SmartDesign خود (معمولاً جایی که MSS در آن نمونه سازی می شود) Instant کنید.
این هسته را می توان در کاتالوگ Libero (در قسمت لوازم جانبی) یافت. - روی هسته دوبار کلیک کنید تا پیکربندی باز شود.
- هسته را پیکربندی کنید تا مشخص کنید کدام تجهیزات جانبی باید مقداردهی اولیه شوند (شکل 3-3)
شکل 3-3 • کادر گفتگوی CoreConfigP
CoreResetP
برای پیکربندی CoreResetP:
- CoreResetP را در SmartDesign خود (معمولاً جایی که MSS در آن نمونه سازی شده است) وارد کنید.
این هسته را می توان در کاتالوگ Libero، در قسمت لوازم جانبی یافت. - روی هسته داخل SmartDesign Canvas دوبار کلیک کنید تا Configurator باز شود (شکل 3-4).
- هسته را به صورت زیر پیکربندی کنید:
– رفتار بازنشانی خارجی را مشخص کنید (EXT_RESET_OUT ادعا شده است). یکی از چهار گزینه را انتخاب کنید:
o EXT_RESET_OUT هرگز اظهار نمی شود
o اگر تنظیم مجدد برق (POWER_ON_RESET_N) اعلام شود، EXT_RESET_OUT مشخص می شود
o اگر FAB_RESET_N ادعا شده باشد، EXT_RESET_OUT مشخص می شود
o اگر تنظیم مجدد برق (POWER_ON_RESET_N) یا FAB_RESET_N اعلام شده باشد، EXT_RESET_OUT مشخص می شود
– Device Vol را مشخص کنیدtagه. مقدار انتخاب شده باید با vol مطابقت داشته باشدtage در کادر گفتگوی تنظیمات پروژه Libero انتخاب کرده اید.
- چک باکس های مربوطه را علامت بزنید تا مشخص شود از کدام لوازم جانبی در طراحی خود استفاده می کنید.
– زمان تنظیم حافظه DDR خارجی را مشخص کنید. این حداکثر مقدار برای تمام حافظه های DDR استفاده شده در برنامه شما (MDDR و FDDR) است. برای پیکربندی این پارامتر به برگه داده فروشنده حافظه DDR خارجی مراجعه کنید. 200us یک مقدار پیش فرض خوب برای حافظه های DDR2 و DDR3 است که با فرکانس 200 مگاهرتز کار می کنند. این یک پارامتر بسیار مهم برای تضمین یک شبیه سازی کار و یک سیستم کار بر روی سیلیکون است. یک مقدار نادرست برای زمان ته نشینی ممکن است منجر به خطاهای شبیه سازی شود. برای پیکربندی این پارامتر به برگه داده فروشنده حافظه DDR مراجعه کنید.
– برای هر بلوک SERDES در طرح خود، کادرهای مناسب را علامت بزنید تا مشخص شود که آیا:
o PCIe استفاده می شود
o پشتیبانی از PCIe Hot Reset مورد نیاز است
o پشتیبانی از PCIe L2/P2 مورد نیاز است
توجه: اگر از 090 die (M2S090) استفاده میکنید و طراحی شما از SERDESIF استفاده میکند، لازم نیست هیچ یک از کادرهای زیر را علامت بزنید: «استفاده برای PCIe»، «شامل پشتیبانی از PCIe HotReset» و «شامل پشتیبانی PCIe L2/P2». اگر از هر دستگاه غیر 090 استفاده می کنید و از یک یا چند بلوک SERDESIF استفاده می کنید، باید هر چهار چک باکس را در قسمت SERDESIF مربوطه علامت بزنید.
توجه: برای جزئیات بیشتر در مورد گزینه های موجود در این پیکربندی، به راهنمای CoreResetP مراجعه کنید.
شکل 3-4 • CoreResetPConfigurator
نمونه سازی نوسان ساز 25/50 مگاهرتز
CoreConfigP و CoreResetP توسط نوسانگر RC 25/50 مگاهرتز روی تراشه کلاک می شوند. شما باید یک اسیلاتور 25/50 مگاهرتز را نمونه برداری کنید و آن را به این هسته ها متصل کنید.
- هسته اسیلاتورهای تراشه را در SmartDesign خود (معمولاً جایی که MSS در آن نمونه سازی شده است) وارد کنید. این هسته را می توان در کاتالوگ Libero در بخش ساعت و مدیریت یافت.
- همانطور که در شکل 3-5 نشان داده شده است، این هسته را طوری پیکربندی کنید که نوسانگر RC پارچه FPGA را هدایت کند.
شکل 3-5 • پیکربندی نوسان ساز تراشه
بازنشانی سیستم (SYSRESET) نمونه
ماکرو SYSRESET قابلیت بازنشانی سطح دستگاه را برای طراحی شما فراهم می کند. سیگنال خروجی POWER_ON_RESET_N هر زمان که تراشه روشن می شود یا پین خارجی DEVRST_N ثابت یا قطع می شود (شکل 3-6) اعلام یا قطع می شود.
ماکرو SYSRESET را در SmartDesign خود (معمولاً جایی که MSS در آن نمونه سازی می شود) نمونه سازی کنید. این ماکرو را می توان در کاتالوگ Libero در زیر کتابخانه Macro پیدا کرد. پیکربندی این ماکرو لازم نیست.
شکل 3-6 • ماکرو SYSRESET
قابلیت اتصال کلی
پس از اینکه هسته های MSS، FDDR، SERDESIF، OSC، SYSRESET، CoreConfigP و CoreResetP را در طراحی خود نمونه سازی و پیکربندی کردید، باید آنها را به هم متصل کنید تا زیرسیستم اولیه سازی محیطی را تشکیل دهید. برای ساده کردن توضیحات اتصال در این سند، به اتصال مسیر داده پیکربندی سازگار با APB3 مرتبط با اتصالات CoreConfigP و CoreResetP تقسیم میشود.
اتصال مسیر داده پیکربندی
شکل 3-7 نحوه اتصال CoreConfigP به سیگنال های MSS FIC_2 و رابط های پیکربندی سازگار با APB3 لوازم جانبی را نشان می دهد.
جدول 3-1 • اتصالات پورت مسیر داده پیکربندی/BIF
از رابط بندر / اتوبوس (BIF)/ جزء |
به رابط پورت / اتوبوس (BIF) / جزء |
||
APB S PRESET N/ CoreConfigP | APB S PRESET N/ SDIF<0/1/2/3> | APB S PRESET N/ FDDR |
MDDR APB S PRESE TN/MSS |
APB S PCLK/ CoreConfigP | APB S PCLK/SDIF | APB S PCLK/FDDR | MDDR APB S POLK/ MSS |
MDDR APBmslave/ CoreConfig | MDDR APB SLAVE (BIF)/MSS | ||
SDIF<0/1/2/ 3> APBmslave/Config | APB SLAVE (BIF)/ SDIF<0/1/2/3> | ||
FDDR APBmslave | APB SLAVE (BIF)/FDDR | ||
FIC 2 APBmmaster/ CoreConfigP | FIC 2 APB MASTER/ MSS |
شکل 3-7 • اتصال زیرسیستم FIC_2 APB3
ساعت و بازنشانی اتصال
شکل 3-8 نحوه اتصال CoreResetP به منابع تنظیم مجدد خارجی و سیگنال های تنظیم مجدد هسته دستگاه های جانبی را نشان می دهد. همچنین نحوه اتصال CoreResetP به سیگنالهای وضعیت همگامسازی ساعت دستگاههای جانبی (سیگنالهای قفل PLL) را نشان میدهد. علاوه بر این، نحوه اتصال CoreConfigP و CoreResetP را نشان می دهد.
شکل 3-8 • اتصال زیر سیستم هسته SF2Reset
ایجاد و کامپایل برنامه Firmware
هنگامی که سیستم عامل را از LiberoSoC صادر می کنید (Design Flow Window > Export Firmware > Export Firmware)، Libero موارد زیر را ایجاد می کند. fileدر پوشه /firmware/drivers_config/ sys_config:
- sys_config.c - شامل ساختارهای داده ای است که مقادیر را برای ثبات های جانبی نگه می دارد.
- sys_config.h – حاوی دستورات #define است که مشخص می کند کدام تجهیزات جانبی در طراحی استفاده شده و باید مقداردهی اولیه شوند.
- sys_config_mddr_define.h – حاوی داده های پیکربندی کنترلر MDDR است که در کادر محاوره ای پیکربندی Registers وارد شده است.
- sys_config_fddr_define.h – حاوی دادههای پیکربندی کنترلکننده FDDR است که در کادر محاورهای Registers Configuration وارد شده است.
- sys_config_mss_clocks.h - این file شامل فرکانس های ساعت MSS همانطور که در پیکربندی MSS CCC تعریف شده است. این فرکانسها توسط کد CMSIS برای ارائه اطلاعات صحیح ساعت به بسیاری از درایورهای MSS که باید به فرکانس ساعت محیطی (PCLK) خود دسترسی داشته باشند استفاده میشوند (مثلاً مقسومکنندههای نرخ بادی MSS UART تابعی از نرخ باود و فرکانس PCLK هستند. ).
- sys_config_SERDESIF_ ج - حاوی SERDESIF_ ثبت اطلاعات پیکربندی ارائه شده در طول SERDESIF_ پیکربندی بلوک در ایجاد طراحی
- sys_config_SERDESIF_ .h – حاوی عبارات #define است که تعداد جفتهای پیکربندی رجیستر و شماره خطی را که باید برای PMA_READY نظرسنجی شود (فقط در حالت PCIe) مشخص میکند.
اینها files برای اینکه کد CMSIS به درستی کامپایل شود و حاوی اطلاعاتی در مورد طراحی فعلی شما باشد، از جمله اطلاعات پیکربندی جانبی و اطلاعات پیکربندی ساعت برای MSS مورد نیاز است.
اینها را ویرایش نکنید fileبه صورت دستی؛ هر بار که اجزای SmartDesign حاوی تجهیزات جانبی مربوطه تولید می شوند، آنها در دایرکتوری های کامپوننت/پیرامون مربوطه ایجاد می شوند. اگر تغییراتی در دادههای پیکربندی هر یک از تجهیزات جانبی ایجاد شد، باید پروژههای میانافزار را مجدداً صادر کنید تا سیستم عامل بهروز شده files (لیست بالا را ببینید) به / پوشه firmware/drivers_config/sys_config.
هنگامی که سیستم عامل را صادر می کنید، Libero SoC پروژه های سیستم عامل را ایجاد می کند: کتابخانه ای که در آن پیکربندی طراحی شما انجام می شود. files و درایورها کامپایل شده اند.
اگر پروژه Create را بررسی کنید هنگامی که سفتافزار را صادر میکنید، یک پروژه نرمافزاری SoftConsole/IAR/Keil ایجاد میشود تا پروژه برنامه را نگه دارد، جایی که میتوانید main.c و کاربر C/H را ویرایش کنید. fileس پروژه SoftConSole/IAR/Keil را باز کنید تا کد CMSIS را به درستی کامپایل کنید و برنامه سیستم عامل شما به درستی پیکربندی شود تا با طراحی سخت افزار شما مطابقت داشته باشد.
BFM Files برای شبیه سازی طراحی استفاده می شود
هنگامی که اجزای SmartDesign را که حاوی تجهیزات جانبی مرتبط با طراحی خود هستند تولید می کنید، شبیه سازی می شود files مربوط به لوازم جانبی مربوطه در تولید می شود دایرکتوری شبیه سازی /:
- test.bfm – BFM سطح بالا file که ابتدا در طول هر شبیه سازی که پردازنده SmartFusion2 MSS Cortex-M3 را تمرین می کند، اجرا می شود. peripheral_init.bfm و user.bfm را به ترتیب اجرا می کند.
- MDDR_init.bfm - اگر طرح شما از MDDR استفاده می کند، Libero این را تولید می کند file; این شامل دستورات نوشتن BFM است که نوشتن اطلاعات ثبت پیکربندی MSS DDR را که وارد کرده اید (با استفاده از کادر گفتگوی Edit Registers یا در GUI MSS_MDDR) در رجیسترهای MSS DDR Controller شبیه سازی می کند.
- FDDR_init.bfm - اگر طراحی شما از FDDR استفاده می کند، Libero این را ایجاد می کند file; این شامل دستورات نوشتن BFM است که نوشتن اطلاعات ثبت پیکربندی Fabric DDR را که وارد کرده اید (با استفاده از کادر گفتگوی Edit Registers یا در GUI FDDR) در رجیسترهای Fabric DDR Controller شبیه سازی می کند.
- SERDESIF_ _init.bfm - اگر طرح شما از یک یا چند بلوک SERDESIF استفاده می کند، Libero این را تولید می کند file برای هر یک از SERDESIF_ بلوک های مورد استفاده؛ این شامل دستورات نوشتن BFM است که نوشتن اطلاعات ثبت پیکربندی SERDESIF را که وارد کرده اید (با استفاده از کادر گفتگوی Edit Registers یا در SERDESIF_) شبیه سازی می کند. رابط کاربری گرافیکی) به SERDESIF_ ثبت می کند. اگر بلوک SERDESIF به عنوان PCIe پیکربندی شده باشد، این file همچنین دارای دستورات #define است که اجرای 2 مرحله پیکربندی ثبات را به ترتیب کامل کنترل می کند.
- user.bfm - شامل دستورات کاربر است. این دستورات پس از تکمیل peripheral_init.bfm اجرا می شوند. این را ویرایش کنید file تا دستورات BFM خود را وارد کنید.
- SERDESIF_ _user.bfm - شامل دستورات کاربر است. این را ویرایش کنید file تا دستورات BFM خود را وارد کنید. اگر SERDESIF_ را پیکربندی کرده اید از این استفاده کنید بلوک در حالت شبیه سازی BFM PCIe و به عنوان یک استاد AXI/AHBLite. اگر SERDESIF_ را پیکربندی کرده اید در حالت شبیه سازی RTL بلاک کنید، به این نیاز نخواهید داشت file.
هنگامی که شما هر بار شبیه سازی را فراخوانی می کنید، دو شبیه سازی زیر files دوباره ایجاد می شوند دایرکتوری شبیه سازی با محتوای به روز شده:
- subsystem.bfm - حاوی دستورات #define برای هر وسیله جانبی مورد استفاده در طراحی شما است که بخش خاصی از محیطی_init.bfm را مشخص می کند که مربوط به هر وسیله جانبی اجرا می شود.
- operipheral_init.bfm – شامل رویه BFM است که تابع CMSIS:: SystemInit() اجرا شده در Cortex-M3 را قبل از ورود به رویه main() اجرا می کند. دادههای پیکربندی برای هر وسیله جانبی مورد استفاده در طراحی را در رجیسترهای پیکربندی محیطی صحیح کپی میکند و سپس منتظر میماند تا همه دستگاههای جانبی آماده شوند قبل از اینکه ادعا کند میتوانید از این لوازم جانبی استفاده کنید. MDDR_init.bfm و FDDR_init.bfm را اجرا می کند.
با استفاده از این تولید شده است files، کنترلکنندههای DDR در طراحی شما بهطور خودکار پیکربندی میشوند و آنچه را که در دستگاه SmartFusion2 اتفاق میافتد شبیهسازی میکنند. می توانید user.bfm را ویرایش کنید file برای اضافه کردن هر گونه دستور مورد نیاز برای شبیه سازی طراحی خود (Cortex-M3 اصلی است). این دستورات پس از راه اندازی اولیه دستگاه های جانبی اجرا می شوند. test.bfm، subsystem.bfm، peripheral_init.bfm، MDDR_init.bfm، FDDR_init.bfm را ویرایش نکنید files و SERDESIF_ _init.bfm files.
پشتیبانی محصول
گروه محصولات Microsemi SoC از محصولات خود با خدمات پشتیبانی مختلف از جمله خدمات مشتری، مرکز پشتیبانی فنی مشتری، پشتیبانی می کند. webسایت، پست الکترونیکی و دفاتر فروش در سراسر جهان.
این پیوست حاوی اطلاعاتی در مورد تماس با گروه محصولات Microsemi SoC و استفاده از این خدمات پشتیبانی است.
خدمات مشتری
برای پشتیبانی غیر فنی محصول، مانند قیمت گذاری محصول، ارتقاء محصول، اطلاعات به روز رسانی، وضعیت سفارش و مجوز، با خدمات مشتری تماس بگیرید.
از آمریکای شمالی تماس بگیرید 800.262.1060
از بقیه دنیا تماس بگیرید 650.318.4460
فکس، از هر کجای دنیا، 408.643.6913
مرکز پشتیبانی فنی مشتریان
گروه محصولات Microsemi SoC مرکز پشتیبانی فنی مشتریان خود را با مهندسین بسیار ماهر تشکیل می دهد که می توانند به سوالات سخت افزاری، نرم افزاری و طراحی شما در مورد محصولات Microsemi SoC پاسخ دهند. مرکز پشتیبانی فنی مشتری زمان زیادی را صرف ایجاد یادداشت های برنامه، پاسخ به سؤالات رایج چرخه طراحی، مستندسازی مسائل شناخته شده و سؤالات متداول مختلف می کند. بنابراین، قبل از تماس با ما، لطفا از منابع آنلاین ما بازدید کنید. به احتمال زیاد ما قبلا به سوالات شما پاسخ داده ایم.
پشتیبانی فنی
به بخش پشتیبانی مشتری مراجعه کنید webسایت (www.microsemi.com/soc/support/search/default.aspx) برای اطلاعات بیشتر و پشتیبانی. پاسخ های زیادی در جستجو در دسترس است web منابع شامل نمودارها، تصاویر، و پیوندهایی به منابع دیگر در webسایت
Webسایت
شما می توانید انواع اطلاعات فنی و غیر فنی را در صفحه اصلی SoC، در www.microsemi.com/soc.
تماس با مرکز پشتیبانی فنی مشتریان
مهندسان بسیار ماهر مرکز پشتیبانی فنی را کار می کنند. با مرکز پشتیبانی فنی می توان از طریق ایمیل یا از طریق گروه محصولات Microsemi SoC تماس گرفت webسایت
ایمیل
شما می توانید سوالات فنی خود را به آدرس ایمیل ما در میان بگذارید و پاسخ ها را از طریق ایمیل، فکس یا تلفن دریافت کنید. همچنین اگر مشکل طراحی دارید می توانید طرح خود را ایمیل کنید fileبرای دریافت کمک.
ما دائماً حساب ایمیل را در طول روز نظارت می کنیم. هنگام ارسال درخواست خود برای ما، لطفاً نام کامل، نام شرکت و اطلاعات تماس خود را برای پردازش کارآمد درخواست خود درج کنید.
آدرس ایمیل پشتیبانی فنی است soc_tech@microsemi.com.
موارد من
مشتریان Microsemi SoC Products Group می توانند موارد فنی را به صورت آنلاین با مراجعه به آن ارسال و پیگیری کنند موارد من.
خارج از آمریکا
مشتریانی که در خارج از مناطق زمانی ایالات متحده نیاز به کمک دارند می توانند از طریق ایمیل با پشتیبانی فنی تماس بگیرند (soc_tech@microsemi.com) یا با یک دفتر فروش محلی تماس بگیرید. لیست دفتر فروش را می توان در این آدرس یافت www.microsemi.com/soc/company/contact/default.aspx.
پشتیبانی فنی ITAR
برای پشتیبانی فنی در مورد FPGA های RH و RT که توسط مقررات بین المللی ترافیک اسلحه (ITAR) تنظیم می شوند، از طریق ما تماس بگیرید soc_tech_itar@microsemi.com. یا در موارد من، بله را در لیست کشویی ITAR انتخاب کنید. برای لیست کاملی از FPGA های Microsemi تنظیم شده توسط ITAR، از ITAR دیدن کنید web صفحه
Microsemi Corporation (NASDAQ: MSCC) مجموعه ای جامع از راه حل های نیمه هادی را برای موارد زیر ارائه می دهد: هوافضا، دفاع و امنیت؛ شرکت و ارتباطات؛ و بازارهای انرژی صنعتی و جایگزین. محصولات شامل دستگاههای آنالوگ و RF با کارایی بالا، مدارهای مجتمع سیگنال و RF، SoCهای قابل تنظیم، FPGA و زیرسیستمهای کامل هستند. دفتر مرکزی Microsemi در Aliso Viejo، کالیفرنیا قرار دارد. بیشتر بدانید در www.microsemi.com.
© 2014 Microsemi Corporation. تمامی حقوق محفوظ است. Microsemi و نشان Microsemi علائم تجاری Microsemi Corporation هستند. سایر علائم تجاری و علائم خدماتی متعلق به صاحبان مربوطه می باشند.
5-02-00384-1/08.14دفتر مرکزی شرکت میکروسمی
One Enterprise، Aliso Viejo CA 92656 USA
در ایالات متحده آمریکا: +1 949-380-6100
فروش: +1 949-380-6136
فکس: +1 949-215-4996
اسناد / منابع
![]() |
کنترلر Microsemi SmartFusion2 DDR و کنترلر سریال سرعت بالا [pdfراهنمای کاربر کنترلر SmartFusion2 DDR و کنترلر پرسرعت سریال، SmartFusion2 DDR، کنترلر و کنترلر سریع سریال، کنترل کننده سرعت بالا |