TABLE OF CONTENTS INTRODUCTION: ................................................................................................................................................... 2 Ternary adder: .................................................................................................................................................. 2 2. RTL Synthesis using Synopsis Design Vision: ................................................................................................... 4 2.1 Synthesis using design vision : ................................................................................................................... 5 2.2 Steps to synthesize:.................................................................................................................................... 5 3. Equivalence Checking in Formality: ................................................................................................................. 6 3.2Steps to Check Equivalence in Formality:................................................................................................... 7 3.3Snapshots and Inference............................................................................................................................. 7 4. Equivalence Checking using Cadence Conformal: .......................................................................................... 13 4.2 Steps to Check Equivalence in conformal: ................................................................................................ 13 4.3 Snapshots and Inference: ........................................................................................................................ 14 INTRODUCTION: Formal verification is the process of checking whether a design satisfies some properties. Formal verification use mathematical reasoning to verify that design intent (spec) is preserved in implementation (RTL). Formal verification, algorithmically and exhaustively explores all possible input values over time. The process of verification is done by presenting a formal proof on an abstract mathematical model of the system, and the relation between the model and the nature of the system being known by the development. [3] Formal Equivalence Checking tool is a part of EDA (Electronic Design Automation), generally used during the development of digital integrated circuits, to formally prove that two representations of a circuit design exhibit exactly the same behavior. Some of the current commercial equivalence checking tools are Chrysalis: Design Verifier, Synopsys: Formality, Cadence: Conformal and Affirma, Verysys : Tornado, AHL: Checkoff-E.[3] In this project we have used formal checking tools : "Synopsys Formality" and "Cadence Conformal Logic Equivalence Checker" for doing the verification of the design obtained through the synthesis of the given design using "Synopsis Design Vision". Ternary adder: Ternary adder is an adder with three inputs performing s = x+y+z, for the Altera and Xilinx platforms. The Altera core (ternary_adder_altera.vhd) is a high-level implementation using the '+' operator. However, the ternary subtract operations (x-y +z, x+y -z and x-y-z) are not supported by a high-level description; so this is realized by extending the word size of the ternary adders and setting the lower bits to appropriate constant values. They can be mapped very resource efficient for all Altera FPGAs providing adaptive logic modules (ALMs), today, these are the Arria I, II, V and Stratix II-V FPGAs. The implementation uses a carry save adder (CSA) tree with three inputs and a final ripple carry adder as vector merging adder (VMA). One stage of full adders (FAs) is used to realize a 3:2 compressor, i. e., the three input bit vectors are compressed to two bit vectors which are obtained by the sum and carry outputs. A second stage of FAs merges these two bit vectors to a single result. The 3:2 compressor can be directly mapped to the ALM LUT, realizing the sum si = xi (xor) yi (xor) zi and carry ci = xiyi +xizi +yizi. The full adders of the ALM are used for the VMA. To include both stages in a single ALM stage, each ALM has to be configured to the shared arithmetic mode [BLSY09] in which the output of one LUT is connected to the FA input of the next higher bit. Generic Input_word_size Type integer Default 10 Description Input word size of the inputs x, y and z. The output word size is automatically set to input_word_size+2 subtract_y boolean false subtract_z boolean false use_output_ff boolean true Input y is negated, realizing s = x -y ± z Input z is negated, realizing s = x ± y - z If true, the adder uses ip ops at the output (without extra slice or ALM resources) Table 1: Description of the generics Generic clk_i Direction In Type Sl Word size 1 rst_i In Sl 1 x_i y_i z_i sum_o In In In out Slv Slv Slv slv input_word_size input_word_size input_word_size input_word_size +2 Table 2: Description of the port Description Clock input (used when use_output_ff=true) Reset input (used when use_output_ff=true) Input x Input y Input z Sum output s 2. RTL SYNTHESIS USING SYNOPSIS DESIGN VISION: It is a process by which an abstract form of desired circuit behaviour, the Register Transfer File (RTL), is turned into a design implementation in terms of logic gates using a synthesis tool. Register-transfer-level abstraction is used in hardware description languages (HDLs) like Verilog and VHDL to create high-level representations of a circuit, from which lower-level representations and ultimately actual wiring can be derived.[5] In our project we synthesis the given RTL "fpu_sub.vhd" to a gate level design using the Synopsis design vision software. Synopsis design compiler (Design vision) is a powerful tool designed by Synopsis to synthesize the RTL, Structural or Behavioral level designs to gate level design. Design Vision has the graphical user interface (GUI) like Design Compiler and other Synopsys logic synthesis tools, and it supports most of gate-level netlist formats. 2.1 Synthesis using design vision : Design vision is a user friendly compiler which works into two modes simultaneously. It provide user to work in command mode or graphical mode or in both the modes simultaneously. This feature makes it more users friendly 2.2 Steps to synthesize: The following steps are involved in the setting up of Synopsys design compiler. First we need to create a separate directory by typing the command-- “mkdir synopsys” . Change the directory to Synopsys by--“cd synopsys”. Source the environment setup--“source /CMC/ENVIRONMENT/synopsys.env”. Copy the environment setup file in to the Synopsys directory cp /CMC/tools/synopsys/syn/admin/setup/ .synopsys_dc.setup.class.db.synopsys_dc.setup Starting the DC GUI interface by typing the command--“design_vision” & in the terminal box. Observe the setup library files by opening the “File=>Setup” option. Now, we need to load the design via “File=>Read menu”. Next, select the top level design module via “File=>Analyze=>Add”. Elaborate the design via “File=>Elaborate”. Now, we need to check the design by selecting the option-“Design=>Check Design”. If 1 is generated it implies that the design checking command is completed successfully and there were no errors in the design. [6] The complier will synthesize all the files included and we will obtain a gate level file "taa_syn.vhdl" 3. EQUIVALENCE CHECKING IN FORMALITY: Formality is a functional equivalence checking tool from synopsys. Formality identifies the problem areas and displays them in both schematics and HDL source views. Green –this color is used to show cells ,ports and pins in their normal state Red -This color is used to show all error candidate objects Yellow – this color is used to show selection , it overrides any other attribute color Cyan- this color is used to show nets in their normal state White – this color is used to for names of cells ,nets ,ports and pins as well as any logic Figure 1: Synopsys formality basic idea Formality is an equivalence-checking (EC) solution designed by Synopsys that uses formal, static techniques to determine if two versions of a design are functionally equivalent or not. Formality supports optimizations and provides the highest quality of results that are fully verifiable. Formality’s easy-to-use, flow-based graphical user interface and auto-setup mode helps even new users successfully complete verification in the shortest possible time. [6] 3.2Steps to Check Equivalence in Formality: The steps involved in the setting up of Formality checking tools is as follows: 1. First, create a work directory by typing the command in the terminal window of 2. LINUX prompt—“mkdir formality”. 3. Change the directory to formality—“cd formality”. 4. Next, sourcing the formality environment script as—“source /CMC/ENVIRONMENT/formality.env”. 5. Now, start the formality by typing-formality & at the terminal window. 6. Then, load the library file--class.db. 7. Now, load the designs in Reference and Implemented sections. 8. Next, click on ‘Setup’. 9. Click on ‘Run Matching’ button. We can see the results in the formality window. 10. Next, click on ‘Verify’ button. The verification process starts and after completion of the verification process the results are shown in the formality console. 11. Debug-if the verification fails, we need to debug the design and find out the errors and resolve them. [7] 3.3Snapshots and Inference After doing the environment setup where we load the reference file and the buggy implementation file, we verify the design. The verification failed and it provide the following result that the buggy design contains 5 unmatched points. Those 20 failing points might be due to multiple errors associated with single bug in the design. To find the bug in the design we selected first failing points & we diagnose that point to find errors in particular component. The following is the list of the failing points along with their register numbers. Figure 2 matching and verification Next we compare the schematics of both the reference and the implementation. We found errors by comparing schematics. Figure 3 set ternary_adder_add_0 as top module in reference Figure 4 set ternary_adder_add_0 as top module in Implementation Figure 5 Verification failed 5 failing points (add_0) We then click on the bug and view its schematic to locate the bug. BUG1: Reference BUG1: Implementation Figure 6 Start again with a new bug /new failing points BUG2: Reference BUG2: Implementation Figure 7: Set ternary_adder_add_1 as top module in reference Figure 8: Set ternary_adder_add_1 as top module in reference Figure 9: One unmatched point/Failing point Figure 10: Diagnose and find error using logic cones BUG3: Reference BUG3: Implementation Figure 11 Verification succeeded 4. EQUIVALENCE CHECKING USING CADENCE CONFORMAL: Conformal is a powerful equivalence checking tool developed by Cadence.it can provide formal proof that the outputs from synthesis matches the original RTL code. It can do all the checking without any simulation. This tool is a favorite option among the industries for equivalence checking of the gate level designs. It provides a user friendly interface, light in memory, fast in speed and reliable solution for equivalence checking. The golden design refers to the original “RTL net list” which refers for the comparison and the revised design is the “synthesized gate level net list”. [8] 4.2 Steps to Check Equivalence in conformal: The following steps are used in-order to verify the designs in conformal checking tool. Create a work directory called conformal-mkdir conformal. Change the directory to conformal by typing-cd conformal. Now, source the environment script-source /CMC/ENVIRONMENT/conformal.env. For starting conformal tool type this command-LEC –XL . Load the designs in to Golden and Revised options in the conformal directory. We also need to load the library file called-class.lib. Now, start the verification process by clicking the LEC option on the top right corner of the conformal window. Figure 8Flow chart conformal 4.3 Snapshots and Inference: After selecting the LEC option, a table is displayed on the conformal window showing the PI (Primary Inputs) and PO (Primary Outputs) in both the golden and revised designs. If they have the same number of inputs and outputs then they are equal. In-order to run the equivalence checker, select “Run=>Compare”. The two designs are now reduced into canonical representations and then checks if they are equal. Figure 9 Mapping manager BUG1 U51 un-identical (nand instead of xnor) BUG2 U36 un-identical (xnor instead of xor) BUG3: Golden U38 (un-identical) BUG3: Revised U38 (un-identical) Figure 10BUG4: U47 un-identical (xor instead of or)
© Copyright 2026 Paperzz