طراحي كامپيوتري سيستمهاي ديجيتال Computer Aided Design of Digital Systems )(CADS مجتبي ولينتاج دانشگاه صنعتي نوشيرواني بابل References (1) Circuit Design with VHDL, V. A. Pedroni, MIT Press, 2004. (2) The Design Warrior‘s Guide to FPGAs, C. Maxfield, Elsevier, 2004. Other Refs.: - Verilog Digital System Design, Z. Navabi, McGraw-Hill, 2006. Books and other materials will be uploaded on the Viana. Web address that may be used for file sharing: https://web.nit.ac.ir/~m.valinataj/CADS 2 Evaluation )20% (4 Midterm Exam: )40% (8 Final Exam: )10% (2 Homeworks: ) Computer Assignments: 30% (6 )100% (20 Total: نكته (١) :حضور مؤثر در كﻼسها و انجام تكاليف بسيار مهم است. ) (٢كپي در هر كدام از موارد ذكر شده در صورت تشخيص ،عﻼوه بر 3 حذف نمره مورد نظر جريمه نيز خواهد داشت. Contact info مراجعه حضوري طبق برنامه كاري اعﻼم شده بر روي بورد اتاق كار ايميل: m.valinataj@nit.ac.ir ارسال تمرين ها از طريق Queraخواهد بود. عضويت در بخش مربوطه در Queraبا شماره دانشجويي و نام و نام خانوادگي كامل فارسي يا انگليسي انجام شود. TA درس آقاي مشايخ است. 4 ) (١توانايي و مهارت يافتن در توصيف و طراحي سيستمهاي سختافزاري با زبانهاي توصيف سختافزار )(Verilog & VHDL ) (٢توانايي بهكارگيري ابزارهاي طراحي خودكار مدارهاي ديجيتال ) (٣آشنايي با معماري و قابليتهاي تراشههاي برنامهپذير ) (FPGA & CPLDو نحوه سنتز مدارها نرمافزارهاي مورد نياز: 5 (1) Modelsim or ISim (2) Xilinx’s ISE (or Vivado) or Altera’s Quartus Other tools: )(3) Leonardo Spectrum (for ASIC synthesis طراحي مدارهاي مجتمع: (Integrated Circuit) IC مجموعهاي از گيتها براي توليد مداري خاص است كه بر روي يك تراشه قرار داده شدهاند. اندازه يا مقياس ICها: (Small Scale Integration) SSIتا چند ده گيت ،داراي محدوديت در تعداد پينها مثال: يك ICبا ١٤پين ميتواند حاوي ٤گيت ٢ورودي باشد: 6 4× 2-input NAND (each with 3 pins)+ 2 pins for VCC & GND (Medium Scale Integration) MSI حاوي چند ده تا چند صد گيت ،مانند يك ديكدر يا يك جمعكننده ساده (Large Scale Integration) LSI حاوي صدها تا هزاران گيت ،مانند تراشههاي حافظه كوچك (Very Large Scale Integration) VLSI حاوي دهها هزار و بيشتر گيت ،ميليونها و صدها ميليون ترانزيستور ) ULSIهم به كار ميرود U ،براي (Ultra مانند پردازندهها و ماجولهاي حافظه بزرگ 7 :ULSI وVLSI نمونههايي براي ميليون ترانزيستور٤٢ اوليه دارايPentium4 8-core core i7 Haswell-E in 2014 with 2.6 Billion transistors Apple A13 (iPhone 11 Pro) in 2019 with 8.5 Billion transistors چه عاملي باعث اين رشد و افزايش تعداد شده است؟ 8 روند اوليه طراحي ICها: به صورت (Application-Specific IC) ASICبوده است. مشكل :عدم انعطافپذيري پس از طراحي بنابراين ،انواع قابل برنامهريزي يا برنامهپذير ابداع شدند هر كدام حاوي انواع مختلف: PLDs: Programmable Logic Device - SPLD: simple PLD - CPLD: complex PLD FPGAs: Field Programmable Gate Array 9 ويژگيهاي عناصر برنامهپذير: عدم بهينه بودن به اندازه ASICها داشتن قابليت بازپيكربندي )(Reconfigurationپردازندههاي تجاري از نظر نوع ساخت ASICمحسوب ميشوند ،هر چند كه يك پرازنده ميتواند مبتني بر FPGAنيز باشد كه در اين صورت از نوع Reconfigurable processorمحسوب ميشود. 10 :انواع پردازندهها از نظر كاربرد - Microcontroller - DSP - Desktop processors such as core i3, i5, i7 from Intel - Mobile (laptop) processors - GPU . تفاوت كاربردها منجر به تفاوت ساختارهاي دروني پردازندهها شده است- 11 تقسيم بندي ديگر: پردازندهها با توجه به قابليت اجراي برنامههاي متنوع ،عام-منظوره ) (General-purposeمحسوب ميشوند ،اگرچه بعضي از آنها براي اجراي برنامههاي خاصي بهينهسازي شدهاند مانند: GPUها و DSPها كه Domain-specific processorsمحسوب ميشوند. سيستمهاي جديدتر: امكان طراحيهاي very large scaleو ultra large scaleو يا توانايي استفاده از تعداد زيادي ترانزيستور بر روي يك تراشه both in tablets and mobile phones 12 )- SoC (System-on-a-Chip )- MPSoC (Multi-Processor SoC - CMP (Chip Multi-Processor) Samples: 6-core core i7-8700K, for desktop PC, 95W 4-core core i7-8550U, for laptop, low-power, 15-25W -Multicore & Manycore systems :نمونه هاي چند هستهايGPU شامل موارد باﻻ و همچنين (Network on Chip) NoC حاوي مفهوم 13 روشهاي طراحي اوليه يك مدار ديجيتال: ) (١روش قديمي كشيدن مدار در سطح گيت روي كاغذ پيادهسازي آن با استفاده از تست عملكرد ساخت بورد اصلي و نهايي ICهاي موجود مثال :مدار يك تمامجمعكننده )(Full Adder به دو تا ICنياز است؛ يكي حاوي nandهاي دو ورودي ) ٣تا اما چرا؟( براي توليد carryخروجي و يكي حاوي xorها براي توليد .sumاما اگر از andو or استفاده شود به سه ICنياز است ،چرا؟ 14 روشهاي طراحي اوليه يك مدار ديجيتال: ) (٢استفاده از نرمافزارهاي طراحي و شبيهسازي الف( رسم مدار )شماتيك(schematic : شبيهسازي اطمينان از عملكرد با ساخت بورد نهايي ب( استفاده از زبانهاي مخصوص توصيف مدار )همزمان ،استفاده از ابزارهاي طراحي خودكار( با همان مراحل اصلي بعدي - EDA/CAD tools EDA: Electronic Design Automation CAD: Computer Aided Design 15 دليل اصلي استفاده از زبانهاي توصيف سختافزار ):(HDLs پيچيدگي مدارهاي امروزي در واقع: طراحي به صورت رسم مدار تنها براي مدارهاي نه چندان بزرگ يا مدارهاي با توصيف ساده )يعني سادهبودن تبديل به گيتها( مناسب است. يك روش: توصيف سطح باﻻ يا الگوريتمي با استفاده از HDLها تبديل توصيف سطح باﻻ به سطح منطقي ،بهينهسازي و در نهايت ،تبديل به مدار بااستفاده از CAD tools 16 :CAD tools نمونههايي از For FPGAs: - ISE from Xilinx - Quartus from Altera For ASIC: - Leonardo Spectrum - Synopsys - Cadence 17 :EDA/CAD tools اجزاي - Schematic entry - HDL compilers - Simulators - Synthesis tools - Timing analyzers - Verification tools - Testbenches - Design checkers - Formal or semi-formal verifications 18 Digital System Design Process 1- Design Specification 2- Behavioral Design 3- Register Transfer Level (RTL) Design 4- Logic Design 5- Circuit Design 6- Physical Design 7- Manufacturing (Chip or Board) 2-to-3: Flow graph or pseudo code 3-to-4: Bus & register structure 4-to-5: Gates, wirelist, netlist 5-to-6: Transistor list 6-to-7: Layout Note: CAD tools automate the design from step 4 and beyond. 19 Digital System Design Process (cont.) (1) RTL design to logic level design: (2) Logic design to circuit level design: (3) Circuit design to physical level design: 20 Digital System Design Process (cont.) A simpler view: 21 Hardware Description Languages (HDLs) Why HDLs? Very large scale designs limit the use of schematic based methods - May be hundred thousands of gates should be modeled! Debugging is more convenient in HDLs - Code based debugging not graphical HDLs help to describe designs in a more compact way Behavioral or algorithmic description is possible - For example, a FOR loop is simply modeled 22 Hardware Description Languages (cont.) Two main HDLs are Verilog (Verifying logic) & VHDL (VHSIC HDL, Very High Speed Integrated Circuit HDL). However, SystemC (a C++ based language) can be used mainly for simulations. HDLs are used for: Modeling in different levels Design Simulation Testing & Verification Documentation (mainly VHDL) 23 Modeling in different levels (Hardware Description) Behavioral or algorithmic or system level The most abstract level which describes the main functions Dataflow or Register Transfer level (RTL) Represents the flow of control and movement of data, and the operation of the registers Gate level The Lowest and most detailed level of description (in VHDL) and also the simplest level to synthesize Transistor level (mainly in Verilog) It can be beneficial for small designs. In each design, all levels can be used simultaneously. 24 Modeling in different levels (cont.) 25 Hardware Simulation Simulation is used to verify and analyze the operation of a design under a set of conditions. - Input values should lead to correct outputs - Debugging in simulation is highly cheaper than after implementation! Software types for HDLs include: Simulators: used for design verification such as Modelsim Synthesis tools: used for automatic hardware generation such as Xilinx’s ISE & Altera’s Quartus for FPGAs, and Synopsys & Cadence for ASIC designs 26 Hardware Simulation (cont.) Co-Simulation of VHDL and Verilog also: with SystemC that is a set of C++ classes to model a digital hardware Hardware Simulation Methods 1- Oblivious simulation: Using the new values of inputs at fixed time intervals, the output of all circuit components will be re-evaluated until they are stabilized. 2- Event-driven simulation: When an input is changed, only those nodes that are affected are re-evaluated. 27 Hardware Synthesis A synthesis tool is a design aid that automatically transforms a design description from one form to another which finally will be useful for implementation. Transformation of HDL codes to a netlist describing the final hardware (this can be a list of gates and wires) 28