1/28/2014 TDTS01 Computer Aided Design of Electronics 1st Lab presentation Nima Aghaee Embedded Systems Laboratory (ESLAB) 2014 TDTS01 1 General Information on LAB • • Lab Webpage: http://www.ida.liu.se/~TDTS01/labs Lab Assistant: – Nima Aghaee • Office: Building B 329:226 • Email: nima.aghaee@liu.se • 2 points = 3 ECTS 2014 TDTS01 2 1 1/28/2014 Goals • Get familiar with design flow • Get familiar with CAD tools – – – – ModelSim: compile and simulation Leonardo: logic synthesis and optimization Tessent FastScan: automatic test pattern generation Tessent DFTAdvisor: automatic scan chain insertion • Capability to handle unexpected situations – With your design – With tools 2014 TDTS01 3 Introduction - Idea Product (Very physical) Idea! (Natural Language) kilobytes (103) terabytes (1012) A team of designers decide to make a communication system which provides a very high data throughput. Therefore, the idea of the project is “communication system with very high data throughput”. This is the most abstract description of the design that is less than a line, includes no details, and is understood by everyone (natural language). 2014 TDTS01 4 2 1/28/2014 Introduction - Formalization • More details • Formal language • Very high level simulations – Feasibility checks and Fixing the products specs • • • • • Wireless, fiber, or satellite? Costs and possibilities. Which modulation technique? Which source and channel coding to use? What symbol rate, which band, … ? Power, bandwidth, and bit-rate tradeoffs … The next steps are to make the project description more precise by introducing more details. For example, however everyone understands the description in the natural language, their interpretation could be different. How much is “very high data throughput”? Furthermore, how you are going to achieve that goal? The design team will introduce more details and make the description more precise, step by step in an iterative process. The problems are formulated in very high level formal languages and based on those, simulations are performed. Some examples for these languages/tools are Matlab and UML. 2014 TDTS01 5 Introduction – HW/SW Partitioning • More details • Formal languages • RF, analog, and mixed-signal are definitely HW • Very high level simulations – It is about the digital parts – What parts are already available from previous projects? – What to do in SW and what in HW? • • • • Meet functional and timing requirements Minimize development and product costs Market time window (development time) Debugging difficulty / Human factors The next step could be breaking down the project into a hardware part and a software part. Here we are interested in the hardware part. The hardware part, per se, includes analog and mixed signal parts as well as digital part. Our focus here is on the digital part. The functionalities that the digital hardware should implement, might be, by this time described in a very high level language (e.g., Matlab, UML, SystemC, SystemVerilog, or some other scripting language). 2014 TDTS01 6 3 1/28/2014 Introduction - HDL • More details • Hardware Descriptive Language – People and tools have a precisely identical understanding – A design entry medium for computer aided design and manufacturing (CAD and CAM). • Division of the project to smaller parts – Reuse of existing parts – Assignment of new parts to different designers Therefore at the beginning the HDL is used as a medium between the designers, between the tools (usually multiple tools are used) and between the designers and the tools. This is very important at the time that designers divide the work between them in order to work in parallel. For this purpose the main design is broken into pieces that some of them might be already available from previous projects (those codes are reused). The new pieces are then assigned to different designers. 2014 TDTS01 7 Introduction - Testbench • Different designers working in parallel • Fast development of compilable designs – Maybe not exactly behavioral, but should be developed fast • Development of testbenches • Validating the functionality and timing of the – Division itself (maybe some functionality is forgotten) – Individual parts (entities in VHDL terms) – Testbenches • Hand-shaking protocols help to use this testbench throughout the project • ModelSim Now the designer should come up with a HDL description of their assignments, very fast. These parts are then put together to check if the different pieces work together correctly to build up the correct overall design (i.e. the communication device that mentioned earlier). When these initial HDL codes are fixed (it may take a few iterations), the designers proceed to develop the final design. During this process, in addition to the behavior of the design, a testbench for validation of this behavior is also developed. In fact the purpose of this design step (development of the compilable design and testbench) is to fix the external appearance and interface of the design (functionality and timing). This makes it easy for the designers to work independently afterward. 2014 TDTS01 8 4 1/28/2014 Introduction - Synthesis • • More details Development of synthesizable design – Maybe not exactly RTL level, but should be synthesizable by the available tool – Synthesizable design is considered to be manufacturable (in this lab) • Design metrics – – – – • Will the problem be with the part’s area or delay? Power, reliability, security, … (not followed in this lab) Tradeoffs Design and synthesis tool choices LeonardoSpectrum So far, the designers have learned precisely what behavior the design should have. This is verified by computer simulations. The compilable design means that the simulation tool is able to understand the HDL code. But how to achieve that behavior using digital hardware and available semiconductor manufacturing technologies is usually a major design challenge. Developing the synthesizable HDL code usually includes introducing more details into the design until the synthesis tool could implement it. Besides, the designer should pay attention to the design metric that is important for the part that is being developed. These design metrics could be area, performance (delay), power consumption, reliability, safety, security, and testability. These metrics are correlated and trying to improve one of them often affects other metrics. Some of them have tradeoffs with each other. 2014 TDTS01 9 Introduction – Manufacturing Test • A fraction of manufactured chips are OK – Design rules for high yield (not followed in this lab) • Important to easily filter out the bad chips • Automatic test pattern generation • Adding more details to help testability – Automatic (e.g., scan chain insertion) – Manual and ad hoc by designer • Tessent FastScan, Tessent DFTAdvisor When the above steps are completed, in general, it means that the design could be manufactured. But will it work after manufacturing? Usually a fraction of the manufactured chips will work correctly. There are tips and rules to consider throughout the design flow, from the very top to the very bottom in order to design chips that a large fraction of them will work after being manufactured. This lab is not concerned with these tips and rules, but it is important to be able to easily and accurately determine which chip is not working and discard it. In order to facilitate an accurate manufacturing test, the designers should consider design-for-test tips and rules during the design and try to improve the testability of the design. 2014 TDTS01 10 5 1/28/2014 Levels of Abstraction • Main levels of design supported by VHDL – Behavioral – RTL (Register Transfer Level) – Gate Level • In this lab – Not very much concerned with the formal levels – Use the nice feature of VHDL which allows mixed levels in the same design (architecture) A helpful property of VHDL is that it is possible to have codes with very different abstraction levels together in one design. The designers have the choice to describe part of the designs in behavioral level, as general as possible, and at the same time describe some other part of the design in gate level, as specific as possible. It means that transferring a compilable design into a synthesizable design could happen in small steps. Besides, the designers could be more specific for the parts of the design that the synthesis tools have not been able to produce a satisfactory gate level result. 2014 TDTS01 11 Assignments • Project specification and tool set experience [deadline: 13-Feb] • Compilable design and testbench [deadline: 25-Feb] • Synthesizable design [deadline: 07-Mar] • Manufacturing test [deadline: 14-Mar] • Check in your calendar – Objections or suggestions? 2014 TDTS01 12 6 1/28/2014 Last Year Experience • Complains about bad lab hours (too early/too late) – We are constraint by the block that the course is assigned to – Midday hours conflict with other blocks and not all students can attend • Changes made in response to last year’s feedbacks – Addition of automatic scan chain insertion 2014 TDTS01 13 Suggestions • Advices, suggestions, and recommendations in the lab material – Not mandatory – Helpful for beginners (students with mixed backgrounds) – Limiting for experienced • • • • 2014 Inform the assistant Probably pick a more challenging topic for the project Pursue perfection Test bench: computer program to generate the validation data TDTS01 14 7 1/28/2014 Students Introduction • Briefly introduce yourself • May indicate if looking for group-mates 2014 TDTS01 15 Background Questionnaire • Please fill in … • Answer with % to question like “How much …” • Break – 15 min 2014 TDTS01 16 8 1/28/2014 Assignments General Requirements • Report – Write a brief report – Include the items that are explicitly asked for • Demonstration – – – – All group members present and active Explain to lab assistant Lab assistant may ask question and start discussions A good understanding of the work is expected • Feedback Forms – Please fill in the feedback forms for each assignment • Find them at the end of the compendium 2014 TDTS01 17 Learning Method • Electronics – – – – – Technologies evolving fast Priorities and problems change frequently Tools change frequently Short time-to-market, sometimes a year Learning method should support dealing with new unexpected situations • What is good today, might not be good tomorrow • Learning by doing – Facing unexpected situations – Solving the situation by • • • • • 2014 Searching on the net Searching in tool manuals Searching in text books Discussing with group mates Asking questions from lab assistant TDTS01 18 9 1/28/2014 Relation to the Course • In the lab a simplified scenario is being followed • The reference in the labs are the tools – Tool manuals more important than standards and text books • There are differences, do not be surprised • Tools are usually designed to accommodate the design capture • Issues related to simulation and synthesis (as opposed to the design capture) are handled by the tools automatically • What is a push of a button is theory, may take days to fix in the labs – Try to be ahead of time (for deadlines) 2014 TDTS01 19 Assignment 1 - Introduction • Project specification and tool set experience [deadline: 13-Feb] • Demonstrate the design flow – Using the provided example and lab compendium – Go through the lab compendium (beginning to end) – Lab assistant selectively checks some parts, and trusts you for the rest • Report – – – – Mention noticeable experiences with the tool set Should provide proofs that you have successfully completed all of it Include the explicitly requested material in the report Project specification • Functional behavior • Timing behavior (with respect to hand-shaking signals) • Targeted design metric (area xor delay) 2014 TDTS01 20 10 1/28/2014 Assignment 1 - Preparation • • • • Chapter 3 in the compendium Set the environment Copy design files It is suggested to download and install the ModelSim’s student version on your personal computer. 2014 TDTS01 21 Assignment 1 - Simulation • Chapter 4 in the compendium – Compilable Design and Simulation • Includes – Compilable design – Testbench to test it – Simulation === The rest is from the compendium file === • One should interpret the wave window in relation to the VHDL code (report & demo) • Pay attention to messages in Transcript window 2014 TDTS01 22 11 1/28/2014 Assignment 1 - Synthesis • Chapter 5 in the compendium • Includes – Synthesizable design – Synthesis process === The rest is from the compendium file === • Pay attention to – area/delay reports – The final output (think of it as gate-level design) • Made of technology cells (think of them as gates) • Without CAD tools, such files have to be designed manually 2014 TDTS01 23 Assignment 1 - Test • Chapter 6 in the compendium • Includes – Test pattern generation – Scan chain insertion === The rest is from the compendium file === • Pay attention to – Testability reports (2 architectures before and after ASCI) – Test patterns • Automatic Test Pattern Generation (ATPG) • Very difficult and time-consuming without CAD tools 2014 TDTS01 24 12 1/28/2014 Assignment 1 – Project Specs • Project specification – Functional behavior • Example: eight 4-bit unsigned numbers are summed to make one 7-bit unsigned number – Timing behavior (in respect to hand-shaking signals) • CLK and RST – CLK: memory elements react to CLK’s rising edge – RST: memory elements react to RST’s high levels (active high) • Inputs - example: – BUSY indicates that the circuit is not busy. There are two 4-bit input ports, A_IN and B_IN. – START signal initiates reading of pairs of inputs from A_IN and B_IN consecutively at every CLK cycle, up to four cycles (reading 8 numbers) – The busy signal is active until the computation is complete. • Outputs - example: – VALID signal indicates that the output is ready at the output port – C_OUT, the only output port which is 7 bits wide – The valid output remains active until the circuit receives a reset signal or a new computation is started by receiving a START signal. – Targeted design metric (area xor delay) • In the example there are two designs (architectures) – Behavioral: Higher CLK frequency – Less_States: Lower area 4 4 A_IN B_IN C_OUT BUSY START ARRAY_ACC RST CLK 2014 7 VALID x TDTS01 25 Assignment 1 - Summing up • Project specification and tool set experience [deadline: 13-Feb] • Getting familiar with the tool set – Using the provided example and lab compendium – Go through the lab compendium (beginning to end) – Making sure that the tools are working correctly • Report – Mention noticeable experiences with the tool set – Include the explicitly requested material in the report – Project specification • Functional behavior • Timing behavior (in respect to hand-shaking signals) • Targeted design metric (area xor delay) 2014 TDTS01 26 13 1/28/2014 Other Assignments • Now you have read the compendium once – In the 1st time, some concepts might not be clear – When reading for the 2nd time things should be clear • To some extent, the rest of the lab is repeating the 1st assignment for your own design – Compilable design and testbench [deadline: 25-Feb] – Synthesizable design [deadline: 07-Mar] – Manufacturing test [deadline: 14-Mar] 2014 TDTS01 27 PLEASE READ THE COMPENDIUM AND COME WITH QUESTIONS TO THE NEXT SESSION Example VHDL codes will be discussed next time 2014 TDTS01 28 14 1/28/2014 1st Lab presentation QUESTIONS ? 2014 TDTS01 29 15