#SDSoC
✳️ آموزش مقدماتی مجموعه نرم افزاری SDSoC
4️⃣ قسمت چهارم - ساخت یک پروژه جدید در ابزار طراحی SDSoC
🔖این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development with Xilinx SDSoC ارائه شده است.
https://www.aparat.com/v/s5w87
@Hexalinx
✳️ آموزش مقدماتی مجموعه نرم افزاری SDSoC
4️⃣ قسمت چهارم - ساخت یک پروژه جدید در ابزار طراحی SDSoC
🔖این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development with Xilinx SDSoC ارائه شده است.
https://www.aparat.com/v/s5w87
@Hexalinx
آپارات - سرویس اشتراک ویدیو
4- ساخت یک پروژه جدید در ابزار طراحی SDSoC
آموزش مقدماتی مجموعه نرم افزاری SDSoC. قسمت چهارم- ساخت یک پروژه جدید در ابزار طراحی SDSoC . این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development with Xilinx SDSoC ارائه شده است
#SDSoC
✳️ آموزش مقدماتی مجموعه نرم افزاری SDSoC
5️⃣ قسمت آخر - روش های بهینه سازی طرح در SDSoC
🔖این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development with Xilinx SDSoC ارائه شده است.
https://www.aparat.com/v/rNByu
@Hexalinx
✳️ آموزش مقدماتی مجموعه نرم افزاری SDSoC
5️⃣ قسمت آخر - روش های بهینه سازی طرح در SDSoC
🔖این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development with Xilinx SDSoC ارائه شده است.
https://www.aparat.com/v/rNByu
@Hexalinx
آپارات - سرویس اشتراک ویدیو
5- روش های بهینه سازی طرح در SDSoC
آموزش مقدماتی مجموعه نرم افزاری SDSoC. قسمت پنجم- روش های بهینه سازی طرح در SDSoC . این مجموعه به صورت رایگان در Udemy تحت عنوان Zynq Development
برای اطلاعات بیشتر می توانید ما را در کانال تلگرام Hexalinx و سایت Hexalinx.com دنبال کنید.
برای اطلاعات بیشتر می توانید ما را در کانال تلگرام Hexalinx و سایت Hexalinx.com دنبال کنید.
#Digital_Clock_Manager, #DCM
#Clock_Managment_Tile, #CMT
#Essentials
✅ معرفی منابع کلاک روی تراشه Spartan 6
✳️ تراشه Spartan 6 دارای دو شبکه کلاک کاملا متفاوت است.
1️⃣ شبکه اول Global Clock Network نام دارد و برای تامین کلاک واحدهای مختلف درون تراشه نظیر CLB ها و بلوک های حافظه بکار گرفته می شود. این شبکه می تواند حداکثر 16 کلاک متفاوت را پشتیبانی کند. حداکثر کلاک قابل پذیرش در این شبکه حدود 400 مگاهرتز است.
2️⃣ شبکه دوم IO Clock Network نام دارد و وظیفه آن تامین کلاک مورد نیاز برای بلوک های ورودی خروجی تراشه است. این شبکه قادر به پشتیبانی از قابلیت SerDes با حداکثر فرکانس کلاک 1 گیگاهرتز است که در ارتباطات پرسرعت مورد استفاده قرار می گیرند. اگر FPGA را به 4 قسمت تقسیم کنیم هر بخش دارای 8 بلوک کلاک IO است که در مجموع 32 بلوک کلاک IO می شود.
تراشه های Spartan 6 درای دو بلوک مدیریت کلاک به نام DCM و یک بلوک حلقه قفل فاز PLL در هر CMT هستند. در هر تراشه Spartan 6 بین یک تا شش CMT وجود دارد
@Hexalinx
#Clock_Managment_Tile, #CMT
#Essentials
✅ معرفی منابع کلاک روی تراشه Spartan 6
✳️ تراشه Spartan 6 دارای دو شبکه کلاک کاملا متفاوت است.
1️⃣ شبکه اول Global Clock Network نام دارد و برای تامین کلاک واحدهای مختلف درون تراشه نظیر CLB ها و بلوک های حافظه بکار گرفته می شود. این شبکه می تواند حداکثر 16 کلاک متفاوت را پشتیبانی کند. حداکثر کلاک قابل پذیرش در این شبکه حدود 400 مگاهرتز است.
2️⃣ شبکه دوم IO Clock Network نام دارد و وظیفه آن تامین کلاک مورد نیاز برای بلوک های ورودی خروجی تراشه است. این شبکه قادر به پشتیبانی از قابلیت SerDes با حداکثر فرکانس کلاک 1 گیگاهرتز است که در ارتباطات پرسرعت مورد استفاده قرار می گیرند. اگر FPGA را به 4 قسمت تقسیم کنیم هر بخش دارای 8 بلوک کلاک IO است که در مجموع 32 بلوک کلاک IO می شود.
تراشه های Spartan 6 درای دو بلوک مدیریت کلاک به نام DCM و یک بلوک حلقه قفل فاز PLL در هر CMT هستند. در هر تراشه Spartan 6 بین یک تا شش CMT وجود دارد
@Hexalinx
#Codding_Guide
✅ تکنیک های کدنویسی در FPGA
✳️ چندین بار در این کانال به این مورد اشاره کردیم که آشنایی با منابع درون تراشه از اهمیت بالایی در طراحی برخوردار است و دستیابی به حداکثر کارایی تنها به وابسته شناخت دقیق این منابع امکان پذیر است، اما سوال اینجاست که آیا می توان همه این منابع را با کد نویسی HDL فراخوانی کرد یا خیر؟ آیا محدودیتی وجود دارد؟ 👇👇
@Hexalinx
✅ تکنیک های کدنویسی در FPGA
✳️ چندین بار در این کانال به این مورد اشاره کردیم که آشنایی با منابع درون تراشه از اهمیت بالایی در طراحی برخوردار است و دستیابی به حداکثر کارایی تنها به وابسته شناخت دقیق این منابع امکان پذیر است، اما سوال اینجاست که آیا می توان همه این منابع را با کد نویسی HDL فراخوانی کرد یا خیر؟ آیا محدودیتی وجود دارد؟ 👇👇
@Hexalinx
#Essentials
🔖پاسخ سوال فوق بله است. تمامی منابع و عناصر اصلی درون FPGA با کدنویسی قابل استنتاج نیستند. از نقطه نظر نحوه استنتاج منابع روی تراشه های FPGA به سه دسته تقسیم می شوند.
1️⃣ دسته اول منابعی هستند که توسط تمامی ابزارهای سنتز قابل استنتاج هستند. مثل شیفیت رجیسترها #SRLs ، مالتی پلکسرهای عریض #F7 و #F8 ، زنجیره بیت نقلی #Carry_Chain ، بلوک های ضرب کننده #DSP_Blocks ، بافرهای سرتاسری کلاک #BUFG ، بافرهای ورودی خروجی ساده #IOBUF و بافرهای ورودی DDR یا #IDDR .
2️⃣ دسته دوم منابعی هستند که تنها توسط برخی از ابزارهای سنتز قابل فراخوانی هستند. مهمترین عناصر در این دسته،
بلوک های حافظه #Block_RAMs ، بافرهای سرتاسری خاص منظوره کلاک
همچون #BUFGCE هستن. علاوه بر این برخی از فانکشنالیتی های خاص در بلوک های ضرب کننده نیز ممکن است توسط ابزارهای سنتز قابل استنتاج باشد.
3️⃣ دسته سوم منابعی هستند که به هیچ وجه به صورت اتوماتیک توسط ابزارهای سنتز قابل استنتاج نیستند و تنها راه استفاده از آن ها استفاده از primitive های آماده داخل کتابخانه های شرکت سازنده و یا استفاده از IP Core ها است. از آن جمله می توان به اینترفیس های تفاضلی روی IO ها ، بافرهای خروجی DDR یا #ODDR ، بلوک های مدیریت کلاک #DCM و #PLL و بافرهای محلی کلاک همچون #BUFR و #BUFIO اشاره کرد.
❗️استفاده از primitive ها در برنامه نویسی HDL یک تکنیک بسیار مناسب برای فراخوانی منابع است و به شدت توسط سازندگانی تراشه های قابل برنامه ریزی توصیه شده است. در واقع primitive ها به صورت قطعه کدهای آماده و در قالب یک کامپوننت توسط طراح بین سایر کدهای HDL قرار داده می شوند و یک بخش خاص از تراشه را فراخوانی می کنند. به طور کلی به عمل فراخوانی و قرار دادن کامپوننت ها درون کدها instantiation گفته می شود.
@Hexalinx
🔖پاسخ سوال فوق بله است. تمامی منابع و عناصر اصلی درون FPGA با کدنویسی قابل استنتاج نیستند. از نقطه نظر نحوه استنتاج منابع روی تراشه های FPGA به سه دسته تقسیم می شوند.
1️⃣ دسته اول منابعی هستند که توسط تمامی ابزارهای سنتز قابل استنتاج هستند. مثل شیفیت رجیسترها #SRLs ، مالتی پلکسرهای عریض #F7 و #F8 ، زنجیره بیت نقلی #Carry_Chain ، بلوک های ضرب کننده #DSP_Blocks ، بافرهای سرتاسری کلاک #BUFG ، بافرهای ورودی خروجی ساده #IOBUF و بافرهای ورودی DDR یا #IDDR .
2️⃣ دسته دوم منابعی هستند که تنها توسط برخی از ابزارهای سنتز قابل فراخوانی هستند. مهمترین عناصر در این دسته،
بلوک های حافظه #Block_RAMs ، بافرهای سرتاسری خاص منظوره کلاک
همچون #BUFGCE هستن. علاوه بر این برخی از فانکشنالیتی های خاص در بلوک های ضرب کننده نیز ممکن است توسط ابزارهای سنتز قابل استنتاج باشد.
3️⃣ دسته سوم منابعی هستند که به هیچ وجه به صورت اتوماتیک توسط ابزارهای سنتز قابل استنتاج نیستند و تنها راه استفاده از آن ها استفاده از primitive های آماده داخل کتابخانه های شرکت سازنده و یا استفاده از IP Core ها است. از آن جمله می توان به اینترفیس های تفاضلی روی IO ها ، بافرهای خروجی DDR یا #ODDR ، بلوک های مدیریت کلاک #DCM و #PLL و بافرهای محلی کلاک همچون #BUFR و #BUFIO اشاره کرد.
❗️استفاده از primitive ها در برنامه نویسی HDL یک تکنیک بسیار مناسب برای فراخوانی منابع است و به شدت توسط سازندگانی تراشه های قابل برنامه ریزی توصیه شده است. در واقع primitive ها به صورت قطعه کدهای آماده و در قالب یک کامپوننت توسط طراح بین سایر کدهای HDL قرار داده می شوند و یک بخش خاص از تراشه را فراخوانی می کنند. به طور کلی به عمل فراخوانی و قرار دادن کامپوننت ها درون کدها instantiation گفته می شود.
@Hexalinx
#Jitter
#Essentials
✅ به طور کلی سیگنال کلاک غالبا با دو پارامتر فرکانس یا پریود و دوره تناوب (Duty Cycle) معرفی می شود. اما این دو پارامتر تنها مشخصه های کلاسیک یک سیگنال کلاک هستند. مفهوم کلاک جیتر #jitter یکی دیگر از مشخصه هایی است که در توصیف میزان دقت یک سیگنال کلاک یا منبع تولید کننده کلاک ارائه می شود. کلاک جیتر بیانگر میزان انحراف لبه های کلاک از موقعیت ایده آل خودشان است، به عبارت ساده تر کم یا زیاد شدن یک پریود کلاک به دلیل جابجایی مثبت یا منفی لبه های بالا و پایین رونده کلاک.
❗️این پدیده غالبا به دلیل نویز موجود در منبع تولید کننده کلاک، نویز مدارات تغذیه و یا اختلالات ناشی از مدارهای جانبی در یک سیستم رخ می دهد. در طراحی FPGA جیتر غالبا به صورت یک پارامتر و تحت عنوان جیتر ورودی برای ابزار پیاده سازی تعریف می شود، و تعیین دقیق آن نقش مهمی در دستیابی به زمانبندی مناسب در یک طراحی ایفا می کند.
@Hexalinx
#Essentials
✅ به طور کلی سیگنال کلاک غالبا با دو پارامتر فرکانس یا پریود و دوره تناوب (Duty Cycle) معرفی می شود. اما این دو پارامتر تنها مشخصه های کلاسیک یک سیگنال کلاک هستند. مفهوم کلاک جیتر #jitter یکی دیگر از مشخصه هایی است که در توصیف میزان دقت یک سیگنال کلاک یا منبع تولید کننده کلاک ارائه می شود. کلاک جیتر بیانگر میزان انحراف لبه های کلاک از موقعیت ایده آل خودشان است، به عبارت ساده تر کم یا زیاد شدن یک پریود کلاک به دلیل جابجایی مثبت یا منفی لبه های بالا و پایین رونده کلاک.
❗️این پدیده غالبا به دلیل نویز موجود در منبع تولید کننده کلاک، نویز مدارات تغذیه و یا اختلالات ناشی از مدارهای جانبی در یک سیستم رخ می دهد. در طراحی FPGA جیتر غالبا به صورت یک پارامتر و تحت عنوان جیتر ورودی برای ابزار پیاده سازی تعریف می شود، و تعیین دقیق آن نقش مهمی در دستیابی به زمانبندی مناسب در یک طراحی ایفا می کند.
@Hexalinx
#Basic
#2’s_Complement
✅ الفبای محاسبات علامت دار در FPGA
✳️ برای پیاده سازی الگوریتم های پردازش سیگنال و به طور کلی محاسبات ریاضی در FPGA اولین دانشی که لازم است فراگرفته شود، نحوه نمایش اعداد علامت دار درون کدهای HDL است.
در این مقاله کوتاه ابتدا انواع روش های نمایش اعداد علامت دار، و ویژگی های هر کدام معرفی می شود و سپس انواع داده ها و کتابخانه های مورد نیاز برای انجام محاسبات علامت دار معرفی می شود.
این مقاله به مرور به همراه ویدیو بروز رسانی می شود و در سایت منتشر می شود. 👇👇
@Hexalinx
#2’s_Complement
✅ الفبای محاسبات علامت دار در FPGA
✳️ برای پیاده سازی الگوریتم های پردازش سیگنال و به طور کلی محاسبات ریاضی در FPGA اولین دانشی که لازم است فراگرفته شود، نحوه نمایش اعداد علامت دار درون کدهای HDL است.
در این مقاله کوتاه ابتدا انواع روش های نمایش اعداد علامت دار، و ویژگی های هر کدام معرفی می شود و سپس انواع داده ها و کتابخانه های مورد نیاز برای انجام محاسبات علامت دار معرفی می شود.
این مقاله به مرور به همراه ویدیو بروز رسانی می شود و در سایت منتشر می شود. 👇👇
@Hexalinx
#Static_Timing_Paths
#Intermediate
✅ تعریف مسیرهای زمانبندی ایستا (Static Timing Paths)
مسیر زمانبندی ایستا، مسیری است که
1️⃣ از یک عنصر کلاک دار شروع می شود
2️⃣ در طول تعدادی عنصر ترکیبی و نت های متصل کننده آنها منتشر می شود و
3️⃣ به یک عنصر کلاک دار ختم می شود.
عناصر کلاک دار شامل فلیپ فلاپ ها، بلوک های ضرب کننده، حافظه ها و ... هستند.
عناصر ترتیبی شامل LUT ها، مالتی پلکسرها و ... هستند.
🔖 در عمل آنالیز زمان بندی ایستا تنها برای بخشهایی از مدار که بین دو عنصر سنکرون قرار دارند صورت می پذیرد و مسیرهای فاقد عنصر سنکرون نادیده گرفته می شوند، به بیان ساده تر آنالیز زمان بندی برای مدارات ترکیبی کاملا بی معنی است.
@Hexalinx
#Intermediate
✅ تعریف مسیرهای زمانبندی ایستا (Static Timing Paths)
مسیر زمانبندی ایستا، مسیری است که
1️⃣ از یک عنصر کلاک دار شروع می شود
2️⃣ در طول تعدادی عنصر ترکیبی و نت های متصل کننده آنها منتشر می شود و
3️⃣ به یک عنصر کلاک دار ختم می شود.
عناصر کلاک دار شامل فلیپ فلاپ ها، بلوک های ضرب کننده، حافظه ها و ... هستند.
عناصر ترتیبی شامل LUT ها، مالتی پلکسرها و ... هستند.
🔖 در عمل آنالیز زمان بندی ایستا تنها برای بخشهایی از مدار که بین دو عنصر سنکرون قرار دارند صورت می پذیرد و مسیرهای فاقد عنصر سنکرون نادیده گرفته می شوند، به بیان ساده تر آنالیز زمان بندی برای مدارات ترکیبی کاملا بی معنی است.
@Hexalinx
#Clock_Skew
#Intermediate
✅ کجی کلاک چیست و چه عملکردی روی سیستم دارد؟
✳️ واژه کجی کلاک معادل فارسی عبارت Clock Skew است که گاها کجی زمانبندی نیز نامیده می شود. پدیده ای در مدارات دیجیتال سنکرون است که در آن دو بلوک که از یک منبع کلاک تغذیه می شوند به دلیل وجود تاخیر در مسیر کلاک متصل به آن دو عنصر در دو زمان متفاوت یا با یک تاخیر کوتاه نسبت به هم به لحاظ زمانی کلاک را دریافت می کنند.
برای تحلیل کجی کلاک و از بین بردن تاثیر منفی آن در عملکرد سیستم دو آنالیز setup time و hold time انجام می شود. برای محاسبه پارامترهای setup time و hold time لازم است، اختلاف زمانی بین تاخیر سیگنال کلاک تا عنصر سنکرون مقصد نسبت به تاخیر کلاک تا عنصر سنکرون مبدا در مسیر انتقال داده محاسبه شود (به شکل مراجعه شود)
@Hexalinx
#Intermediate
✅ کجی کلاک چیست و چه عملکردی روی سیستم دارد؟
✳️ واژه کجی کلاک معادل فارسی عبارت Clock Skew است که گاها کجی زمانبندی نیز نامیده می شود. پدیده ای در مدارات دیجیتال سنکرون است که در آن دو بلوک که از یک منبع کلاک تغذیه می شوند به دلیل وجود تاخیر در مسیر کلاک متصل به آن دو عنصر در دو زمان متفاوت یا با یک تاخیر کوتاه نسبت به هم به لحاظ زمانی کلاک را دریافت می کنند.
برای تحلیل کجی کلاک و از بین بردن تاثیر منفی آن در عملکرد سیستم دو آنالیز setup time و hold time انجام می شود. برای محاسبه پارامترهای setup time و hold time لازم است، اختلاف زمانی بین تاخیر سیگنال کلاک تا عنصر سنکرون مقصد نسبت به تاخیر کلاک تا عنصر سنکرون مبدا در مسیر انتقال داده محاسبه شود (به شکل مراجعه شود)
@Hexalinx
🔔
✅ سخت افزارها، سرعت و ظرفیت پردازش سیستمها را بالا میبرند و نرمافزارها، سرعت پردازشی ماشینها را به چالش میکشند. برای رسیدن به حداکثر ظرفیت پردازشی چارهای جز بهینه سازی توام سخت افزار و نرم افزار نداریم. دنیای FPGA و Zynq مصداق بارز این حقیقت فراموش شده است.
✅ ما عید غدیر امسال را به عنوان نقطه شروع ماجراجویی در نظر گرفتیم. ماه ها زحمت کشیده شده تا سایتی برای معرفی تکنیک های پیاده سازی و آموزش مرتبط با تراشه های FPGA و Zynq برای شما دوستداران و علاقمندان گردآوری شود تا در هر زمان و شرایطی پاسخ گوی نیاز شما عزیزان باشد.
🔖 امروز شما دعوت هستید به افتتاحیه سایت هگزالینکس مورخ ۲۹ مرداد ۹۸ مصادف با عید غدیر به نشانی www.hexalinx.com
@Hexalinx
✅ سخت افزارها، سرعت و ظرفیت پردازش سیستمها را بالا میبرند و نرمافزارها، سرعت پردازشی ماشینها را به چالش میکشند. برای رسیدن به حداکثر ظرفیت پردازشی چارهای جز بهینه سازی توام سخت افزار و نرم افزار نداریم. دنیای FPGA و Zynq مصداق بارز این حقیقت فراموش شده است.
✅ ما عید غدیر امسال را به عنوان نقطه شروع ماجراجویی در نظر گرفتیم. ماه ها زحمت کشیده شده تا سایتی برای معرفی تکنیک های پیاده سازی و آموزش مرتبط با تراشه های FPGA و Zynq برای شما دوستداران و علاقمندان گردآوری شود تا در هر زمان و شرایطی پاسخ گوی نیاز شما عزیزان باشد.
🔖 امروز شما دعوت هستید به افتتاحیه سایت هگزالینکس مورخ ۲۹ مرداد ۹۸ مصادف با عید غدیر به نشانی www.hexalinx.com
@Hexalinx
✅ در این سایت با کیفیت ترین و مهمترین نکات آموزشی را در کنار کاربردی ترین مفاهیمِ پیاده سازی، در اختیار شما عزیزان میگذاریم. اگر به دنبال یادگیری های عمیق و آموزش های کلیدی و استفاده بهینه از اندوختههای خودتان هستید این سایت می تواند به شما کمک کند و دریچه ی جدیدی را به رویتان باز کند و لذت یادگیری در کنار مطالب ارزشمند برایتان آسان تر شود.
🙏 اینکه افتخار همراهی با شما دوستداران و علاقمندان به این مباحث خاص و ارزشمند را داریم به ما انگیزه میدهد که هر چه بیشتر و بهتر برای شما عزیزان قدمهای قدرتمندتری برداریم.
همراهی دوستان قدیمی برایمان بسیار ارزشمند بوده و هست و آشناشدن با همراهان جدید برای ما بسیار لذت بخش خواهد بود. هنوز راه زیادی تا رسیدن به هدف نهایی داریم، در این راه گام به گام پیش می رویم، یاد میگیریم، به اشتراک می گذاریم.
❗️لطفا با بازخوردهای مناسب ما را در نیل به این هدف همراهی کنید.
❗️ما را در شبکههای اجتماعی دنبال کنید و اگر از کیفیت مطالب رضایت داشتید، ما را به دوستان خود معرفی کنید.
❗️در حال حاضر وبلاگ به صورت کامل راه اندازی شده و سایر بخش ها نیز به مرور تکمیل می گردد.
@Hexalinx
🙏 اینکه افتخار همراهی با شما دوستداران و علاقمندان به این مباحث خاص و ارزشمند را داریم به ما انگیزه میدهد که هر چه بیشتر و بهتر برای شما عزیزان قدمهای قدرتمندتری برداریم.
همراهی دوستان قدیمی برایمان بسیار ارزشمند بوده و هست و آشناشدن با همراهان جدید برای ما بسیار لذت بخش خواهد بود. هنوز راه زیادی تا رسیدن به هدف نهایی داریم، در این راه گام به گام پیش می رویم، یاد میگیریم، به اشتراک می گذاریم.
❗️لطفا با بازخوردهای مناسب ما را در نیل به این هدف همراهی کنید.
❗️ما را در شبکههای اجتماعی دنبال کنید و اگر از کیفیت مطالب رضایت داشتید، ما را به دوستان خود معرفی کنید.
❗️در حال حاضر وبلاگ به صورت کامل راه اندازی شده و سایر بخش ها نیز به مرور تکمیل می گردد.
@Hexalinx
✅ پیاده سازی لگاریتم در FPGA
✳️ یکی از مهترین ویژگیهای تراشههای FPGA قابلیتهای آنها در پیادهسازی انواع توابع ریاضی است. توابع ریاضی ممکن است گاها بسیار ساده و ترکیبی از چند عمل ضرب و جمع باشند. بعضا نیز ممکن است شامل عملگرهای غیرخطی همچون لگاریتم یا توابع مثلثاتی باشند. اگر مدتهاست با تراشه های FPGA کار میکنید، مطمئنا میدانید که برای پیادهسازی تابع لگاریتم IPCore آماده وجود ندارد. پس در صورتی که نیار به محاسبه لگاریتم در یک الگوریتم داشته باشید باید خودتان آستینها را بالا بزنید و کار را شروع کنید.
@Hexalinx
https://t.me/iv?url=http%3A%2F%2Fhexalinx.com%2Fprogramming%2Ffpga-implementation-of-logarithm%2F&rhash=f4c70bc3a5c788
✳️ یکی از مهترین ویژگیهای تراشههای FPGA قابلیتهای آنها در پیادهسازی انواع توابع ریاضی است. توابع ریاضی ممکن است گاها بسیار ساده و ترکیبی از چند عمل ضرب و جمع باشند. بعضا نیز ممکن است شامل عملگرهای غیرخطی همچون لگاریتم یا توابع مثلثاتی باشند. اگر مدتهاست با تراشه های FPGA کار میکنید، مطمئنا میدانید که برای پیادهسازی تابع لگاریتم IPCore آماده وجود ندارد. پس در صورتی که نیار به محاسبه لگاریتم در یک الگوریتم داشته باشید باید خودتان آستینها را بالا بزنید و کار را شروع کنید.
@Hexalinx
https://t.me/iv?url=http%3A%2F%2Fhexalinx.com%2Fprogramming%2Ffpga-implementation-of-logarithm%2F&rhash=f4c70bc3a5c788
هگزالینکس
پیاده سازی لگاریتم در FPGA
به طور کلی پاسخ عبارت لگاریتم در مبنای دو عدد x از دو بخش صحیح و اعشاری تشکیل شده است که باید به صورت جداگانه محاسبه شوند و در نهایت باهم جمع شوند.
#ODDR
#IOB
✅ تولید یک کپی از کلاک درون سیستم به روی پین های تراشه FPGA
✳️ مواردی فراوانی وجود دارد که در آن طراح نیاز دارد با استفاده از FPGA کلاک مورد نیاز برای یکی از قطعات روی بورد را تولید کند، این کلاک ممکن است کلاک اصلی FPGA و یا یک کلاک تولید شده درون FPGA با استفاده از بلوکهای MMCM یا DCM باشد.
@Hexalinx
#IOB
✅ تولید یک کپی از کلاک درون سیستم به روی پین های تراشه FPGA
✳️ مواردی فراوانی وجود دارد که در آن طراح نیاز دارد با استفاده از FPGA کلاک مورد نیاز برای یکی از قطعات روی بورد را تولید کند، این کلاک ممکن است کلاک اصلی FPGA و یا یک کلاک تولید شده درون FPGA با استفاده از بلوکهای MMCM یا DCM باشد.
@Hexalinx
#Intermediate
✳️ براساس توصیه Xilinx برای ساخت یک کپی از کلاک روی پینهای تراشه و استفاده از آن خارج از FPGA بهتر است از یک الگوی خاص و استاندارد استفاده شود. این الگو Clock Forwarding نام دارد.
✳️ برای این کار باید از بلوک ODDR در داخل IOB های تراشه های سری ۷ یا بلوک ODDR2 در تراشه های Spartan 6 استفاده کرد.
✳️ برای تراشه های سری ۷ کافیست پایه D1 در ورودی ODDR به مقدار منطقی ‘1’ و پایه D2 باید به مقدار منطقی ‘0’ متصل بشود و کلاکی که باید خروجی شود به پایه C متصل شود. به این ترتیب یک کپی از کلاک روی پین تراشه قرار داده میشود. در این بلوک پایههای ست و ریست (S/R) به صورت همزمان پشتیبانی نمیشوند.
✳️ استفاده از ODDR2 در تراشههای Spartan 6 تا حدودی متفاوت است، برای خروجی کردن یک کلاک روی پایههای تراشهها باید از DCM نیز کمک بگیریم و یک کلاک با اختلاف فاز ۱۸۰ درجه تولید کنیم. کلاک اصلی به پایه C0 و کلاک تولیدی با اختلاف فاز ۱۸۰ درجه به پایه C1 متصل میشود. پایه های D0 و D1 مشابه پایههای D1 و D2 در سری 7 هستند. استفاده همزمان از ست و ریست هم توصیه نمیشود و ممکن است به خطا منتهی شود.
❗️عملکرد پورت فعال ساز کلاک در هر دو primitive یکسان است و میتواند به فراخور نیاز بکارگرفته شوند.
@Hexalinx
✳️ براساس توصیه Xilinx برای ساخت یک کپی از کلاک روی پینهای تراشه و استفاده از آن خارج از FPGA بهتر است از یک الگوی خاص و استاندارد استفاده شود. این الگو Clock Forwarding نام دارد.
✳️ برای این کار باید از بلوک ODDR در داخل IOB های تراشه های سری ۷ یا بلوک ODDR2 در تراشه های Spartan 6 استفاده کرد.
✳️ برای تراشه های سری ۷ کافیست پایه D1 در ورودی ODDR به مقدار منطقی ‘1’ و پایه D2 باید به مقدار منطقی ‘0’ متصل بشود و کلاکی که باید خروجی شود به پایه C متصل شود. به این ترتیب یک کپی از کلاک روی پین تراشه قرار داده میشود. در این بلوک پایههای ست و ریست (S/R) به صورت همزمان پشتیبانی نمیشوند.
✳️ استفاده از ODDR2 در تراشههای Spartan 6 تا حدودی متفاوت است، برای خروجی کردن یک کلاک روی پایههای تراشهها باید از DCM نیز کمک بگیریم و یک کلاک با اختلاف فاز ۱۸۰ درجه تولید کنیم. کلاک اصلی به پایه C0 و کلاک تولیدی با اختلاف فاز ۱۸۰ درجه به پایه C1 متصل میشود. پایه های D0 و D1 مشابه پایههای D1 و D2 در سری 7 هستند. استفاده همزمان از ست و ریست هم توصیه نمیشود و ممکن است به خطا منتهی شود.
❗️عملکرد پورت فعال ساز کلاک در هر دو primitive یکسان است و میتواند به فراخور نیاز بکارگرفته شوند.
@Hexalinx
#Basic
#ISIM
✅ مشکل استفاده از ISIM برای شبیه سازی مدارت در windows 10
✳️ در صورتی که از windows 10 استفاده می کنید و برای اجرای نرم افزار ISIM و شبیه سازی طراحی مشکل دارید. زیاد نگران نباشید چون راه حل آن چندان پیچیده نیست.
شما ممکن است در زمان اجرا با این خطا روبرو شوید.
ERROR:Simulator:861 - Failed to link the design
❗️برای برطرف کردن مشکل تنها کافی است به پوشه زیر مراجعه کنید و فایل “collect2.exe” رو حذف کنید.
installation directory \ Xilinx \ 14.x \ ISE_DS \ ISE \ gnu \ MinGW \ 5.0.0 \ nt \ libexec \ gcc \ mingw32 \ 3.4.2 \ collect2.exe
@Hexalinx
#ISIM
✅ مشکل استفاده از ISIM برای شبیه سازی مدارت در windows 10
✳️ در صورتی که از windows 10 استفاده می کنید و برای اجرای نرم افزار ISIM و شبیه سازی طراحی مشکل دارید. زیاد نگران نباشید چون راه حل آن چندان پیچیده نیست.
شما ممکن است در زمان اجرا با این خطا روبرو شوید.
ERROR:Simulator:861 - Failed to link the design
❗️برای برطرف کردن مشکل تنها کافی است به پوشه زیر مراجعه کنید و فایل “collect2.exe” رو حذف کنید.
installation directory \ Xilinx \ 14.x \ ISE_DS \ ISE \ gnu \ MinGW \ 5.0.0 \ nt \ libexec \ gcc \ mingw32 \ 3.4.2 \ collect2.exe
@Hexalinx
#Basic
#MUX
✅ مالتیپلکسرها در FPGA
❗️مالتی پلکسرها غالبا با استفاده از عبارت شرطی IF یا CASE در زبان HDL تولید میشوند.
❗️استفاده عبارت IF/THEN/ELSE منجر به تولید یک انکدر اولویتدار میشود.
❗️استفاده از عبارت CASE منجربه تولید یک کدکننده پیچیده می شود. بدون اینکه اولویتی داشته باشند.
✅ در طراحی مالتیپلکسرها چند نکته باید در نظر گرفته بشود.
1️⃣ تاخیر و سایز مالتی پلکسرها به تعداد ورودیها و تعداد عبارت IF/THEN یا CASE که تو در تو تعریف شدهاند، بستگی دارد.
2️⃣ لچهای ناخواسته یا فعال سازهای کلاک زمانی که عبارات شرطی تمام حالات را در برنگیرند تولید میشود. برای پیدا کردن چنین مواردی در کدها باید به دقت گزارش های سنتز را مطالعه و بررسی کرد.
3️⃣ اگر نیاز به استفاده تو در تو از عبارت شرطی IF بود مهمترین شرط را در بایددر ابتدا قرار دهیم و تا خروجی آن کمترین مسیر بحرانی را داشته باشد. عبارت که در ELSE آخر قرار می گیرد به لحاظ اهمیت کمترین ارزش را دارد و خروجی حاصل از آن میتواند مسیر طولانیتری را طی کند.
@Hexalinx
#MUX
✅ مالتیپلکسرها در FPGA
❗️مالتی پلکسرها غالبا با استفاده از عبارت شرطی IF یا CASE در زبان HDL تولید میشوند.
❗️استفاده عبارت IF/THEN/ELSE منجر به تولید یک انکدر اولویتدار میشود.
❗️استفاده از عبارت CASE منجربه تولید یک کدکننده پیچیده می شود. بدون اینکه اولویتی داشته باشند.
✅ در طراحی مالتیپلکسرها چند نکته باید در نظر گرفته بشود.
1️⃣ تاخیر و سایز مالتی پلکسرها به تعداد ورودیها و تعداد عبارت IF/THEN یا CASE که تو در تو تعریف شدهاند، بستگی دارد.
2️⃣ لچهای ناخواسته یا فعال سازهای کلاک زمانی که عبارات شرطی تمام حالات را در برنگیرند تولید میشود. برای پیدا کردن چنین مواردی در کدها باید به دقت گزارش های سنتز را مطالعه و بررسی کرد.
3️⃣ اگر نیاز به استفاده تو در تو از عبارت شرطی IF بود مهمترین شرط را در بایددر ابتدا قرار دهیم و تا خروجی آن کمترین مسیر بحرانی را داشته باشد. عبارت که در ELSE آخر قرار می گیرد به لحاظ اهمیت کمترین ارزش را دارد و خروجی حاصل از آن میتواند مسیر طولانیتری را طی کند.
@Hexalinx
#VU19P
✅ شرکت xilinx هفته گذشته بزرگترین تراشه fpga دنیا را تحت عنوان #VU19P معرفی کرد.
این تراشه از سری Virtex UltraScale plus است و بیش از ۹ میلیون logic cell دارد.
این تراشه همچون برادران کوچکتر خود با استفاده از تکنولوژی ۱۶ نانو متر ساخته شده است و حدودا ۱.۶ برابر از بزرگترین تراشه موجود در بازار یعنی تراشه VU440# بزرگتر است که با تکنولوژی ۲۲ نانومتری ساخته شده بود. این تراشه حدودا ۳ برابر بزرگتر از تراشه VUP13P# است
@Hexalinx
✅ شرکت xilinx هفته گذشته بزرگترین تراشه fpga دنیا را تحت عنوان #VU19P معرفی کرد.
این تراشه از سری Virtex UltraScale plus است و بیش از ۹ میلیون logic cell دارد.
این تراشه همچون برادران کوچکتر خود با استفاده از تکنولوژی ۱۶ نانو متر ساخته شده است و حدودا ۱.۶ برابر از بزرگترین تراشه موجود در بازار یعنی تراشه VU440# بزرگتر است که با تکنولوژی ۲۲ نانومتری ساخته شده بود. این تراشه حدودا ۳ برابر بزرگتر از تراشه VUP13P# است
@Hexalinx