A flexible and extensible automated design partitioning mechanism that
facilitates simulation sessions employing two or more simulators is
provided. A simulation backplane includes partitioning logic that
identifies the design blocks of an overall design pertaining to each of a
plurality of simulators. Once the partitions have been identified, nets
that cross simulator boundaries (e.g., mixed nets) are determined and
inter-simulator connectivity information is generated for the simulators.
According to one aspect of the present invention, the partitioning logic
is able to accomodate arbitrary (e.g., instance-based) partitioning. A
design source expressed in a design representation upon which a first
simulator may operate is received. Design blocks to be partitioned to each
of a plurality of solvers are identified based upon one or more
partitioning directives and the design source. A first instance of a cell
is assigned to a first solver and a second instance of the cell is
assigned to a second solver. Netlist like information is generated for
those of the design blocks that are partitioned to a non-design source
solver. To accomodate a folded representation of a design block containing
the first or second instance of the cell, one or more additional cells are
created. According to another aspect of the present invention, name space
mapping is retained across all simulators. A design source upon which a
first simulator may operate is read. Based upon a set of rules, a primary
partition that is to be simulated by a first solver is identified. The
primary partition includes a top cell of the design representation.
Additionally, a secondary partition that is to be simulated by a second
solver is identified. Subsequently, netlist information is generated for
the second solver while retaining name space mapping in the secondary
partition by adding one or more levels of hierarchy so as to include
information about the top cell in the secondary partition.
Um projeto automatizado flexível e extensible que divide o mecanismo que facilita as sessões da simulação que empregam dois ou mais simuladores é fornecido. Uma placa traseira da simulação inclui dividir a lógica que identifica os blocos do projeto de um projeto total que pertence a cada um de um plurality dos simuladores. Uma vez que as divisórias foram identificadas, as redes que os limites transversais do simulador (por exemplo, redes misturadas) são determinados e a informação do connectivity do inter-simulador estão geradas para os simuladores. De acordo com um aspecto da invenção atual, a lógica dividindo pode acomodar (por exemplo, exemplo-baseado) dividir arbitrário. Uma fonte do projeto expressada em uma respresentação do projeto em cima de que um primeiro simulador pode se operar é recebida. Os blocos do projeto a ser divididos a cada um de um plurality dos solvers são identificados basearam em um ou em mais que dividem diretrizes orientadoras e a fonte do projeto. Um primeiro exemplo de uma pilha é atribuído a um primeiro solver e um segundo exemplo da pilha é atribuído a um segundo solver. Netlist como a informação é gerado para aqueles dos blocos do projeto que são divididos ao non-projetam o solver da fonte. Para acomodar uma respresentação dobrada de um bloco do projeto que contem o primeiro ou segundo exemplo da pilha, um ou os mais pilha adicional é criado. De acordo com um outro aspecto da invenção atual, traçar do espaço conhecido é retido através de todos os simuladores. Uma fonte do projeto em cima de que um primeiro simulador pode se operar é lida. Baseado em um jogo de réguas, uma divisória preliminar que deva ser simulada por um primeiro solver é identificada. A divisória preliminar inclui uma pilha superior da respresentação do projeto. Adicionalmente, uma divisória secundária que deva ser simulada por um segundo solver é identificada. Subseqüentemente, a informação do netlist é gerada para o segundo solver ao reter o espaço conhecido que traça na divisória secundária adicionando um ou mais nível da hierarquia para incluir a informação sobre a pilha superior na divisória secundária.