pasted image 0

Trabalho do ECL aceito na conferência internacional International Symposium on Physical Design

O trabalho intitulado How Deep Learning Can Drive Physical Synthesis Towards More Predictable Legalization, desenvolvido por Renan Netto, Sheiny Fabre, Tiago Augusto Fontana, Vinicius Livramento, Laércio Pilla, e José Luís Güntzel foi aceito para publicação no evento  International Symposium on Physical Design em 2019, sendo um dos candidatos a best paper no mesmo evento.

Esse trabalho trata do uso de redes neurais para identificar regiões com alto deslocamento de células durante a legalização de circuitos integrados.

O International Symposium on Physical Design é uma das principais conferências da área de EDA e physical design.

jpg;base646520bde5155735fb

Trabalho do ECL aceito na conferência internacional International Symposium on Circuits and Systems

O trabalho intitulado Design of Energy-efficient Gaussian Filters by Combining Refactoring and Approximate Adders, desenvolvido por Marcio Monteiro, Pedro Aquino, Ismael Seidel, Mateus Grellert, Leonardo Soares, José Luis Güntzel e Cristina Meinhardt foi aceito para publicação no evento International Symposium on Circuits and Systems.

Esse trabalho trata da combinação da refatoração lógica e uso de computação aproximada em uma arquitetura para filtro Gaussiano para otimização de área e energia.

O International Symposium on Circuits and Systems é uma das principais conferências da área de circuitos e sistemas.

SBCCI2021 

WWW.SBCCI.ORG.BR

Keynote Talk:

Speaker: Prof. David Patterson, University of California at Berkeley and Google, USA

August 25, 2021, 13:00

Title: Ten Lessons From Three Generations Shaped Google’s TPUv4i

EDA_example

Algoritmos e Técnicas para a Automação do Projeto de Chips

Para projetos VLSI (Very Large Scale Integration), são necessárias ferramentas computacionais que automatizam o fluxo de projeto dos circuitos integrados. No ECL, trabalhamos com algoritmos e técnicas para a automação do projeto de chips (EDA – Electronic Design Automation), investigando a integração de ferramentas para síntese aproximada com fluxos tradicionais e possibilitando a redução do consumo energético em várias aplicações.

Exploramos a utilização de diversas técnicas de aprendizado de máquina para melhorar a qualidade das soluções e reduzir o tempo de projeto. Também são desenvolvidos algoritmos com método de otimização matemática para posicionar e rotear as células na mesma etapa. Estes algoritmos buscam reduzir as interconexões e assim aumentar eficiência energética dos dispositivos.

layout_circuitos_integrados_s

Projeto de Circuitos Integrados Digitais

Os circuitos integrados (CIs) ou “chips” estão presentes em praticamente todos os aparelhos eletrônicos da atualidade. Os projetos de circuitos digitais, como processadores ou codificadores de vídeo, requerem um número muito grande de transistores para serem implementados, caracterizando circuitos VLSI (Very Large Scale Integration). O projeto desse tipo de circuito é feito com base em um fluxo de projeto (digital flow), o qual é definido por diferentes etapas.

Na concepção de um projeto, realiza-se inicialmente a especificação do sistema a ser projetado: entradas e saídas, funcionalidade, blocos principais, dentre outros. Em seguida, define-se quais partes do sistema serão desenvolvidas em software e quais delas serão elaboradas em hardware. Para a parte em hardware, inicia-se então aplicação do fluxo de projeto VLSI. 

Primeiramente, a descrição do circuito é realizada utilizando linguagens de descrição de hardware (HDL), como Verilog ou VHDL. A funcionalidade do circuito é aferida por meio de uma simulação inicial sem atrasos e, caso não sejam encontrados problemas, o fluxo segue para a próxima etapa: a síntese lógica, em que a descrição do circuito gera um mapeamento de conexões (netlist) utilizando uma biblioteca de células padrão, que inclui portas lógicas, flip-flops, dentre outros componentes. 

As informações sobre as células padrão estão definidas em PDKs (Process Design Kits), que são específicos para cada uma das tecnologias utilizadas, dependendo do nodo tecnológico (comprimento do canal dos transistores utilizados, como 65nm, 45nm, 28nm) e também da foundry em questão (TSMC, Global Foundries, entre outras).

Após a síntese lógica acontece a síntese física, que consiste no processo de criação do layout do chip, incluindo etapas internas como o posicionamento das células, roteamento e a colocação de pads (conexões ao mundo externo). Uma nova simulação pode ser executada, considerando agora atrasos mais realistas das células utilizadas e das interconexões do circuito.

Por fim, o circuito ainda deve ser verificado segundo as regras de projeto para fabricação na tecnologia (DRC) e também a equivalência entre o layout obtido e o esquemático inicial desejado (LVS). Com o layout completo e validado, é possível realizar o envio do projeto para fabricação e posteriormente as etapas de packaging e testing dos novos chips.

Além das partes do fluxo destacadas acima, cabe mencionar que etapas intermediárias como Logical Equivalence Check (LEC), extração de parâmetros RC, dentre outras, também fazem parte do fluxo e são importantes para garantir o bom funcionamento do produto final. Todas as etapas de síntese são realizadas de forma automática pela ferramenta, bem como as verificações. Quanto às simulações, normalmente o projetista deverá desenvolver um testbench para teste da arquitetura, buscando validar o circuito com a melhor abrangência possível e evitando erros que poderiam levar à perda de muitos recursos com a fabricação de um chip defeituoso.

No ECL, nosso fluxo de projetos é feito com ferramentas de EDA Synopsys. Além disso, temos implementado também um fluxo de projeto digital para ASIC (circuitos integrados de aplicação específica) totalmente open source com ferramentas como Icarus Verilog, Yosys e OpenROAD Trabalhamos também com diferentes nodos tecnológicos, além de PDKs open source e privados de diversas foundries do mundo.

image34

Algoritmos e Arquiteturas para Processamento de Imagem e Vídeo

A codificação de vídeo é imprescindível para permitir o uso de vídeos digitais. Sem ela, vídeos com trinta ou sessenta quadros (frames) por segundo ocupariam um espaço gigantesco, inviabilizando o seu armazenamento em dispositivos móveis ou mesmo o compartilhamento de vídeos em tempo real, como acontece em videoconferências. Com base nessa perspectiva, codificadores atuam no sentido de modificar uma sequência de frames de modo a reduzir a quantidade de informação que deve ser armazenada, sobretudo ao explorar a diminuição de redundâncias entre frames. Os decodificadores, por sua vez, recebem a informação codificada e devem executar o caminho contrário ao codificador, descobrindo as informações necessárias para reconstrução e apresentação das imagens recebidas.

O modelo de codificador padrão é composto por diferentes etapas, conforme ilustra a Figura 1. Nele, o blocos do quadro original serão comparados com blocos de referência (preditos com base em informações de quadros passados ou do mesmo quadro). A diferença entre os dois blocos (resultado da subtração entre original e de referência) gera o que é chamado de resíduo, uma matriz com valores muito menores que do bloco original e que, portanto, gera um menor volume de informação para ser armazenado.

As redundâncias presentes nas imagens podem ser tanto espaciais (em um mesmo frame) como temporais (entre frames). Existem, portanto, dois tipos de predição: intra-quadros (em um mesmo quadro, para redundância espacial) e inter-quadros (entre quadros, para redundância temporal). Essa etapa de predição realiza a determinação dos blocos de referência. Em seguida, o resíduo passa por uma transformação, levando a sua informação para o domínio da frequência, de modo a possibilitar a filtragem apenas das componentes mais relevantas para a visão humana. Em seguida, tem-se a quantificação da informação e finalmente a codificação de entropia. Nessa codificação, dados que acontecem com maior frequência recebem codificações com menor número de bits, enquanto dados menos frequentes são mapeados para maiores conjuntos de bits, de modo a reduzir o bitstream gerado ao final da codificação.

Figura 1: Representação das etapas da codificação de vídeo, adaptado de Richardson (2004) [1].

No ECL, desenvolvemos soluções em hardware para aplicações de codificação de vídeo, como arquiteturas para a Estimação de Movimento Fracionária (FME), uma das etapas mais custosas e que acontece durante a predição inter-quadros. Por meio de uma arquitetura dedicada, busca-se reduzir o consumo de energia do bloco, o que apresenta grande importância para a codificação de vídeo, visto a necessidade de processamento de imagem e vídeo em dispositivos móveis, movidos a bateria.

Figura 2: Representação dos módulos de interpolação e busca da arquitetura de FME desenvolvida no ECL.

Além da FME, também são realizadas no ECL pesquisas voltadas à Computação Aproximada (AxC), que consiste em uma abordagem para reduzir energia, área e atraso em arquiteturas de hardware. Avaliamos no ECL técnicas AxC em arquiteturas de filtro gaussiano para reduzir a potência e a área enquanto minimizamos a perda na qualidade da resolução. Ademais, desenvolvemos pesquisas que combinam métodos tradicionais de codificação de vídeo com Inteligência Artificial para melhorar a eficiência na codificação, além de estudar métodos de pós-processamento de vídeos, a fim de melhorar a experiência do usuário em diferentes plataformas.

[1] RICHARDSON, I. E. G. H.264 and MPEG-4 video compression: video coding for next-generation multimedia. West Sussex, England: John Wiley & Sons Ltd, 2004. 206 p.