Vivado Tools: Part2
:پیش نیازها
- آشنایی با یکی از زبانهای برنامهنویسی VHDL یا Verilog
- آشنایی با نرم افزار Vivado و مبحاث ورکشاپ شماره 1A (شامل: روش ایجاد پروژه و مدیریت فایلها، اسکریپت نویسی و تفاوت آن با XDC و SDC، آشنایی با مفاهیمی نظیر OCC و SSN، آشنایی با IP و روش ایجاد یک IP، آشنایی با بحثهای سنتز، شبیهسازی، پیادهسازی، برنامهریزی و خطایابی، آشنایی با انوع تنظیمات سنتز و پیادهسازی، آشنایی با Ordering منابع در پروژه و IP (به لیست مباحث ورکشاپ شماره 1A مراجعه شود).
امکانات آزمایشگاهی:
- بوردهای YE-E15Z با تراشه Artix (هر بورد برای حداکثر دو نفر در نظر گرفته شده است).
- پروگرامرهای USB یا JTAG
- مستندهای مورد نیاز بورد YE-E15Z برای ورکشاپ شامل معرفی بود، تعریف پایهها و ...
مواردی که در اختیار دانشجویان قرار داده میشود:
- تمام مستندهایی که در کلاس ارائه میشود (به صورت PDF) (توجه: PowerPointها به زبان انگلیسی تهیه شدهاند و به زبان فارسی ارائه میشوند).
- تمام کدهای مورد نیاز برای ایجاد و تکمیل پروژههای آزمایشها
- معرفی سایت و معرفی موارد دیگر در حین ورکشاپ
- نرمافزار Vivado (در صورت درخواست دانشجویان)
- در انتهای دوره مدرک معتبر از طرف شرکت به دانشجویان تقدیم میشود.
نکته: امکان تغییر تعداد و عنوان آزمایشها وجود دارد.
روش ارزیابی:
نمرهای که در مدرک دانشجو قید میشود، براساس ارزیابیهایی است که در طول دوره انجام میشود. این ارزیابیها عبارتند از:
- حضور دانشجو در کلاس:
به دلیل زیاد بودن مطالب، عدم حضور دانشجو و عدم مطالعه باعث فاصله گرفتن از ساختار ورکشاپ و فراگرفتن مطالب خواهد شد. به همین دلیل حضور دانشجو و عدم غیبت در ارزیابی تأثیر مستقیمی دارد.
- پرسش و آزمون:
به صورت تصادفی در بعضی از جلسهها آزمونهای کوتاه یک تا 5 سؤالی برای ارزیابی و همچنین تکرار و تمرین مطالب ارائه شده، از دانشجویان گرفته میشود.
- انجام آزمایشها
انجام دادن کامل و صحیح آزمایشها و گرفتن نتیجه مطلوب نیز در ارزیابی تأثیر دارد. هدف انجام دادن تمام آزمایشها نیست و در صورت نیاز و کمبود زمان ممکن است یک یا چند آزمایش به صورت کار در منزل ارائه شود. هدف تمرین و تکرار مطالب آموزش داده شده، تلسط بر آنها و یادگیری نکتههای جدید میباشد. بنابراین کیفیت انجام آزمایشها از اهمیت بالایی برخوردار است.
نسخه نرمافزار مورد استفاده:
Vivado Design Suit 2017.3
مکان دوره:
شرکت مهندسی محققان یاسین
معرفی دوره:
این ورکشاپ در ادامه ورکشاپ مربوط به بخش اول Vivado میباشد. این ورکشاپ در سطح پیشرفته میباشد. این ورکشاپ را میتوان در چهار بخش دستهبندی کرد:
- مباحث مربوط به Timing
- آنالیزهای پیشرفته و فنی پروژه
- معرفی کامل قیدهای مکانی و Floorplanning
- مباحث مربوط به توان
الف) مباحث مربوط به Timing
در این ورکشاپ ابتدا مفهوم Setup، Hold، Recovery، Removal و Pulse Width به صورت کاملاً فنی و به روشهای مختلف نظیر حالت گرافیکی و ترسیم داده و کلاک و همچنین استفاده از فرمولها به چندین حالت مختلف برای سادهتر شدن درک آنها، بیان میشوند. سپس با روشن شدن دلیل آنالیز Timing، انوع قیدهای زمانی با جزئیات کامل بیان شده و در ادامه اانوع طرحها برای تأمین کلاک سیستم همچنین روشهای ارسال و دریافت داده به همراه کلاک، رابطه بین کلاک و داده، تأثیر ماژولهای نظیر MMCM روی کلاک و در نهایت روشهای صحیح نوشتن قیدهای زمانی برای دریافت صحیح داده در ورودی/خروجی سیستم بیان میشوند. در ادامه با بیان مفهوم قیدهای زمانی مدیریت شده، مسائل مربوط به Clock Domain Crossing یا CDC بررسی میشوند. این مسئله یکی از اساسیترین مسائل در حوزه طراحی با ابزار Vivado میباشد. در این بخش ضمن معرفی آنالیز ناپایداری، انواع روشهای سنکرونسازی، آنالیز انواع ساختارهای CDC، روش صحیح اعمال قیدهای زمانی CDC و در نهایت طرحهای صحیح اعمال ریست بیان میشوند.
برای تکمیل توضیحات بیان شده در حوزه قیدهای زمانی، انواع ابزارهای موجود در Vivado برای آنالیز پروژه معرفی میشوند و روشهای استفاده از آنها بیان خواهند شد.
ب) آنالیزهای پیشرفته و فنی پروژه
آیا برآورده شدن تمام مسائل Timing به معنای برآورده شدن تمام مسائل توان نیز است؟ جواب این سؤال قطعاً خیر است. بسیاری از مسائل دیگر نیز در گزارش Timing آورده نمیشوند. از جمله این موارد میتوان به مسائل داخلی FPGA نظیر CrossTalk و HotSpot، مباحث تراکم، مسائل مربوط به تابش یوننده (پرتوهای یونیزان) در فضا و ارتفاعهای زیاد اشاره کرد. در این قسمت ضمن بیان پروژههای عملی که تحت تأثیر این مسائل قرار گرفته و عملکرد درستی نداشتهاند، علاوه بر آنالیزهای پیشرفته زمانی که در بخشهای قبلی بیان شدهاند، انواع روشهای آنالیز تراکم، آنالیز پیچیدگی، آنالیز Pipeline، آنالیز تابش یوننده، QoR و ... بیان شده و راهکارهای حل این مشکلها نیز بیان میشوند.
در نهایت مسائلی نظیر استفاده حداکثری از منابع FPGA با حداکثر فرکانس ممکن و همچنین مقدمهای از ساختار معماری تراشههای جدید نظیر UltraScale و تأثیر آنها در پارامترهای عملکردی بیان شده، معرفی میشوند.
ج) معرفی کامل قیدهای مکانی و Floorplanning
تقریباً در بخش دوم ورکشاپ، قیدهای مکانی از جمله قیدها ورودی/خروجی، قیدهای Placement و Routing با جزئیات کامل بیان خواهد شد. Floorplanning یک روشی برای تغییر و یا محدود کردن Placement و Routing میباشد. مفاهیم پایه Floorplanning و انوع روشهای آن (Floorplanning سطح بالا و Floorplanning با تمام جزئیات) در بخش مربوطه بیان خواهد شد. Floorplanning یکی از راهکارهای حل بعضی از مسائلی است که در قسمت الف و ب بیان میشود و بیان آن ضروری است.
د) مباحث مربوط به توان
در انتهای بحث نیز ضمن معرفی توان و بیان اصول آنالیز توان، انوع ابزارهای پیشرفته موجود در Vivado برای آنالیز توان و همچنین انوع روشهای بهینهسازی توان بیان خواهند شد.
- سرفصل مطالب:
- Introduction & Review
- Timing Constraint in detail (Part1)
- Timing Constraint in detail (Part2: I/O)
- Managed Timing Constraints
- Clock Domain Crossing
- Static Timing Analysis
- Timing Constraints Wizard
- Design Analysis
- Placement constraint
- Floorplanning
- Power AnalysisLabs
- مطالبی که در بخش Introduction & Review بیان میشود.
- Introduction
- Synopsys Design Constraints (SDC)
- Xilinx Design Constraints (XDC)
- Design Constraints Management
- XDC Precedence
- مطالبی که در بخش Timing constraints in detail (Part1) بیان میشود.
- Timing Constraint in detail (Part1(
- Timing Analysis Concept
- Defining Clocks
- Propagated Clocks, Primary Clocks, Virtual Clocks, Generated Clocks, Auto Derived Clocks, …
- Timing Terminology
- Process Corner
- Clock Skew
- Clock Uncertainty
- Timing Pathes
- Setup/Max Analysis
- Slack (setup) Based on Data Required Time and Data Arrival Time
- Slack (Setup) Based on Setup Relationship (SR) and Clock Skew and …
- Hold/Min Analysis
- Slack (hold) Based on Data Required Time and Data Arrival Time
- Slack (hold) Based on Setup Relationship (SR) and Clock Skew and …
- Recovery and Removal Analysis
- Setup and Hold time of a Device
- Pulse Width Check
- Timing Exceptions
- set_clock_groups
- Args: -group,
- Breaking Timing Arcs
-
-
- set_multicycle pathes
- Args: <path_multiplier>, -setup, -hold, –start, -end
- Examples, Hold relaxing.
- set_false pathes
- Args: –setup, -hold, -from, -to, -through
- set_max delay
- Args: -from, -to, -datapath_only
- Breaking Timing Arcs
- Priority
- set_min_delay
- Args: -from, -to
- set_case analysis
- set_external_delay
- Timing Exceptions relation with setup and hold
- Constraining I/O Delay (syntax)
- مطالبی که در بخش Timing constraints in detail (Part2 I/O) بیان میشود.
- Timing Constraint in detail (Part2: I/O)
- Clock Schemes
- System synchronous (Common Clock)
- Source synchronous
- Clock and Data Relationship
- Edge-Aligned Clock and Data
- Center-Aligned Clock and Data
- Single Data Rate (SDR)
- Double Data Rate (DDR)
- Setup and hold in analysis in above systems
- Input Delay and Output Delay Concepts
- Output clocking schemes, constraints and tips
- Using ODDR
- Using ODDR and PLL
- Direct clocking
- Edge /Center Align schemes
- Common/Separate Clock schemes
- Input clocking schemes, constraints and tips
- Virtual Clocks
- Using PLL
- Direct clocking
- Edge /Center Align schemes
- System Synchronous (Clock) I/O constraints
- Output Delay Constraints
- Input Delay Constraints
- Source Synchronous (Clock) Output Delay Constraints
- System-based constraints
- System Based, main constraints
- System Based , Same-Edge Capture, Edge-Aligned
- System Based, Opposite-Edge Capture, Edge-Aligned (DDR)
- System Based, Same-Edge Capture, Center-Aligned (DDR)
- System Based, Opposite-Edge Capture, Center-Aligned
- FPGA-based constraints
- FPGA-Based, main constraints
- FPGA_based, Same-Edge Capture, Edge-Aligned
- FPGA_based, Opposite-Edge Capture, Edge-Aligned
- FPGA_based, Opposite-Edge Capture, Center-Aligned
- FPGA_based, Opposite-Edge Capture, Edge-Aligned
- Source Synchronous (Clock) Input Delay Constraints
- System-based constraints
- System Based, main constraints
- System Based , Same-Edge Capture, Edge-Aligned
- System Based, Opposite-Edge Capture, Edge-Aligned (DDR)
- System Based, Same-Edge Capture, Center-Aligned (DDR)
- System Based, Opposite-Edge Capture, Center-Aligned
- FPGA-based constraints
- FPGA-Based, main constraints
- FPGA_based, Same-Edge Capture, Edge-Aligned
- FPGA_based, Opposite-Edge Capture, Edge-Aligned
- FPGA_based, Opposite-Edge Capture, Center-Aligned
- FPGA_based, Opposite-Edge Capture, Edge-Aligned
- Asynchronous input/output Delay
- Bidirectional IO
- An input port to an output port constraints
- Input/Output Delay constraining introduced in the Vivado (by Xilinx)
- مطالبی که در بخش Managed Timing Constraints بیان میشود.
- Managed Timing Constraints
- User Interface Option
- Create constraint
- Remove constraint
- Edit constraint
- Hand Edit Option
- مطالبی که در بخش Clock Domain Crossing بیان میشود.
- Clock Domain Crossing (CDC)
- Clock Domain Crossing (CDC) Issues
- Metastability
- Data Loss
- Reconvergence of Synchronized Signals (Data Incoherency)
- Divergence in the Crossover Path (Fanout)
- Divergence of Metastable Signal
- Convergence in the Crossover Path (Combinatorial Logic)
- Convergence in the Crossover Path (Multi-Clock Fanin)
- Synchronous and Asynchronous CDC
- Constraining Bus Skew
- CDC constraints + Attributes
- Avoid shift register
- Synchronizer Structural Analysis
- Multi-flop synchronizer
- Basic synchronization
- Edge sensitive synchronizer 1
- Pulse synchronizer
- Edge sensitive synchronizer 2
- MUX synchronizers (Mux-Controlled synchronizers )
- MUX synchronizers (Mux Data Hold synchronizers )
- CE-Controlled Synchronizer
- Handshake Mechanism (method 1)
- Handshake Mechanism (method 2)
- FIFO
- Gray Code Encoding
- Synchronous resets & asynchronous resets
- Metastability Safe reset Design
- XPMs
- مطالبی که در بخش Static Timing Analysis بیان میشود.
- Static Timing Analysis
- Introduction to STA
- Discuses about different kind of report and STA analysis
- Report Timing Summary
-
-
- Report Clock Networks
- Report Clock Interaction
- Report Pulse Width
- Report Timing
- Report Datasheet
- Report Bus Skew
- Report Exceptions
- Report CDC
- CDC Topologies
- مطالبی که در بخش Timing Constraints Wizard بیان میشود.
- Timing constraint Wizard
- مطالبی که در بخش Design Analysis بیان میشود.
- Design Analysis
- Report Design Analysis
- Timing Analysis
- Complexity and fanout Analysis
- Congestion Analysis and Metrics
- Congestion Impact on the design
- Congestion Calculation
- Avoiding Congestion
- Resolving Congestion
- Congestion and Complexity
- Congestion and Complexity in the UltraScale Device
- Max Utilization – Max Frequency
- Report Methodology
- Report DRC
- Pipeline Analysis
- Skew and Time Borrowing Optimization
- QoR
- Single Even Upset and Solutions
- Design Techniques
- IDF
- TMR
- Other methods
- Analysis and Verification
- مطالبی که در بخش Placement constraint بیان میشود.
- Placement constraint
- Netlist Constraints
- Placement Constraints
- Tile, Site and BEL concepts
- I/O Constraints
- Routing Constraints
- Relatively Placed Macros (RPMs)
- XDC Macros
- مطالبی که در بخش Floorplanning بیان میشود.
- Floorplanning
- Introduction (Tools option and windows)
- Floorplanning Basics
- Floorplanning Techniques
- Detailed Gate-Level Floorplanning
- Information Re-Use
- Pblock-Based Floorplanning
- ….
- Modifying Placement
- Modifying Routing
- Modifying the Netlist
- مطالبی که در بخش Power Analysis بیان میشود.
- Power Analysis
- Terminology
- Power Estimation, Analysis, and Optimization Tools
- Xilinx Power Estimator (XPE)
- Power Analysis in the Vivado
- Power Constraints Advisor
- Power Analysis Using the Tcl Interface
- Techniques for Power Reduction
این ورکشاپ شامل 12 آزمایش میباشد که عبارتند از:
Lab_1_Autoclock_Constraints
Lab_2_Using_Constraints
Lab_3_TCL_Constraints
Lab_4_I_O_Delay
Lab_5_Problem1
Lab_6_Floorplanning1
Lab_7_Floorplanning2
Lab_8_Floorplanning3
Lab_9_Power1_XPE
Lab_10_Power2_Intro
Lab_11_Power3_TSimulation
Lab_12_Power5_Optimize