Home

view Pdf - Informatik - FB3

image

Contents

1. 1 2 3 4 5 6 else read access int addr addr_i read data_o mem addr 3 mem addr 2 mem addr 1 mem addr J Figure 4 RTL model rected read memory value cor ESL design flow the hardware implementation of the CPU has been developed During the respective refinement steps we applied the proposed equivalence checking approach to verify the consistency of the SystemC models The differ ent phases to apply our approach are demonstrated and the results are discussed Finally we also evaluate the perfor mance gains resulting from the client server architecture us ing multi threading 3 1 CISC CPU We consider a modified version of the Y86 CPU 4 The Y86 CPU is a simple CISC CPU implementing a subset of the instructions of the A 32 architecture 16 It has been designed as von Neumann architecture The data width of the memory is 8 bit In the modified version the memory size is 8 KByte The CPU has 8 registers with 32 bit data width each In total the Y86 has 8 instructions 2 arithmetic instructions 3 load store instructions 2 jump instructions and 1 other instruction For the Y86 an Instruction Set Architecture ISA model is available 4 consisting of 289 lines of code in a slightly mod ified version This model which is written purely in C served as our high level starting point for the ESL design flow We refined this model to a SystemC TLM model 465 lines of code using TLM fea
2. 16 MEM ea 3 gt gt 24 Figure 5 ISA model read memory value ecuted the programs on lower level models i e TLM and RTL respectively However without the proposed frame work a direct and precise comparison requires a significant effort for implementing the necessary validation environ ment In contrast with the framework we can easily and efficiently check whether the models show the same behav ior 3 3 1 ISA and TLM model First we checked the equivalence of the Y86 ISA model and the Y86 TLM model As it turned out they gave the same results for most of the input programs but failed e g for a program implementing the bubble sort algorithm The equivalence report revealed similar numbers as shown in Table 1 i e most of the memory accesses did not match The input programs with just a few memory accesses did not produce any unmatched memory accesses To find the source of the problem we compared the ac tual values of a read and write access to the memory The first few accesses were correct but later almost no access matched As the values read or written to the memory are 32 bit wide but the memory has an 8 bit data width the values are divided into four 8 bit parts A value pair result ing from an unmatched memory read looks for example like this least significant byte is left ISA 3 00 00 00 TLM 3 d4 aa b5 Each time the first 8 bit of both values were equal and the remaining 24 bits were zero in th
3. Using these definitions the equivalence checking works as follows After compilation of the extended models the server has to be executed Then both models have to be started In the beginning of their simulation each model connects to the server As a second step they register all variables they want to compare during the equivalence check at the server Based on the registration id variables are matched Variables only present in one of the two models are discarded with a warning This process takes place before any of the considered variables are read or written Next the simulation of the models continues While their simulation advances registered variables in the SystemC models are read and written Since the models have been extended these accesses are sent to the server and are stored in the corresponding data structures The main data struc tures used in the server are based on Standard Template Library STL deques 1 This type offers performance enhancements compared to lists or vectors because deques grow much more efficiently and avoid reallocation of its el ements Also the equivalence checking server has to handle large amounts of data and the deques have to grow and shrink very frequently While both models are running and sending data to the server the server itself collects the data and tries to match them according to the definitions from above Typically we use a fixed block size standard value is 100 000 for storing
4. model by using our li brary In doing so the SystemC model is augmented with networking functionality and can connect and communicate as client with the EC server The extended model is then compiled into an executable This process needs to be per formed for all SystemC models whose equivalence is to be checked Since only minor extensions of the SystemC mod els have to be carried out this is a very convenient process Furthermore this procedure fits perfectly into the refine ment steps of typical ESL design flows To perform the equivalence check our server first has to be executed Then both models have to be started to begin their simulation During the equivalence check both clients send their data to the server The server collects the data and continuously checks if the two models show the same behavior Finally at the end of the equivalence check a report is generated This report summarizes the results of the comparison for each variable over the simulation time e g if there have been mismatches during read or write of a concrete variable as well as the frequency of such events In the following the three phases are described in more detail 2 2 Model Extension 2 2 1 Analysis Each model contains a set of variables important to the model s behavior The verification engineer determines which We use the general term of variables here to cover arbitrary C objects which of course also include specific SystemC
5. not increase the IP by 2 the length of the jump instruction After fixing this bug the equivalence report showed no unmatched variable accesses and the RTL model terminated correctly for all test programs In summary using the proposed equivalence checking frame work also the bug and its location was found very fast In particular the verbose mode supported the localization In the following the efficiency of the approach is consid ered 3 4 Performance Analysis The equivalence checking server uses multiple threads and can handle millions of variable accesses In Figure 6 the run time of a complete equivalence check between the Y86 TLM and RTL model is shown We performed the experiments on a Core 2 Duo 2 8 GHz computer with 4 GB of main memory The more variables are chosen to be compared in the equiv alence check the longer is the run time Since the check compares two models and hence we implemented separate threads to handle the incoming data the speed up using a dual core CPU is within a factor of two in comparison to a single core CPU When using a CPU with more than two cores a further speed up can be expected because a separate thread per variable is invoked 4 CONCLUSIONS In this paper we have presented an equivalence checking framework for ESL design flows The framework has been implemented as a library following a client server architec ture The clients are the SystemC models checked for equiv alence They com
6. the Y86 CPU also behaved differ ently from the TLM model Simple sequential programs worked fine However when more complex programs using the jump instruction have been executed the equivalence check failed More precisely the RTL model never stopped running and seemed being stuck in a loop The equivalence report revealed a lot of unmatched accesses to the Instruc tion Pointer IP Using the verbose output mode of the equivalence checking server we identified the first unmatched IP access in the RTL and TLM model just during the pro cessing of a jump instruction This was possible because in verbose output mode the file and line of the location of the unmatched variable access is displayed The output was TLM IP WRITE 1b y86_tlm y86 cpp 237 RTL IP WRITE 19 y86_rt1 y86_cpu cc 246 The TLM model wrote the value 1b to the IP variable while the RTL model wrote 19 The file and location indicate where the variable access was reported After examining the function to process a jump in both models the returned line number is within the respective code of the function the error was located in the computation of the target address in the RTL model When the RTL model computed the target address after a jump it did not add the length of the jump instruction 2 bytes to the address whereas the TLM model and the ISA model added the length This target address is stored in the IP The above example clearly shows that the RTL model did
7. the instructions that are executed may be dynam ically reordered by the CPU and therefore cause a slightly different order of the variable accesses The user specifies a maximal window size w which is used to match the second value by considering all values up to w steps in the future of the other SystemC model Extending Definition 1 this be havior is formally described using an out of order function o which permutes a set of variable sets starting from a specific time t up to time t w This yields the following definition of equivalence DEFINITION 3 Two models M and M are equivalent with respect to the selected variable sets S and S2 and the out of order function o at time t iff ACSI fo o S2 53 3 Finally due to the reported statistical information the verification engineer is able to determine which variable has been read and or written differently and the frequency of such an event It is also shown if only read or write accesses are unmatched or both This statistical information has to be analyzed by the verification engineer In the following we present an example of an equivalence report EXAMPLE 2 Consider again the CPU and the memory presented in Example 1 We have shown already how read ing a value from a specific memory address has been imple mented and sent in a TLM model see Figure 2 and in the corresponding RTL model see Figure 3 respectively Assume both models are checked for equivale
8. types oncrete examples are presented in the following sections variables should be compared in the equivalence checking phase A huge list of variables covered by the check is likely to decrease the performance The more variables are cho sen the more data has to be sent to the server and stored in memory for some time Therefore a minimal but sufficient set of variables should be selected In addition the verification engineer needs to decide whether a read and or write action on a variable is crucial to the model s behavior If the value read from a variable is not needed it should not be sent to the server This way the data transferred through the communication sockets is min imized 2 2 2 Extension The next step is the extension of the SystemC model The global variable ec is declared at first This variable contains an instance of the developed class EquivCheck This class is part of our equivalence checking framework and comes with our library libec The class EquivCheck provides the functionality to communicate with the equivalence checking server as well as functions to help recording the required data Moreover it offers methods to register a set of vari ables to include them in the equivalence check The verification engineer selects a list of variables that shall be used to determine whether the two models behave in the same way The next step is to spot all locations in the model s source code where one of th
9. Simulation based Equivalence Checking between SystemC Models at Different Levels of Abstraction Daniel Gro e Markus Gro Ulrich K hne Rolf Drechsler Institute of Computer Science University of Bremen 28359 Bremen Germany grosse mgross drechsle informatik uni bremen de 2LSV ENS de Cachan 94235 Cachan France kuehne Isv ens cachan fr ABSTRACT Today for System on Chips SoCs companies Electronic Sys tem Level ESL design is the established approach Ab straction and standardized communication interfaces based on SystemC Transaction Level Modeling TLM have be come the core component for ESL design The abstract models in ESL flows are stepwise refined down to hardware In this context verification is the major bottleneck After each refinement step the resulting model is simulated again with the same testbench The simulation results have to be compared to the previous results to check the functional equivalence of both models For models at lower levels of abstraction strong approaches exist to formally prove equiv alence However this is not possible here due to the TLM abstraction Hence in practice equivalence checking in ESL flows is based on simulation Since implementing the nec essary verification environment requires a huge effort we propose an equivalence checking framework in this paper Our framework allows to easily compare variable accesses in different SystemC models Therefore the two models are c
10. a transformation func tion to accomplish this normalization More precisely the function f normalizes the values of a set of selected variables to allow the equivalence checking server to compare them For example if in a high level model configuration variables have been declared separately and in the corresponding RTL implementation they have been embedded into different con figuration registers the transformation function extracts the separated values and combines them to a single one Now we can define the equivalence criterion DEFINITION 1 Two models M and M are equivalent with respect to the selected variable sets S and S2 at time t iff fi St fo S3 For this definition we have to specify when two normalized values of a variable match Due to the event based sched uler of SystemC it may happen that a SystemC process is executed more than once in the current simulation cycle In this case the process may report intermediate values to the EC server which are irrelevant But this can be eas ily recognized by keeping the last sent value in the server i e all values up to this last sent value have been computed in previous delta cycles and will be discarded Finally the following definition results DEFINITION 2 During equivalence checking of two Sys temC models two variables at a certain simulation cycle match iff both latest stabilized values with respect to the delta cy cle concept are equal
11. aek Co simulation of SystemC TLM with RTL HDL for surveillance camera system verification In JEEE International Conference on Electronics Circuits and Systems pages 474 477 2008 23 S Vasudevan J A Abraham V Viswanath and J Tu Automatic decomposition for sequential equivalence checking of system level and RTL descriptions In MEMOCODE pages 71 80 2006
12. ample based on our library only a single function call to use the respective data for equivalence checking has to be inserted into a SystemC model In the following the equivalence checking phase of the pro posed approach is described 2 3 Equivalence Check In the equivalence checking phase the server collects data from the two clients and analyzes this data On top of the client server architecture the server functionality has been separated into multiple threads For each connected client one thread collects the incoming data Furthermore for each registered variable a thread is created to compare the respec tive data This extensive use of threads greatly improves the overall performance on multi core systems as shown later in the experiments Before we describe the equivalence check ing process we define under which conditions two models are considered to show the same behavior Given two SystemC models M and M2 let the variable set of M be V and of M2 be V2 Moreover based on the model extension phase let the set of selected variables be S CV and S2 C Va respectively As we consider the model behavior of both models with respect to simulation there is a certain timestamp t describ ing the current progress of the overall simulation Now the set S S describes the values of all selected variables of model M M2 at time t Since all models send their data in a normalized form to the EC server each model requires
13. c tronic System Level ESL design emerged 2 A widely ac cepted language for ESL design is SystemC 20 14 15 13 As a C class library SystemC perfectly supports ab stract modeling in particular Transaction Level Modeling TLM 6 11 In an ESL design flow starting from the textual speci fication the algorithmic design is specified first At this level the basic functionality of the system is explored and defined no matter which parts become hardware or soft ware Afterwards the system is refined to a TLM model This model consists of modules communicating over chan nels i e data is transferred in terms of transactions Within TLM different levels of timing accuracy are available such as untimed loosely timed approximately timed and cycle accurate The respective levels allow e g for early software development performance evaluation and HW SW parti tioning As the last step of the ESL flow the hardware part of the TLM model is refined to RTL However the dominating factor in ESL design is still ver ification Following the refinement steps the same testbench can be basically reused at lower levels applying the transac tor concept of SystemC By this during simulation the same high level input is fed into both models but a huge effort is required to implement the verification environment which has to perform the actual equivalence check In the pure hardware domain where lower level models are considered e g RTL
14. d M Poncino SystemC co simulation for core based embedded systems Design Automation for Embedded Systems 11 2 141 166 2007 0 P Georgelin and V Krishnaswamy Towards a C based design methodology facilitating sequential equivalence checking In DAC pages 93 96 2006 1 F Ghenassia Transaction Level Modeling with SystemC TLM Concepts and Applications for Embedded Systems Springer 2006 2 E I Goldberg M R Prasad and R K Brayton Using SAT for combinational equivalence checking In DATE pages 114 121 2001 3 D Gro e and R Drechsler Quality Driven SystemC Design Springer 2010 4 T Grotker S Liao G Martin and S Swan System Design with SystemC Kluwer Academic Publishers 2002 5 IEEE Std 1666 IEEE Standard SystemC Language Reference Manual 2005 6 Intel Corporation JA 32 Architecture Software Developer s Manual 2003 7 A Koelbl J R Burch and C Pixley Memory modeling in ESL RTL equivalence checking In DAC pages 205 209 2007 8 D Kroening E Clarke and K Yorav Behavioral consistency of C and Verilog programs using bounded model checking In DAC pages 368 371 2003 9 M N Mneimneh and K A Sakallah Principles of sequential equivalence verification JEEE Design amp Test of Comp 22 3 248 257 2005 20 Open SystemC Initiative OSCI www systemc org 21 Open SystemC Initiative OSCI OSCI TLM 2 0 User Manual 2008 22 J Park B Lee K Lim J Kim S Kim and K H B
15. e ISA model The correct value is the one of the TLM model because it was initially written into the memory as test data for the bubble sort al gorithm This points towards an error in the ISA model After comparing the memory access functions in both mod els the error was found in the read memory function in the ISA model The relevant part of the function is depicted in Figure 5 The variable ea denotes an offset for the memory access and is irrelevant here The ISA model divides an 32 bit value into four 8 bit blocks using right shifts when writ ing to the memory These four values have to be shifted back when being read from the memory But instead of shifting to the left the ISA model again shifted to the right This way 3 of the 4 bytes became zero The byte which did not need to be shifted is read correctly from the memory This bug caused that all the programs which read only small values not larger than FF passed the equivalence check successfully To correct this bug we simply had to change the right shifts into left shifts Overall with the pro posed equivalence checking approach we were able to detect as well as locate the source of the bug quickly Moreover after fixing the bug in the described way both models were equivalent Please note that the TLM model did not suffer from this bug because it uses memcpy to read a 32 bit value from the memory analogously to line 10 in Figure 2 3 3 2 TLM and RTL model The RTL model of
16. e based on the number of variables included in the comparison Then for equivalence checking both SystemC models the clients are co simulated controlled by the server and thereby the comparisons are carried out Different methods for co simulation using SystemC have been proposed in the literature see e g 3 9 22 However all these papers consider SystemC based environments for co simulation of hardware and software i e connecting dif ferent worlds To the best of our knowledge no framework has been proposed supporting the design and verification teams in equivalence checking when refining the system to lower levels of abstraction We close this gap here and im prove the productivity of SystemC based ESL design flows Overall we summarize the contributions of this paper as follows e Equivalence checking framework A framework for equivalence checking of SystemC mod els in form of a library is introduced The framework provides easy to use interfaces to compare the behav ior of different SystemC models by only minor exten sions of the models e Efficiency The client server architecture of our framework makes intensive use of multi threading Thereby the approach benefits from multi core systems and as a result very fast variable comparisons can be performed e Debugging The generated equivalence report summarizes impor tant information for the user In particular in case of non equivalent behavior of the checked Sys
17. ese variables is accessed in a reading and or writing way Once these locations have been determined every access needs to be reported to the server The data sent to the server contains the following information 1 the id of the variable specified at registration 2 the access type read or write 3 the address where the variable is accessed particularly important for arrays 4 the current value in case of a read access the new value in case of a write access In the following we give a concrete example demonstrating the model extension EXAMPLE 1 Consider a CPU and a memory while the memory is a separate module in a SystemC TLM model As sume the CPU wants to read the value of a specific memory address The CPU communicates with the memory using the blocking transport interface of TLM 2 0 21 So in the TLM memory the method b_transport as shown in Fig ure 2 is implemented The memory itself is modeled as an integer array inside the memory module In line 10 the value of the memory address given by addr which has been ez tracted from the payload see line 4 is read from the array and thereafter copied to the transaction In this example the verification engineer decided to compare also read accesses with the second SystemC model and hence wants to report these to the equivalence checking server This is done from line 13 line 14 The function report is available via our EquivCheck class It takes the id of the va
18. incoming accesses If this number is exceeded in both models a process matching the variables is invoked To reduce the memory usage of the equivalence check every successful compared pair of values is removed immediately but added in the statistics We explain the respective details in the next section 2 4 Report Analysis Finally after both models have finished their simulation the server generates a report This report contains impor tant statistical information for the verification engineer It Often the transformation function is nothing else than the identity 3We use sc_time_stamp to identify the current simulation cycle thereby revealing the timestamp advance lists all variables divided into read access and write access In addition several counters are associated to each variable displaying the number of total accesses matched accesses unmatched accesses and swapped accesses Total accesses equal the number of all accesses and matched accesses fol low Definition 2 An unmatched access is an access that appeared in only one model and could not be matched to an access in the other model These accesses suggest a differ ence between the behavior of both models and need further investigation on behalf of the verification engineer Swapped accesses may occur when a model performs the same accesses to a variable but in a different order This may happen for instance in a CPU implementing out of order execution In this case
19. municate with the server via sockets For equivalence checking read and write accesses of user selected variables are reported to the server using the developed li brary If all reported accesses can be matched the SystemC models have the same behavior In summary our approach improves the design productiv ity since less effort is needed for setting up and performing equivalence checking We have also shown that the multi threaded architecture results in scalable equivalence verifi cation Moreover in case of non equivalent behavior the This register points to the address of the next instruction Please note that the length of an instruction is between 1 to 3 bytes gt The Ce ee doa jnz dist adds the given offset termed distance to the IP if the zero flag has not been set 800 0 Single Core 0 Dual Core 600 400 Run time seconds 200 05 12 4 8 16 32 Variables Figure 6 Equivalence check run time time required for debugging is reduced because bugs can be detected and located quickly with the verbose mode Several directions are left for future work We plan to de velop methods supporting the process of selecting variables which have to be compared during the equivalence check Moreover we want to investigate how our methods can be combined with coverage techniques including functional as well as code coverage techniques As an example the test cases need to be im
20. nce It is ex amined whether the same read accesses to the memory give equivalent results see also model extension phase in the last section The resulting report is shown in Table 1 As can be seen there are many unmatched read memory accesses This means that both models behave differently To track down the error the code for reading from a memory address has to be analyzed in both models from there the variable accesses have been reported From Table 1 we see that there are matched cases as well Hence we compared only a few simulation scenarios for both results i e where a the val ues for data_o matched and b the values for data_o that did not match In conclusion the bug was implemented in the RTL model while refining the TLM model see line 8 line 9 in Figure 3 Four 8 bit values are assigned to the variable data_o but they have been arranged in the opposite order Figure 4 gives the correct assignment to data_o Us ing our equivalence checking approach we were able to show that both models have the same behavior after the fix In the next section the proposed approach is studied for a CISC CPU 3 EXPERIMENTAL EVALUATION In this section the proposed approach is exemplified for a CISC CPU used for educational purposes First the ba sics of the CPU are briefly described Following a top down Table 1 TLM and RTL equivalence report quiva ence check o M and R Reading seme e accesses Henor obras ssa 0366002
21. o simulated using a client server architecture In combina tion with multi threading our approach is very efficient as shown by the experiments In addition the time required for debugging is reduced by the framework since the respec tive source code references where the variable accesses did not match are presented to the user Categories and Subject Descriptors J 6 Computer Aided Engineering Computer Aided Design CAD General Terms Verification Keywords Transaction Level Modeling Equivalence Checking Debug ging SystemC This work was supported in part by the German Federal Ministry of Education and Research BMBF within the project SANITAS under contract no 01M3088 Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page To copy otherwise to republish to post on servers or to redistribute to lists requires prior specific permission and or a fee GLSVLSTI 11 May 2 4 2011 Lausanne Switzerland Copyright 2011 ACM 978 1 4503 0667 6 11 05 10 00 1 INTRODUCTION For a long time Register Transfer Level RTL has been sufficient for modeling But around 2000 System on Chips SoCs reached a complexity which made higher abstrac tion mandatory This strategy was implemented and Ele
22. on languages But these approaches all assume strict timing information to be available The authors of 10 present first steps for equivalence checking using formal methods in com bination with SystemC but do not consider TLM models The specific problem of handling memories in formal equiv alence checking of system level models against RTL has also been considered 17 In this paper we present a framework for equivalence check ing between SystemC models described at different abstrac tion levels In particular we support TLM designs as typ ically used in ESL flows The framework gives a prag matic and easy to use solution for comparing model behav iors Hence a lot of time is saved which usually has to be spent for implementing the respective verification environ ment Based on minor extensions of the models the devel oped client server architecture allows to simulate and com pare the results very efficiently The verification engineer chooses which variables are used for comparison e g inter nal variables variables of the interfaces members of trans actions or even arbitrary C objects In addition the verification engineer specifies whether a different ordering of accesses to a variable is valid For instance a CPU refined to a lower abstraction level may implement out of order execu tion and hence some data values can be different at certain time points In general a trade off between performance and accuracy is possibl
23. or gate level models Equivalence Checking EC based on formal methods has been very suc cessful 12 8 A distinction is made between combinational EC and sequential EC In combinational EC two designs without memory elements are tested for equivalence In con trast sequential EC aims to verify whether two sequential circuits have the same functionality If the state encoding is the same the problem can be reduced to the combinational case Otherwise the problem is much harder but a lot of progress has been made for an overview see e g 19 How ever all these methods can only be applied if both models can be compiled into a circuit like representation which is not the case for TLM descriptions Recently there has been research targeting equivalence checking between system level models and RTL Basically the idea of 23 is to identify sequential compare points i e variables which should have the same value with re spect to the considered time domain But this approach requires explicit timing information which is not available at TLM The authors of 5 propose the notion of event based equivalence for SystemC TLM and RTL models The theory of 5 has not been implemented for this scenario the experiments presented consider the setting of abstracting an RTL model to TLM and needs manual interaction to relate the events at different abstraction levels Other works such as e g 18 7 relate C programs to hardware descripti
24. proved if based on the performed model extension a certain read or write variable access is never reported Furthermore we plan to integrate an interactive debugging mode which uses a rollback mechanism for the simulation such that more data in the context of an un matched access can be analyzed References 1 Standard template library programmer s guide http www sgi com tech stl 2 B Bailey G Martin and A Piziali ESL Design and Verification A Prescription for Electronic System Level Methodology Morgan Kaufmann Elsevier 2007 3 L Benini D Bertozzi D Bruni N Drago F Fummi and M Poncino SystemC cosimulation and emulation of multiprocessor SoC designs Computer 36 4 53 59 2003 4 A Biere D Kroening G Weissenbacher and C Wintersteiger Digitaltechnik eine praxis nahe Einf hrung Springer 2008 5 N Bombieri F Fummi G Pravadelli and J Marques Silva Towards equivalence checking between TLM and RTL models In MEMOCODE pages 113 122 2007 6 L Cai and D Gajski Transaction level modeling an overview In CODES ISSS pages 19 24 2003 7 P Chauhan D Goyal G Hasteer A Mathur and N Sharma Non cycle accurate sequential equivalence checking In DAC pages 460 465 2009 8 M Fujita Equivalence checking between behavioral and RTL descriptions with virtual con trollers and datapaths ACM Trans Design Autom Electr Syst 10 4 610 626 2005 9 F Fummi M Loghi G Perbellini an
25. riable ID_MEM the type of access ACCESS_READ the value of the memory address as string and the address of the access as parame ters As a result of calling this function the data is processed and sent to the server Figure 3 depicts the same function implemented in the RTL model of the memory Again the value read from the memory is sent to the server see line 12 line 18 1 void Memory b_transport tlm tlm_generic_payload amp trans 2 sc_time amp delay 3 tlm tlm_command cmd trans get_command 4 sc_dt uint64 addr trans get_address 5 size_t length trans get_data_length 6 uint32_t data reinterpret_cast lt uint32_t gt 7 trans get_data_ptr 8 9 if cmd tlm TLM_READ_COMMAND 10 memcpy data amp mem addr length 11 12 report value read from memory 13 ec report IDLMEM ACCESS_READ 14 toString data addr 15 16 else if cmd tlm TLM_WRITE_COMMAND 19 trans set_response_status tlm TLM_OK_RESPONSE 20 Figure 2 TLM model read memory value 1 void Memory entry 2 if req read 3 ack true 4 if rw read write access 5 aed 6 else read access 7 int addr addr_i read 8 data_o mem addr mem addr 1 9 memf addr 2 mem addr 3 10 11 report value read from memory 12 ec report ID MEM ACCESS_READ 13 toString data_o read addr 14 15 16 Figure 3 RTL model read memory value As can be seen in the ex
26. temC mod els the developed approach helps to detect and locate the bug quickly due to reported variable access infor mation We present experimental results demonstrating the ad vantages of our framework For a CISC CPU developed in a top down ESL design flow two major bugs have been found using this framework Client SystemC model 2 SystemC model 1 Equivalence Checker Equivalence report Figure 1 Overall Flow 2 EQUIVALENCE CHECKING OF SYSTEMC MODELS In this section the equivalence checking approach to com pare the behavior of different SystemC models is introduced For this task we have developed a framework which has been built as a client server architecture The equivalence check ing server interacts with exactly two SystemC models which in turn act as clients Three phases need to be followed using the proposed approach model extension equivalence check ing and report analysis Before we explain these phases in detail the overall flow is presented 2 1 Overall Flow Figure 1 depicts the overall flow of the proposed approach At the starting point there are two SystemC models which are to be compared They have to be extended in order to function as clients for the equivalence checking server This extension process consists of two steps First a model has to be analyzed to determine which variables should be used for comparison during equivalence checking Second the verification engineer extends the
27. tures like e g socket communi cation to connect the memory and the registers to the CPU Next the TLM model has been refined again to SystemC RTL 661 lines of code The final RTL model implements a 5 stage pipeline which is not part of the ISA model In the following the process of extending a model is de scribed for the Y86 CPU at hand 3 2 Y86 Model Extension The different models of the Y86 CPU have several vari ables in common To perform the equivalence check a set of variables had to be determined which is used during the pro cess to check the correspondence of both models All mod els have the register and the memory variables in common i e during refinement additional details have been added e g pipeline stages etc But from the functional perspec tive the basic CPU registers as well as the memory remained unchanged Moreover they describe the state of the CPU at a fixed point in time independent of the level of abstraction Therefore we selected these two variable arrays as variable sets S for the equivalence check To complete the extension process we augmented the models using the libec Hence the models report the mentioned variable accesses 3 3 Y86 Equivalence Checking For the initial ISA model several programs for validation have been developed They have been successfully executed on the ISA model After each refinement step we also ex 1 MEMf ea MEM ea 1 gt gt 8 2 MEM ea 2 gt gt

Download Pdf Manuals

image

Related Search

Related Contents

製品事故(A2,B1,B2) 石油機器    User`s Manual  LX501/LW401/LWU421/ LX601i/LW551i/LWU501i  User manual Washing Machine ZWF 10070W1 ZWF 12070W1 ZWF  DATA01/DATA03取扱説明書  

Copyright © All rights reserved.
Failed to retrieve file