Resumo |
Devido ao aumento da complexidade dos chips modernos, é exigido um esforço maior para verificar e corrigir erros do projeto. Antes do processo de fabricação, são usados métodos de simulação, testes formais e emulações para corrigi-los. Porém, esta etapa, conhecida como pré-sílicio, não garante a ausência total de erros, pois alguns deles só podem ser capturados quando o circuito é executado. Para identificá-los, é usada uma técnica de depuração pós-sílicio, o qual ocorre em quatro etapas: detectar o problema; reduzi-lo; identificar sua causa; corrigi-lo ou ignorá-lo. Este procedimento tornou-se essencial e consome cerca de 35% do ciclo de desenvolvimento. No entanto, esta fase possui uma limitação na observabilidade do circuito. Pensando nisto, nós propomos uma ferramenta de automação de design eletrônico (EDA), nomeada de PSi. O PSi tem como principal objetivo acelerar este processo, para isto ele externaliza alguens sinais do circuito. Para alcançar tal meta, ele conta com redes de interconexão que captura os sinais do circuito e seleciona um subgrupo deles, no mesmo foram implementadas duas dessas redes que o usuário poderá escolher, são elas: MuxTree e Ômega. Além disso, tem o Trace Buffer, que é a memória que armazena valor dos sinais que podem ter erros. E por fim, o Trigger Logic, que aciona o armazenamento de um grupo de sinais que foram capturados pela rede após uma análise. A ferramenta conta com uma interface clara de fácil entendimento, na qual você seleciona um arquivo em Verilog para ser lido, escolhe a rede junto ao tamanho e seleciona os fios que deseja externalizar e após todos os passos ela cria um novo arquivo nesta mesma linguagem acrescentando todos os fios que foram selecionados e externalizados e ainda conectados à rede de interconexão. Ela também gera um arquivo em XML com todas as informações do trace buffer para extrair os dados. Contudo, além das funções que o PSi já possui, ele pode ainda ser facilmente atualizado com novas funcionalidades. E ainda, pode abranger outras redes de interconexão como a Clos e Crossbar e ainda acrescentar novas asserções para detectar outros erros que podem ser encontrados nos sinais. |