Título: Optimization techniques for distributed Verilog simulation
Autores: Li, Lijun
Fecha: 2008
Publicador: McGill University - MCGILL
Fuente:
Tipo: Electronic Thesis or Dissertation
Tema: Applied Sciences - Computer Science
Descripción: Moore's Law states that computational power will roughly double every 18 months. To the semiconductor designer, this means the never-ending challenge of bringing increasingly larger and more complex ICs (Integrated Circuits) to market. It is well known that the principle bottleneck in circuit design is simulation. Uniprocessor simulators may not be able to keep up with increased demands on them for both speed and memory. This thesis has three main contributions. The first contribution is a distributed Verilog simulation environment which can be executed on a cluster of workstations using a message-passing library such as MPI (Message Passing Interface). It employs OOCTW as the synchronization backend and takes advantage of the open source code of Icarus Verilog simulator. It is designed to be flexible for future extension and optimization. To our knowledge, DVS is the first distributed Verilog simulator. The second contribution is event reconstruction, a technique which reduces the overhead caused by event saving. As the name implies, event reconstruction reconstructs input events and anti-events from the differences between adjacent states, and does not save input events in the event queue. Memory consumption and execution time of event reconstruction are compared to the results obtained by dynamic checkpointing revealing that event reconstruction yields a significant reduction in memory utilization and leads to a faster simulation. The third contribution is a multiway design-driven iterative partitioning algorithm for Verilog based on module instances. We do this in order to take advantage of the design hierarchy information contained in the modules and their instances. A Verilog instance is represented by one vertex in a circuit hypergraph. The vertex can be flattened into multiple vertices in the event that an adequate load balance is not achieved by instance based partitioning. In this case the algorithm flattens the largest instance and moves gates betw
La Loi de Moore stipule que la puissance des processeurs double approximativement tous les 18 mois. Pour le constructeur de semi-conducteurs, cela ´equivaut `a un constant probl`eme d'apporter des CI (Circuits Integr´es) de plus en plus larges et complexes sur le march´e. Il est bien connu que le goulet d'´etranglement dans la conception de circuits r´eside dans la simulation. Les simulateurs `a simple processeur peuvent ne pas suivre les demandes croissantes pour plus de vitesse et de m´emoire. Cette th`ese pr´esente un environnement de simulation Verilog avec plusieurs techniques d'optimization. Verilog est une langue de conception digitale couramment utilis´ee. Une simulation distribu´ee Verilog peut ˆetre ex´ecut´ee sur un groupe de postes de travail en utilisant une librarie passant des messages telle que IPM (Interface Passant des Messages). Nous d´ecrivons la reconstruction d'´ev´enements, une technique qui r´eduit l'en-tˆete caus´e par une sauvegarde d'´ev´enements, et comparons sa consommation de m´emoire et son temps d'ex´ecution avec les r´esultats obtenus par checkpointing dynamique. Comme son nom l'indique, la reconstruction d'´ev´enements reconstruit la saisie d'´ev´enements et d'anti-´ev´enements `a partir de la difference entre les ´etats adjacents, et ne sauvegarde pas la saisie d'´ev´enements dans la queue des ´ev´enements. Nous proposons un algorythme partionn´e redondant `a plusieurs voies et orient´e vers le design pour Verilog bas´e sur des instances de modules. Nous faisons cela afin de profiter de l'information hi´erarchique de conception contenue dans les modules et leurs instances. Une instance Verilog est repr´esent´ee par un vertex dans un circuit hypergraphique. Ce vertex peut etre ´ecras´e en plusieurs vertexs dans le cas o`u une charge ad´equate n'est pas produite par une instance bas´ee sur des partitions. Dans ce cas l`a l'algorythme ´ecrase la plus grosse instance et d´eplace les port
Idioma: en