Home
RuleBase User`s Manual - Book I - Department of Computer Science
Contents
1. For example if a design includes an arbiter where the rest of the design should work regardless of the exact arbitration algorithm that arbiter can be replaced by an abstract one that only guarantees mutual exclusion Such an abstract arbiter for N devices can be modelled using log N 1 bits 8 7 BDD Ordering RuleBase uses a data structure called a Binary Decision Diagram BDD to represent the model In a BDD every state variable has a distinct level from 1 to n where n is the number of state variables The order in which the levels are allocated to the state variables has a large impact on the size of the BDD For example a design whose verification with a good BDD requires 30MB of memory may require 300MB or more with a bad order Therefore it is important to find a good order RuleBase can perform BDD reordering during model checking This is known as dynamic BDD ordering Because BDD ordering is extremely CPU inten IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Size problems and solutions 145 sive it is inactive by default It should be turned on for initial runs and the resulting order can be fed back into RuleBase for all consecutive runs Since reordering is time consuming it is good to reserve the final order for use in later runs of the same rule and even of other rules To do this open the BDD order section of the Options dialog box The Copy Now line has two fields Select
2. lt another sugar formula gt A rule must have a unique name and may contain any number of formulas Comments are optional both in rules and in formulas A rule may also contain environment models that override the default environment For more details refer to Section 7 1 Rule and Mode definition The most important part of the rule is its specification written as a Sugar for mula Sugar the RuleBase specification language is described in CHAPTER 5 To get started choose an important output signal of your design and write the following rule in your rules file rule start getting started formula Just to see a rule running AG AF lt output signal gt RuleBase a Formal Verification Tool Provided by special agreement with IBM 30 CHAPTER 3 The above formula states that on every path always there will exist a state where lt output signal gt has the value one You may write more formulas either in rule start or in separate rules in order to check real properties of your design The most simple form of a formula is formula AG lt some bad event gt where lt some bad event gt stands for a Boolean expression that should never be true in your design For example if enable and enable2 are two signals that should never be active at the same time the following formula can be used formula enablel and enable2 are mutually exclusive AG enable enable2 You ca
3. Parametric Designs 182 Implementation Rules 182 CHAPTER 12 Coverage Methodology 183 The coverage model 185 Rule writing 185 Environment writing 186 Plans and reviews 186 Design Partitioning 187 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 1 Introduction Traditionally logic verification is done by simulation In simulation a test vec tor is applied to the logic model and the results of the simulation are exam ined Both the generation of the test vectors and the examination of the results can be done either automatically using a special purpose tool or by hand Coverage is one of the problems of simulation Since it is impossible to exhaustively simulate all possible sequences of input vectors how can we decide when enough input vectors have been applied in order to give us reason able confidence that our design works as intended Formal verification is a novel technique for logic verification of hardware designs It attempts to address the problem of coverage by mathematically proving that a design is correct with respect to its specification There are many approaches to formal verification RuleBase uses an approach known as model checking which is equivalent to exhaustive simulation of the circuit for every possible input sequence In model checking the specification con sists of a set of properties to be proved For example if signal x is asserted then within
4. 3 Selected internal states of the system will be checked for correctness at all times Internal states are checked by the rules 4 The functionality of the block will be checked by the rules For instance if the purpose of the block is to acknowledge requests with a grant signal then this functionality should be covered for instance with a formula of the format AG request gt AF grant 12 2 Rule writing Rules should be written in the following manner For every output signal and selected internal signals and for every clock cycle 1 Determine the relationships of the signal to all other signals inputs and outputs 2 Write the rules that check the preservation of these relationships Divide the rules for each signal into three types 1 The signal will always change value when it must 2 The signal will not change when it should not 3 The signal will have a specific value at times that it must have that value Experience with Rulebase does not necessarily indicate that rules containing complex signals find design errors more often Neither do they cover all errors It is the careful and methodical coverage of all signals that makes Rulebase effective RuleBase a Formal Verification Tool Provided by special agreement with IBM 186 CHAPTER 12 12 3 Environment writing The following guideline is suggested Whenever possible keep the input signal nondeterministic even if this causes an i
5. 4 2 Arrays It is often convenient to define arrays of state variables and to apply operations to entire arrays or to ranges of indices Boolean arrays buses bundles are the most common but other types of arrays integer sub range enumerated con stants are also useful Hence RuleBase is oriented mainly toward boolean arrays but supports other types of arrays also 4 2 1 Defining arrays An array of state variables is defined as follows var name index index2 type It actually defines lindex2 index1I 1 state variables named name index1 name index2 where index can be either greater or less than index2 Examples var addr 0 7 boolean 8 boolean variables addr 0 addr 1 addr 7 counter 4 5 0 3 2 integer variables each can have the values 0 1 2 3 status 3 0 empty notempty full 4 variables each can have the values empty notempty full RuleBase a Formal Verification Tool Provided by special agreement with IBM 62 CHAPTER 4 An array can also be defined with a define statement define name index index2 lt expr gt Example define masked_sig 0 3 sig 0 3 amp mask 0 3 Note that the following line var x 0 3 5 7 13 defines an array of four integer variables each of them can have the values 5 7 or 13 This is not a non deterministic bit vector To define a bit vector and assign to it the three values non determinist
6. environment modes mode read_only define command read mode write_only define command write formula modes mode no_starvation formula AG AF grant formula AG AF grant2 mode no_collision formula AG grantl amp grant2 rule matrix rule read_only no_starvation inherit read_only no_starvation rule read_only no_collision inherit read_only no_collision rule write_only no_starvation inherit write_only no_starvation rule write_only no_collision inherit write_only no_collision RuleBase a Formal Verification Tool Provided by special agreement with IBM 140 CHAPTER 7 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 8 Size problems and solutions Size is one of the major obstacles to using formal verification for any design RuleBase is lim ited to designs having several hundred state variables flip flops after reduction or several thousand before reduction The number of state variables is a rough estimate of design com plexity the size limit depends the complexity of the logic as well as the number of memory elements This chapter discusses techniques that can be used to push the size limit as far as possible for your design 8 1 Design Partitioning The simplest method to overcome size problems is design partitioning Thus instead of trying to verify the entire design at once you may verify it unit by unit
7. var cmd read write flush stall hint cmd read hint cmd write hint cmd flush 5 4 4 5 More environment constraints examples 1 cmd busy are design inputs One cycle after cmd is active busy will be active var cmd busy boolean assume AG cmd gt AX busy 2 When sending a command cmd should be active for three cycles and then inactive for at least two cycles var cmd boolean assume cmd cmd ABG 1 2 cmd assume cmd 3 ABG 1 2 cmd 3 The above environment written with restrict var cmd boolean restrict cmd cmd 3 cmd 2 4 Consider a design block that should work properly under the following assumptions start end the input signals are pulses start and end are interleaving i e there is always a start between two ends and vise versa the first end will be proceed by a start var start end boolean assume AG start gt AX end before start assume AG end gt AX start before end assume AG start amp end assume start before end 5 The above environment written with restrict var start end boolean restrict start amp end start amp end start amp end start amp end IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 79 4 5 Linking the environment to the design In RuleBase the connection between the design and the en
8. CHAPTER 11 Design for Formal Verification presents some practical design guidelines to aid in formal verification CHAPTER 12 Coverage Methodology describes some ways to approach the problem of completely covering the block when proof of truth is not possible because of size problems RuleBase a Formal Verification Tool Provided by special agreement with IBM 10 CHAPTER 1 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 2 Tutorial This chapter introduces formal verification using the RuleBase tool in the form of a tutorial This tutorial presents a small design of a buffer and explains how to verify it under RuleBase After completing this tutorial you should feel comfortable enough to begin using the tool A basic knowledge in logic design is assumed All files referred to in this chapter can be found in the tutorial directory usu ally RBROOT tutorial Make a private copy of this directory and run from it It is assumed that you have access to RBROOT and that you did the initial setup as described in Section 3 1 2 1 Specification BUF is a design block that buffers a word of data 32 bits sent by a sender to a receiver It has two control inputs two control outputs and a data bus on each RuleBase a Formal Verification Tool Provided by special agreement with IBM 12 CHAPTER 2 side as shown by the block diagram BtoR_REQy RtoB_ACKi y BUF Rece
9. This button clears the analysis display window 9 5 Longest Trace In model checking the design and its environment are viewed as a finite state machine which is traversed If reachability analysis is enabled the first step of the verification is a breadth first search traversal of the state space of the model starting from the initial state or states The steps of this traversal are reported as iterations in the log file of the run The set of initial States is iteration 0 the set of all states reachable in one step from some initial state is iteration 1 and so on The last iteration includes all states which are as far as possible from some initial state A path from some initial state to a state in the last iteration is called a longest trace A longest trace can be useful in gaining insight into the design under verifica tion as a trace to some state in the final iteration is in some sense one of the most complicated traces than can be generated Frequently examining a long est trace can uncover a bug in the design or in the environment RuleBase a Formal Verification Tool Provided by special agreement with IBM 160 CHAPTER 9 Longest trace generation is controlled from the verification control panel as described in Section 10 5 3 4 A longest trace can be viewed using the debug ging menu option as described in Section 10 2 4 9 6 Multiple traces Sometimes user may want to see more than one counter example
10. e Default environment e Modes that define restricted environments e Modes that group related formulas e Rules Default environment The default environment should model the full behavior of the environment When writing the default environment it is recommended that you forget the small details of how you intend to attack the size problem This does not mean that the environment is written without considering this problem on the con trary the environment models should be abstract and small But specific reductions should be reflected only in modes to be written at a later stage Modes that define restricted environments In many cases the default environment does not cause enough reduction of the design to be verified Behavioral partitioning is one of the methods that may help in these cases In behavioral partitioning multiple reduced environments are defined each of them is represented as a mode Then each formula is run in all these modes See Section 7 2 below Modes that group related formulas The necessity to run each formula in multiple environments suggests to keep formulas in separate modes to be inherited by rules Rules In this methodology the list of rules is in fact a matrix of environment modes and formula modes where each formula may run in many environment IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Managing Rules Modes and Environments 139 Example
11. gt next_event write data_out 0 7 0 AG read amp data_in 0 7 255 gt next_event write data_out 0 7 255 e forall has its penalty an extra state variable 8 bits in the example above but usually this variable doesn t contribute much to the size problem if the BDD order is reasonable RuleBase a Formal Verification Tool Provided by special agreement with IBM 132 CHAPTER 6 6 6 Eventuality e If request is asserted ack should be asserted in the future beginning from the next cycle AG request gt AX AF ack e If request rises ack should be asserted at the same cycle or in the future AG rose request gt AF ack e No matter what is the current state it is always possible to reach a state where mstate idle AG AF mstate idle 6 7 More Sequences e If grant is active and there is no retry in the next cycle busy must become active two cycles after grant grant retry AX busy or grant retry true busy or grant retry busy false or AG grant gt AX retry gt AX busy e The fourth data_ready after start should be accompanied by last_data start data_ready data_ready 4 last_data e The fourth data_ready after start should be accompanied by last_data unless there was abort in the middle start amp abort data_ready amp abort data_ready amp abort 4 last_data IBM Haifa Research Lab
12. as follows var CLK boolean assign init CLK 0 next CLK CLK Notes e If your design uses master slave latches then the master latches will change on one level of the clock and the slave latches on the other However if the only use of the master latches is to drive the slaves 1 e there is no use of the master latch output other than by its slave then you can still use the simpler clock scheme described above which will give you better performance To do this you must model the master slave pair as a single edge triggered flip flop or latch see CHAPTER 3 for modelling of latches e Although may be used in designs that have one clock with one phase model checking of is more efficient e When the clock is defined as in formulas should include explicit reference to the clock signal For example the following formula AG p gt AX q y RuleBase a Formal Verification Tool Provided by special agreement with IBM 88 CHAPTER 4 should be rewritten as AG p amp CLK gt next_event CLK q This rewriting may also be necessary in the more complicated clock schemes described below If all signals in the formula refer to the same clock as in the examples above Rule Base can rewrite the formula automatically To do that simply write AG p gt AX q clk CLK See section 5 4 Multiple Clocks in Formulas for more details Before continuing further with more cl
13. e Vertical text causes signals with text values for instance enumerated constants to have a vertical display format e Horizontal text causes signals with text values to have a horizontal display format e Sort Unsort this option can be ignored by users of RuleBase 9 1 2 3 View menu option Clicking left on the View menu option opens a sub menu with the following items e Zoom in zooms in on the waveform display e Zoom out zooms out on the waveform display e Show Hide Toolbar this option can be ignored by users of RuleBase RuleBase a Formal Verification Tool Provided by special agreement with IBM 152 CHAPTER 9 9 1 3 Signal list The signal list contains a list of all signals in the design and environment that remained after reduction If a signal does not currently appear in the waveform display it can be added to the display by clicking left on it The location of the display of a signal s waveform can be con trolled in the following manner To add signal a above signal b in the waveform assuming that signal b is already displayed first mark signal b by clicking left on the name of the sig nal and NOT on its waveform in the waveform display window Signal b should now be marked by a rectangular box surrounding the signal name Now in the signal list click left on the name of signal a The waveform of signal a should now appear above that of signal b T
14. A rule is the basic entity that can run A rule defines a group of related formulas to be verified in one run It may also re define parts of the design or environment thereby overriding the default behavior for the specific run The rule syntax is as follows rule name optional textual description of the rule at least one formula formula optional textual description Sugar formula formula optional textual description Sugar formula the rest of the statements are optional enys rule name rule name formulas rule name rule name test_pins signal name signal name rule name rule name inherit rule name rule name lt EDL statements var assign define instance fairness gt A mode is a rule which cannot be run by itself and is used for grouping and naming of formulas and or environments It can only be inherited by rules or by other modes The syntax of mode is exactly the same as the rule syntax except that it begins with the keyword mode instead of rule IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Managing Rules Modes and Environments 135 A rule must contain at least one formula not required in mode All the other parts are optional The order of statements in a rule is unimportant All kinds of statements may appear numerous times It is recommended to fill the textual description of formulas and rules T
15. OCCUPIED_FLAG process begin wait until CLK event and CLK 1 if RST 1 then OCCUPIED lt 0 elsif OCCUPIED 0 then if READ 1 then OCCUPIED lt 1 RuleBase a Formal Verification Tool Provided by special agreement with IBM 24 CHAPTER 2 end if elsif OCCUPIED 1 then if RtoB_ACK 1 and BtoR_REQ 1 then OCCUPIED lt 0 end if end if end process DATA_BUFFER process begin wait until CLK event and CLK 1 if READ 1 then DO lt DI end if end process READ lt l when S_STATE S_READ else 0 BtoS_ACK lt 1 when S_STATE S_DONE else 0 BtoR_REQ lt 1 when R_STATE R_SEND else 0 end RTL_VIEW IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 3 Getting started 3 1 Accessing RuleBase Before running RuleBase for the first time you should do the following The instructions below are for csh users if you are using another shell use the appropriate replacements In your home directory in the file cshrc add the following lines setenv RBROOT lt directory gt alias rb RBROOT guirb bat where lt directory gt is the full path to the directory in which RuleBase binary files are installed Type source cshre in order to bring these settings into effect e Make sure you have access to RBROOT If not ca
16. The next example is interesting from a theoretical point of view It is a Sugar formula that can not be expressed in bare CTL It expresses the fact that f is true at every even cycle 0 2 true true true f Sequences may be useful for showing interesting paths even if you don t intend to find bugs Suppose that you want to see a scenario in which a cache line is modified and later becomes exclusive without being invalidated in between The following sequence claims that this path is impossible and its counter example will demonstrate such a path if one exists modified invalid amp exclusive exclusive false False is a formula that can never be true so a counter example will be provided if the sequence in braces is possible RuleBase a Formal Verification Tool Provided by special agreement with IBM 120 CHAPTER 5 5 4 Min Max specifications RuleBase can evaluate the length of the shortest or longest path between two boolean events min request acknowledge For 37 will compute the length of the shortest path between a request and an acknowl edge in the model and max request acknowledge For 38 will compute the length of the longest path between these events that does not pass through another acknowledge If there exists a path in the model where a request is never acknowledged then the result of the above formula is infi nite Min or max cannot be nested in a f
17. debugging This option is only needed in the case that for some reason it is desired to generate a sim ulation test out of the counter example generated by RuleBase RuleBase a Formal Verification Tool Provided by special agreement with IBM 174 CHAPTER 10 10 5 5 Log quick button This button will display the log file of the currently selected rule If the rule is currently run ning this option will work only if invoked from the machine on which the rule is currently run ning If the rule has completed the log file of the completed run will be displayed Two sub buttons are given to ease analysis of the log n pushing this sub button will delete all the nodes allocated lines from the log gt pushing this sub button will delete all BDD ordering lines 10 5 6 Warnings quick button This button will display any warnings of the currently selected rule 10 5 7 Status quick button This button will display the status of the currently selected rule If the rule is currently run ning it will display the start time of the run and the name of the machine on which the rule is running If the rule has completed the results pass fail of each formula and the cpu time and memory usage will also be displayed 10 5 8 Explain quick button This button will display an explanation of the formulas of the currently selected rule The explanation is a rudimentary translation into English of the formula 10 5 9 Results quick bu
18. e g 1011B A hexadecimal number begins with a decimal digit has hexadecimal digits and ends with H e g 7FFFH OFFH Note that RuleBase infers the width of con stants from the context in which they are used and not from their format For example 0010B can be assigned to any bit vector that has at least two bits An enumerated constant is one of the symbolic values which a variable can take on For instance if we declare the following var state idle stl st2 st3 waiting then each of the 5 symbolic values idle st1 st2 st3 and waiting are enumerated constants A variable reference has one of the following formats name simple variable name number one bit of array name number number a range of bits Variables are described in Section 4 1 2 Arrays are described in Section 4 2 RuleBase a Formal Verification Tool Provided by special agreement with IBM 48 CHAPTER 4 4 1 1 2 Operators An expression can be a combination of sub expressions connected by opera tors Boolean connectives exprnot expr amp exprand expr expror expr expr or expr xor expr xor expr gt exprimplies expr lt gt expriff xnor Boolean operations can be applied only to boolean expressions Relational operators expr exprequals expr exprnot equals expr gt exprgreater than expr gt expr greater than or equals expr lt exprless than expr lt e
19. 1 2 ABF The operator ABF i j f constrains the future of the operator AF between i and j clocks from where it is applied For instance the following example exhibits the rule whenever there is a request an acknowledge will be received within 1 to 3 clocks AG req gt ABF 1 3 ack For 13 The equivalent CTL expression of this simple fact is AG req gt AX ack AX ack AX ack For 14 5 3 1 3 ABG The operator ABG i j f constrains the future of the operator AG between i and j clocks from now For example the following expresses the rule whenever there is a request the busy sig nal is locked and stays locked for the next 4 clocks AG req gt ABG 0 4 busy For 15 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 107 The equivalent CTL expression is AG req gt busy amp AX busy amp AX busy amp AX busy amp AX busy For 16 5 3 2 until 5 3 2 1 until As discussed in Section 5 2 4 the AU operator is a strong operator That is the formula A pU q For 17 means that q must eventually occur and that p must be true on all paths until q occurs The until operator is the weak version of the AU operator It is written p until q For 18 and means that for all paths p is true until q occurs However the weak until does not require that q eventually occur in that case p must be
20. 120 Quantification Over Data Values 121 Writing Correct Formulas 122 Satellites Even More Expressiveness 124 Sugar Formula Examples 127 Basic formulas 127 Arrays 129 Before 130 Until 131 Forall 131 Eventuality 132 More Sequences 132 Managing Rules Modes and Environments 133 Rule and Mode definition 134 Using modes to limit the Environment Example 136 Verification Project Management 138 Size problems and solutions 141 Design Partitioning 141 Rule Partitioning 142 Behavioral Partitioning 142 Abstraction of the Environment 142 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Gradual Enlargement 143 Abstraction of Internal Parts 143 BDD Ordering 144 Verify Safety OnTheFly 145 Efficient Use of Real Memory 147 CHAPTER 9 Debugging Aids 149 Scope waveform display tool 150 Vacuity 154 Witness 155 Reduction Analyzer 156 Longest Trace 159 Multiple traces 160 Prolong trace 160 Other debugging aids 161 CHAPTER 10 Graphical User Interface Tool Controls and Options 163 Main window overview 164 Menu Bar 165 Message panel 167 Rule list 168 Quick buttons 168 Text control panel 176 CHAPTER 11 Design for Formal Verification 179 Separation of Control from Data 179 Design Partitioning 179 Clocking Schemes 180 Design Mapping 181 Asynchronous Logic 181 Tri State Buffers 181 RuleBase a Formal Verification Tool Provided by special agreement with IBM
21. EG or any strong Sugar operator an operator whose name ends with these are known as liveness for mulas rather than safety formulas e Formulas in which there is a I the or operator between temporal sub formulas e Formulas in which a weak until has a temporal sub formula on the right hand side The Verify Safety OnTheFly option will sometimes need to add auxiliary state variables For this reason the option can be controlled by the user It is advisable to try this option and see if the additional state variables are a prob lem for RuleBase because of size limitations In most cases this option can be a considerable time and space saver Keep in mind that RuleBase will not add any state variables for rules of the form AG p where p is a combinational formula A useful trick when using this technique is to and your formulas together into one big formula The advantage of this technique is that the overhead for checking formulas on the fly is reduced considerably RuleBase has an option to make this automatically and transparently from the user To operate this option add to your rulebase setup file the line IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Size problems and solutions 147 setenv RB_BIG_AND 1 Using this option all safety formulas will be anded but the results will be given as if they were run separately The RB_BIG_AND option will operate only if all
22. Formula 32 we express the fact that the busy sig nal should remain asserted for a period of time without knowing in advance exactly how many clocks that will be or whether it is exactly the same number of clocks each time within is a weak operator it does not require that either of the conditions p or q ever happen But if in some computation p occurs and q never follows then the formula r should hold at p and remain true forever For the corresponding strong operator see Section 5 3 5 2 RuleBase a Formal Verification Tool Provided by special agreement with IBM 112 CHAPTER 5 The effect of the within p q r operator on AF is more interesting Recall that the standard meaning of AF is for all paths at some point in the future By restricting the AF operator with the within p q r operator AF means for all paths at some point in the future between p and q For instance suppose you want to express the fact that before an acknowledge can be sent data must be received This can be done using the following Sugar formula AG within req ack AF data_receive For 33 Because the AF operator is restricted by within its scope ends at the acknowl edge Thus the formula expresses the fact that for all paths starting at the time of a request at some time in the future but before an acknowledge signal is asserted data is received In the general case what within p q r does is trim the tree of computation
23. constructs of RuleBase have the following format expr CXpro expr a non deterministic choice IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 51 expr union expranother way to express expr expr gt n noanother way to express n ny 1 No 4 1 1 6 Other expressions The following are also expressions expr a parenthesized expression expr in v Vo V shorthand for expr v1 expr v2 expr Vp 4 1 1 7 Built in functions The built in functions fell and rose have the following functionality e fell expr is true if expr is 0 and was 1 on the previous cycle e rose expr is true if expr is 1 and was 0 on the previous cycle The usage of fell and rose results in additional state variables one for each expression to which they refer However multiple references to the same vari able will add only one extra variable 4 1 2 The var statement A var statement declares state variables It has the following format var name name type name name type The type can be one of the following e boolean e enuml enum2 e number number2 Arrays will be described in Section 4 2 For instance the following are legal var statements RuleBase a Formal Verification Tool Provided by special agreement with IBM 52 CHAPTER 4 var request acknowledge boolean var state idle
24. ease the verification process e g proper partitioning 3 2 2 File rulebase setup This file should exist in the verification directory and must include at least the following four lines IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 27 e setenv entity lt DESIGN_NAME gt This is the name of the top level entity of your design in upper case Sec tion 3 4 Design Translation explains what is considered an entity in each of the translation paths e setenv name lt design_name gt This is the name of your top level design file without the extension Sec tion 3 4 Design Translation explains what is considered a name in each of the translation paths e setenv SYNTHESIS lt path gt This is your translation path it can be either DSL HIS HIS_VERILOG SYNOPSYS or VIM See Chapter 3 4 Design Translation to determine which of these to use If you need the Compass translation path please con tact us for instructions e setenv database envs The file envs is where your environment models and rules are written The file is described below File rulebase setup is read by RuleBase only once at the beginning so any change to this file requires either to exit and re start RuleBase or to select the File Read rulebase setup menu option 3 2 3 File envs This file should include environment models Although it is possible to mix models and speci fication
25. except in text strings Before processing the environment description files RuleBase calls a standard preprocessor cpp to filter these files The mechanisms provided by cpp can be used to facilitate the development of environment models The most useful mechanisms are macros conditional compilation ifdef if endif and include See man cpp on your unix system for more details RuleBase provides additional preprocessing abilities in addition to cpp These are the for and if constructs described below RuleBase a Formal Verification Tool Provided by special agreement with IBM 58 CHAPTER 4 4 1 10 1 for The for construct replicates a piece of text a number of times with the possi bility of each replication receiving a parameter The syntax of the for con struct is as follows for lt var gt Yin lt expr1 gt lt expr2 gt Yodo end or for lt var gt in lt expr1 gt lt expr2 gt step lt expr3 gt do end step can be negative or for lt var gt in lt item gt lt item gt lt item gt do end where lt item gt is either a number an identifier or a string in double quotes When the value of an item is substituted into the loop body see below the double quotes will stripped In the first case the text inside the for end pairs will be replicated expr2 expr1 1 times assuming that expr2 gt expr1 In the second case the text will be replicate
26. is the library name in upper case that points to the library source files e g setenv IEEE vhdl source ieee e Add the directory with the compiled protos to DBIN e g setemv DBIN DBIN vhdl protos ieee Library source files should not be included in the makefile IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 39 3 4 4 Synopsys VHDL With the Synopsys translation path the user must compile the design into a gate level descrip tion outside of RuleBase The result should be a single gate level VHDL file lt name gt vhdl consisting of only not and and VHDL operators and the component SYNOP_BASIC_FF The following dc_shell commands can be used to create gate level VHDL vhdlout_write_components false vhdlout_equations true verilogout_equation true verilogout_write_components false target_library gtech db read format vhdl lt vhdl_filel gt lt vhdl_file2 gt Read VHDL files current_design lt top_level_entity_name gt Specify name of top level entity compile no_map Compile with low effort E eo BIN a replace_synthetic ungroup 10 ungroup all flatten Sometimes more flattening is needed 11 write no_implicit format vhdl o lt name gt vhdl Write gate level VHDL 12 quit Add the following lines to file rulebase setup in your verification directory setenv name lt name gt lt name
27. itation protects users from commonly encountered mistakes RuleBase sup ports other types of fairness which are detailed in Section 4 7 3 1 Additional advanced fairness types IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 57 4 1 9 Scope rules Statements inside a module cannot reference variables outside that module no global symbols External signals and variables needed by the module must be passed as parameters to the instance A module can assign values to external signals and variables only by passing them as output parameters On the other hand it is possible to reference internal signals of an instance from outside that instance For example if module M has an internal signal Sig and Ins is an instance of module M one can refer to signal Sig as Ins Sig P is the hierarchy character This allows formulas to refer to the internal state of instances without the burden of exporting state variables It also allows you to easily override parts of existing modules without changing the module definition Overriding is explained in detail in Section 4 5 4 1 10 Comments macros and preprocessing There are two types of comments in environment description files 1 Text beginning with and ending at the end of line 2 Text beginning with and ending with Comment text is ignored by RuleBase A comment can be inserted anywhere a space is legal
28. name in the signal list type its name or part of its name in the small win dow above the signal list and press Enter 9 4 4 Analysis display window The analysis display window is used to display the reduction analysis information 9 4 5 Quick button menu The quick button menu contains the buttons used to control the reduction analysis Each is described in detail below 9 4 5 1 Operation quick button The operation quick button is used to select the reduction analysis operation to be performed Choose a value then click left on a signal from the signal list The operation you have requested will be performed The depth of the analysis is controlled by the stop at quick but ton described in the next section Possible values of the operation quick button are e Explain requests the reduction analyzer to explain why a signal is either dead or alive or has a constant value If a signal is dead deleted by the reduction analyzer the reason will be shown If it is alive its influence on one of the formula signals or on a test pin will be explained by showing a chain of influence from the selected signal through intermediate signals and finally to a formula signal or test pin If a signal has a constant value the deri vation of that constant value from the environment through the design will be shown e Cone requests the reduction analyzer to show the cone of influence of the selected signal Some shortcuts may be taken For in
29. next point in time is marked For example if a request is made at the current state and an acknowledge is required at the very next time step This is expressed as AX ack For 7 As is the case with AF described above Formula 7 is not practical since in real life a request is made at many points in time and under many circum stances In real life our world would probably look more like Figure 11 RuleBase a Formal Verification Tool Provided by special agreement with IBM 102 CHAPTER 5 FIGURE 11 AX in the real world current state re In Figure 11 a request is made at three different points in time Starting at each point where a request is made there are many infinite paths For each one of those paths the very next point in time is marked This can be expressed in CTL as AG req gt AX ack For 8 Formula 8 can be read as follows for every request we must get an acknowl edge at the next point in time It is worthwhile to compare Figure 8 with Figure 11 In the former a request must be acknowledged eventually In the latter a request must be acknowl edged at the very next point in time EX means for some path at the very next point in time This situation is depicted in Figure 12 below IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 103 FIGURE 12 EX current state Again by studying the figure
30. of files in the model it is frequently convenient to create a wrapper file for example all_files v which contains include directives of Verilog preprocessor to include all model files and then to use setenv sources all_files v 3 4 8 Compass If you wish to use the Compass translation path please contact us for instructions IBM Haifa Research Laboratory Israel Provided by special agreement with IBM cuaptens Describing the Environment RuleBase will check the properties specified for every possible input sequence However most chips are not designed to accept every possible input sequence Designers often assume a correct behavior of the target environment and sim plify the design by ignoring illegal behaviors RuleBase must be made aware of the environment s legal behavior otherwise it might produce false negatives counter examples that result from illegal input sequences The way to specify environment behavior is to write environ ment models logic that drives the inputs of the design to be verified Every input of the design must be assigned some behavior Some inputs are kept con stant e g configuration inputs others remain completely free non determin istic while the control signals of interest are usually assigned detailed and exact behavior Environment models are written in the RuleBase Environment Description Language referred to as EDL a dialect of the SMV language EDL is some what s
31. q r is a derivative of the within operator It may be thought of as within now q r 5 3 5 4 whilenot q r This is the strong version of the whilenot q r It has the same meaning as whilenot q r operator with the addition that q must eventually happen 5 3 6 Sequence The sequence is a Sugar construct used to describe computation paths on which some formula must hold It looks like a regular expression and its semantics resemble the semantics of regular expressions The sequence suits the world of hardware design It can be regarded as a textual representation of a timing diagram or as a generalized control program for simulation Its main advantage is the simplicity of writing certain properties which are difficult to formulate using other CTL and Sugar operators The sequence has two parts a list of events el e2 and a Sugar formula f el e2 en f For 36 The sequence can be regarded as an if statement where the event list is a con dition that indicates when to check the formula It means if at some computa tion path all the events take place in the order they are defined then the formula must hold on this path at the last cycle of the last event in the list an event may last more that one cycle A comma between two events denotes a move of one cycle forwards however if an event takes zero cycles a comma either before it RuleBase a Formal Verification Tool Provided by special agreem
32. reading writing hold var counter 0 1 2 3 var length 3 15 The first statement declares two variables request and acknowledge to be of type boolean The second statement declares a variable called state which can take on one of four enumerated values idle reading writing or hold The third statement declares a variable called counter which can take on the values 0 1 2 and 3 The fourth statement declares a variable called length which can take on any of the values between 3 and 15 inclusive A var statement only declares state variables The assign statement described below defines the behavior of these variables 4 1 3 The assign statement An assign statement assigns a value to a state variable declared with a var statement It has one of the following formats assign init name expression assign next name expression assign name expression The first statement assigns an initial value to a state variable The second state ment defines the next state function of a state variable A state variable is sim ply a memory element or register flip flop or latch The third statement assigns a value to a combinational variable The following are examples of legal assign statements assign init state idle assign next state case reset idle IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describ
33. rep 1 N nondets N is equivalent to rep 0 1 N 4 2 5 Array Notes e The exact range must be specified in the operation a b is not equivalent to a 0 3 b 0 3 b 0 3 represents variables b 0 through b 3 while b repre sents one variable with no index e Operands can take any ranges provided that their widths are compatible For example a 0 3 amp b 1 4 is legal but a 0 3 amp b 0 4 is not e If one of the operands is a boolean vector and the other is a numeric constant the constant is considered an array of bits For example a 0 1 10B is equivalent to a O 1 amp a 1 0 and a 1 0 10B is equivalent to a 1 1 amp a 0 0 RuleBase a Formal Verification Tool Provided by special agreement with IBM 66 CHAPTER 4 e var v 0 3 5 7 13 Y defines 4 state variables each of them can take the values 5 or 7 or 13 This is sometimes confused with var v 0 3 boolean assign v 0 3 5 7 13 that defines a vector of 4 bits and the whole vector can take the values 5 or 7 or 13 e Arrays can be used as formal parameters of modules and as actual parameters of instances The actual parameter width must match the width of the formal parame ter e If you write define N 7 and later a 0 N leave a space around the two dots a 0 N Otherwise the standard preprocessor cpp used by rulebase will identify N as a token and
34. still available Rule Base users will usually want to override this limitation In cshell for example the limit command can be used to control and display the user s quota A pos sible setting for a computer with 256MB real memory is limit datasize 230000 limit memoryuse 230000 RuleBase a Formal Verification Tool Provided by special agreement with IBM 148 CHAPTER 8 The current limits can be viewed using the following command limit RuleBase is very slow when it runs out of real memory therefore it is not a good idea to increase data size above the size of the real memory IBM Haifa Research Laboratory Israel Provided by special agreement with IBM cuaptens Debugging Aids When a formula fails debugging is usually done by examining the counter example trace using the Scope tool described below However RuleBase provides other debugging aids to assist in the analysis of the design whether or not a formula fails Some of these aids are described here in detail Section 9 1 Scope waveform display tool Section 9 2 Vacuity Section 9 3 Witness Section 9 4 Reduction Analyzer Section 9 5 Longest Trace More debugging aids are described in other chapters Vacuity explanation Section 10 5 9 2 Formula explanation Section 10 5 8 Test generation Section 10 5 9 1 Lists of variables and signals before and after reduction Section 10 2 4 RuleBase a Formal Verification Tool Provided by special a
35. the clocks are not synchronized the ratio of frequencies is kept within a limited range Assume for example that the ratio can range from 1 2 to 1 3 which means among other things that sometimes the faster clock beats twice before the slower clock beats once and sometimes it beats three times One possible solution is to model a slow clock which non deterministically generates a pulse once every two or three cycles define FAST_CLOCK 1 var clock_counter 0 2 assign next clock_counter clock_counter 1 mod 2 clock_counter 1 mod 3 define SLOW_CLOCK clock_counter 0 Even if the clock scheme in your design is a complex one it is recommended to begin verification with the simplest scheme possible Some of the design errors are likely to be detected no matter what the scheme is Only after the simplified design seems to be error free should you move to a more complex and realistic scheme and try to hunt those problems that cannot otherwise be detected 4 9 Modelling Reset Another important signal that appears in most of the designs is the reset signal Usually reset is activated for some time after power up and then deactivated for normal operation Reset must be active long enough to initialize all mem ory elements with the correct values In many designs a few cycles 1 to 10 are enough The following example shows an environment model that gener ates a 4 cycle active high reset var reset_counter 0 4
36. this sequence Since false is a formula that may never be satisfied existence of the bad sequence in our design will cause RuleBase to produce a counter example IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar Formula Examples 131 6 4 Until e If request is asserted it will remain active until inclusive grant AG request gt request until_ grant Notes e grant may never occur after this request in which case request must stay active forever euntil_ with an underscore means that request must also hold at the first cycle where grant holds e Another way to formulate the above requirement request amp grant grant request false e If request is asserted it will remain active until not inclusive grant AG request gt AX request until grant e Other ways to formulate the above requirement request grant request amp grant false or request grant request 6 5 Forall e If data_in 0 7 has some value during read in the next time that write is active data_out 0 7 will have the same value forall x 0 7 boolean AG read amp data_in 0 7 x 0 7 gt next_event write data_out 0 7 x 0 7 Notes e forall is a mean to apply a formula to multiple values at a time It is equivalent to writ ing a separate formula for each value that the forall variable can take AG read amp data_in 0 7 0
37. three clocks signal y will be de asserted or signals z and w will never be asserted together If the property is true the designer is notified If the property is false a counter example is provided The counter example is a RuleBase a Formal Verification Tool Provided by special agreement with IBM 8 CHAPTER 1 waveform showing a simulation sequence which proves that the property is false The big advantage of model checking over simulation is that the designer is freed from the necessity of generating test vectors Model checking will check the properties specified for every possible input sequence On the other hand most chips are not designed to accept every possible input sequence If a given property fails for an illegal input sequence this is of no interest Thus a method is needed to specify all the legal input sequences to the formal verifica tion tool This is done by specifying a model of the expected environment This model describes the legal input sequences to the design under test One of the practical problems of model checking is known as the size prob lem Because of the size problem complete model checking runs can verify designs having a few hundreds of state variables latches or flip flops This is obviously not enough to be useful in real hardware designs The RuleBase for mal verification tool solves the size problem by renouncing the proof of truth possible with model checking on small de
38. time depending on the cir cumstances but it must always eventually take place This can be expressed in CTL as AF ack For 3 Actually the above formula is not very useful since in real life a request is made at many points in time and under many circumstances In real life our world would probably look more like this IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 99 FIGURE 8 AF in the real world current state re 3 In Figure 8 a request is made at three different points in time Starting at each point where a request is made there are many infinite paths For each one of those paths at least one future point is marked This can be expressed in CTL as AG req gt AF ack For 4 where gt is the implies operator Thus this formulas can be read as for all paths at every point in time if there is a request then for all paths emanating from that point at some future time we must receive an acknowledge In more simplified terms whenever there is a request eventually there is an acknowl edge There are still some open questions regarding Formula 4 Why is AG required in Formula 4 Why not simply state req gt AF ack For 5 The answer is that Formula 5 refers only to the initial state For a hardware model the initial state is located at power on Thus Formula 5 refers only to a RuleBase a
39. to a formula and if counter examples are as different one from another as possible it helps the user to debug the design Rulebase provides the multiple traces feature for this aid which uses Hamming distance heuristic to search different traces The user asks Rulebase for the desired number of traces and gets them or less if no enough traces exist The user can enable this feature by adding multiple_traces n flag to SMV FLAGS variable using File Setenv menu as described in Section 10 2 1 where n is the number of traces user wants to see Note Currently the user can see all the traces of counter example by pressing the Get Next Trace button in the new Scope which is given by request and cur rently is not in the Rulebase package The default Scope does not support this feature and shows only the first trace 9 7 Prolong trace Looking at the counter example which is given to the point that contradict the formula the user may want to know what happens next i e what are the values of signals on the follow ing cycle or even on the number of following cycles Rulebase makes it possible providing the prolong trace feature The user asks Rulebase to prolong the traces by n cycles and each trace if any is prolonged by the given number of cycles or the warning is given if it is not possible The latter happens if the counter example is finite and has no continuation of given length because of environmental const
40. to cope with size problems have been used see CHAPTER 8 Size problems and solutions In this case you might want to perform behavioral partitioning and define modes that restrict the default behavior Several possibilities of such modes are shown below IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Managing Rules Modes and Environments 137 mode load_add two commands only CMD 0 1 become constant var command load add mode eight_addr_bits bits 0 7 are 0 bits 8 15 retain their behavior define ADDR 0 7 0 mode load_add eight_addr_bits combining the above two modes inherit load_add eight_addr_bits mode another_way_to_do_the_same var command load add define ADDR 0 7 0 Now rules can run in the restricted environment by inheriting the above modes For example rule some_property inherit load_add eight_addr_bits formula Since over reduction limits the model checking run to only a subset of the pos sible input sequences multiple runs of the same rule using different environ ments are sometimes necessary in order to provide good verification Managing these multiple environments is described in Section 7 3 RuleBase a Formal Verification Tool Provided by special agreement with IBM 138 CHAPTER 7 7 3 Verification Project Management A well formed verification project usually consists of the following elements
41. true If rules of this type are proven in an abstract system it will also hold true in every concrete system that imple ments the abstract system Experience has proven that most of the rules used in practice are of this type 4 7 1 Coding non determinism 4 7 1 1 Free variables A free variable is any variable which is declared but not assigned a behavior using an assign statement For instance assume the following is part of an environment which models a CPU driving a memory bus var command read write none Since we have not specified any behavior for variable command RuleBase must consider all possible sequences of commands A non deterministic choice between values of a variable can also be made by enumerating all possible values Thus we could have made the variable com mand free explicitly as follows var command read write none assign command read write none RuleBase a Formal Verification Tool Provided by special agreement with IBM 82 CHAPTER 4 4 7 1 2 Non deterministic choice Many times we do not want a variable to be completely free but rather constrained in some way while still exhibiting non deterministic behavior in certain cases For this purpose we can use non deterministic choice among expressions The non deterministic choice is an expres sion indicating a choice between a number of values For instance the following expression write none indicates a non determinis
42. true forever For example to express the rule always once a transaction starts there will be no additional transaction starts before the end of the first transaction you can use the following Sugar formula AG trans_start gt AX trans_start until trans_end For 19 Formula 19 does not require that every transaction end only that a new one does not start before the first one ends Another way to write the weak until operator is A p Wq For 20 which uses syntax that mimics that of CTL 5 3 2 2 until The until operator is a strong version of the until operator It is equivalent to the CTL operator AU RuleBase a Formal Verification Tool Provided by special agreement with IBM 108 CHAPTER 5 5 3 2 3 until_ Formula 18 requires that p be true until but not including the cycle on which q is true if there exists such a cycle The statement p until_q For 21 means p until q and also requires that at the first cycle where q is true if at all p is also true 5 3 2 4 until _ The until _ operator is a strong version of the until_ operator 5 3 3 before 5 3 3 1 before The before operator has the format p before q For 22 and means that on all paths the first p must happen before or together with the first q The before operator is a weak operator that is it does not require that p eventually happen 5 3 3 2 before The before operator is a strong version of the before o
43. which from some point onwards p holds forever e FG gt FG p q Leaves in the model only paths on which if there exists a point from which p holds forever then there also exists a point from which q holds forever e FG gt GF p q Leaves in the model only paths on which if there exists a point from which p holds forever then g holds infinitely often RuleBase a Formal Verification Tool Provided by special agreement with IBM 86 CHAPTER 4 e GF gt GF p q Leaves in the model only paths on which if p holds infinitely often then g also holds infi nitely often 4 7 3 2 The danger of fairness Fairness is a powerful but dangerous tool The danger of fairness is that too many paths may be unintentionally filtered out some of which may include violations of our formulas Here is an example module server start ready var state idle busy done assign init state idle next state case state idle amp start busy state busy busy done state done idle else state esac define ready state idle fairness state done In the above example we give variable state a non deterministic behavior while it is busy We also constrained RuleBase with a fairness statement so that it checks only paths on which the machine does not stay busy forever However this is a dangerous formulation of the fairness requirement Since for each done there is one start the paths le
44. will not replace N by 7 4 2 6 More array examples var a 0 3 b 0 8 c 0 2 boolean define d 0 3 b 5 8 different sub ranges define e 0 2 b 2 0 amp c 0 2 different directions var x_state 0 2 y_state 0 2 s1 s2 s3 define same_state x_state 0 2 y_state 0 2 var nda 0 2 boolean assign nda 0 2 001b 010b 111b non deterministic assignment to an vector assign next a 0 2 case reset 0 a 0 2 b 0 2 c 1 3 a 0 1 10B d 0 2 else a 0 2 esac var counter 0 7 boolean assign init counter 0 7 0 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 67 next counter 0 7 counter 0 7 1 module and_or a 0 7 b 0 7 c 0 7 d O 7 define d 0 7 a 0 7 amp b 0 7 c 0 7 instance al and_or x 0 7 y 7 0 z 0 7 w 7 0 4 3 Sequential Processes Process constructs of EDL are similar to process statements of VHDL and to always blocks of Verilog They can be useful in situations when it is awk ward to write explicit concurrent definitions for signals Using process con structs you can write your code in the form of sequences of statements which are executed in each cycle to compute the needed values of signals The only statements allowed in a process are variable declarations variable assignments IF stat
45. write For 1 Because the boolean formula read amp write is prefixed by AG it will be checked at every point in time starting at the current state KG on the other hand means for some path from now on This is depicted in Figure 6 below IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 97 FIGURE 6 EG current state lt a In the figure you can see that all points in time along one infinite path are marked This illustrates the fact that in order for EG to be satisfied you need at least one path where every point in time satisfies the demand For example EG transaction_starts gt read For 2 states that there is a possible computation infinite branch in which all the transactions are reads 5 2 2 AF and EF By combining the meaning of A with the meaning of F we find that AF means for all paths now or at some future point in time This is depicted in Figure 7 below RuleBase a Formal Verification Tool Provided by special agreement with IBM 98 CHAPTER 5 FIGURE 7 AF current state lt n By examining the figure we can see that starting at the current state along every possible path at least one future point is marked For example say that at the current state a request has been made and it requires an acknowledge The acknowledge may take place at different points in
46. you can see that for some path from the current state the very next point in time is marked 5 2 4 AU and EU AU has two operands and is used as follows A q Ur For 9 which reads for all paths q is true until r is true Note that e r must occur eventually e rcan occur in the current state in which case q may not appear at all e q need not hold at the time r holds This is depicted in Figure 13 below RuleBase a Formal Verification Tool Provided by special agreement with IBM 104 CHAPTER 5 FIGURE 13 AU current state By examining the figure you can see that from the current state all points on all infinite paths are marked until a point where r holds is reached The marked points are those in which q must be true For example suppose that you want to ensure that a busy signal is asserted from the moment a request is made up until the time that an acknowledge is received This is expressed in CTL as AG req gt A busy U ack For 10 In this case Figure 13 represents a subset of the complete time tree with a request occurring at the current state The AU operator requires that the terminating condition eventually happen That is there are two ways Formula 10 can fail First if the busy signal is inac tive somewhere between req and ack and second if the ack never occurs Because it makes a demand on its terminating conditions AU is known as a strong operator EU means for some pat
47. 2 The following operators can be used in pre processor expressions RuleBase a Formal Verification Tool Provided by special agreement with IBM 60 CHAPTER 4 ls lt gt gt In the current version operators work only on numeric values 1 e it s ok to write for i in 0 3 do i ifil 3 then end end But it is not possible to write for command in read write do if command read then doesn t work 4 1 10 2 if The if construct is similar to the if construct of the cpp preprocessor However if must be used when lt expr gt refers to variables defines in an encapsulating for The syntax of the if construct is as follows if lt expr gt then end or if lt expr gt Ythen else end 4 1 11 Reserved words The following words are keywords and should not be used as identifiers IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 61 a abf abg af ag always as_in assign ax before before before _ before_ boolean bvtoi case define e ebf ebg ef eg else endif env envs esac ex fairness false fell forall formula formulas if in init inherit instance itobv mod mode module next next_event next_event override rep zeroes ones nondets rose rule test_pins then true u union until until until _ until var w whilenot whilenot within within xor If a keyword is prefixed with the V character it becomes a regular identifier
48. ALL CHECKPARM bhe 030 CALL CHECKPARM type 060 GENERATE BLOCK INPUT DI bitrange SHIFTCLK IS B 0 MASTERCLK SLAVECLK IS B 0 SCIN IS B 0 SETL1 IS B 0 RESETL1_ ISB 1 OUTPUT PL2OUT bitrange RuleBase a Formal Verification Tool Provided by special agreement with IBM 42 CHAPTER 3 DEVICE U NBITREG width width MASTERCLK CLK l Di bitrange DATA_IN l SET ISen areas ASYNC_SET RESETLI_ ASYNC_RESET DATA_OUT PL2OUT bitrange END BLOCK END GENERATE END SIM SYN If you have neglected to perform this step mapping of memory elements to standard RuleBase memory elements RuleBase will notify you as follows Unknown box type lt a lowest level register name gt 3 4 6 2 Setting up environment variables These instructions use the following notation lt top gt dessrc the top level DSL file lt dir gt the directory in which formal verification will take place Add the following lines to file rulebase setup in the verification directory setenv name lt top gt setenv entity lt TOP gt same as lt top gt but in capital letters setenv SYNTHESIS DSL setenv database enys name of environments file setenv sources lt top gt dessrce setenv DSLPATH lt directories containing relevant DSL files gt setenv DSBPATH lt directories containing relevant DSB files gt RBROOT setenv DSLOUT directories in the above li
49. BROOT run to the current directory RuleBase a Formal Verification Tool Provided by special agreement with IBM 166 CHAPTER 10 Select options for the batch run and save them as described in section Section 10 5 3 1 From the shell invoke the batch file Kill choosing this option will kill the currently running batch process Start at choosing this option will schedule a delayed start of a batch file You will be prompted for a start time and the name of the batch file to be run Kill all at choosing this option will schedule the kill of all processes batch or otherwise of this window at a later time You will be prompted for the time at which to kill all run ning processes Create batch file choosing this option will create a batch file for later use The batch file will contain all rules and can be edited by an external editor if only a subset of the rules are desired You will be prompted for the batch file name Failed batch file same as create batch file but only rules in which at least one formula failed on a previous run will be included Aborted batch file same as create batch file but only rules which for some reason did not complete the previous run will be included 10 2 3 RunUtil menu option Clicking left on the RunUtil menu option opens a sub menu with the following items Pause Continue choosing this once will freeze a running rule Choosing it again will continue the run A paused rule has a P
50. Formal Verification Tool Provided by special agreement with IBM 100 CHAPTER 5 request that occurs at power on In order to express events that take place after power on you must always enclose the formula in one of the eight basic tem poral operators AG AF AX AU EG EF EX EU Specifically in order to express a request that can happen at any time you must enclose Formula 5 in the temporal operator AG EF on the other hand means for some path at some point in time This is depicted in Figure 9 below FIGURE 9 EF current state By examining the figure you can see that there is some point in some future path from the current state which is marked For example EF can be used to express that it must always be possible for our state machine to return to state idle as follows AG EF state idle For 6 which reads as for all paths at all points in time there is some path in which at some point in time the state will be idle In simpler terms it is always true that there exists a path to idle Thus EF can be used to express a lack of dead lock IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 101 5 2 3 AX and EX AX means for all paths at the next point in time This is depicted in Figure 10 below FIGURE 10 AX current state In Figure 10 along all paths starting in the current state the very
51. RuleBase Formal Verification Tool User s Manual Book I Version 1 3 November 8 2001 IBM Science and Technology Haifa Research Laboratory Israel Provided to on by special agreement with IBM contact ornia 1l ibm com This product or portions thereof is manufactured under license from Carnegie Mellon University IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 1 Introduction 7 CHAPTER 2 Tutorial 11 Specification 11 Implementation 12 Environment Modeling 13 Specifying Properties for Verification 16 Actual Verification 16 Problem Analysis 18 Fixing and Rerunning 19 Witness 19 Data Path Rule 20 Exiting 21 Exercise 21 BUF implementation in VHDL 21 CHAPTER 3 Getting started 25 Accessing RuleBase 25 Preparing a Verification Environment 26 Running RuleBase 30 Design Translation 34 CHAPTER 4 Describing the Environment 45 Language Constructs 47 Arrays 61 Sequential Processes 67 Environment constraints 72 Linking the environment to the design 79 Overriding Design Behavior 79 Using Non determinism and Fairness 80 Modelling Clocks 87 Modelling Reset 89 RuleBase a Formal Verification Tool Provided by special agreement with IBM CHAPTER 5 CHAPTER 6 CHAPTER 7 CHAPTER 8 Sugar The RuleBase Specification Language 91 Semantic Model 92 CTL Operators 94 Sugar Operators 105 Min Max specifications 120 Multiple Clocks in Formulas
52. See also Section 11 2 Design Partitioning in CHAPTER 11 Design for Formal Verification The partitioning meth odology is as follows e Split the design into partitions of manageable size whose interfaces are well defined and easy to model e When verifying a partition replace its neighbors by abstract models These models should represent only the interfaces with the verified partition hid ing unnecessary details e Verify the correct behavior of the abstract models of the neighbors by writ ing specific rules for this purpose RuleBase a Formal Verification Tool Provided by special agreement with IBM 142 CHAPTER 8 While partitioning can be quite effective there are obviously properties that can be verified only when the entire design is considered Partitioning also requires extra effort in studying internal interfaces and writing models for neighboring blocks 8 2 Rule Partitioning Before beginning model checking RuleBase performs static analysis of the design and dis cards any signals that do not affect the rule being run For example assume that the design has two outputs each of which is affected by a different possibly overlapping set of input signals If you run formulas checking these two signals under the same rule RuleBase will have to build a representation of the entire model However if you separate the formulas into two groups where one group checks the first output and the second group checks the ot
53. a Knowledge of implementation details is not mandatory unless you want to fully understand the bug fix in the sequel In this case you are encouraged to read BUF vhd Depending on the user s design environment RuleBase supports several auto matic translation paths of the implementation to a lower level format suitable for verification Since no translation path is set for this tutorial and to make things easier for you the VHDL file is already translated for you Please type setup1 in the unix command line now to make the translated design available 2 3 Environment Modeling This section explains how to assign behavior to primary inputs If inputs are left unspecified unexpected input sequences may induce incorrect behaviors of the implementation These are called false negatives bugs which result from a behavior which is impossible in the real environment Environment models are described in EDL Environment Description Lan guage The models for this example are in the file envs For the sake of clarity all models are written in a uniform style first a module which describes the behavior is defined and then the module is instantiated This is similar to defining a function and then calling it Models are required for both the sender and the receiver The sender model see below has one state variable with two states idle and busy It begins in the idle state in which it has no data to send If the previous transac
54. after choosing option reFresh Rather in order to see changes to the file rulebase setup you must exit RuleBase and reinvoke e Cleanup choosing this option will remove and or compress log and other files from previ ous runs e Status of all rules choosing this option will create a summary file showing the status of each rule formulas passed failed on last run run time etc e Past status of rule choosing this option will display in the main text window the status of previous runs of this rule formulas passed failed run time etc e Setenv choosing this option will let you set environment variables You will be prompted for the name and value of the variable to set e Read rulebase setup choosing this option will read the current rulebase setup file It can be used to update environment variables instead of using the Setenv option described above Note that no unsetenv is done thus if a setenv line was erased from rule base setup file reading it will not change the environment variable e Quit choosing this option will exit RuleBase 10 2 2 Batch menu option Clicking left on the Batch menu option opens a sub menu with the following items e Start choosing this option will start a batch file You will be prompted for the name of the batch file to be run It is also possible to run a batch file from the unix shell To do so Create the batch file described below under create batch file Copy the file R
55. ailure that we had before The inputs of the trace can be converted into a restriction that describes the inputs value in each cycle in the following way Click results button Click the formula that failed and select Generate restrict inputs Run the formula again using the restrict you generated If the counter example does not exists anymore you will get a vacuous result for the new run This run is a quick one since it restricts the search space to a very specific pattern of inputs 4 4 4 Hints Hint list can be seen as a generalization of invar construct RuleBase uses each hint in the list to restricts the search of the state space exactly as invar does switching to the next hint in the list when no states can be explored using the current one Syntax hint expr hint expr NUM Semantics hint expr means continue searching reachable states with the transition relation constrained by expr till fixpoint is reached hint expr NUM means do only NUM of steps with the constraint RuleBase automatically adds hint TRUE at the end of the list so you do not need to do it When a hint ended either fixpoint reached or given number of cycles passes pass to the next one RuleBase a Formal Verification Tool Provided by special agreement with IBM 78 CHAPTER 4 In the case of liveness formulas with hints every liveness formula is checked on the fly at every fixpoint reached with any hint Examples
56. al Verification Tool Provided by special agreement with IBM 216 clocking schemes 180 clocks 87 clocks multiple 180 CLSI 34 comments 57 concatenation 64 concatenation on the left hand side 65 constants 47 enumerated 47 control logic 179 counter example 7 45 coverage 7 183 CTL 91 93 D danger of fairness 86 datapath logic 179 define 53 design for formal verification 179 design partitionin 141 187 don t care 81 DP12 198 DSL 26 40 dynamic bdd re ordering 144 E EDL Environment Description Language 13 45 135 EF 97 100 EG 95 96 enumerated constants 47 environment 8 45 Environment constraints 72 environments multiple 136 envs 26 27 134 EU 103 104 EX 101 102 exhaustive simulation 7 80 expressions 47 F fairness 56 80 84 advanced fairness types 85 is dangerous 86 fairness dangers of 86 false negative 45 false negatives 13 false positive 19 fell 51 filtering out paths 84 86 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM 217 forall 121 formal verification 7 formula 134 formula examples 127 formulas 134 free variable 28 81 G goto 114 H Hint 77 HIS 34 holds_until 114 holds_until_ 114 l if expression 49 if statement 70 in 51 include 27 inherit 135 init 52 instance 54 56 invar 72 itobv 64 K koala 43 L light proof 171 200 limiting non determinism 80 linking environment to de
57. al formula AG request gt AX grant For 43 It is recommended not to use CTL formulas that contain the E operator EG EF EU and EX unless a property cannot be formulated otherwise for exam ple AG EF p can find a weak form of deadlock The main reason for this recommendation is that it is impossible to produce a counter example when an E formula fails Note that negation of an A formula AG AF AU and AX or of a Sugar formula is equivalent to some E formula so it is also recommended not to negate such formulas RuleBase employs two methods in order to protect users from these and other common mistakes One method is to limit Sugar operators in a way that will prevent unintended use For example the within operator can take only bool ean expressions no temporal operators in its start and end fields The other method is to issue warnings for suspected formulas The cases where such warnings are issued are For any type of until or before operator with two temporal operands If the right operand of an until operator contains the gt operator If the operand of an AF or an EF operator contains the gt operator For a temporal sub formula on the left side of an gt or on any side of the lt gt operator OP UPN gt When the operator I boolean or has two temporal operands It should be emphasized that there are correct formulas that do not obey the above rules However it i
58. all use IEEE std_logic_unsigned all RuleBase a Formal Verification Tool Provided by special agreement with IBM 22 CHAPTER 2 entity BUF is port CLK RST in std_logic StoB_REQ RtoB_ACK in std_logic DI in std_logic_vector 31 downto 0 DO buffer std_logic_vector 31 downto 0 BtoS_ACK BtoR_REQ buffer std_logic end BUF architecture RTL_VIEW of BUF is type S_STATES is S_IDLE S_READ S_DONE signal S_STATE S_STATES type R_STATES is R_IDLE R_SEND signal R_LSTATE R_STATES signal OCCUPIED READ bit begin SENDER_INTERFACE process begin wait until CLK event and CLK 1 if RST 1 then S_STATE lt S_IDLE elsif S_STATE S_IDLE then if StoB_REQ 1 and OCCUPIED 0 then S_STATE lt S_READ end if elsif S_STATE S_READ then IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 23 S_STATE lt S_DONE elsif S_STATE S_DONE then if StoB_REQ 0 then S_STATE lt S_IDLE end if end if end process RECEIVER_INTERFACE process begin wait until CLK event and CLK 1 if RST 1 then R_STATE lt R_IDLE elsif R_STATE R_IDLE then if OCCUPIED 1 if RtoB_ACK 0 and OCCUPIED 1 then R_STATE lt R_SEND end if elsif R_STATE R_SEND then if RtoB_ACK 1 then R_STATE lt R_IDLE end if end if end process
59. an in the case of a big value given No Do not check safety on the fly For more information about safety on the fly see Section 8 8 Verify Liveness OnTheF ly determines whether liveness formulas formulas containing AF strong until or sugar operators ending with should be checked during reachability Unlike safety OnTheFly the check may take a long time Therefore if the liveness formu las are likely to pass it is not recommended to use this option Options are Yes Check all liveness formulas every n iterations where n should be specified by the user No Do not check liveness on the fly Attempt light proof applies the classical model checking algorithm on the rule all possi ble states are considered and not necessarily the reachable ones The square area along the button specifies the time in seconds that RuleBase should invest in this mode If the for mula does not fail pass in this period of time RuleBase will apply the regular model check ing on the rule Note RuleBase a Formal Verification Tool Provided by special agreement with IBM 172 CHAPTER 10 e If the formula passed in light proof a witness and vacuity explaination will be pro vided if the user ask for it note that producing witness vacuity exaplation may more time comparing to other evaluation modes e If the formula failed in light proof the time needed to produce a counter example will not be restricted e Light proof does not
60. assign init reset_counter 0 next reset_counter if reset_counter 4 then 4 else reset_counter 1 endif RuleBase a Formal Verification Tool Provided by special agreement with IBM 90 CHAPTER 4 define RESET reset_counter 4 It is important to identify the optimal duration of reset It should be long enough for correct operation but not too long A big counter may contribute to the size problem inherent to formal verification and may result in unnecessarily long counter examples IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 5 Sugar The RuleBase Specification Language Sugar is the specification language of RuleBase It is used to formally describe properties to which the design under verification must adhere Sugar is an extension of the temporal logic CTL Computational Tree Logic CTL is designed with academic orientation and needs some adjustments in order to be used in industry Particularly complex CTL specifications are difficult to read and write Sugar adds on top of CTL a small set of new operators that sim plify formulation of complex properties It is fully backwards compatible with CTL The following sections describe both CTL and Sugar Section 5 1 gives some background about the underlying model on which CTL and Sugar operate it is not necessary for the understanding of the rest of the chapter and you can skip it if you like Section 5 2 and Secti
61. ation under a specific environment indicates that in that environment the specification is true but does not indicate anything about the truth or falsity of the specification under other environments The remainder of this document is structured as follows CHAPTER 2 Tutorial provides a hands on introduction to RuleBase in the form of a tutorial The tutorial presents a small design of a buffer and shows how to verify it under RuleBase CHAPTER 3 Getting started explains how to access RuleBase how to set up a verification environment and how to prepare a design for formal verification CHAPTER 4 Describing the Environment explains how to specify environ ment behavior Arrays non determinism fairness clocks and more are discussed CHAPTER 5 Sugar The RuleBase Specification Language describes both CTL and Sugar and the models on which they operate CHAPTER 6 Sugar Formula Examples includes a list of useful formula pat terns mainly for beginners CHAPTER 7 Managing Rules Modes and Environments suggests how to manage verification projects CHAPTER 8 Size problems and solutions discusses the techniques used to extend the design size limit as far as possible CHAPTER 9 Debugging Aids describes various debugging aids which are part of the RuleBase tool CHAPTER 10 Graphical User Interface Tool Controls and Options describes the tool controls and options available and how to set them from the graphical user interface
62. behavior of inputs Using the assume construct you can start the verification process with initial free environment adding environment assumptions when you encounter false negatives counter examples that result from illegal input sequence Writing environment with assumptions unable you apply compositional verifi cation on your design using the assume guarantee approach First you assume that the input signals obey some assumptions later you take those assumptions and guarantee they hold by turning them to rules and verifying them on the blocks that produced them Lets consider a design that is partitioned to two blocks block1 block2 see Figure 1 In the verification of block1 one can write environment assumptions on the input signals generated by block2 using the assume construct Later when proceeding to the verification of block2 all RuleBase a Formal Verification Tool Provided by special agreement with IBM 74 CHAPTER 4 the already written assumptions can be turn to formulas and verified on block2 FIGURE 1 using the assume construct for compositional verification assume envs rules block1 block2 Assumptions cannot be written inside module or process At now Rulebase needs the environment variable RB_ASSUMPTIONS to be set to 1 to work with assumptions user can do this through rulebase setup or Menu Setenv button in graphical user interface Notes e In some cases the a
63. ce of points in time starting at the current state Thus from any point in time any current state there are many infinite computations branches into the future In Figure 4 below the beginning of one path recall that all paths are infinite is shown in bold In this figure and in later figures the only reasons that some points do not show a future is lack of space Every RuleBase a Formal Verification Tool Provided by special agreement with IBM 94 CHAPTER 5 point in time has a future To simplify the figures state names are sometimes omitted from tree nodes FIGURE 4 The beginning of one possible path You are here now 5 2 CTL Operators CTL formulas have the following syntax 1 Signal names and constants are CTL formulas 2 CTL formulas combined with boolean operators are also CTL formulas Ifl fl amp f2 fllf2 fl gt f2 fl lt gt f2 fl xorf2 3 Iff fl and f2 are CTL formulas then the following are also CTL formulas AXf EXf AGf EGf AFf EFf A fl U f2 E fl U f2 These eight operators are called temporal operators Boolean operators have the usual meaning Temporal operators are used to reason about events that take place along some time interval Each temporal IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 95 operator consists of two letters The first letter is either A or E where A means the
64. ch like the coverage problem of simulation this does not mean that using RuleBase with behavioral partition ing is comparable to verification by simulation Despite the coverage problem verification with RuleBase can still provide much greater coverage than verifi cation by simulation To see this think of the set of all possible execution paths as inhabiting a two dimensional space Then a test suite covers a finite number of points of the test space as shown in Figure 15 below RuleBase a Formal Verification Tool Provided by special agreement with IBM 184 CHAPTER 12 FIGURE 15 The coverage problem in simulation With RuleBase on the other hand each environment covers an infinite number of points in the test space as depicted in Figure 16 below FIGURE 16 The coverage problem with RuleBase Although there is not as yet a complete solution to the coverage problem a methodology of rule and environment writing which can help is described in this chapter IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Coverage Methodology 185 12 1 The coverage model The methodology is based on an attempt to obtain block Input Output relationship coverage That is 1 The block will be fed with every possible legal input sequence Inputs are defined in the environments 2 All output signals will be systematically checked for correctness at all times Outputs are checked by the rules
65. check vacuity A vacuous formula will get the status pass e Longest trace can not be produced in this mode e Witness controls whether vacuity a trivial pass is checked and whether or not a witness trace is produced For an explanation of vacuity and witnesses see CHAPTER 9 Debug ging Aids Options are Full witness formula is checked for vacuity and a witness trace is produced if the pass is non vacuous Vacuity only formula is checked for vacuity but no trace is produced in the case that the pass is non vacuous None formula is not checked for vacuity Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked e Explain vacuous If active and a formula is found to pass vacuously RuleBase will point to the pre condition that cannot hold e Gen longest trace If active and reachability is also active a trace will be produced to the a state which is a far as possible from the initial state Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked If the Now button is pushed and reachability is also active RuleBase will com plete the analysis of the current iteration and then generate a trace which is the furthest it has gotten so far from the initial state Then it will continue with reachability analysis and checking of the remaining formulas e Sto
66. clicking on this option will open the reduction control panel e Verification clicking on this option will open the verification control panel e Debugging clicking on this option will open the debugging control panel e Hide clicking on this button will close the options box Note many of the options buttons have a yellow A apply button next to them When an option is changed during a run the change is not seen until the corresponding apply button is clicked 10 5 3 1 File menu The file menu consists of the following options IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 169 Load clicking on this option will load a previously saved options configuration Load lt rule gt cfg clicking on this option will load a previously saved per rule options con figuration Save clicking on this option will save the current options configuration for use by all rules Save lt rule gt cfg clicking on this option will save the current options configuration for this rule only Default clicking on this option will load the default options configuration 10 5 3 2 BDD order control panel The BDD order control panel consists of a number of fields They are Reorder Enable disable reordering When enabled reordering will begin only when all the conditions below are fulfilled Note if this option is changed during the run of a rule th
67. ctions that were added in order to avoid state explosion The designers may challenge the assumptions taken and may request more effort in verifying the restricted areas It is also useful hold these reviews in order to describe the areas not covered by formal verification to the other team mates A review can guide the simulation team to stress those areas with simulation tests IBM Haifa Research Laboratory Israel Provided by special agreement with IBM APPENDIX Q Size problems and solutions Size is one of the major obstacles to using formal verification for any design RuleBase is limited to designs having several hundred state variables flip flops after reduction or several thousand before reduction The num ber of state variables is a rough estimate of design complexity the size limit depends the complexity of the logic as well as the number of memory elements This chapter discusses techniques that can be used to push the size limit as far as possible for your design 12 5 Design Partitioning The simplest method to overcome size problems is design partitioning Thus instead of trying to verify the entire design at once you may verify it unit by unit See also Section 11 2 Design Partitioning in CHAPTER 11 Design for Formal Verification The partitioning meth odology is as follows e Split the design into partitions of manageable size whose interfaces are well defined and easy to model e When verifying a partition re
68. d read restrict RuleBase to check only paths with at most one read command Note that there is no meaning to restrict that starts with a since every com putation path is a prefix of such restrict and hence this restrict will force no limitation on the model There are several motivation for the use of restrict 1 Guide direct search to start with specific behavior Example every path should start with 2 reads followed by a write restrict read 2 write Note the at the end of the above restrict is necessary if you omit it Rulebase will check only paths of length three 2 Easy way to define an input that behaves according to a specific pattern Example bus is defined as follows var bus idle BOP data EOP IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 77 we restrict the bus behavior to the following pattern restrict bus idle bus BOP bus data 4 bus EOP That is there can be any number of transactions with any number of idle cycles in between where each transaction starts with BOP followed by four cycles of data and ter minated with EOP 3 A quick way to verify that a specific design failure does not exist in the design after fix Given a formula that failed and a trace that shows a counter example for the formula We fix the design and would like to verify in a quick way that we do not get the same f
69. d lexpr2 expr1I 1 expr3 times if both lexpr2 expr1 and expr3 are positive or both are negative In the third case the text will be replicated according to the number of items in the list During each replication of the text the loop variable value can be substituted into the text as follows Suppose the loop variable is called ii Then the cur rent value of the loop variable can be accessed from the loop body using the following three methods IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 59 665599 e The current value of the loop variable can be accessed using simply ii if ii is a separate token in the text For instance for ii in 0 3 do define aa ii ii gt 2 end is equivalent to define aa 0 0 gt 2 define aa 1 1 gt 2 define aa 2 2 gt 2 define aa 3 3 gt 2 e If ti is part of an identifier it can be accessed using ii as follows for ii in 0 3 do define aa ii ii gt 2 end is equivalent to define aa0 0 gt 2 define aal 1 gt 2 define aa2 2 gt 2 define aa3 3 gt 2 e If ii needs to be used as part of an expression it can be accessed using lt expr gt as fol lows for ii in 1 4 do define aa ii 1 ii 1 gt 2 end is equivalent to define aa0 0 gt 2 define aal 1 gt 2 define aa2 2 gt 2 define aa3 3 gt
70. d general rep resenting all possible behaviors of the real environment while remaining simple and small Models which are too detailed are not advantageous and may result in unnecessary growth of the model IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Size problems and solutions 143 For example assume that the verified design is a cache controller connected to a CPU on one side It is not necessary to create a detailed model of the CPU Rather an abstract model of the CPU can be created to model just enough of it to produce legal sequences of commands and control signals Only a few dozen state variables are needed to model this behavior as compared to the huge number required for the concrete CPU 8 5 Gradual Enlargement Attacking a new design with full blown environments is not very effective when the design is large Experience suggests a gradual process Begin with simple restricted environment mod els that cause the design to be over reduced Verify the reduced design fix errors in the envi ronment models correct wrong formulas and clean coarse design errors When the reduced design is stable enough refine the environment This is usually increasing the effective size of the design This method is most efficient during the development of environment models and rules since at this stage the process is iterative and the turnaround time must be short One main reason why this works is that
71. different from the value of DI when BtoS_ACK is asserted This happened because our server environment model is not adhering to requirement of keeping the data stable while StoB_REQ is active You will often see bugs that result from incorrect modeling of the environment A common practice to avoid such prob IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 21 lems is writing rules that verify the correct behavior of the environment mod els The following is a fixed version of DI var DI 0 31 boolean assign next DI 0 31 case StoB_REQ nondets 32 else DI O 31 esac To activate the fix remove the two dashes in front of the line define CORRECT_DATA at the beginning of the file envs and add two dashes in front of the line define WRONG_DATA Press the Run push button again Both formulas passed To see a witness press Results click the mouse button on the first formula and select Show timing diagram 2 10 Exiting To exit from RuleBase select the File Quit menu option 2 11 Exercise The rules mentioned so far in this tutorial didn t cover the entire buffer specifi cation You are encouraged to think of more properties and formulate appro priate rules You might first want to read the rest of this manual or at least Chapter 5 which describes the specification language Sugar 2 12 BUF implementation in VHDL library IEEE use IEEE std_logic_1164
72. e i and j are natural numbers i gt 0 j gt i p gt i lt j p is a boolean expression p occurs more that i times but at most j times not necessarily consecutive i and j are natural numbers i gt 0 j gt i p gt i lt j pis a boolean expression p occurs at least i times but at most j times not necessarily consecutive i and j are natural numbers i gt 0 j gt i P Q Two sub sequences separated by P Q The first cycle of Q starts when P reaches its last cycle Examples start req goto busy done end ack start read busy Il write flush done ready ack is equivalent to start read amp done ll read busy busy amp done Il write flush amp done ready ack P gt Q Two sub sequences separated by gt P gt Q If a path that is compatible with P occurs it must be followed starting at the same cycle where P ends by a path whose prefix is compatible with Q Examples req gt ack until ready until busy until end req gt ack ready busy end RuleBase a Formal Verification Tool Provided by special agreement with IBM 118 CHAPTER 5 28 29 30 start datal data2 error gt AX cancel_datal amp AX cancel_data2 amp AX idle until error start datal data2 error gt true cancel_datal cancel_data2 idle error P gt Q Two sub sequences separated by gt P gt Q I
73. e The bitwise and of vectors vec 0 7 and mask 0 7 has at least one bit set AG vec 0 7 amp mask 0 7 0 RuleBase a Formal Verification Tool Provided by special agreement with IBM 130 CHAPTER 6 e Exactly one bit of the bit vector v 0 7 is 1 AG for ii in 0 7 do v ii end 0 1 The above is expanded to AG v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 1 6 3 Before e Ifa request occurs then an ack should occur strictly before the next request AG request gt AX ack before_ request Notes e The second request may not occur in which case ack is not required before_ with an underscore means strictly before request will come if at all at least one cycle after ack The AX means that we expect ack to come at least one cycle after request e Another way to formulate the above requirement that allows more explicit specification of boundary conditions request ack request false Notes eIt means The path begins with any sequence of events then a request occurs then beginning from the next cycle ack is inactive for zero or more cycles and finally there is another request The false on the right hand side means that if such a sequence exists then the formula should fail e This is a useful technique that we use Instead of specifying what should happen specify what should not happen as a bad sequence of events and require that false will be satis fied at the end of
74. e change will not be seen unless the yellow A apply button is clicked Algorithm Dynamic reordering algorithm Options are one or a combination of the fol lowing Cheetah this is the quickest algorithm but in many cases achieves the poorest results Best combination of run time with results is achieved when this algorithm is used in combi nation with another Quick rudell slower than Cheetah but may result in a better order Rudell the slowest algorithm but frequently gives the best results Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked Iteration two integers which are lower and upper bounds on the iterations between which the reordering algorithm should be active Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked BDD size two integers which are the lower and upper bounds of BDD size between which the reordering algorithm should be active Reordering will be activated when the nodes allocated displayed in the log file has reached the lower bound and has not yet exceeded the upper bound Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked Low threshold an integer If a low threshold is defined a BDD ordering round is stopped when the BDD size falls belo
75. e following format fairness expression The meaning of the fairness statement is that we are interested only in sequences in which the expression specified will happen infinitely often That IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 85 is we are not interested in input sequences in which at some point in time the expression becomes false and stays that way forever By making the following two fairness constraints within the arbiter of Figure 2 fairness choose 1 fairness choose 2 we indicate to RuleBase that we are only interested in input sequences in which choose takes on the values 1 and 2 infinitely often That is we filter out sequences in which at some point in time choose gets stuck at either value 4 7 3 1 Additional advanced fairness types In the example above suppose that we want choose to take on the value infi nitely often only on those paths where c1 is not stuck at value none forever that is on paths where at some point cl is stuck at none forever we have no requirements from choose For this purpose the fairness statement described above is too strong we need a weaker type of fairness to filter out the paths we want The statement GF gt GF cl none choose 1 Will leave in the model exactly the paths we want The following additional fairness types are supported e FGp Leaves in the model only paths on
76. e value at the last time the signal changed 9 1 4 1 Display of an infinite trace LOOP There are formulas whose counter example or witness must be displayed as an infinite trace For example consider the following formula AG p gt AF q If this formula is false a valid counter example is one in which p is asserted and then q is never asserted Never is an infinite amount of time and thus an infinite trace is required in order to show that this formula is false The way that RuleBase displays an infinite trace is by displaying a finite prefix and then a set of states comprising a loop The special signal LOOP which appears as the first in the signal list is used to indicate the loop A loop is indicated when the signal LOOP begins taking on the values and alternately so that the entire loop is marked by a string of the form 9 1 5 Message Panel The message panel is used for displaying various errors warnings and informative messages 9 1 6 More about state files The current state of Scope consists of various aspects of the waveform display including the signals displayed the zoom factor and the window geometry The current state can be saved in a state file and be used in later sessions of Scope In order to ease the user s work RuleBase performs basic management of Scope state files as follows 1 The user can choose if state files are saved in the rule s direct
77. ed following design guidelines will further ease the verification process 11 1 Separation of Control from Data Although RuleBase can check both control logic and datapath it is more effec tive for verifying control logic Datapath usually has a lot of memory elements which might increase the size of the internal model representation beyond RuleBase capacity When verifying a design that includes both control and datapath the datapath is often replaced by an abstract model with less memory elements This abstraction is easier when there is a clear separation between control and data in the design 11 2 Design Partitioning Design partitioning where each partition is verified separately is one solution to the size limitation inherent to formal verification Another reason for parti tioning is the desire to push asynchronous signals and tri state buffers to block RuleBase a Formal Verification Tool Provided by special agreement with IBM 180 CHAPTER 11 boundaries explained below In many cases the natural partitioning defined by the designers can serve as a basis for formal verification In cases where design partitioning is too fine several blocks are often combined to form a big ger partition which is more interesting in terms of verification Partitioning has several consequences e Effort must be invested in defining documenting and studying the internal inter faces e Environment models for neighbor partitions mu
78. ements and CASE statements As a simple example process var foo boolean foo dl if c then foo d2 endif is equivalent to the concurrent assignment assign foo if c then d2 else d1 endif Of course in this example the concurrent form is simpler than the process construct As a slightly more realistic example suppose for the moment that we need to model a ripple carry adder in EDL but for some reason cannot use the operator RuleBase a Formal Verification Tool Provided by special agreement with IBM 68 CHAPTER 4 process var sum 0 7 boolean var carry boolean carry 0 for i in 7 0 step 1 do sum i x i y i carry carry x i amp y i xG amp carry y i amp carry end Note that the carry signal is assigned several times in the process and each stanza of the loop refers to the value of carry valid for this specific stanza if some code outside this process refers to the carry signal it will refer to the final value of carry which in this case is the overflow bit of the adder It is convenient to think about processes as sequential code which is executed each cycle but what happens technically is that RuleBase analyzes the process construct keeping track of interim assignments and generates concurrent defi nitions for signals driven by the process This means for example that in the wave browser you will only be able to see the fina
79. ensure that every requestor gets a turn Now further assume that this arbiter is not part of the model under test but rather is a piece of logic that we know is correct Exactly modeling the arbiter will be time consuming and error prone We are likely to spend a good amount of time debugging the model rather than verifying our design under test If the properties to be verified depend only upon the fact that the arbiter eventu ally gives every requestor a turn and not on the specific algorithm used by the arbiter then we may want to use non determinism to make our modeling job easier By using a non deterministic arbiter as shown in Section 4 7 1 we ensure that any property we prove will be true in the case that the real arbiter is used This is because a non deterministic arbiter models all possible sequences of events wherever the non deterministic choice appears Since the real behav ior is one of the possible choices it follows that anything proved for the non deterministic arbiter is true for the real arbiter A model which includes more behavior than the entity being modeled is called an abstract model There is one catch to all this since our non deterministic arbiter models all possible behaviors it also models the behavior in which cl is always chosen whenever a non deterministic choice is to be made We need a way to filter out this possibility The way to do so is fairness 4 7 3 Fairness Recall that the fairness statement has th
80. ent with IBM 114 CHAPTER 5 or after it is ignored An event can be one of the following 1 a A boolean expression a The expression a holds for one cycle 2 afn A boolean expression a followed by n where n is a positive integer The expression a holds for n consecutive cycles 3 a A boolean expression a followed by The expression a holds for zero or more consecutive cycles 4 al A boolean expression a followed by The expression a holds for one or more consecutive cycles 5 true Skip one cycle Equivalent to AX 6 FT Skips zero or more cycles Equivalent to AG 7 goto p p is a boolean expression Go to the next time that p occurs Equivalent to p p Example req goto ack goto busy end done 8 pholds_until q p and q are boolean expressions p holds true until q occurs Equivalent to p amp q q Example req busy holds_until done ack The following sequences match the above one req busy busy busy done req done 9 pholds_until_ Q IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 115 10 11 12 13 14 p and q are boolean expressions q holds until inclusively q occurs Equivalent to p amp q p amp q Qin A sub sequence Q followed by n where n is a positive
81. es In many cases this will not cause size problems provided that you have a good BDD order that includes these variables 5 7 Writing Correct Formulas The semantic model of CTL and Sugar described in Section 5 1 is sometimes counter intuitive While reasoning about computation trees has its benefits users often think in terms of paths Sugar operators are designed to prevent problems that result from misunderstanding the semantic differences How ever there are still cases where care should be taken This section attempts to characterize some of these cases In many cases formulas which are not causal have a meaning that does not coincide with the intention of the user By causal we mean formulas in which an event B depends on event A only if event A occurs no later than event B For example assume that you want to state the following rule every grant is immediately preceded by a request Since CTL cannot reason about the past one may be tempted to write AG AX grant gt request For 42 This formulation relies on the future and is incorrect it means if grant holds in all the next states of some state request must be active in this state It IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 123 misses all the states that have grant active on some but not all of their succes sors The correct way is to write the following caus
82. f some path compatible with P occurs it must be followed a cycle after by a path whose prefix is compatible with Q Examples start datal data2 error gt AX cancel_datal amp AX cancel_data2 amp AX idle until error start datal data2 error gt cancel_datal cancel_data2 idle error P gt Q P Q are sub sequences If a path that is compatible with P occurs it must be followed starting at the same cycle where P ends by a path who is compatible with Q and so reaches Q s end i e reaches the last cycle of Q Comments Strong version of P gt Q Example a b gt c d e e must happen a b gt c d e e may not happen if d is forever i e a b amp c d d d d djd d is valid sequence req gt ack until ready until busy until end req gt ack ready busy end P gt Q IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 119 The same as P gt Q with the restriction that Q start a cycle after the end of P Examples e Another way to express AG waiting gt AX next_event done AX idle waiting done done true idle More ways to do the same AG waiting goto done AX idle waiting goto done true idle e The fourth ready after start should be accompanied with result ok start ready ready 4 result ok
83. f your short experience with the tutorial or read CHAPTER 4 Describing the Environ ment to learn more about environment modeling After changing your environment or adding formulas make sure that you saved the editor s buffer Then select the rule that you want to run from the rule list if it is not already selected and press the run button again If the name of a newly created rule does not appear in the rule list select the File Refresh menu option Repeat the process of refinement and analysis until all the rules that should pass really pass You may also add rules and formulas in order to cover all the interesting properties of your design To learn more about formulas and rules read CHAPTER 5 Sugar The RuleBase Specification Language CHAPTER 6 Sugar Formula Examples and CHAPTER 7 Managing Rules Modes and Environments Browse through the other chapters to learn more about tools and methods that RuleBase provides to ease successful verification IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 33 To exit RuleBase select the File Quit menu option RuleBase a Formal Verification Tool Provided by special agreement with IBM 34 CHAPTER 3 3 4 Design Translation RuleBase supports several Hardware Description Languages HDLs and several translation paths Wherever possible it uses existing tools of the design environment compilers and syn the
84. formula holds in all paths beginning in the current state and E means the formula holds in at least one path beginning in the current state The sec ond letter is G F X or U where G means the formula holds from now on F means the formula holds now or will hold in the future X means the for mula will hold in the next point of time and f1 U f2 means f2 holds now or f1 will hold until but not necessary including f2 holds The temporal operator letters and their meanings are A All E Exists G Globally F Future X neXt U Until The following sections detail the eight temporal operators Temporal operators take precedence over boolean operators Therefore you should use parentheses to enclose the formula to which the temporal operator is applied 5 2 1 AG and EG By combining the meaning of A with the meaning of G the resulting AG means for all paths from now on This is depicted in Figure 5 below The points in time affected by the operator are marked with a black triangle RuleBase a Formal Verification Tool Provided by special agreement with IBM 96 CHAPTER 5 FIGURE 5 AG current state As can be seen by looking at the figure all points in time on paths starting in the current state are marked Consider an example with two signals read and write which should never be active simultaneously This fact can be stated in CTL as follows AG read amp
85. formulas in the rule are safety formulas Otherwise it will run in regular OnTheFly mode To access the Verify Safety OnTheFly option press the Options push button and open the Verification section of the Options dialog box The Verify Safety OnTheFly option menu has two entries e Yes All Safety formulas will be checked OnTheFly The user can specify a param eter a two digit integer number which determines the trade off between memory and time consumption during the run The default for this parameter is 10 If a big ger number is specified the run will consume less memory but counter example production will take longer If on the other hand a smaller number is specified the run is likely to consume more memory but producing counter example would be easier Therefore it is recommended to specify a small number if many of the for mulas are likely to fail and specify a big number if most of them are likely to pass A special case is when specifying 0 as parameter which is like specifying infi nite the run will consume the as little memory as possible as long as no rule fails but if counter example is needed it will consume more time and space e No Verify Safety OnTheFly is disabled 8 9 Efficient Use of Real Memory The user s memory quota is often much less than all of the real memory avail able in the system A running process might be killed by the operating system when the quota is exceeded although unused memory is
86. ft in the model also have start infinitely often If some deadlock condition in the verified design prevents start from being asserted this deadlock will not be detected because the fair ness constraint filtered out paths on which start is not asserted infinitely often To overcome the problem in the above example the fairness statement should be formulated in a way that prevents state from staying busy while having no side effects IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 87 fairness state busy 4 8 Modelling Clocks To use formal verification properly it is essential to understand the way Rule Base deals with clocks and to choose the proper clock scheme This section assumes that the clock signal is generated externally and drives the verified design through input clock pins The most simple case is a design having only one clock in which only one level or edge of the clock is used in the design In this case the clock input should be held constant at the value 1 define CLK 1 CLK is the clock input pin RuleBase understands it as the clock being active in every cycle This works even when some of the flip flops are gated The gated flip flops will work only when the gate is active The next scheme has one clock but both levels or edges are used in the design In this case we define the clock as having alternately values 0 and 1
87. fter this assignment will already refer to the new value of S For example foo 0 bar foo foo 1 will assign 0 to bar even in spite of the fact that foo is re assigned later on The assignment of the form next S expr behaves more like the signal assignment of VHDL and to non blocking assignment of Ver ilog in that it doesn t influence the values of S which can be observed in this cycle next foo 0 bar foo will assign to bar the current cycle value of foo which is not necessarily 0 The next cycle value of foo will be 0 in the absence of further assignments to next foo in the process The assignment of the form init S expr is very special in that it will be executed only in the very first cycle and will have no effect in subsequent cycles 3 CASE statements RuleBase a Formal Verification Tool Provided by special agreement with IBM 70 CHAPTER 4 case guard stat guard stat guard stat else stat esac Each guard is a boolean expression The else clause is optional Each stat is either a sin gle assignment or an arbitrary sequence of statements enclosed in braces 4 IF statements IF statement is less general than the CASE statement and can take one of two forms if condition then statements endif or if condition then statements else statements endif We will conclude this section with an example of a process construct wh
88. greement with IBM 150 CHAPTER 9 9 1 Scope waveform display tool When a counter example or witness is generated by RuleBase it can be displayed by invoking the Scope waveform display tool as described in Section 10 5 9 This section describes the Scope waveform display tool 9 1 1 Main Window overview The Scope main window i is shown below It consists of a number of areas Leeted data from fig Phen SAP BE laird edabe Pron robe ock_ieier annaa ria Ladri miair Pron pube arb_iriar naring Parm a rigsals e The rule and formula display in the top of the window frame displays the name of the rule and the formula number within the rule for which this trace was generated e The menu bar is at the top of the window and will be green if you have setup the default colors by copying the file Scope from RBROOT to your home directory as described in CHAPTER 3 Getting started e The signal list is the rectangular area on the left hand side of the window e The waveform display window is the large rectangular area in which the waveform itself is displayed e The message panel is the small rectangular window below the waveform display window These areas are described in detail below 9 1 2 Menu bar The menu bar contains the following menu items IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 151 9 1 2 1 File menu option Clicking left on the File menu option open
89. gt lt ENTITY gt is the top level entity in your design setenv entity WORK lt ENTITY gt lt ARCHITECTURE gt lt ENTITY gt is the top level entity in your design and lt ARCHITECTURE gt is the top level architecture both in capital letters setenv SYNTHESIS TEXVHDL setenv sources lt makefile gt lt makefile gt is the name of a file containing a list of VHDL source file names one name in each line Files are listed in bottom up order referenced files appear before the referencing file setenv VHDLPATH lt path gt lt path gt is a list of directory names separated by colons where the source VHDL files not including library source files reside setenv DBIN lt path gt lt path gt is a list of directory names separated by colons where the compiled protos including library protos reside setenv TEXSIM_DIR lt dadb_install_dir gt If you define TEXSIM_DIR RuleBase will load DaDb tools from this directory Otherwise the tools will be loaded from RBROOT the RuleBase installation directory RuleBase a Formal Verification Tool Provided by special agreement with IBM 38 CHAPTER 3 3 4 3 1 Working with Tex VHDL libraries If the libraries are not compiled yet compile them by following the instruc tions in the TexVHDL Compiler Reference Manual Then for each library add the following to file rulebase setup in the verifica tion directory e Define an environment variable whose name
90. gt is the gate level VHDL file name without the extension setenv entity lt NAME gt lt NAME gt is the same as lt name gt but in capital letters setenv SYNTHESIS SYNOPSYS 3 4 5 Synopsys Verilog The Synopsys Verilog path is very similar to the Synopsys VHDL path In fact there are two paths RuleBase a Formal Verification Tool Provided by special agreement with IBM 40 CHAPTER 3 1 Verilog to gate level Verilog Use the instructions in Section 3 4 4 but replace format vhdl by format ver ilog in lines 6 and 11 Then translate gate level Verilog to gate level VHDL using the v2v tool provided with RuleBase this is a temporary workaround 2 Verilog to gate level VHDL Use the instructions in Section 3 4 1 but replace format vhdl by format verilog in line 6 3 4 6 DSL RuleBase can read standard DSL files including DSB library files The only special prepara tion needed is for latches and flip flops If you use the master outputs of a master slave latch or if you do not use master slave latches or edge triggered flip flops please contact us for instructions on how to map your memory elements to standard RuleBase elements If you use master slave latches and use only slave outputs or if you use edge triggered flip flops follow the directions in Section 3 4 6 1 to map your latches and or flip flops to standard RuleBase elements After mapping your memory elements follow the directi
91. h until The computation tree for EU is left as an exercise for the reader IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 105 At this point the eight basic CTL operators AG EG AF EF AX EX AU and EU have been covered While combinations of the basic CTL temporal operators presented here can provide a lot of expressive power complex CTL formulas are difficult to read and write To overcome this limitation RuleBase provides higher level operators that add more expressive ability 5 3 Sugar Operators Sugar adds several operators on top of CTL in order to answer real needs that arise in practical formal verification Although many Sugar formulas can be expressed in pure CTL many other formulas are practically impossible to express in CTL because they would be too complex Sugar is stronger than pure CTL in the theoretical aspect too mainly in its ability to express any reg ular expression as described in Section Section 5 3 6 Experience shows that in CTL it is easy to write formulas which are syntacti cally correct but their meaning is completely different from what the user had in mind Sugar protects you from making these kinds of mistakes in two ways One way is to limit the formulas syntactically For example in some fields of certain Sugar operators only boolean expressions are allowed The other way is to produce a warning when a formula i
92. h IBM 36 CHAPTER 3 e Attaching attribute IO_PHYSICAL_DESCRIPTION BI_DIRECTIONAL to each inout port e Attaching attribute PHYSICAL_PINS TRUE to the Entity then all its inout ports are considered bidi s HIS will split every bi directional signal into two signals input and output for the purposes of formal verification with RuleBase 4 Look for the string DUMMY in the log file of the compilation If it appears some cell library was missing and the compilation has considered the cell to be a black box 3 4 2 HIS Verilog 3 4 2 1 Setting up environment variables Add the following lines to file rulebase setup in your verification directory setenv name lt TOP gt lt TOP gt is the top level module in your design setenv entity lt TOP gt lt TOP gt is the top level module in your design in capital letters setenv SYNTHESIS HIS_VERILOG setenv SRC lt directory gt the directory where the Verilog source files are located optional setenv sources lt Verilog files gt lt Verilog files gt is a list of Verilog file names separated by spaces The entire list should be written as one line IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 37 3 4 3 Tex VHDL Note the following information might become inaccurate as a result of com piler changes In case of doubt consult the Tex VHDL Compiler Reference Manual setenv name lt ENTITY
93. hat constant integers are converted to bit vectors implicitly there is no need to apply itobv It is recommended to use bit vectors instead of big integer variables if possible 4 2 4 Construction of bit vectors from bits or sub vectors The concatenation operator is used to make bit vectors out of bits or smaller vectors expr expr Example define wide 0 5 narrow 2 3 bit bit2 another_narrow 0 1 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 65 If expr is a constant it should be either O or 1 Wider constant vectors should be split into separate bits define x 0 5 y 0 2 1 0 z allowed define x 0 5 y 0 2 4 10B z not allowed The concatenation operator can also appear on the left hand side of an assign or define state ment For instance the following statement define a b c 0 2 d 1 0 e 0 1 is equivalent to the following four statements define a d b 1 c 0 0 c 1 2 e 0 1 The built in construct rep can help to construct arrays of repeated elements rep expr N is equivalent to expr concatenated with itself N times For instance to make each bit of array arr non deterministic the following assignment could be used assign arr 0 3 rep 0 1 4 0 1 0 1 0 1 0 1 Shorthands zeroes N is equivalent to rep 0 N ones N is equivalent to
94. he case that p is never asserted then the formula is said to pass vacuously Vacuity occurs when a sub formula does not affect the truth value of the formula For instance in the above the sub formula AX q does not affect the truth value of the formula because p is never asserted We can replace AX q with any other sub formula even the sub formula FALSE and the rule will remain true Since a trivially true formula is not intentionally part of a specification a vacuous pass usually indicates a problem in the rule in the environment or in the design under verification For this reason it is strongly recommended not to turn off vacuity checking If vacuity checking is enabled but full witness generation see Section 9 3 is turned off minimal overhead is incurred In the above example there is only one possible cause of vacuity However sometimes the situation is more complex For instance in the following for mula AG start_transaction gt next_event acknowledge read_enable write_enable IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 155 the vacuity may be because start_transaction is never asserted or because acknowledge is never asserted after start_transaction In both cases the sub formula read_enable write_enable does not affect the truth value of the formula In order to facilitate debugging of vacuous passes of this
95. he promise made that formal verification is equivalent to exhaustive simulation To achieve this exhaustiveness non determinism is used This section discusses non determinism and its uses It is necessary to under stand this subject thoroughly in order to use formal verification Afterwards fairness a closely related concept is discussed Fairness is a way of limiting non determinism so that paths that we don t want to consider are filtered out A non deterministic environment is an environment in which we specify more than one possibility for the behavior of a given variable When we make a non deterministic assignment we are indicating to RuleBase that all possibilities IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 1 must be considered Do not confuse a non deterministic assignment with the X value sometimes used in simulation or with a don t care assignment as used in synthesis A don t care assignment gives a measure of freedom to the syn thesis tool it indicates that any value chosen by the tool is ok In synthesis of course the actual logic will have either one value or the other A non deter ministic assignment on the other hand does not give any freedom Rather it forces RuleBase to consider the exact outcome of all possible choices This section assumes that the rules checked are of the form for all possible execution paths some property holds
96. her modules RuleBase a Formal Verification Tool Provided by special agreement with IBM 56 CHAPTER 4 4 1 7 The instance statement A module statement is only a definition it has no effect until it is instantiated called The instance statement instantiates a module using the following for mat instance instance_name module_name inputs outputs where instance_name is the name of the specific instance one module can be multiply instantiated module_name is the name of the module being instanti ated inputs is a list of expressions passed as inputs to this instance and outputs is a list of output parameters actually connecting the instance outputs to real signals of the design or the environment An instance name is optional For example the following is a legal instance statement instantiating the two input and gate defined in Section 4 1 6 instance da delayed_and q r t 4 1 8 The fairness statement A fairness statement is used to describe a fairness constraint The use of fairness is described in detail later in this chapter Briefly a fairness statement describes a condition that must be met infinitely often It is an important tool in specifying abstract environment models The fairness statement has the following format fairness expression The following is a legal fairness statement fairness state busy Currently the fairness expression cannot contain temporal operators This lim
97. her output RuleBase can build a partial representation in each case In effect by partitioning the formu las into different rules you enable RuleBase to automatically partition the design by using only that part of the design required to check the specific rule Note however that accumulating related formulas in one rule may save time if these formulas refer to the same part of the design 8 3 Behavioral Partitioning Behavioral partitioning is a technique in which the input sequences of a design are restricted to a subset of the legal input sequences In this way you allow RuleBase to remove parts of the design that deal with behaviors which are not seen under the restricted inputs For instance if a design has two modes read and write controlled by an input signal command then you can verify each of the modes separately This is done by declaring two separate environments in one command is constantly read and in the other it is constantly write This is the only action that you need to take When input signals are set to a constant value RuleBase will automati cally eliminate the logic that is made redundant For instance if you set command to read then RuleBase will know how to eliminate all logic that is activated only under mode write 8 4 Abstraction of the Environment As previously explained in CHAPTER 4 Describing the Environment writing environment models requires much thought and attention Models should be very abstract an
98. his description may help during the analy sis of verification results and facilitate maintenance Rules and modes can inherit formulas and EDL statements from other rules and modes e The formulas statement inherits formulas e The envs statement inherits EDL statements e The test_pins statement forces RuleBase to keep these signals during the reduction stage even if they are not needed for verification of the specific rule Sometimes these signals are needed to provide a better understanding of counter examples Test pins can also be inher ited e The inherit statement can be used to inherit the environments formulas and test pins The statement inherit rule_name is equivalent to envs rule_name formulas rule_name test_pins rule_name Rules and modes may include EDL statements var assign define fairness and instance The behavior assigned to signals by these statements overrides the signals behavior in the default environment all EDL statements outside rules or modes are considered as the default environment A rule may inherit EDL statements from other rules or modes using the envs statement Inherited statements override the default environment but are themselves overridden by statements written directly in the rule s body The exact hierarchy of behavior is as follows 1 Signal definition in the default environment overrides the definition in the design HDL 2 Inherited signal definition overrides the defin
99. ically do the following var x 0 3 boolean assign x 0 3 5 7 13 4 2 2 Operations on arrays Reference The simplest operation on an array is a reference to a bit or a bit range One bit of an array is referenced as array_name N where N is a constant A range of bits is referenced as array_name M N It is always necessary to specify the bit range when referencing an array It is possible to access an array element using variable index array_name V index1 index2 where V is a integer variable and index1 index2 are constants indicating its range Example var source 0 7 boolean V 0 7 define destination source V 0 7 assuming that the behavior of V is define elsewhere Other operations that can be used with any type of arrays are if case IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 63 Example aa 0 7 if bb 0 2 cc 0 2 then dd 0 7 else ee 1 8 endif The rest of the operators can be applied to boolean arrays bit vectors only Boolean connectives bitwise amp gt lt gt Both operands must be of the same width unless one of them is constant The result will have the same width as the vector operands Example v 0 7 x 0 7 amp y 0 7 z 0 7 Relational lt gt lt gt Both operands must be of the same width unless one of them is constant The result will be a scalar boo
100. ich makes use of different statements module server start grant request done process var state idle wait busy init state idle IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 71 next state state default behavior var request done boolean state machine outputs request false done false their default behavior case state idle amp start next state wait state wait request true if grant then next state busy endif state busy done true false if done then next state busy endif esac process module RuleBase a Formal Verification Tool Provided by special agreement with IBM 72 CHAPTER 4 4 4 Environment constraints Invar assume restrict and hints are environment constructs that enable setting constraints on signals It let you describe environment by declarative means instead of giving each signal a functional behavior Those environment constraints can be combined with other environment construct such as var assign define etc 4 4 1 Invar The invar statement enable you specify a boolean invariant that you want to be true at any cycle Rulebase will force the model to hold this invariant at every cycle The syntax of the invar construct is as follows invar lt expr gt Where lt expr gt is a boolean expression The boolean expression
101. ii j P is a subsequence i and j are natural numbers and i gt 0 j gt i j 0 The P holds between i to j cycles Examples read write 7 10 flush read write 0 3 flush Pii P is a subsequence i is a natural numbers and i gt 0 The P holds at least i consecutive cycles Example read write 7 flush P gt i p is a boolean expression p occurs at least i times not necessarily consecutive Equivalent to P P P P P P true p i p is a boolean expression p occurs exactly i times not necessarily consecutive Equivalent to P P P P P P P Example read write 3 cancel P gt i p is a boolean expression p occurs more than i times not necessarily consecutive Examples read write gt 3 cancel p lt i p is a boolean expression p occurs less than i times not necessarily consecutive p lt p is a boolean expression p occurs at most i times not necessarily consecutive IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 117 22 23 24 25 26 27 p gt i lt j p is a boolean expression p occurs more that i times but less than j times not necessarily consecutive i and j are natural numbers i gt 0 j gt i 1 p gt i lt j p is a boolean expression p occurs at least i times but less than j times not necessarily consecutiv
102. imilar to common hardware description languages HDLs but it also supports non determinism and multiple environments RuleBase a Formal Verification Tool Provided by special agreement with IBM 46 CHAPTER 4 Environments are linked to the design and to other environments by signal names Signals produced by the environment will match and drive design sig nals that have the same name even if they are internal to the design this is a way to abstract by overriding described later Signals produced by the design both output and internal signals will match and drive environment models that require these signals Note that in some translation paths design signals are converted to upper case Writing good environment models is an art Good environments should be small and simple while allowing all and only the legal behaviors Environ ments should be small in order to avoid overloading the model checker and simple in order to be easily written read and maintained Good environment models should not produce illegal behavior otherwise false negative results will be produced On the other hand they should model all the legal behaviors because an un modeled behavior is a good place for bugs to hide An attempt should be made to hide as much detail as possible using abstraction techniques as explained later The stages of environment modeling are e Study the block interfaces in detail The behavior of every input and every releva
103. ing the Environment 53 state idle idle busy state busy amp done idle else state esac The keyword assign may be omitted for the second and following consecutive assign statements Thus the following assign varl xyz init var2 abc next var2 qrs is equivalent to assign varl xyz assign init var2 abc assign next var2 qrs 4 1 4 The define statement A define statement is used to give a name to a frequently used expression much like a macro in other programming or hardware description languages The define statement has the fol lowing format define name expression For instance the following are legal define statements define adef q r amp t I v define bb 0 q amp t cce 3 As with the assign statement the keyword define may be omitted in second and following consecutive define statements 4 1 5 Difference between assign and define A state variable flip flop or latch must always be declared with the var statement If assigned an explicit value the assign init and assign next statements are used if either is omitted the initial and next values respectively are considered to be completely non deterministic RuleBase a Formal Verification Tool Provided by special agreement with IBM 54 CHAPTER 4 For a combinational variable output of combinational logic either assign or define may be used Users of SMV or of previous ver
104. ing to lt rule gt order copies the final order at the end of the run to file lt rulename gt order where lt rulename gt is the name of the rule If the Use Order File field is set to lt rule gt order on the next run this order will be used Clicking to orders pool will copy the order file back to a pool of orders usable by all rules If the Use Order File field is set to orders pool on subsequent runs the saved order will be considered for use by other rules using the same or similar reductions Control over ordering can be automated using the various fields in the BDD order section of the Options dialog box See CHAPTER 10 Graphical User Interface Tool Controls and Options for more details 8 8 Verify Safety OnTheFly In its normal mode of operation RuleBase will compute the reachable state space before checking any formula the reachable state space is the set of all states of the design that can be reached from the initial states For a class of formulas known as Safety formulas RuleBase can in many cases determine the falsity of the formula before it has completed the search of the reachable state space This method is know as Verify Safety OnTheFly The Verify Safety OnTheFly method has several advantages e A counter example or witness is produced as soon as a state is found in which the formula does not hold true Crude errors that usually stem from incorrect formu las or environment models are detected and displayed quickl
105. integer The sub sequence holds n consecutive times Qi A sub sequence Q followed by The sub sequence holds zero or more consecutive times Note this kind of event must be followed by a simple boolean event Qi A sub sequence Q followed by The sub sequence holds one or more consecutive times Note this kind of event must be followed by a simple boolean event PIIQ Two sub sequences P and Q separated by Il or between sequence Either the first sub sequence holds or the second sub sequence holds For example the for mula AG p q r Il s t u v is equivalent to AG p q r u v amp AG p s t u v P amp amp Q Two sub sequences P and Q separated by amp amp and between sequence P and Q must occur at the same time start and end at the same cycle P and Q must be of the same length same number of cycles Examples If read arrives before write and both read and write are not cancelled and get a grant then read will be serviced before write read cancel grant_read amp amp true write cancel grant_write operate_read before operate_write Exactly 3 write events should occur during the sequence feces req read flush cancel amp amp write 3 C RuleBase a Formal Verification Tool Provided by special agreement with IBM 116 CHAPTER 5 15 16 17 18 19 20 21 P
106. is read in during a read operation will be written out in the next write operation One way to do it is to write a formula for each data value for i in 0 31 do assuming that the data type is 0 31 formula AG read amp data_in i gt next_event write data_out i end This might be inefficient and even impossible if there are too many values The above can be done in one formula using the forall construct as follows forall i 0 31 formula AG read amp data_in i gt next_event write data_out i The syntax of forall is forall variable type where variable is an EDL variable which is defined only for the purpose of quantification It should not be defined elsewhere type is any legal type including a bit vector More examples forall i 0 31 boolean formula AG read amp data_in 0 31 i 0 31 gt next_event write data_out 0 31 1 0 31 RuleBase a Formal Verification Tool Provided by special agreement with IBM 122 CHAPTER 5 forall i 0 15 formula AG counter i gt AX counter i 1 mod 16 Although it looks natural to use forall with formulas it is also possible to use it anywhere else in EDL For example forall i 0 31 boolean define data_in_is_i data_in 0 31 i 0 31 data_out_is_i data_out 0 31 1 0 31 formula AG read amp data_in_is_i gt next_event write data_out_is_i Note that forall adds extra state variabl
107. is not affected by data The 32 bit register and the data inputs will be dropped automatically during reduc tion 2 4 Specifying Properties for Verification Now we want to verify certain properties rules of BUF The full text of these rules can be found in the file rules The first property claims that neither over flow two reads without a write in between nor underflow two writes without a read in between can occur Actually this example claims that the input acknowledge and output acknowledge operations are interleaved The first for mula says the following it is always true that if RST is not active and BtoS_ACK is asserted then beginning from the next state RtoB_ACK will be asserted before BtoS_ACK is asserted again The second formula is similar rule ack_interleaving formula No overflow RtoB_ACK is asserted between any two BtoS_ACK assertions AG RST amp rose BtoS_ACK gt AX rose RtoB_ACK before rose BtoS_ACK formula No underflow BtoS_ACK is asserted between any two RtoB_ACK assertions AG RST amp rose RtoB_ACK gt AX rose BtoS_ACK before rose RtoB_ACK 2 5 Actual Verification The file rulebase setup describes the verification environment VHDL file name VHDL entity name the file containing environment models and rules and the translation path IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 17 Everything
108. is now ready to be run Activate RuleBase by typing rb To exit from RuleBase select the menu option File Quit First take a look at the RuleBase front panel This tutorial uses only three parts of the front panel e A list of rules to be verified on the left This list currently has two entries e A column of yellow push buttons to control verification e A big text window occupying most of the work area and used to display important infor mation min wck_interlensteg To verify the property specified above select the rule ack_interleaving click on it with the left mouse button and then press the Run push button upper yellow button While the rule is running a log of its execution is displayed in the text window At present the only interesting information is the final result the first formula failed and the second one passed The failure means that there is a case in which there are two consecutive BtoS_ACK with no RtoB_ACK in between RuleBase a Formal Verification Tool Provided by special agreement with IBM 18 CHAPTER 2 2 6 Problem Analysis Press the Results push button Information about the two formulas is displayed in the text window Each formula s area consists of three parts verification results an English description of the verified property simply a display of the comment coded by the user and the actual formula Press and hold the left mouse button anywhere in the area of the first formula A
109. ition in the default environment 3 Signal definition in the running rule overrides inherited signal definition RuleBase a Formal Verification Tool Provided by special agreement with IBM 136 CHAPTER 7 7 2 Using modes to limit the Environment Example One way to approach the size problem is to limit the behavior of the environment as men tioned in Section 8 3 Behavioral Partitioning RuleBase uses information from the restricted environment to automatically reduce the size of the model to be verified In order to help reductions some signals in the environment may be set to constant values or restricted to some other simple behavior This over reduction is usually done by using modes rather than in the default environment as shown in the example below Suppose that a design obtains from the environment among other things a command and an address The default environment will include the following lines var command load store add jmp define CMD 0 2 these are the actual command inputs of the design case command load 010b command store 111b command add_ 011b command jmp_ 100b esac var CMD_VALID boolean var ADDR 0 15 boolean assign next ADDR 0 15 if CMD_VALID then ADDR 0 15 else nondets 16 endif ADDR is stable when CMD_VALID is active and is free to change otherwise Now suppose that the design is too large or verification takes too long although all basic methods
110. iver i DO 0 31 Sender Communication on both sides takes place by means of a 4 phase handshak ing as follows When the sender has data to send to the receiver it initiates a transfer by put ting the data on the data bus and asserting StoB_REQ server to buffer request If BUF is free it reads the data and asserts BtoS_ACK buffer to server acknowledge Otherwise the sender waits After seeing BtoS_ACK the sender may release the data bus and deassert StoB_REQ To conclude the transaction BUF deasserts BtoS_ACK When BUF has data it initiates a transfer to the receiver by putting the data on the data bus and asserting BtoR_REQ buffer to receiver request If the receiver is ready it reads the data and asserts RtoB_ACK receiver to buffer acknowledge Otherwise BUF waits After seeing RtoB_ACK BUF may release the data bus and deassert BtoR_REQ To conclude the transaction the receiver deasserts RtoB_ACK 2 2 Implementation An implementation of BUF written in VHDL is described in file BUF vhd see BUF implementation in VHDL on page 21 It consists of four parts IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 13 e state machine SENDER INTERFACE controls the interface with the sender state machine e RECEIVER INTERFACE controls the interface with the receiver e OCCUPIED is a flag indicating if BUF has data e DATA_BUFFER is a register holding the 32 bit dat
111. kept on the disk for use in future runs The translation process will be repeated only for a new version of the design Next the design the environment models and the formulas are loaded into memory At this time RuleBase performs many types of checks and gives warning messages where necessary Press the Warning push button to see an assembly of all the warning messages produced during the run After you press the Warning button or any other button press the Log push button to display the log again You should pay attention to the warning messages as they may indicate real problems Reduction takes place at this time Reduction removes parts of the design which are not required for the verification of the current rule s formulas It also links those environment models which resolve essential input signals to the design Information regarding the size of the design in terms of flip flops and gates is displayed before and after the reduction After reduction the actual verification process begins During verification two types of messages appear continuously nodes allocated lt number gt and itera tion lt number gt Whenever nodes allocated grows too much dynamic BDD ordering will try to reduce the number of nodes Hopefully at this stage of experimentation the reduced design is fairly small That is nodes allocated are less than 500 000 iteration is less than 200 and the total run time is a few mi
112. l values of signals If you are familiar with VHDL or Verilog you will notice that EDL processes are not explicitly associated with some clock signal or a sensitivity list Instead they are implicitly clocked on the system clock just like the concur rent assign next construct Now we will take a closer look at the building blocks of a process construct 1 Variable declarations The process construct should contain var declarations for all signals which are assigned within the process The var declaration of each signal should appear before the first assign ment to it Currently there is a restriction on chains of var declarations within a process each var declaration should start with var keyword i e var foo boolean bar boolean is not allowed but both IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 69 var foo bar boolean and var foo boolean var bar boolean are allowed 2 Assignments The three usual forms of RuleBase assignments are supported assign S expr assign next S expr assign init S expr The keyword assign can be omitted Note that define constructs are illegal within process S is a signal or a concatenation of signals The assignment of the first form S expr is similar to variable assignment of VHDL and to blocking assignment of Verilog in that references to S which are executed a
113. l these patterns in order to do successful verification work Most of the formulas in an average project employ only a small set of pattern However you may find here ideas that will simplify your work This list is intended to grow If you have more useful patterns that may help others you may send them to us and they will be added to this list 6 1 Basic formulas e okis always true AG ok RuleBase a Formal Verification Tool Provided by special agreement with IBM 128 CHAPTER 6 e some_requirement is always true when reset is inactive AG reset gt some_requirement Note e Many designs begin in an unspecified state and are being stabilized during reset Failure of a formula during reset is not interesting so we filter this time interval as shown above e Variable state can never have the value error AG state error e Variables state and state2 are never in the same state AG state state2 e Variables state and state2 are never in state critical together AG statel critical state2 critical or AG statel critical amp state2 critical e If busy is true then working is also true AG busy gt working e If almost_done is true now done will be true in the next cycle AG almost_done gt AX done e If hold becomes active it remains active for at least one more cycle AG rose hold gt AX hold Note erose hold is true if hold is currently 1 and was 0 in
114. le However it is usually more appropriate to write a modular and hierarchical environment The module and instance statements are used for this purpose IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 55 A module statement is used to define a module which can be instantiated a number of times as in hardware description languages It has the following format module module_name inputs outputs statement statement where inputs is a list of formal parameters passed to the module outputs is a list of formal parameters produced by the module and statements is any sequence of var assign define fairness and instance statements The input output parameters can be thought of as input output signals Input parameters are produced elsewhere and they drive the module while output parameters are produced by the module itself and can be used elsewhere A signal that appears as an output parameter of a module must be defined and assigned a value in that module var or define or instance output If a signal that appears as an input parameter of a module is not used in that module RuleBase will issue a warning For instance the following is a legal module statement module delayed_and s1 s2 out var out boolean assign init out 0 next out s1 amp s2 Modules cannot be declared inside other modules but they can be used instantiated by ot
115. lean value Examples c v 0 7 gt x 0 7 d v 0 7 lt 16 Arithmetic unsigned Both operands must be of the same width unless one of them is constant The result will have the same width as the vector operands Examples define cc1 0 7 aa 0 7 bb 0 7 cc2 0 7 aa 0 7 1 cc3 0 7 10 aa 0 7 In order not to lose the most significant bits of the result pad the operands with zeroes on the left Examples define aa 0 7 zeroes 4 bb 0 3 zeroes 4 cc 0 3 cot sum 0 7 0 a 0 7 0 b 0 7 is the concatenation operator described below zeroes 4 is a vector of four zeroes Shift gt gt lt lt RuleBase a Formal Verification Tool Provided by special agreement with IBM 64 CHAPTER 4 The first operand must be a boolean vector and the second operand must be an integer con stant or variable The result is a boolean vector of the same width as the first operand These operations perform the logical shift i e vacated bit positions are filled with zeroes Examples define cc 0 7 aa 0 7 lt lt 2 var shift_amount 0 5 define dd 0 7 bb 0 7 gt gt shift_amount ee 0 8 04 ff 0 7 lt lt 1 4 2 3 Conversion of bit vectors to integers and vice versa Bit vector to integer bvtoi a_vector Integer to bit vector itobv an_integer Example assign next counter 0 7 itobv bvtoi counter 0 7 1 Note t
116. ll the local RuleBase focal point or call us find our email address on the cover page e Copy the following files from RBROOT to your home directory Guirb Scope Cctdag Analyze RuleBase a Formal Verification Tool Provided by special agreement with IBM 26 CHAPTER 3 3 2 Preparing a Verification Environment This section provides an example of how to quickly build a working environ ment These instructions should help you create an initial environment to experiment with and are not meant to give you a thorough introduction to working with RuleBase Some of the file names e g envs and rules are only recommendations and you may select other names for these files First create a new directory where the verification process will take place Your verification files will be located in this directory RuleBase will also cre ate various files and sub directories in this directory Before running the first rule prepare e The design to be verified e File rulebase setup e File envs e File rules e File run Each of these items is described below 3 2 1 The Design to be Verified RuleBase supports several hardware description languages VHDL DSL Verilog and several translation synthesis paths Section 3 4 Design Translation details how to prepare the design for verification If your design environment is not mentioned there please contact us CHAP TER 11 Design for Formal Verification suggests design rules that can
117. llegal input sequence as long as the block not confused by this Restrict inputs only when necessary because either the logic is confused by illegal inputs or in order to restrict the environment to less than the legal input behav ior because of size problems There is a genuine difficulty in determining how risky a certain environment restriction is in terms of missing design errors The suggested solution is to hold rule and environment reviews as described in Section 12 4 Because the quality of the verification is dependent on the quality of the envi ronment it is also recommended that rules be written which check the correct behavior of the environment Specifically rules should be written which check that events which the environment is expected to be able to generate are indeed generated For instance the following rules check that both read_enable and write_enable are assertable by the environment assuming these are environ ment signals EF read_enable EF write_enable 12 4 Plans and reviews Rule and environment writing are strict engineering activities They should therefore be planned and reviewed The reviews should be conducted both on the rules written and the envi ronments The rules should be reviewed with team mates that understand the block functional ity The environments should also be reviewed by the block designers It is very important to go over environment restrictions with the designers Specifically restri
118. lows condition is evaluated first If it is true expr is returned Otherwise condition is evaluated If it is true expr is returned and so forth Although the else part is not essential it is advisable to use it as the default entry if you are not certain that the other conditions cover all the cases Falling through the end of a case statement may have unpredict able results Notice that from the description of the case expression above it follows that an earlier condition takes precedence over a later one That is if two conditions are true the first takes precedence The if expression is shorthand for a case with two entries If has the following format if condition then exprA else exprB endif In the above if expression exprA is returned if condition is true and exprB is returned if condition is false Note This section deals with if case expressions rather than statements if case statements are allowed only inside sequential processes See Section 4 3 You cannot write for example if c then assign a x c y else assign a z b w endif Instead you should write assign a if c then x else z endif b if c then y else w endif 4 1 1 5 Non deterministic choice RuleBase uses non determinism to describe many possible behaviors at once Non determin ism is described in detail in Section 4 7 In this section the non deterministic constructs are briefly mentioned for completeness The non deterministic
119. macros in the design their logic level equivalents should be used Edge triggered latches and master slave flip flops whose master s output is connected only to the slave are most suitable for RuleBase If level triggered latches are used or if the master s output drives logic special modelling is required depending on how they are used in the design 11 5 Asynchronous Logic Ideally there should be no asynchronous logic in the parts to be formally veri fied RuleBase supports the verification of models where the changes are at the cycle level Asynchronous signals if present are best handled when situated at the verified partition boundaries Synchronizing elements should be replaced by a short circuit State machines should be synchronized by proper hand shaking Relying on absolute durations e g 40 nano seconds before response is not supported 11 6 Tri State Buffers Ideally tri state buffers should be located in a separate module so they can be easily separated from the design before formal verification This is a common design style However in some designs for various reasons tri state buffers are mixed with other logic In these cases they should be situated at the parti tion boundaries Future versions will be able to handle tri state buffers every where RuleBase a Formal Verification Tool Provided by special agreement with IBM 182 CHAPTER 11 11 7 Parametric Designs When the design includes mem
120. mpiled This is already done for you don t try to do it by yourself because your translation path is not set Simply type setup2 now at the unix command line Close the timing diagram using the File Quit menu option press the Run push button again and wait a few seconds Both formulas will now pass 2 8 Witness Suppose that for some reason a problem in either the design or the environ ment models BtoS_ACK can never be asserted or that it is asserted only once and RtoB_ACK is never asserted In both cases the formula will pass because there was no violation of the property This hides a problem you should be aware of This kind of problem is called a vacuous pass and is a form of a false positive answer To show that the pass was not vacuous a witness is generated A witness is a timing diagram that exhibits an interesting execution trace dem onstrating one case in which the formula is true An interesting execution trace is one on which each event mentioned in the formula appears In our example there is a w near the passed message This means that a witness is available Press the Results push button click the mouse button any where in the area of the first formula and select Show timing diagram This time the diagram displays a witness rather than a counter example You can see that both BtoS_ACK and RtoB_ACK are asserted at least once That is this trace is an interesting positive example of the truth of the form
121. n find other useful formula patterns in CHAPTER 6 Sugar Formula Examples 3 2 5 File run File run is only needed for batch runs However it is a good idea to prepare it now This file should be copied from RBROOT to the working directory 3 3 Running RuleBase After preparing the four items described in the previous section you are ready to run RuleBase Type rb in your verification directory The RuleBase win dow is displayed Your list of rule names should appear on the left side In our case the rule start will appear To the right of the rule list is a column of yel low push buttons that activate commonly used commands There is also a large text area for displaying files At the top of the window there is a menu bar and a message line Use your mouse to select the start rule from the rule list Then press the Run push button RuleBase starts running your rule Watch the log of your run as it appears in the RuleBase window If the log scrolls too fast you can use the scroll bar on the right hand side When you IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 31 touch the scroll bar the bottom right Freeze button changes to Frozen and turns red In order to see the updated log again and free the display press the red Frozen button Follow the verification process First the design is translated into an internal representation The translated design is
122. nctioning Note that in some trans lation paths all signal names of the design are converted to upper case Two types of signals the reset and the clock signals should receive special attention For a complete discussion on how to model these signals read Sec tion 4 7 and Section 4 8 For now the simplest clocking scheme one clock is assumed to be sufficient Assign the clock signal the constant value 1 define CLOCK 1 where CLOCK is the clock name in your design The reset signal should be assigned the following behavior var reset_state 0 3 Assuming that three cycle reset is required assign init reset_state 0 next reset_state case reset_state lt 3 reset_state 1 else 1a esac define RESET reset_state 3 where RESET is your reset signal IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 29 If your design needs more than 3 cycles of active reset you may increase the cycle length by changing 3 to the desired number 3 2 4 File rules Write your specifications in the rules file Here as in the envs file you may write the rules in several files and use the include directive to connect them Each rule should have the following format rule lt name gt lt a comment describing the rule gt formula lt a comment describing the formula gt lt sugar formula gt formula lt a comment gt
123. nt output must be understood This information can be gathered from standard bus protocols design documents and communication with the designers e Plan the hierarchical structure of the environment models grouping related signals and reusing components where possible e Decide how to model each input Some inputs are held constant at least during the initial stages of verification Usually there is a set of interesting control inputs which need detailed modeling We have to design and implement logic to drive these signals e Code the logic in EDL The rest of this chapter describes the syntax and semantics of EDL constructs suggests modeling techniques and demonstrates them with some examples Before starting to write your environments it is recommended to read CHAP TER 7 Managing Rules Modes and Environments IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 47 4 1 Language Constructs An environment is made up of a few types of statements These statements are described in the following sections The order of the statements 1s unimportant Keywords can appear in either upper or lower case 4 1 1 Expressions 4 1 1 1 Variables and constants The basic expressions are numbers enumerated constants or variable refer ences A number is a decimal if it has only decimal digits and no suffix e g 1276 A binary number consists of binary digits and ends with B
124. nutes Otherwise you will have to reduce the design further by restricting some free inputs or employ more advanced methods as described later in this manual RuleBase a Formal Verification Tool Provided by special agreement with IBM 32 CHAPTER 3 Wait until the run ends and then press the Results quick button Your rule is displayed with one of three possible results failed passed or vacuously If you get an unknown result it means that you pressed the Results button too early and your run was not finished Press the Log push button to see the log again If the result is failed it means that your formula does not hold true in your design and a counter example was produced If the result is passed your formula holds true To see the counter example of a failed formula click the left mouse button near the word failed Drag the mouse and choose Show timing diagram Refer to CHAPTER 9 Debugging Aids for instructions on how to use the timing diagram browser If the result is vacuously no timing diagram exists for this formula This result may indicate a problem in the for mula environment or design refer to CHAPTER 9 Debugging Aids for an explanation of vacuity If some of the formulas failed it is obviously because the environment behav ior is wrong as some of the free inputs have unexpected behavior Now is the time to refine the environment model Either try to make use o
125. o move the waveform of signal a first mark it as above Then drag it to its new location and release the left mouse button To remove the waveform of a signal click right on its name and NOT its waveform in the waveform display window To add signal a to the end of the waveform display first unmark all signals by clicking left on the name of the currently marked signal the easiest way to do this is to double click left on the name of any signal which first marks it and then unmarks it Then click left on the name of signal a in the signal list The waveform of signal a should now appear as the last signal in the wave form display To search for a signal name in the signal list type its name or part of its name in the small window above the signal list and press Enter To quickly clear the search window click right anywhere in it 9 1 4 Waveform display window The waveform display window displays an execution trace which is a counter example or a witness to a formula The number bar at the top of the display counts the clock cycles of the fastest clock Signals which have a textual display for instance enumerated constant values IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 153 are displayed such that only a change in the signal value is displayed So if no value appears at time X the current value can be found by looking to the left for th
126. ock schemes it is important to note that usually complex schemes contribute to size problems more than do simpler ones When planning the design s micro architecture it is advised to partition the design in a way that each part will have the simplest scheme possible pref erably one clock The next scheme has multiple synchronized clocks For example assume that there are two clocks with a 1 3 ratio between their frequencies In this case we fix the faster clock at value 1 always active and generate a pulse every third cycle for the slow clock define FAST_CLOCK 1 var clock_counter 0 2 assign next clock_counter clock_counter 1 mod 3 define SLOW_CLOCK clock_counter 0 In contrast to clocks in real systems whose duty cycle is usually 50 slow clocks in RuleBase should be active only for one cycle each time If this is a problem because the clock is generated internally contact us A similar case is a ratio of 2 3 var clock_counter 0 5 assign next clock_counter clock_counter 1 mod 6 define SLOW_CLOCK clock_counter in 0 3 define FAST_CLOCK clock_counter in 0 2 4 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 89 If the clocks are not synchronized some tricks are necessary in order to work in a synchronous framework One case is presented to demonstrate the range of possibilities In general even when
127. oes not exist or is not completed rule did not finish then RuleBase will not create a fictitious signature 10 5 3 5 Debugging control panel The debugging control panel consists of the following fields e Explain timing diagram determines if explanations of the counter example will be shown in the trace Explanations are red dots that tell where to look for interesting events e Show formula text determines if the counter example or witness trace will also pop open a window displaying the formula to which it corresponds e Per rule state file determines if the signal display configuration of the trace will be saved per rule or not e Clock cycle length of the clock cycle for test generation see Section 10 5 9 e Clock name the name of the clock for test generation e Signal prefix prefix for signal names for test generation e Create circuit file a circuit file must be created during reduction if the reduction analyzer see Section 9 4 is to be used 10 5 4 ToglOrdr quick button This button will toggle bdd ordering for the currently selected rule If bdd ordering is currently taking place it will stop the current round If bdd ordering is not currently taking place it will start one round This button affects only one round of bdd ordering In order to turn bdd order ing on or off permanently see section Section 10 5 3 2 1 Normally test generation is not needed because RuleBase generates a simulation like trace for
128. on causing variables i e investigating what is the earliest possible wrong behavior of the design or and environment and forbidding it Following is the simplified example of such case var x y boolean assign init x 0 1 assign next x x assing init y 0 assing next y x assume AG y formula AG y RuleBase a Formal Verification Tool Provided by special agreement with IBM 76 CHAPTER 4 the user gets the counter example of length 1 where x 0 and y 0 But this trace has the only next state where y 1 and x 0 and is forbidden according to the assumption Thus the trace the user gets in this example is not real By tracing back the forbidden behavior of y one can see that it is forbidden for x to be 0 Replacing the existing assume by assume AG x on the same formula the user gets the real counter example of length 1 where y 0 and x 1 real means here that it can be prolonged to any length 4 4 3 Restrict The restrict environment construct is used to limit the state space exploration to certain paths The restrict looks like a regular expression and its semantics resemble the semantics of regular expression Only paths that match a prefix of the regular expression will be checked The syntax of the restrict construct is as follows restrict regular_expression where the regular expression events can be any of the sequence events Example restrict read rea
129. on 5 3 describe the CTL and Sugar opera tors The remaining sections offer some practical advice Before you start to write formulas it is recommended that you read CHAPTER 7 Managing Rules Modes and Environments RuleBase a Formal Verification Tool Provided by special agreement with IBM 92 CHAPTER 5 5 1 Semantic Model RuleBase is used to verify that a given finite state machine satisfies a given list of properties The machine consists of a design usually written in a hardware description language composed with an EDL Environment Description Lan guage description of the target environment in which the design is expected to run There are cases such as in protocol verification where both the design and the environment are written in EDL The finite state machine has no free inputs every input of the design is driven by some signal of the environment and every input of the environment is driven by the design Although there are no free inputs the machine usually has multiple choices when moving to the next state because some of the state variables mainly those modeling the environment have non deterministic behavior A non deterministic finite state machine can be unfolded into an infinite tree representing the machine s computations The tree root represents the initial state of the machine each tree node corresponds to a state in the machine and the edges emanating from a state are the possible transitions to other s
130. ons in Section 3 4 6 2 in order to set up a DSL environment for formal verification 3 4 6 1 Mapping master slave latches and edge triggered flip flops 1 Your DSL file should instantiate a device representing the memory element it should not make direct use of the Register statement of DSL 2 Replace the desblo file representing your basic memory element with a des blo file that instantiates the standard RuleBase register NBITREG An NBITREG is a 1 32 bit memory element representing a simple master slave latch or D flip flop It has the following inputs CLK the clock DATA_IN O N the data input ASYNC_SET an asynchronous set ASYNC_RESET an asynchronous reset IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 41 and the following output DATA_OUT O N the data output If your master slave latch or flip flop has scan pins or other circuitry not directly related to the functionality of the memory element they should be ignored left unconnected Below is an example that maps a master slave latch called latch4 with scan pins to the standard RuleBase memory element NBITREG As you can see in the example the scan pins as well as the slave clock are left unconnected 1 TO 32 BIT SRL REG SIM SYN CALL CHECKPARM width 1 32 1 CALL CHECKPARM se 010 CALL CHECKPARM reset 010 CALL CHECKPARM nl 010 CALL CHECKPARM hide 020 C
131. oratory Israel Provided by special agreement with IBM cuapten Managing Rules Modes and Environments There are many possible ways to structure a verification project The basic ele ments of all structures are the same EDL statements formulas modes and rules However as the project becomes more complicated spans a longer period and more people become involved it becomes more important to use a standard methodology The main contributor to project complexity is Behavioral Partitioning see Sec tion 8 3 Behavioral Partitioning is an effective method to attack the size problem In this method the environment is degenerated in various ways in order to reduce the size of the design to be verified Formulas should then be run in multiple reduced environments in order to cover the full environment Unless managed carefully these multiple environments may get out of control This chapter suggests a methodology of managing multiple rules modes and environments The methodology is a result of our experience in many formal verification projects Section 7 1 describes the syntax and semantics of rules and modes Section 7 2 shows an example of how to approach the size prob lem by using modes Section 7 3 suggests how to structure a verification project that has multiple environments RuleBase a Formal Verification Tool Provided by special agreement with IBM 134 CHAPTER 7 7 1 Rule and Mode definition RuleBase is rule oriented
132. ormula They may appear with other formulas in the same rule Example rule req ack formula min req ack formula AG req gt AF ack formula max ack req Currently min max formulas cannot run OnTheFly 5 5 Multiple Clocks in Formulas Sometimes the design under verification has more than one clock and it should be verified in several clock ratios Assume for example that there are two clocks clk_a and clk_b that we want to verify in two ratios 1 1 and 1 2 Assume also that the following formula is written for ratio 1 1 AG p gt AX q gt AX r until s For 39 If signals p q r s depend only on the slower clock clk_b then the formula should be written differently for ratio 1 2 AG p amp clk_b gt AX 2 q gt AX 2 l clk_b until s amp clk_b For 40 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 121 To avoid the need to change formulas when the clock ratio is changed the user can specify the clock according to which the formula should behave and the translation will be done automatically In our example the user should specify the clock as follows AG p gt AX q gt AX r until s clk clk_b For 41 5 6 Quantification Over Data Values When specifying the behavior of data it is often necessary to refer to specific data values For example suppose that we want to say that the data which
133. ory This file may be used in later runs as the ini tial order Options are No Don t save the new order To lt rule gt order At the end of the run copy the new order to lt rule gt order To orders pool At the end of the run copy the new order to the orders pool To both At the end of the run copy to both lt rule gt order and the orders pool e Copy now before a run has completed a new order file may exist This button allows the new order to be copied back immediately to either lt rule gt order or to the orders pool 10 5 3 3 Reduction control panel The reduction control panel consists of the following fields e Reduction effort Determines how much effort cpu time and memory will be dedicated to performing the reduction Options are Low No BDD reductions will be performed High BDD reductions will be performed Applying all BDD reductions may sometimes require a lot of time and space To control time and space used by the reductions try dis abling one or more of the heavy reductions as shown below or give a BDD node limit e Heavy reduction 1 NO e Heavy reduction 2 NO IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 171 BDD node limit By limiting the number of BDD nodes and using high effort with heavy reductions you will frequently get better reduction results than with no heavy reductions and no BDD limit A
134. ory in which case different rules have different state files or in the verification directory in which case all rules share one state file See Per rule state file in Section 10 5 3 5 RuleBase a Formal Verification Tool Provided by special agreement with IBM 154 CHAPTER 9 2 When Scope is invoked it loads the default state file if one exists If Per rule state file No Scope loads smv state from the verification directory If Per rule state file Yes Scope tries to load rule_ lt rulename gt smvy state If this file doesn t exist Scope loads smv state from the verification directory 3 After loading the default state file signals that appear in the formulas are appended 4 The current state can be saved in the current state file using the File Save state menu option or in another file using the File Save state as menu option See Section 9 1 2 1 5 The current state can be replaced by another state file using the File Load state menu option Signals of another state file can be added to the current state using the File Append state menu option See Section 9 1 2 1 9 2 Vacuity If a formula passes but in a trivial manner this is called vacuity and if vacuity detection is enabled see Section 10 5 3 4 the status of the rule as displayed in the results window see Section 10 5 9 is vacuously For instance if the formula AG p gt AX q passes but it is also t
135. ory arrays which highly influence the logic e g FIFOs we might wish to verify these arrays rather than their abstract model However checking them as a whole might cause the model to become too big To solve the size problem you can define the array size as a parameter which can be easily changed In this manner you can choose the largest size possible within the RuleBase capacity 11 8 Implementation Rules Properties to be verified can be divided into two categories specification rules and implementation rules While specification rules are usually extracted from written documents implementation rules are often not documented It is strongly recommended that you write these rules while developing the design IBM Haifa Research Laboratory Israel Provided by special agreement with IBM cuapten12 Coverage Methodology Note This chapter is brought here in a preliminary form While RuleBase addresses the coverage problem of verification by simulation it does not solve it completely First of all there is the question Have I coded all necessary rules Secondly because of the size problem behavioral partitioning as described in CHAPTER 8 is frequently used Behavioral partitioning adds to the coverage problem the question Have I coded enough environments These two questions are discussed below Before proceeding it should be emphasized that despite the fact that the sec ond coverage question above sounds very mu
136. p after iteration An integer indicating how far into the reachability analysis RuleBase should go RuleBase will stop reachability after the specified number of iterations i e it will not look at states which are farther than X steps from the initial state Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked If the Now button is pushed and reachability is also active RuleBase will complete the analysis of the current iteration and check all remaining for mulas only as they pertain to the states it has seen so far e Run only if change This mode provides the ability to run a rule only if the design envi ronment or formula have been changed since the last run Furthermore if the change in the design or environment does not affect the formula then it will not run either When this mode is active a signature is created for each run to be compared with the next run IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 173 The following options are available e No mode is inactive e Yes mode is active A rule will run only in case of changes e Force mode is active A rule will run in any case but a signature will be created e Fictitious RuleBase creates a signature for the rule as it was just running If the pre vious log file is older then the design d
137. pe 150 scope 150 scope rules 57 Sequence 113 sequence 113 sequence imlpies sequence 117 sequential processes 67 simulation 7 183 size limit 141 187 size problem 8 size problems 141 187 SMV 45 54 state variable 51 statements 47 static analysis 142 strong operator 104 105 107 108 109 110 111 112 113 Sugar 91 105 symbolic model checking 7 Synopsys 37 39 synthesis paths 26 T temporal operators 94 test vector 7 test_pins 134 The 111 translation paths 26 34 tri state buffers 181 tutorial 11 U uninteresting paths filtering 80 until 107 108 until 107 until 108 RuleBase a Formal Verification Tool Provided by special agreement with IBM 220 until 108 V vacuity 154 vacuous pass 19 var 51 variables 47 verification 7 Verilog 26 36 39 43 VHDL 26 34 37 39 wW waveform display 150 weak operator 105 107 108 109 110 111 113 whilenot 111 112 113 whilenot 113 within 111 112 within 112 witness 19 155 X X value 81 Z zeroes 65 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM
138. perator Thus the formula AG req gt data_receive before ack For 23 requires that after request data_receive is asserted before or together with ack and data_receive must eventually be asserted 5 3 3 3 before_ and before _ p before_ q and p before_ q are the similar to p before q and p before q but require that the first p happen strictly before and not together with the first q IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 109 5 3 4 next_event next_event is a conceptual extension of the AX operator While AX talks about the next cycle next_event talks about the next time a certain event occurs Variations of next_event are extensions of the AX n and ABG i j operators 5 3 4 1 next_event p q The operator next_event p q means that the next time that p occurs q will occur For instance imagine an arbiter in which requests are processed in the order they are received unless there is a high priority request in which case it must be processed immediately For sim plicity s sake assume that there is only one requestor that can send high priority requests Then a rule might be whenever a high priority request is received the next grant must be to the high priority requestor Here is the rule in Sugar AG req amp high_priority gt AX next_event grant dst high_priority_requestor For 24 It i
139. place its neighbors by abstract models These models should represent only the interfaces with the verified partition hid ing unnecessary details e Verify the correct behavior of the abstract models of the neighbors by writ ing specific rules for this purpose While partitioning can be quite effective there are obviously properties that can be verified only when the entire design is considered Partitioning also requires extra effort in studying internal interfaces and writing models for neighboring blocks RuleBase a Formal Verification Tool Provided by special agreement with IBM 188 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM 215 Symbols RBROOT 25 for 58 if 60 cshre 25 A ABF 106 ABG 106 abstraction 84 142 143 AF 97 106 restricted 112 AG 95 106 AG boolean 147 and between sequences 115 arrays 61 array operations 62 boolean vectors 61 concatenation 64 defining 61 nondets 65 ones 65 rep 65 zeroes 65 assign 52 assign and define differences between 53 assume 72 74 asynchronous logic 181 AU 103 107 automatic elimination of logic 142 AW 107 AX 101 106 B batch runs 165 194 195 BDD ordering 144 bdd re ordering dynamic 144 before 108 before 108 before _ 108 before_ 108 binary decision diagram 144 boolean vectors 61 built in functions and macros 51 bvtoi 64 Cc case expression 49 case statement 69 RuleBase a Form
140. plicate things let us assume that command cl comes with address al and command c2 comes with address a2 Then if we choose command cl it makes no sense to choose a2 In this case we must choose al One way to associate one non deterministic choice with another is to use an auxiliary non deterministic vari able The following example illustrates this point FIGURE 2 Another arbiter module another_arbiter c1 al c2 a2 output_command output_address var choose 1 2 var output_command read write none var output_address boolean assign output_command case cl none amp c2 none none cl none c2 c2 none cl else case choose 1 c1 2 c2 esac esac assign output_address case cl none amp c2 none 0 1 cl none a2 c2 none al else case choose 1 al 2 a2 esac esac RuleBase a Formal Verification Tool Provided by special agreement with IBM 84 CHAPTER 4 By using the free auxiliary variable choose we have tied the non determinis tic choice between cl and c2 to that between al and a2 Notice that in the case where both cl and c2 are none we let the address be free This is an accurate picture of an arbiter in which the address is undefined in the case that no com mand is chosen 4 7 2 Using non determinism to create an abstract model Suppose we need to model an arbiter that uses a round robin or other algorithm in order to
141. pop up menu appears Select Show timing diagram by dragging the mouse to this entry and releasing the button Wait a few seconds until the timing diagram shows up displaying a counter example All relevant signal names are shown To display diagrams of other signals use the mouse to click on their names in the left list For a detailed description of the waveform display too see CHAPTER 9 Debugging Aids Eit icops 21 tepi Tbe JOAN Role eck interleaving Forwulm t A counter example is a trace which demonstrates a failure of the design to ful fill a specified requirement Here it shows an example in which the first for mula fails BtoS_ACK is asserted in both cycles 9 and 15 while RtoB_ACK is constantly high You can better understand the problem by looking at the inter action between BtoR_REQ and RtoB_ACK The four phase handshaking is broken in cycle 10 where BtoR_REQ is asserted although RtoB_ACK is active This occurs because the condition under which BUF can initiate a new transaction to the receiver is incorrect the relevant line in BUF vhd is marked IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 19 with an exclamation point BUF looks only at the OCCUPIED flag while it must also wait for RtoB_ACK to become inactive 2 7 Fixing and Rerunning To fix the problem the incorrect line must be replaced by the line next to it currently a comment and the design must be reco
142. r the text typed in the text search window to the right of the find text control button Wild card search is not supported here 10 6 3 Edit text control button This button will open a window in which an editor is invoked on the current file displayed in the main text window The default editor is vi To call your preferred editor add the following line to file rulebase setup setenv RB_EDITOR your editor examples setenv RB_ EDITOR emacs rulebase calls emacs file amp setenv RB_EDITOR aixterm e vi R rulebase calls aixterm e vi R file amp 10 6 4 Freeze text control button This button will freeze the main text window by default it is updated continuously as the run progresses This can make it easier to read the text When clicked this button will change its color to red and display the message Frozen To unfreeze click left on it again The main text window will be automatically frozen when it is scrolled back wards using the scroll bar to its right To unfreeze it click left on the red Fro zen button as above RuleBase a Formal Verification Tool Provided by special agreement with IBM 178 CHAPTER 10 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM CHAPTER 11 Design for Formal Verification RuleBase supports a wide variety of design styles and methodologies While in many cases special adjustments to existing design methodology are not requir
143. raints invars restricts or assumes IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 161 The user can enable this feature by adding prolong_trace n flag to SMV FLAGS variable using File Setenv menu as described in Section 10 2 1 where n is the number of cycles to be added to each trace 9 8 Other debugging aids Other debugging aids are available under the Debugging menu of the RuleBase main win dow They are described in detail in Section 10 2 4 RuleBase a Formal Verification Tool Provided by special agreement with IBM 162 CHAPTER 9 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM chapter 10 Graphical User Interface Tool Controls and Options This chapter describes both the graphical user interface of RuleBase and the tool controls and options which are manipulated by it RuleBase a Formal Verification Tool Provided by special agreement with IBM 164 CHAPTER 10 10 1 Main window overview The RuleBase main window is shown below It consists of a number of areas e The menu bar is at the top of the window and will be green if you have setup the default colors by copying the file Guirb from RBROOT to your home directory as described in CHAPTER 3 Getting started e The message panel is below the main control panel and is off white e The rule list is the rectangular area on the left hand side of
144. rned off as described in Section 10 5 3 4 At this stage model checking becomes a fully automated process in that it is enough to determine that each formula passes non vacuously without examining waveform displays for true formulas It is strongly recommended that vacuity detection be left on always RuleBase a Formal Verification Tool Provided by special agreement with IBM 156 CHAPTER 9 9 4 Reduction Analyzer As explained in CHAPTER 8 Size problems and solutions one way that RuleBase deals with the size problem is by behavioral partitioning and overreduction in which parts of the design are eliminated based on the environment as well as the formulas to be checked The reduction phase eliminates logic which is not in the cone of influence of the formulas to be checked propagates constants from the environment forward and eliminates redundant logic that either was there from the start or became redundant because of constant propagation The reduction analyzer allows insight into these reductions Usually there are two questions that the reduc tion analyzer can help to understand e why was signal X eliminated during reduction why does it not affect the truth of the for mulas in this rule e why was signal Y not eliminated during reduction how does it affect the truth of the for mulas in this rule The reduction analyzer is invoked from the Debugging menu option as described in Section 10 2 4 The reduction analy
145. s and check the validity of formula r on this trimmed tree rather than on the full tree of computations The trimmed tree contains only the cycles of every path between p and a cycle before q Thus the trimmed tree could have finite paths as well In fact in the strong within p q operator Section 5 3 5 2 one may think of the trimmed tree as having only finite branches 5 3 5 2 within p q r This is the strong version of the within p q r operator It has the semantics of the within p q r operator with the additional requirement that p must eventually occur and q must eventually follow p may occur at the same time as q Thus the strong version of Formula 32 AG within reqg ack AG busy For 34 states that after every point in time there is a request that is followed by an acknowledge signal and between the request and its acknowledgment busy should be active 5 3 5 3 whilenot q r The operator whilenot q r means that in every computation formula r is true now and stays true at least until a clock before q is true If q is true now then whilenot q r is also true For instance Formula 32 can also be expressed as IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 113 AG req gt whilenot ack AG busy For 35 The operator whilenot q r is a weak operator that is it does not require that q eventually happen whilenot
146. s we recommend to separate them Hence environment models are in the envs file and specifications are in the rules file On the first line of file envs write include rules This way RuleBase knows it should also read the file rules If you wish to write your environment models in several files connect the other files to envs using the include command RuleBase a Formal Verification Tool Provided by special agreement with IBM 28 CHAPTER 3 In order to start working a behavior must be given to every input signal of your design If you want to provide full legal behavior for each of your input signals read CHAPTER 4 Describing the Environment before proceeding It is a good idea to read that chapter before beginning the real verification work If you just want to try out RuleBase you can give a simple probably wrong behavior to your input signals as follows For each signal choose one of three possible behaviors define SIGNAL 0 define SIGNAL2 1 var SIGNAL3 boolean The first two possibilities assign a constant value to the input signal The third one gives an input signal totally free behavior SIGNAL3 may change on every cycle A signal given this behavior is called a free variable At this stage do not leave too many variables free this may cause a quick explosion of the state space Leaving five to ten signals as free variables is reasonable at this stage if you just want to see your design fu
147. s a sub menu with the following items e Print screen prints a copy of the waveform display to the postscript file scope ps To print this file directly from Scope add the following line to file Scope in your home directory Scope printCommand lt your print command gt for example Scope printCommand qprt Bnn Pprt1 scope ps e Load state prompts the user for a name of a Scope state file to replace the current state to learn more about the Scope current state and state files read Section 9 1 6 A State file is created using Save state or Save state as described below e Append state prompts the user for a name of a Scope state file whose signals will be appended to the currently displayed signals e Save state saves the current Scope state including the signals displayed in the currently loaded state file The saved state will be used the next time a waveform for this rule is dis played to learn more about the Scope current state and state files read Section 9 1 6 e Save state as prompts the user for the name of a Scope state file in which to save the state This state can later be loaded using Load state described above e Quit exits the Scope waveform display tool 9 1 2 2 Signals menu option Clicking left on the Signals menu option opens a sub menu with the following items e Add all adds all signals to the waveform display e Remove all removes all signals from the waveform display
148. s important to note that the operator next_event p q does not require that the event p eventually happen It only states that if p does happen then q must happen Thus Formula 24 can be more precisely read as whenever a high pri ority request is received if there is eventually a grant then the first grant must be to the high priority requestor Because this operator does not make any demands on the eventual occurrence of p it is known as the weak next_event operator The strong next_event operator presented in Section 5 3 4 2 has the added semantics of p must eventually occur There is one limitation on the use of next_event p q and all its incarnations While q can be any Sugar formula p must be a boolean formula i e a formula with no temporal operators 5 3 4 2 next_event p q The operator next_event p q is called the strong next_event operator It means the same as next_event p q with the additional meaning that p must occur Thus the strong version of Formula 24 AG req amp high_priority gt AX next_event grant dst high_priority_requestor For 25 RuleBase a Formal Verification Tool Provided by special agreement with IBM 110 CHAPTER 5 states that whenever a high priority request is received a grant must eventu ally occur and the next grant must be to the high priority requestor 5 3 4 3 next_event p n q The operator next_event p n q means on the nth time tha
149. s important to write these formulas very carefully and to use them only if you are a very experienced user Most of the properties which are needed in daily use can be formulated while adhering to these rules RuleBase can produce textual explanations of Sugar formulas as a formula debugging aid To see formula explanations select a rule and press the Explain RuleBase a Formal Verification Tool Provided by special agreement with IBM 124 CHAPTER 5 push button These explanations may sometimes help find errors in formulas just by presenting them in a different manner 5 8 Satellites Even More Expressiveness Although Sugar increases expressiveness capabilities there are still properties that cannot be expressed and others that are too complicated to formulate Satellites may provide solutions in many of these cases A satellite is a state machine that records events that occur in the design under verification Formu las can then refer to these past events by accessing the satellite internal state Satellites do not affect the design because information flows only from the design to the satellite except when fairness is used in certain ways For example assume that a queue of depth k reads data on one side and writes it on the other side Assume that we want to prove that the queue never con tains more that k data items Formulation of this property in Sugar is difficult but it becomes easy with a satellite An up down coun
150. s suspected of having a wrong mean ing For more details see Section 5 7 Writing Correct Formulas Experience indicates that almost all useful formulas fall into the ACTL SG90 subset of CTL i e they require that properties will hold along all paths rather than in some paths For this reason the new Sugar operators should be inter preted as being applied to all paths as if there is an A in front of them Another observation is that the strong versions of the CTL until operator AU and EU are not suitable for the formulation of many properties Expressing a weak until in which there is no demand that the terminating condition must eventually occur in CTL is laborious and error prone Sugar provides the weak until operator and in addition it also provides both weak and strong ver RuleBase a Formal Verification Tool Provided by special agreement with IBM 106 CHAPTER 5 sions of some higher level operators next_event within etc A strong oper ator name has as its last character e g within The following sections describe Sugar operators beginning with the simpler ones 5 3 1 Bounded Range Operators 5 3 1 1 AX n The first Sugar operator is AX n This is simply shorthand for n times AX For example AG teq gt AX 3 ack For 11 is equivalent to AG teq gt AX AX AX ack For 12 This can be read as whenever there is a request an acknowledge will be received three clocks later 5 3
151. sign 46 79 logic verification 7 longest trace 159 M macros 57 max formula 120 memory 147 min formula 120 mode 134 module 54 multiple clocks 88 Multiple traces 160 RuleBase a Formal Verification Tool Provided by special agreement with IBM 218 N AX 106 next 52 109 110 next_event 109 next_event 109 non determinism 14 50 80 non determinism limiting 80 non deterministic choice 82 non deterministic enumerated constants 82 nondets 65 0 of 8 ones 65 operator precedence and associativity 49 operator strong 107 operators 48 arithmetic 48 boolean 48 case expression 49 if expression 49 non deterministic choice 50 relational 48 or between sequences 115 ordering bdd 144 overreduction 143 override 79 overriding design behavior 79 overriding initial values 80 P partitioning behavioral 142 partitioning design 141 179 187 partitioning rule 142 preprocessing 57 process 67 assign statement 69 case statement 69 example 70 if statement 70 var statement 68 Prolong trace 160 R reduction 31 141 143 187 reduction analyzer 156 redundant logic 142 regular expression 113 re ordering bdd 144 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM 219 rep 65 reserved words 60 reset 89 Restrict 76 rose 51 rule 134 tule partitioning 142 tulebase setup 26 rules 26 27 29 run 26 30 S Safety OnTheFly 145 satellite 124 Sco
152. signs By renouncing proof of truth RuleBase can verify designs containing up to a few thousands of state vari ables Although an answer of true to a specification is no longer a firm indi cation that the design is correct an answer of false with a counter example is an indication of a bug in the design or specification or environment In this way RuleBase can be used to provide much better verification than is possible using simulation alone even for designs which are too large for complete model checking One of the ways of dealing with the size problem is to reduce the design under verification Reduction is accomplished by analyzing the environment descrip tion provided by the user as well as the specification to be checked and elimi nating any logic which has no bearing on the specification under the environment Using the techniques of reduction in combination with renouncement of proof of truth is known as over reduction For instance instead of describing the complete environment of the design under test the user may choose to describe a subset of that environment RuleBase will use the environment to reduce the design to a size suitable for model checking IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Introduction 9 Then another subset of possible behaviors can be described Thus the user has complete control over the reduction process An answer of true for a specific
153. sions of RuleBase may recall that there were subtle differences between the assign and define state ments which made it more efficient to use one or the other in certain situations These differences are no longer present in RuleBase which will convert from one to the other as needed in order to make the model checking more efficient The only semantic distinctions between assign and define that remain are the following e assign must refer to a variable defined with var e define must NOT refer to a variable defined with var e An assign statement can be thought of as a variable assignment while a define statement should be thought of as macro text substitution Thus in the following VAR v vl1 v2 d1 d2 boolean assign v 0 1 assign v1 v assign v2 v define d 0 1 assign dl d assign d2 d It is true that v1 v2 because both are equal to the value of the variable v However it is not true that d1 d2 because macro text substitution has made the assignments to d1 and d2 equivalent to assign dl 0 1 assign d2 0 1 so that each non deterministic assignment is completely independent of the other If you code something similar to the above RuleBase will issue a warning that a non determinis tic define expression is multiply used 4 1 6 The module statement An environment file can be totally flat with no hierarchy at all In this case all statements are considered to be enclosed by one big main modu
154. sizers to translate the HDLs into a lower level representation consisting only of basic gates and flip flops The following sections describe how to translate the design in some of the envi ronments If none of the environments described here meets your needs please contact us 3 4 1 CLSI and HIS VHDL 3 4 1 1 Setting up environment variables Add the following lines to file rulebase setup in your verification directory setenv name lt TOP gt lt TOP gt is the top level entity in your design in capital letters setenv entity lt TOP gt lt TOP gt is the top level entity in your design in capital letters setenv SYNTHESIS HIS setenv SRC lt directory gt the directory where the VHDL files are located optional setenv sources lt VHDL files gt lt VHDL files gt is a list of VHDL file names separated by spaces The files should appear in bottom up reference order The entire list should be written as one line Usually setting the above environment variables is all that you have to do in order to work with HIS VHDL Read the next two sections only if you encounter problems It is recommended to browse the HIS compilation mes sages in order to locate possible problems IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 35 3 4 1 2 Setting up CLSI and HIS variables This setup is usually done only once per site by the RuleBase focal point in which case yo
155. ssume construct can cause state space explosion problems by introduc ing a lot of variables these variables are needed to construct a deterministic automata that replaces the assume construct In such cases it may be more convenient for the user to use other constraint constructs such as invar or restrict or define the behavior in the usual way using define and assign e Non deterministic variables may cause false negatives if used in the same assume but in different points of time for example var x y z boolean assign next x x assume AG y x gt AX z x IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 75 Then user may get a counter example to some formula where there is a cycle where the value of y differs from the value of z on the next cycle i e violates the assume The other example which has the same meaning is forall x assume AG y x gt AX z x It causes the same problems The two cases can be rewritten as follows without causing false negatives assume AG y 0 gt AX z 0 assume AG y 1 gt AX z 1 In general assumes are most useful in free environment e There is an additional case of false negatives as it seen by users when the counter example does not show the restricted behavior but is final i e would necessarily show such behavior if prolonged Such counter examples can be eliminated by writing the same assume
156. st be developed e Internal interfaces are prone to changes e Some global rules cannot be expressed when the design is partitioned In light of this the recommendations for partitioning are e Try to use the same partitioning for design and formal verification e Try to use documented or easy to understand interfaces e Use interfaces with stable protocols e If the basic design blocks are small verify groups of related blocks Experience shows that blocks with several hundreds of flip flops of control logic are good candidates for formal verification 11 3 Clocking Schemes While RuleBase supports many clocking schemes the preferred scheme is where each partition to be verified uses one clock Multiple clocks particu larly if they are not synchronized increase the size of the internal model s rep resentation and are not recommended for large partitions When using multiple clocks a small frequency ratio is preferred IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Design for Formal Verification 181 11 4 Design Mapping RuleBase supports several languages and synthesis paths Existing tools of the design environment synthesis are usually used for translation into gate level representation The design should be written in such a way that will not pre vent the translators from mapping it into a basic library of gates and flip flops For example it is not recommended to include switch level
157. stance if signal xyz is defined as follows define xyz xx amp yy amp zz and signal zz is a constant 0 then the cone of influence will not show logic beyond the first and gate e Fullcone requests the reduction analyzer to show the cone of influence of the selected sig nal without shortcuts For instance in the above example despite the fact that signal zz is a constant 0 the full cone of logic including that driving xx yy and zz will be shown IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 159 e Sources shows the signals which are inputs to the cone of logic driving this signal e Sinks shows signals that are driven by this signal 9 4 5 2 Stop at quick button The stop at quick button controls the depth of the analysis of the operations described in the previous section Possible values are e Meaningful the analysis is continued until a meaningful signal name is reached A mean ingful signal is one which was present in the original HDL code i e was not added by the synthesis tool e Flip flops the analysis is continued until a flip flop or latch is reached e Any the analysis stops at any signal In other words analysis stops at the first logic gate driving the signal 9 4 5 3 Write quick button This button writes the current contents of the analysis display window to a file You will be prompted for the file name 9 4 5 4 Clear quick button
158. stant Alive Signals that appear in Signals before reduction and do not appear here are not in the cone of influence of the formula The information to the right of the can be ignored it is used by the reduction analyzer e Circuit before reduction this option is currently not documented e Circuit after reduction this option is currently not documented e Reduction analyzer Invokes the reduction analyzer useful for debugging reductions per formed by RuleBase A detailed description is provided in CHAPTER 9 Debugging Aids The reduction analyzer can be invoked only if creation of a circuit file was enabled as described in Section 10 5 3 5 e Where signal is used Display the locations file name and line number where a signal whose name matches a given pattern wildcard is possible is used in the environment by the selected rule e Where signal is driven Display the locations file name and line number where a signal whose name matches a given pattern wildcard is possible is driven in the environment by the selected rule e Show longest trace Presents a timing diagram generated by the verification option Gen longest trace See Section 10 5 3 e Save longest trace Similar to Show longest trace above but instead of being displayed the timing diagram is stored in file longest trace for inspection by the stand alone scope tool e GenTest from longest trace Similar to Show longest trace above bu
159. stract model rep resents all possible variations of a real sender no matter how complicated they are provided that they adhere to the specified protocol The receiver model below is surprisingly similar to the sender in fact this tutorial could use the same module but they are left separate for clarity module receiver reset req ack IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Tutorial 15 var state idle busy assign init state idle next state case reset idle state idle amp req idle busy state busy amp req idle busy else state esac define ack state busy instance receiver receiver RST BtoR_REQ RtoB_ACK A behavior is assigned to the reset RST signal it is asserted for one cycle at the beginning of execution module reset RST A one cycle reset at the beginning var RST boolean assign init RST 1 next RST 0 instance reset reset RST Since RuleBase runs the clock itself in the case of a design with a single clock the clock CLK is stuck at 1 as follows define CLK 1 For a complete explanation of clocks see Section 4 7 RuleBase a Formal Verification Tool Provided by special agreement with IBM 16 CHAPTER 2 Note that we didn t assign behavior to data inputs since the first rules that we are going to write do not refer to data and control
160. sts are separated by colons IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Getting started 43 3 4 6 3 Flip flop Initialization If you use a reset signal for initialization connect it to the ASYNCH_SET or ASYNCH_RESET appropriately If another initialization scheme is used e g through the scan chain it can be translated to a set of EDL statements see CHAPTER 4 If you use Boe blingen style srl initialization files please contact us 3 4 6 4 Compilation Errors In the case of compilation errors look at file compile msg 3 4 7 Koala Verilog compiler RuleBase comes with a native Verilog front end Koala which can be invoked by using the fol lowing settings setenv SYNTHESIS KOALA_VERILOG setenv entity lt TOP LEVEL MODULE NAME gt the value of this environment variable is the name of the topmost block in design under test setenv name lt TOP LEVEL MODULE NAME gt for historic reasons there should also be a definition of environment variable name with exactly the same value as for entity setenv sources lt SOURCE FILE LIST gt the value of this environment variable is a blank separated list of verilog source files Example setenv SYNTHESIS KOALA_VERILOG setenv entity dunit setenv name dunit setenv sources dunit v mux16_4 v arbiter v RuleBase a Formal Verification Tool Provided by special agreement with IBM 44 CHAPTER 3 If there are a lot
161. t instead of being displayed the timing diagram is stored as a control program for simulation 10 2 5 Help button The Help option will open the on line help documentation 10 3 Message panel The message panel is used for displaying warnings errors and informative messages RuleBase a Formal Verification Tool Provided by special agreement with IBM 168 CHAPTER 10 10 4 Rule list The rule list contains the list of rules coded by the user It is derived from the database file usually called envs pointed to by the rulebase setup file 10 5 Quick buttons The quick buttons are the most frequently used buttons during verification by RuleBase Each is described in detail below 10 5 1 Run quick button This button runs the rule selected currently by left clicking on the rule name in the rules list A running rule has an R to the left of its name The R becomes D when the rule ends 10 5 2 Kill quick button This button kills the run of the rule selected currently by left clicking on the rule name in the tules list A killed rule has a K to the left of its name 10 5 3 Options quick button This button opens the options box The options box consists of the following areas each of which is described in more detail in the sections below e File this menu will allow you to store the options in file or load them from file e BDD order clicking on this option will open the BDD order control panel e Reduction
162. t p occurs q will occur For example suppose that for every request 4 ready signals must be sent and that on the last one a signal called last_ready must be sent That is after a request the 4th ready signal must be accompanied by the signal last_ready This can be expressed in Sugar as AG req gt AX next_event ready 4 last_ready For 26 As with next_event p q this operator is a weak operator it does not require that p occur the specified number of times For the corresponding strong opera tor see Section 5 3 4 4 5 3 4 4 next_event p n q This is the strong version of the next_event p n q operator It has the same meaning as the corresponding weak operator of Section 5 3 4 3 with the additional meaning that p must occur at least n times Thus the strong version of Formula 26 AG req gt AX next_event ready 4 last_ready For 27 states that after a request there must be at least 4 ready signals and the 4th ready signal must be accompanied by the signal last_ready 5 3 4 5 next_event p i j q and next_event p i j q The formula next_event p 2 4 q For 28 states that in the second third and fourth times that p occurs q occurs as well Formula 29 is a stronger version of Formula 28 which also requires that p should occur at least 4 times on every possible path next_event p 2 4 q For 29 5 3 4 6 next_event_f p i j q and next_event_f p i j q The form
163. t this formula should be true whatever the implementation of the predict function We can make RuleBase s job easier by eliminating all the logic driving predict and overriding it with a totally non deterministic behavior as follows var override predict boolean predict can now have any behavior RuleBase a Formal Verification Tool Provided by special agreement with IBM 80 CHAPTER 4 For another example of overriding internal signals see Section 8 6 Abstraction of Internal Parts When overriding design signals it is important to make sure that you are using the name of the signal exactly as RuleBase knows it including capitalization A list of the design signals RuleBase knows can be found under the Debug ging Signals before reduction menu option 4 6 1 Overriding initial values Sometimes it is necessary to override the initial value of a flip flop in the design without mod ifying its next state function In these cases specify the initial value as follows assign init abc 1 assign init def 0 1 The first statement above assigns an initial value of 1 to signal abc The second statement assigns a non deterministic initial value to signal def In other words the value of signal def at power on is not known 4 7 Using Non determinism and Fairness It may not yet be clear to you how an environment is used to describe every possible input sequence This is important if we are to fulfill t
164. tates The infinite paths of the tree beginning at the root are the machine s computa tions A machine with multiple initial states is unfolded into multiple trees Notice that in the unfolded tree different nodes may correspond to the same state of the machine Figure 3 shows an example of a machine and its compu tation tree IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 93 FIGURE 3 Example A finite state machine and part of its computation tree idle One mci a Waa oe done aa idle done busy lt lt oe busy idle m idle It can be useful to have this computation tree structure in mind when writing rules because RuleBase formulas are interpreted over such trees Within RuleBase rules are written in the specification language Sugar Sugar is built on top of CTL Computational Tree Logic CTL and hence Sugar is specially designed to work with the computation trees described in the previ ous paragraphs In the temporal logic CTL time is discrete and the world con sists of a current state mapped to a specific node in the computation tree and of many possible futures all computation paths emanating from this state CTL has no way to refer to the past The only way to reason about the past is to have information stored in state variables An important premise in CTL is that time is infinite A computation is an infi nite sequen
165. tatus 10 5 9 1 Displaying counter examples and witnesses If the status of a formulas as described above is either failed or passed w a trace is available for viewing In the case of failed this trace is called a counter example In the case of passed w it is called a witness Click left near the word failed or passed w and keep the mouse button pressed A menu will be displayed with the following options e Show timing diagram if chosen the counter example or witness will be displayed by the waveform display tool Scope For an explanation of the Scope tool see Section 9 1 e Save timing diagram if chosen the counter example or witness will be saved in a file of name rule_name N trace where rule_name is the name of the rule and N is the formula number in the rule This trace can then be viewed using the following command RBROOT scope sf smv state rule_name N NOTE even after exiting RuleBase the trace is available by re invoking RuleBase click ing Results and selecting show timing diagram as above Saving a trace using save tim ing diagram is only necessary if it is desired to keep a copy of a trace independently of RuleBase For instance a copy of a failing trace may be saved in order to send it to a col league by e mail or to keep in a database as documentation 1 Checking vacuity is strongly recommended RuleBase a Formal Verification Tool Provided by special agreement
166. ter is defined whose range is 0 to k and which is incremented on reads and decremented on writes It is now necessary only to verify that the counter never exceeds k We can use the same counter to check for an underflow Its value should never be less than 0 Some formulas might have become easier if one could talk about past events Assume that we want to state that if p occurs then at that time q should be active since the last occurrence of r We can define the operator since as a module module since el e2 el_since_e2 var state boolean assign next state IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 125 case lel 0 el amp e2 l else state esac define el_since_e2 el amp e2 el amp state and use it to formulate the required property instance il since q r q_since_r formula AG p gt q_since_r RuleBase a Formal Verification Tool Provided by special agreement with IBM 126 CHAPTER 5 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM chartere SUgar Formula Examples Note This chapter is brought here in a very preliminary form This is a first list of useful formula patterns Its main purpose is to help the beginner but experienced users may also find here interesting patterns It should be emphasized that one need not know al
167. th block2 Then click on Propagate values and wait until RuleBase computes the values Finally choose Show timing diagram The signals you requested should now be available in the menu of signal names on the right hand side of the Scope tool 10 5 9 2 Displaying vacuity explanation If the status of a formula is vacuously and the explain vacuity facility was enabled see Section 10 5 3 4 Verification control panel an explanation of the vacuous pass is available Click left near the word vacuously Choose the only option available Explain vacuity An explanation will be displayed The vacuity explanation is the shortest prefix of the formula which is always true For a detailed explanation of vacuity see Section 9 2 Vacuity The vacuity explanation is the shortest prefix of the formula which is always true 10 6 Text control panel The text control panel contains buttons which control the display of text in the main text win dow Each is described in detail below IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 177 10 6 1 Back text control button This button will search backwards in the text control panel for the text typed in the text search window to the right of the find text control button Wild card search is not supported here 10 6 2 Find text control button This button will search forwards in the text control panel fo
168. the last cycle e got should rise 3 cycles after get rises AG rose get gt AX 3 rose got e If we are going_to_abort now we abort within 0 to 4 cycles AG going_to_abort gt ABF 0 4 abort IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar Formula Examples 129 e If masterl_needs_bus becomes active master2_accesses_bus should be inactive for at least 3 cycles beginning from the next cycle AG master 1_needs_bus gt ABG 1 3 master2_accesses_bus e Counter is always between 3 and 7 AG counter gt 3 amp counter lt 7 or AG counter in 3 4 5 6 7 e Status never has the values warning or error or fatal AG status in warning error fatal or AG status warning amp status error amp status fatal e At most one of the signals x y or zis 1 mutual exclusion AG x y z lt 1 e If error becomes active it will remain active forever AG error gt AG error 6 2 Arrays e Define a bit vector vec of 4 bits that may have at any moment any of the values 3 8 or 14 var vec 0 3 boolean assign vec 0 3 3 8 14 Note e The above is NOT equivalent to var vec 0 3 3 8 14 which declares an array of 4 enumerated signals each of them may have one of the values 3 8 14 e If the head pointer of a queue is equal to the tail pointer qgueue_empty must be true AG head 0 3 tail 0 3 gt queue_empty
169. the model built by RuleBase is usually much larger for a design containing bugs than it is for a cleaner design where the state space is less well behaved Thus even if we could not verify the first buggy design for all legal input sequences perhaps it can be done after some of the bugs have been removed As an example from architectural level verification consider a multi processor system in which a number of CPUs are attached to one or more control units During initial debugging only one CPU is hooked up in order to clean major bugs out of the design and environment Once one CPU works another is hooked up and so on 8 6 Abstraction of Internal Parts If some part of the design is too complex or memory intensive and if the inter nal logic of that part is not directly involved in the property to be verified it can be replaced by an abstract model In effect the part will now be regarded as an environment RuleBase a Formal Verification Tool Provided by special agreement with IBM 144 CHAPTER 8 The replacement can be easily done in RuleBase Define an abstract model to replace the part This model should drive all the signals driven by the original part it can also use signals used by the part The remainder of the work link ing the model to the design and getting rid of the original part is done by Rule Base Figure 14 illustrates this method FIGURE 14 Abstraction of an internal part design
170. the window e The quick buttons are the dark yellow buttons to the right of the rule list e The main text window is the large rectangular area to the right of the quick buttons e The text control panel is below the main text window Each of the areas is described in detail below The most frequently used area of the RuleBase main window is the area containing the quick buttons If you are reading this document for the first time it is recommended that you skip to Section 10 5 for a description of the quick buttons before reading the remain der of this chapter IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 165 10 2 Menu Bar The menu bar contains the following menu items 10 2 1 File menu option Clicking left on the File menu option opens a sub menu with the following items e reFresh choosing this option will update the list of rules in the rule list This is necessary if for instance you have added new rules since invoking RuleBase There is no need to refresh if the changes you have made do not affect the rule list Other changes will be seen automatically upon the next run of arule NOTE the one exception to this is the file rule base setup As described in CHAPTER 3 Getting started the file rulebase setup is read once upon invocation of RuleBase Therefore any changes to this file will not be seen automatically nor will they be seen
171. tic choice between the values write and none Suppose that our CPU contains a MESI state cache Then it will never issue the read command unless it is in an invalid state However the write command may be issued in any case We would then model our CPU as follows var command read write none assign command case mesi_state invalid read write none else write none esac In this environment we have specified that the command can be any of the three declared values if the variable mesi_state equals invalid Otherwise the vari able command can take on either the value write or the value none Another example Suppose we have an arbiter which receives two commands cl and c2 If both commands have the value none then the arbiter outputs none If only one command is not none then that command is chosen If both commands are not none then the arbiter may choose either one non deterministically We could model this as follows module an_arbiter c1 c2 output_command var output_command read write none assign output_command case cl none amp c2 none none cl none c2 c2 none cl else cl c2 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 83 esac 4 7 1 3 Auxiliary non deterministic variables Notice that the arbiter shown above is rather simplistic To com
172. tion has terminated BtoS_ACK 0 the sender non deterministically RuleBase a Formal Verification Tool Provided by special agreement with IBM 14 CHAPTER 2 decides if it wants to send data When it decides to send data it goes to the busy state and raises StoB_REQ It stays there for an arbitrarily long time at least until BUF acknowledges the acceptance of data BtoS_ACK 1 This delay is arbitrary because the specification doesn t force the sender to release StoB_REQ immediately The sender then returns to the idle state module sender reset ack req two inputs and one output The sender initiates data transfers at random and stays active for an arbitrarily long time a textual description var state idle busy has two states assign init state idle begins in the idle state next state next state function case reset idle remains idle during reset state idle amp lack idle busy if idle and ack is inactive can go to busy state busy amp ack idle busy if busy and ack is active can return to idle else state else stay in the same state esac define req state busy req is active when sender is busy instance sender sender RST BtoS_ACK StoB_REQ instance of module sender By using non determinism all possible situations are checked It is not a ran dom selection of one or a few execution paths The simple ab
173. to the left of its name Undo run will undo the effects of a rule which was run by mistake Works only if this rule has been killed and no other rule has been run since this rule was started Adopt if a rule was run from a unix shell or from another RuleBase window it normally cannot be controlled by the quick buttons or the Options dialog Choosing adopt will allow the run to be controlled by the RuleBase window from which adopt is performed Note this will work only if the run which is to be adopted is on the same machine as the Rule Base window which wants to adopt it Unlock during execution RuleBase locks the rule to prevent multiple simultaneous exe cutions Sometimes a run may abort without removing the lock Choosing unlock forces lock deletion Unlock a rule only if you are sure that it is not running on any computer 10 2 4 Debugging menu option Clicking left on the Debugging menu option opens a sub menu with the following items State variables displays the names of the state variables for this rule valid after reduc tion IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 167 e Signals before reduction displays names of all signals in the design In some translation paths some of the internal names disappear and others are added e Signals after reduction Display names of signals after reduction categorized as Deleted Con
174. tton This button will display the results of the currently selected rule Each formula will be dis played along with information as to its status The status of a formula is either e failed this formula is false and a counter example has been produced e failed c this formula is false and is a contradiction in the model e passed w this formula is true non vacuously and a witness trace has been produced e passed nv this formula is true non vacuously e passed ta this formula is true and is a tautology in the mode meaning that RB could combinatoricaly determined that the rule failed without the need to search for all the reachable states of the model e passed this formula is true but vacuity has not been checked e vacuously this formula is true vacuously IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Graphical User Interface Tool Controls and Options 175 e unknown this formula has not yet been determined to be true or false For a explanation of vacuity see CHAPTER 9 Debugging Aids At the beginning of the run the status of all formulas is of course unknown If safety on the fly has been chosen see Section 10 5 3 4 some formulas may be determined to be true or false before the completion of the run Thus it is pos sible to click on the Results quick button before a run has completed and see that some formulas are either passed or failed while others are still of unknown s
175. type an explanation of the vacuous pass is available as described in Section 10 5 9 2 Displaying vacuity explanation 9 3 Witness The knowledge that a formula passes provides only a measure of confidence in the correctness of the design under verification One reason for lack of confidence is that the pass may be vac uous as discussed in Section 9 2 However even if a formula passes non vacuously there is the possibility that the formula does not express the property that was intended by the user One way to achieve greater confidence that the formula does indeed express the user s inten tion is to examine a witness formula A witness formula is a positive non trivial example of the truth of the formula A witness formula is created when full witness generation is enabled see Section 10 5 3 4 and the rule passes non vacuously In this case the status of the rule as displayed in the results window see Section 10 5 9 is passed w For instance if the for mula AG p gt AX q passes non vacuously then the witness trace will show a case where p is asserted and then the following clock q is asserted It is recommended that witness generation be enabled at the beginning of the formal verification process and that a witness trace be examined at least once for every formula Once a witness formula has been examined and the formula is determined to correctly express the desired property witness generation can be tu
176. typical number for this limit is 300000 Leave the limit unspecified if there are no reduction problems The reduction analyzer described in Section 9 4 can give insight into the reductions per formed SMV Reductions when this mode is active RuleBase performs over approximations in order to find constants FF s and to apply reductions based on the constants search results This mode is inactive by default and should be activated when a size problem is encoun tered Contants that were found in this mode are saved in the FF pool thus it is usually pointless to activate this mode if no new constants may be added 10 5 3 4 Verification control panel The verification control panel consists of the following fields Reachability determines if a search of the reachable state space of the circuit is to be done as the first step of verification For most designs this should be set to yes Verify Safety OnTheFly determines whether safety formulas formulas which do not contain strong operators or the AF operator should be checked during reachability analy sis Safety formulas can be checked on the fly only if reachability is enabled Options are Yes Check all safety formulas on the fly The user can give a parameter an integer which determines the trade off between memory and time consumption during the run If this parameter is given a small value the run may consume more memory but counter exam ples will be produced quicker th
177. u may skip the rest of this section File RBROOT his_aix clsi local stores site specific settings It contains the following information setenv VTIP lt vtip gt lt vtip gt is the directory in which the clsi compiler is located setenv LM_LICENSE_FILE lt CLSI licence file gt For each of the VHDL libraries that you use add two lines setenv dls_ lt lib gt lt directory gt setenv lt LIB gt dls_ lt lib gt lt lib gt is the library name in lower case lt LIB gt is the library name in upper case Make sure that the libraries are CLSI compiled and that compilation is per formed in bottom up reference order You can have your own copy of file clsi local If clsi local exists in the verifica tion directory it is read instead of the central clsi local 3 4 1 3 Hints 1 If the VHDL attribute BTR_NAME is used with an entity this entity will be synthesized as a black box unless attribute RECURSIVE_SYNTHESIS is set to 1 RECURSIVE_SYNTHESIS can be specified either in entity defi nition or in component instantiation There is no way to specify it globally 2 The GEN directive range is not supported use left and right instead Wrong way GEN for I in DataIn range generate Right way GEN for I in DataIn left downto DataIn right generate 3 HIS needs to know all the pins that should be treated as bidi s There are two ways of doing this RuleBase a Formal Verification Tool Provided by special agreement wit
178. ula IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Sugar The RuleBase Specification Language 111 next_event_f p 3 4 q For 30 states that in one of the third or fourth times that p occurs q should occur as well Formula 31 is a stronger version of Formula 30 which also requires that p should occur at least 3 times on every path where q occurs on the third p and at least 4 times on others next_event_f p 3 4 q For 31 5 3 5 Within and Whilenot The behavior of many reactive systems is repetitive and consists of a few basic types of transactions that take place again and again In such systems there are properties which are interesting only within transaction boundaries The within and whilenot operators can help formulate such properties by limiting the scope of formulas to given intervals By handling boundary conditions within and whilenot let you focus on the actual properties to be checked with out worrying about extreme cases 5 3 5 1 within p q r The operator within p q r means that formula r is true in the period of time starting when p is true and ending one cycle before q is true For instance we can express the requirement between a request and its acknowledge the busy signal must remain asserted as follows AG within req ack AG busy For 32 Compare this formula with Formula 15 where we knew exactly for how long busy should be asserted In
179. ula Close the timing diagram RuleBase a Formal Verification Tool Provided by special agreement with IBM 20 CHAPTER 2 2 9 Data Path Rule Next you will verify that the data sent to the receiver is the same data received from the sender The value of DI data in when BtoS_ACK is asserted moment of transfer to BUF must be the same as the value of DO data out at the next time RtoB_ACK is asserted moment of transfer to receiver forall x 0 31 boolean formula AG RST amp rose BtoS_ACK amp DI 0 31 x 0 31 gt next_event rose RtoB_ACK DO 0 31 x 0 31 the operators are described in Chapter 5 Select rule keeping_data from the rule list and press the Run push button RuleBase stops with a fatal error design inputs DI O to DI 31 are unre solved Since DO is referred to in the formulas and the value of DI influences DO you must specify the behavior of DI At first it is given a fully free behav ior which means that it can always change its value var DI 0 31 boolean This environment model already exists in the file envs To activate it remove the two dashes in front of the line define WRONG_DATA at the beginning of the file envs Press the Run push button again and wait a few seconds Both formulas failed Press the Results push button click the mouse button on the first formula and then select Show timing diagram You can see that the value of DO when RtoB_ACK is asserted is
180. vironment is by name Thus in order to give behavior to an input signal of name reset in your design just give a signal of that name behavior in your environment using either the define statement see Section 4 1 4 or the var statement see Section 4 1 2 in combination with the assign statement see Section 4 1 3 It is important to make sure that you are using the name of the signal exactly as Rule Base knows it including capitalization A list of the design signals RuleBase knows can be found under the Debugging Signals before reduction menu option 4 6 Overriding Design Behavior The environment can be used to override the behavior of part of the design To override the behavior of an internal design signal simply give it behavior using either the define statement or the var statement in combination with the assign statement specifying override as follows define override sig or var override sig boolean assign init sig next sig Overriding design behavior is especially useful if we have implemented a spe cific behavior of a signal but want to make sure the design works for any behavior of the signal For instance suppose that we have a signal called pre dict that implements a complicated predict function Some other piece of logic uses the predict signal in its calculations Suppose our formula is the following AG predict gt AX 2 low_priority_request Also suppose tha
181. w the low threshold Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked RuleBase a Formal Verification Tool Provided by special agreement with IBM 170 CHAPTER 10 e Laziness factor a real number greater than 1 which controls the effort expended in reor dering The default is 3 If the movement of a variable requires more effort than the Lazi ness Factor permits this variable will not be moved further and rulebase will prefix its name with a dot Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked Growth factor areal number greater than which controls when a second reordering round will start A new round will start only when the BDD size reaches last size growth factor where last size is the BDD size nodes allocated at the end of the previous round The default is 2 Note if this option is changed during the run of a rule the change will not be seen unless the yellow A apply button is clicked e Use order file RuleBase may use an existing order file as its initial order Order file options are Orders pool The best match in the orders pool is used lt rule gt order If such a file exists it is used e Copy back after run After every round of dynamic ordering the order is written to a file called temp ord located in the rule direct
182. with IBM 176 CHAPTER 10 e Generate test generate a test for simulation which will produce the same trace shown in the counter example or witness Formats available are Synopsys and Cadence Verilog XL Default format is Synopsys To generate a test for Cadence Verilog XL add the following line to your rulebase setup file setenv RB_TEST_VERILOG 1 NOTE Normally there is no reason to generate a test from a counter example or witness because the counter example or witness itself can be used for debugging In addition the generated test will check only the specific failure that was found whereas running the rule again will check all possible failures which violate the rule In other words as a regression check re running the rule under RuleBase gives much better coverage than re running the simulation test generated from a previous fail e Propagate values sometimes when analyzing counter examples it is desired to see the value of design signals which were removed by the reduction If every input which drives these signals is available RuleBase can add them to the generated trace after the fact To do this create a file called propagate names in the directory from which you have invoked RuleBase The file should contain a list of signals one to a line which you would like to add to your trace You can use wild cards for example stands for all signals and block2 stands for all signals whose names begin wi
183. within the invar can include both environment and design signals Example Given a design with the inputs request1 request2 request3 the design should work prop erly only under the constraint that at most one request can be active at any given cycle This can be specified by var requestl request2 request3 boolean invar requestI request2 request3 lt 1 requestl request2 request3 signals can have any non deterministic behavior that hold the above invariant 4 4 2 Assume Assume can be seen as an extension of the invar construct It enables you to write more expres sive assumptions on your model telling RuleBase to force your model to hold those assump tions The assumptions are written as Sugar properties The syntax of the assume construct is as follows IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 73 assume sugar_formula most of Sugar safety formulas can be used within the assume Examples read and write are inputs to a design read should not followed by a write 1 or 2 cycles later This can be specified by var read write boolean assume AG read gt ABG 1 2 write Another requirement The first input command must be a write assume write before_ read Another requirement a sequence of three consecutive writes is illegal assume write 3 false Assume can help you define complex
184. xpriess than or equals gt gt lt and lt can be applied only to integer or boolean expressions Arithmetic operators expr exprminus expr exprplus expr exprmultiplication expr expr division expr mod exprmodulo Arithmetic operators can be applied only to integer and boolean expressions IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Describing the Environment 49 4 1 1 3 Operator precedence and associativity The following operators are listed in decreasing order of precedence the first ones are the strongest concatenation not ft mod l lt lt gt gt Temporal operators will be introduced in CHAPTER 5 amp and or xor lt gt iff gt implies All the operators except gt have left to right associativity Use parentheses in any case that you don t know or don t remember the prece dence Even if you know others may find explicit parenthesizing easier to read and understand 4 1 1 4 Case and If expressions EDL provides two constructs which express a choice between two or more expressions They are the case and if expressions described below The case expression has the following format case condition expr condition expr else expr RuleBase a Formal Verification Tool Provided by special agreement with IBM 50 CHAPTER 4 esac A case expression is evaluated as fol
185. y e The iterative process of searching for the reachable states is often much more expensive in terms of memory and time for states located far from the initial state For example stopping after half the number of total iterations can sometimes save 90 of the total run time RuleBase a Formal Verification Tool Provided by special agreement with IBM 146 CHAPTER 8 e Itis not necessary to build a full Transition Relation TR In normal model check ing RuleBase builds a TR that represents all possible state transitions of the design Since the TR is a bottleneck in large designs the fact that you don t have to build it saves a lot of time and energy e Design errors often increase the model built by RuleBase Models of erroneous designs tend to grow because the reachable state space may include many unex pected states Finding and fixing errors in early iterations while the state space reached is still small may decrease design size and allow later runs to go further If the Verify Safety OnTheFly option is enabled RuleBase attempts to check as many formulas as possible during the search for the reachable state space Formulas that cannot be verified in this mode will be identified automatically and checked with the normal algorithm The formulas that DO NOT suit Ver ify Safety OnTheFly can be characterized as follows e Formulas mixing the A and E path quantifiers e Formulas that contain the temporal operators AF AU or
186. zer can be invoked only if cre ation of a circuit file was enabled as described in Section 10 5 3 5 IBM Haifa Research Laboratory Israel Provided by special agreement with IBM Debugging Aids 157 9 4 1 Main window overview The main window of the reduction analyzer is show in below It consists of a number of areas AATA FT ia ANATA FT Gi ANATA FTG AHATA FTG ANATA PTO ANATA FT id ANATA FT GS ANATA FPT Operation Explain Srop at Haamingful wia tiar aaar e The menu bar is at the top of the window and will be light blue if you have setup the default colors by copying the file Analyze from RBROOT to your home directory as described in CHAPTER 3 Getting started e The signal list is the rectangular area on the left hand side of the window e The analysis display window is the large rectangular area in which the waveform itself is displayed e The quick button menu is the area below the signal list These areas are described in detail below 9 4 2 Menu bar The menu bar contains the following menu item RuleBase a Formal Verification Tool Provided by special agreement with IBM 158 CHAPTER 9 9 4 2 1 File menu option Clicking left on the File menu option opens a sub menu with the following item e Quit exits the reduction analyzer 9 4 3 Signal list The signal list contains a list of all signals in the design To choose a signal click left on it To search for a signal
Download Pdf Manuals
Related Search
Related Contents
Mode d'emploi - Rey Allround AG 消費生活用製品の重大製品事故に係る公表済事故 FC290_120_100_DEU_toc Euphonix S5 Digital Audio Mixing System Operation Manual TwinVac-α - 株式会社アクロス Kenmore 630.1390 Dishwasher User Manual Operation Manual Betriebsanleitung Copyright © All rights reserved.
Failed to retrieve file