MISRIMAL NAVAJEE MUNOTH JAIN ENGINEERING COLLEGE VLSI LAB MANUAL ECE: VII SEMESTER (2006-2010) ByV.Thilakrathi(Lect/ECE)
STUDY OF XC3S400 – XILINX SPARTAN 3 FPGA FPGA DESIGN FLOW STUDY OF SIMULATION USING XILINX ISE-9.1.i STUDY OF SYNTHESIS USING XILINX ISE 9.1i STUDY OF SCHEMATIC ENTRY USING XILINX ISE 9.1i PLACE, ROUTE AND BACK ANNOTATION IN FIELD PROGRAMMABLE GATE ARRAY (FPGA) SIMULATION AND IMPLEMENTATION OF LOGIC GATES SIMULATION AND IMPLEMENTATION OF HALF ADDER AND FULL ADDER SIMULATION AND IMPLEMENTATION OF HALF SUBTRACTOR AND FULL SUBTRACTOR SIMULATION AND IMPLEMENTATION OF PARALLEL ADDER SIMULATION AND IMPLEMENTATION OF PARALLEL SUBTRACTOR SIMULATION AND IMPLEMENTATION OF CARRY LOOK-AHEAD ADDER SIMULATION AND IMPLEMENTATION OF CMOS GATES SIMULATION AND IMPLEMENTATION OF PARALLEL ADDER AND SUBTRACTOR SIMULATION AND IMPLEMENTATION OF 8:3 ENCODER AND 3:8 DECODER SIMULATION AND IMPLEMENTATION OF 1:8 DEMULTIPLEXER AND 4:1 MULTIPLEXER SIMULATION AND IMPLEMENTATION OF 8 BIT MULTIPLEXER SIMULATION AND IMPLEMENTATION OF FLIP FLOPS
SIMULATION AND IMPLEMENTATION OF SYNCHRONOUS UP DOWN COUNTER SIMULATION AND IMPLEMENTATION OF UNIVERSAL SHIFT REGISTER SIMULATION AND IMPLEMENTATION OF SERIAL ADDER SIMULATION AND IMPLEMENTATION OF TRAFFIC LIGHT CONTROLLER
STUDY OF XC3S400 – XILINX SPARTAN 3 FPGAAIM: To study XC3S400 – XILINX Spartan 3 Field Programmable Gate Array (FPGA)INTRODUCTION: A field programmable gate array (FPGA) is a semiconductor device containingprogrammable logic components called “configurable logic blocks” and programmableinterconnects. Logic blocks can be programmed to perform the logic functioning ranging frombasic gates to more complex logic function. In most FPGAs, the logic blocks also includememory elements, which may be simple flip-flops or more complete blocks of memory. A hierarchy of programmable interconnects allows logic blocks to be interconnected asneeded by the system engineer (designer). These can be programmed by the designer, afterFPGA is manufactured, to implement any logical function – hence the name “FIELDPROGRAMMABLE”.FPGA DESIGN AND PROGRAMMING To define the behavior of the FPGA the user provides a hardware description language(HDL) or a schematic design. Common HDLs are VHDL and Verilog. Then, using an electronicdesign automation tool, a technology netlist is generated. This can be then fitted to the actualFPGA architecture using a process called place-and-route. The user will validate the map, placeand route results via timing analysis, simulation and other verification methodologies. Once thedesign and validation process is complete, the bit file is generated is used to configure theFPGA.
XILINX XC3S400 – SPARTAN 3 FPGA It is specifically designed as very low cost, high performance logic solution for highvolume, consumer-oriented applications.ARCHITECTURE OF XC3S400 This consists of 5 fundamental programmable functionable elements 1. Configurable logic blocks (CLB) contain RAM based look-up-tables (LUTs) to implement logic and storage elements that can be used as flip flops or latches. CLBs can be programmed to perform a wide variety of logical functions as well as to store data. 2. I/O Blocks (IOBs) control the flow of data between the I/O pin and the internal logic of the device. Each IOB supports bidirectional data flow plus 2-state operations. Double Data rate (DDR) registers are included. The digitally controlled impedance (DCI) feature provides automatic on-chip terminations, simplifying board designs. 3. Block RAM provides data storage in the form of 18-10 bit dual port blocks 4. Multiplier blocks accept two 18-bit binary numbers as inputs and calculate the products 5. Digital clock manager (DCM) blocks provide self calibrating, fully digital solution for distributing, delaying, multiplying, dividing and phase shifting clock signals. These elements are organized as shown in the diagram. A ring of IOBs surrounds a regular array of CLBs. It has 4 RAM columns. Each column is made up of several 18kbit RAM blocks; each block is associated with a delicate multiplier. The DCMs are positioned at the ends of the outer block RAM columns. XC3S400 consists of rich network of traces and switches that interconnect all functional elements, transmitting signals among them. Each functional element has an associated switch matrix that permits multiple connections as routing.RESULT: Thus XC3S400 – XILINX SPARTAN 3 field programmable gate array (FPGA) was studied.
FPGA DESIGN FLOWAIM: To study FPGA design flow using XILINX ISE – 9.1 iINTRODUCTION: The integrated software environment (ISE) is the Xilinx design software that allows totake the design from design entry through Xilinx device programming. The ISE design flowcomprises the following steps, design entry, design synthesis, design implementation, and Xilinxdevice programming. Design verification which includes both function verification and timingverification, takes place at different points during the design flow.DESIGN ENTRY: Design entry is the first step in the ISE design flow. During design entry, sources files arecreated based on the design objectives. The top-level design file can be created using aHardware Description Language (HDL), such as VHDL, Verilog or using a schematic.SYNTHESIS: After design entry and optional simulation, the synthesis step is run. During this step,VHDL, verilog, or mixed language designs become netlist files that are accepted as input to theimplementation step.IMPLEMENTATION: After synthesis, the design implementation is executed, which converts the logicaldesign into a physical file format that can be downloaded to the selected target device. Fromproject Navigator, the implementation process can be run in one step, or each of theimplementation processes can be run separately.BACK ANNOTATION: Back annotation is the translation of a routed or fitted design to a timing simulationnetlist.VERIFICATION:
The functionality of the design can be verified at several points is the design flow. Thesimulator software can be used to verify the functionality and timing of the design or a portionof the design. The simulator interprets VHDL or verilog code into circuit functionality anddisplays logical results of the described HDL to determine correct circuit operation. Simulationallows to create and verify complex functions in a relatively small amount of time. The in-circuitverification can also be run after programming the device.DEVICE CONFIGURATION: After generating a programming file, the target device is configured. Duringconfiguration files are generated and the programming files are downloaded from a hostcomputer to a Xilinx device.RESULT Thus the FPGA design flow was studied using Xilinx ISE – 9.1i. STUDY OF SIMULATION USING XILINX ISE-9.1.i
AIM: To study the simulation of a digital circuit using Xilinx ISE 9.1.iINTRODUCTION: During HDL simulation, the simulator software verified the functionality, the timing ofthe design or portion of the design. The simulator interprets VHDL or Verilog code into circuitfunctionality and displays the logical result of the desired HDL to determine correct circuitoperation. Simulation allows to create and verify complex functions in a relatively small amountof time. Simulation takes place at several points in the design flow. It is one of the first stepsafter design entry and one of the last steps after implementation. As part of verifying the endfunctionality and performance of the design. Simulation is an iterative process, which may require repeating until both designfunctionality and performance timing is met. For a typical design, simulation libraries 1. Compilation of the simulation libraries 2. Creation of the designs test bench 3. Functional simulation 4. Implementation of the design and creation of the timing simulation netlist 5. Timing simulationSIMULATION LIBRARIES Most designs are built with gentle code, so device specific components are notnecessary. However in certain cases if may be required or beneficial to use device specificationcomponents in the code to achieve the desired circuit implementation and results when thecomponent is instantiated in the design, the simulator must reference a library that describesthe functionality of the component to ensure proper simulation, XILINX provides simulationlibraries for simulation primitives.UNISIM library for functional simulation of XILINX primitivesXILINX core library for functional simulation of linx primitivesSIMPRIM lib for timing simulation of XILINX primitivesTEST BENCH
To simulate your design you need both the design under test (DUT) or unit under test(UUT) and the stimulus provided by the test bench. A test bench is HDL code that allows toprovide a documental, repeatable set of stimuli that is portable across different simulator. Atest bench can be as simple as a file with clock and input data or a more complicated file thatincludes error checking, file input and output and conditional testing. The test bench can becreated using either of the following methods. (i) TEXT EDITOR This is the recommended method for verifying complex designs. It allows to use all the features available in the HDL language and gives you flexibility in verifying design. Although this method may be more challenging in that one must create this code, the advantage is that it may produce more precise & accurate results than using the bench waveform editor. (ii) XILINX TEST BENCH WAVEFORM EDITOR This is the recommended method for verifying less complicated simulation tasks, and is recommended if the designer is new to HDL simulation. It allows to graphically enter the test bench to drive the stimulus to the design. The same test bench can be used for both functions and timing simulationFUNCTIONAL SIMULATION After the simulation libraries & create the test bench & design code are compiled, onecan perform functional simulation on the design. Functional simulation is an iterative process,which may require multiple simulations to achieve the desired end functionality of the design.Result : Thus the Simulation using XILINX ISE-9.1.i was studied. STUDY OF SYNTHESIS USING XILINX ISE 9.1iAIM: To study the synthesis of a digital circuit using XILINX ISE 9.1i.
INTRODUCTION: After design entry and optional simulation is done, the synthesis of the design is run.The ISE software include XILINX synthesis technology (XST), which synthesis VHDL or verilog ormixed language designs to create X-link specific netlist files known as NGC files. XST places theNGC files in the projector and file is accepted as input to translate step of the implement designprocess.XST INPUT AND OUTPUT FILES: XST supports extensive VHDL and verilog subsets from the following standards VHDL:IEEE 1076-1987, IEEE 1076-1993, including IEEE standards and synopsis. Verilog: IEEE1364-1995, IEEE 1364-2001. A) XILINX CONSTRAINT FILE (XCF): XCF in which you can specify synthesis, timing and specific implementation constraintsthat can be propagated to the NGC. B) CORE FILES: These files can be in either NGC or EDIF format. XST does not modify coves. It uses themto inform area and timing optimization. In addition to NGC files, XST also generates the following files or outputs.SYNTHESIS REPORT: This report contains the result from the synthesis run, including area and timingestimation.1) RTC SCHEMATIC: This is the schematic representation of the pre-optimized design shown at theRTL. This representation is in terms of generic symbols such as address, multiples, counters,AND and OR gates.2) TECHNOLOGY SCHEMATIC: This is a schematic representation of an NGC file shown in terms of logicelements. Optimized to the target architecture or technology. It is generated after theoptimization and technology.3) HDL PASSING:
During HDL passing, XST checks whether the HDL code is corrected and reportsany syntax errors.4) HDL SYNTHESIS: During HDL synthesis, XST analysis the HDL code and attempts to infer specificdesign building blocks or macros for which it can create efficient technology implementations.To reduce the amount of inferred macros XST performs a resource showing check. This actuallyleads to a reduction of the area as well as an increase in the clock frequency.5) LOW LEVEL OPTIMIZATION: During low level optimization XST transforms inferred macros and general gluelogic into a technology specific implementation.RESULT: Thus the synthesis of digital circuit was studied using XILINX ISE 9.1i. STUDY OF SCHEMATIC ENTRY USING XILINX ISE 9.1iAIM: To study the schematic entry of a digital circuit using XILINX ISE9.1i.INTRODUCTION:
Schematics are used for top level or lower level design files. It allows to have a visualrepresentation of the design.TOP LEVEL SCHEMATIC: Schematics are used in the top level and low level modules are created using any of thefollowing source types. To instantiate a lower level module in the top level design and theschematic symbol is instantiated.LOWER LEVEL SCHEMATIC: Schematics can be used to define the lower level modules of the design. If the top leveldesign is schematic symbol is created and it is instantiated in the top level. If the top leveldesign file is an HDL file a template is created. All schematics are ultimately converted either VHDL or verilog structural netlist beforebeing passed.SCHEMATIC DESIGN METHODS: When using a schematic the top level design either of the following method is used todescribe the lower level modules.i) TOP-DOWN SCHEMATIC DESIGN METHOD: Using this method a top level block diagram description of the design is created using aschematic. Then each symbol pushed down and its behavior is defined using HDL or schematicfile.1) SCHEMATIC: The schematic contains input markers that correspond to the pins in the block symbolcreated. The schematic is built by adding symbols ad described in adding a symbol.2) VHDL (OR) VERILOG: The template contains HDC port descriptions that correspond to the pins in the blocksymbol created. The behavior of the module can be then added. The ISE language templateprovides a convenient method to insert.ii) BOTTON-UP SCHEMATIC DESIGN METHOD:
Using this method a top level schematic design is created and lower level functionalblocks is then created to instantiate.RESULT: Thus the schematic entry of a digital circuit was studied using XILINX ISE 9.1i.PLACE, ROUTE AND BACK ANNOTATION IN FIELD PROGRAMMABLE GATE ARRAY (FPGA)AIM: To study the place, route and back annotation in FPGA.PLACE AND ROUTE:
Place and route is a stage in the design of FPGA during which logic elements are placedand interconnected on the grid of the FPGA. As implied by the name, it is composed of twosteps, placement and routing. The first step, placement involves deciding where to place allelectronic component circuitry and logic element in a generally limited amount of space. This isfollowed by routing, which decides the exact design of all the wires needed to connect theplaced components. These processes are similar at a high level but the actual details are very different. Withlarge sizes of the modern designs, this operation is usually proportional by EDA tools.MANUAL PLACING AND ROUTING: The FPGA editor can be used to fine tune the design and impure the performance of theplace and route process, once can be manually swapped components and pins as well as routeand in route nets. When the design is manually changed in FPGA editor. When a group of components requires specific placements, relationally placed macrosare used to define the relative placements.DIRECTED ROUTING: Directed routing allows the design to retain and timing for a small number of loadsintended sources. Although it is necessary to lock placement so that the appropriate routingcan be reproduced. The directed routing cannot be used as placement tool.BACK ANNOTATION: It is the translation of a router on fitted design to a timing simulation netlist. Before timing simulation can occur the physical design information must be translatedand distributed back to the logical design.NETGEN: It is a command line program that distributes information about delays, set up and holdtimer, clock to out and pulse widths found in the physical NCD design file back to the logicalNGD file.
Netgen reads an NCD as input. The NCD file can have only design as a partially or fullyplaced and normal routed design. An NGM file created MAD is optional source is input. Netgenmerges mapping information from the optional file with placement routing and timinginformation from NCD file.RESULT: Thus the place, route and back annotation in Field Programmable Gate Array (FPGA) isstudied.