• Nenhum resultado encontrado

2. resolva a instˆancia do problema de satisfabilidade α = β′\C ∪ ¬C; e

3. se α for insatisfaz´ıvel, ent˜ao β′  C e C ´e redundante.

Esse procedimento ´e repetido para cada cl´ausula at´e que a ´ultima cl´ausula de ρ seja testada. Se α for insatisfaz´ıvel para cada cl´ausula de ρ, ent˜ao cada cl´ausula derivada pela ferramenta de implica¸c˜ao est´a correta, caso contr´ario, a ferramenta de implica¸c˜ao est´a com um erro em sua implementa¸c˜ao.

Antes de executar uma an´alise experimental como apresentado no Cap´ıtulo 6, a implementa¸c˜ao da Vimplic foi submetida a esse processo de verifica¸c˜ao. Como era de se esperar, mesmo fazendo uma implementa¸c˜ao cuidadosa dos algoritmos propostos, as primeiras vers˜oes da ferramenta Vimplic possu´ıam um erro na constru¸c˜ao do grafo de implica¸c˜oes, o que resultava em implica¸c˜oes incorretas. No entanto, o m´etodo apresen- tado nessa se¸c˜ao foi capaz de detectar a implica¸c˜ao incorreta e o erro foi imediatamente corrigido.

4.6

Resultados

Devido ao grande n´umero de experimentos executados, um cap´ıtulo foi destinado para a apresenta¸c˜ao e a an´alise dos mesmos (Cap´ıtulo 6). Al´em disso, grande parte dos resultados dispon´ıveis no Cap´ıtulo 6 foram obtidos com aux´ılio da ferramenta BenCGen que ´e apresentada no cap´ıtulo seguinte (Cap´ıtulo 5).

Cap´ıtulo 5

Ferramenta para Gera¸c˜ao de

Circuitos para Benchmarks -

BenCGen

1

O objetivo desse cap´ıtulo ´e apresentar a ferramenta proposta de gera¸c˜ao de circuitos para benchmarks. O presente cap´ıtulo foi divido em cinco se¸c˜oes. A primeira se¸c˜ao faz uma breve introdu¸c˜ao sobre os benchmarks existentes para verifica¸c˜ao formal e a segunda se¸c˜ao apresenta uma an´alise dos benchmarks mais populares bem como um detalhamento das suas principais caracter´ısticas. Na terceira se¸c˜ao, uma descri¸c˜ao da ferramenta BenCGen (do Inglˆes, BENchmark Circuits GENeration tool) ´e feita abor- dando tanto aspectos de implementa¸c˜ao quanto caracter´ısticas dos circuitos produzidos. A quarta se¸c˜ao apresenta um comparativo entre os principais resolvedores de Satisfa- bilidade (SAT) na resolu¸c˜ao de instˆancias de problemas de Verifica¸c˜ao de Equivalˆencia de Circuitos Combinacionais (CEC, do Inglˆes, Combinational Equivalence Checking) por meio de um benchmark produzido pela ferramenta BenCGen. Finalmente, a quinta se¸c˜ao apresenta uma an´alise dos resultados obtidos na se¸c˜ao anterior.

5.1

Introdu¸c˜ao

Benchmarks de circuitos s˜ao mecanismos importantes para guiar a escolha de ferra- mentas para a Automa¸c˜ao de Projetos Eletrˆonicos (EDA, do Inglˆes, Electronic Design Automation). Devido `a enorme diversidade de ´areas de EDA e a grande variedade de ferramentas comerciais existentes para cada uma dessas ´areas, existe uma demanda crescente de novos benchmarks de circuitos. Al´em disso, como a escala de integra¸c˜ao dos circuitos digitais aumentou drasticamente ao longo das ´ultimas d´ecadas, os bench- marks est˜ao se tornando desatualizados e inadequados muito rapidamente.

5.1 Introdu¸c˜ao 54

Um benchmark para EDA ´e uma cole¸c˜ao de circuitos em um formato comum que pode ser utilizado para avaliar algoritmos e ferramentas dado o dom´ınio de um prob- lema [Har00]. Na EDA, os dom´ınios de problemas mais comuns em que benchmarks s˜ao utilizados s˜ao: Verifica¸c˜ao Formal (Verifica¸c˜ao de Equivalˆencia de Circuitos Com- binacionais e Seq¨uenciais), simula¸c˜ao de falhas, s´ıntese l´ogica, mapeamento tecnol´ogico e an´alise de testabilidade.

Existem duas classes principais nas quais os benchmarks para EDA podem ser divididos e essa divis˜ao ´e feita de acordo com os tipos de circuitos que os benchmarks possuem. Por um lado, existe a classe dos benchmarks industriais e, por outro lado, existe a classe dos benchmarks sint´eticos. Os benchmarks baseados na primeira classe tem sido a escolha mais popular nas ´ultimas d´ecadas. Nessa classe, os benchmarks mais utilizados nas ´areas de simula¸c˜ao de falhas, de an´alise de testabilidade e de verifica¸c˜ao de equivalˆencia de Circuitos Combinacionais e Seq¨uenciais s˜ao o ISCAS 85 [BF85] e o ISCAS 89 [FBK89].

Recentemente, dois outros importantes benchmarks tornaram-se dispon´ıveis: o benchmark ITC 99 [Dav99] (do Inglˆes, International Test Conference) e os benchmarks Velev [Vel04]. Os primeiros s˜ao utilizados freq¨uentemente em an´alise de testabilidade, simula¸c˜ao de falhas e verifica¸c˜ao formal enquanto os ´ultimos s˜ao utilizados principal- mente em verifica¸c˜ao formal por meio de resolvedores de Satisfabilidade.

Mesmo sendo a escolha predominante em diversas ´areas de EDA, os benchmarks industriais nem sempre s˜ao os mais adequados para avaliar ferramentas devido a trˆes principais aspectos. O primeiro aspecto e certamente o mais importante ´e que as em- presas de circuitos integrados n˜ao disponibilizam projetos de circuitos atualizados j´a que os mesmos constituem uma parte importante da propriedade intelectual dessas em- presas. Por isso, quase a totalidade dos projetos de circuitos utilizados nos benchmarks industriais s˜ao desatualizados. O segundo aspecto ´e que apenas um conjunto bem lim- itado de circuitos torna-se p´ublico, o que ´e justificado pela mesma raz˜ao apresentada anteriormente: valor de propriedade intelectual. O terceiro aspecto ´e que, freq¨uente- mente, apenas circuitos com tamanhos e formatos bem espec´ıficos s˜ao oferecidos.

Por exemplo, o benchmark ISCAS 85 disponibiliza apenas um multiplicador que ´e da arquitetura Array e somente no formato BENCH (ISCAS). Se um algoritmo ou ferramenta proporcionar ´otimos resultados nesse circuito n˜ao significa que os mesmos manter˜ao a mesma qualidade de resultados para outros multiplicadores Array com operandos de 8 ou de 32 bits ou, muito menos, em um multiplicador Dadda Tree com operandos de outro tamanho qualquer. Dessa forma, benchmarks industriais sozinhos n˜ao s˜ao suficientes para fornecer uma grande variedade de circuitos para avalia¸c˜ao de ferramentas comerciais de projeto e verifica¸c˜ao de circuitos integrados.

O principal objetivo dos benchmarks sint´eticos ´e superar as limita¸c˜oes dos bench- marks industriais apresentadas anteriormente. Benchmarks sint´eticos para EDA s˜ao