Ferramentas, metodologias e fluxos que existem desde os primórdios do design de semicondutores estão falhando, mas desta vez não há um grande grupo de pesquisadores apresentando soluções potenciais. A indústria está sozinha para formular essas ideias, e isso exigirá muita cooperação entre empresas, fábricas e designers da EDA, o que não foi o seu ponto forte no passado.
É difícil otimizar algo quando você não pode analisá-lo, e a análise está se tornando muito mais difícil porque muitos dos problemas em grandes produtos semicondutores são multifísicos ou são uma combinação de hardware e software, sistema, placa , pacote IC, intermediário, chip e bloco IP. No passado, uma abordagem de dividir para conquistar tem sido a forma como os problemas foram tratados. Às vezes, isso é feito de forma hierárquica, como a verificação completa de um bloco antes de ele ser integrado ou, às vezes, isolando um problema, como no cruzamento do domínio do relógio.
Cada vez mais, porém, algumas questões resistem a este tipo de abordagens e a indústria ainda não encontrou uma solução fácil. Por exemplo, questões como segurança são questões de nível de sistema. O mesmo se aplica a muitos problemas de desempenho ou energia. Mesmo questões como a integridade da energia e do sinal têm de lidar com uma hierarquia que se estende do IP ao sistema, através de uma interligação complexa de muitas camadas, cada uma das quais tem sido tradicionalmente adaptada a um conjunto diferente de ferramentas.
Isto cria um novo conjunto de problemas de modelagem e exige que algumas ferramentas existentes assumam um papel muito maior do que no passado. Alternativamente, a indústria terá de levar a sério a imposição de restrições aos projetos, de modo que a análise seja possível. Embora esta indústria comece a reconhecer os problemas, hoje em dia está a abordá-los de forma fragmentada. Até agora, ninguém propôs uma solução geral que se estenda ao futuro.
É um jogo de números. “Se você levar em conta todo o sistema, o número de cantos está explodindo”, diz Shekhar Kapoor, diretor sênior de marketing da Synopsys. “Hoje, as abordagens ainda voltam à forma hierárquica de dividir e conquistar de fazer as coisas, e também encontrar maneiras de reduzir o número de cenários com os quais você tem que lidar. Sem eles, os requisitos computacionais serão enormes. E para você conseguir assinar os sistemas, o caminho será muito, muito mais longo.”
As abordagens hierárquicas ainda são úteis para algumas coisas. “O princípio da abstração é utilizado em locais onde a complexidade fundamental da análise é muito complexa”, diz Prakash Narain, presidente e CEO da Real Intent. “Na simulação, usamos isso em termos de modelos funcionais de barramento e análise de temporização estática. Nós o usamos criando modelos de temporização em nível de E/S, cruzamentos de domínio de relógio, técnicas de sinalização estática para cruzamento de domínio de relógio, cruzamento de domínio de redefinição. Todos esses são lugares onde utilizamos com sucesso técnicas hierárquicas.”
A redução de cantos geralmente envolve decisões de design. “Por que não evitar cruzamentos de domínios”, diz Kapoor, da Synopsys. “Basta manter o design assíncrono, onde cada uma das peças é cronometrada de forma independente. Dessa forma, você pode gerenciar o número de cantos daquela peça específica. Então você pode usar técnicas de redução de cantos além disso. Com abordagens hierárquicas para análise de tempo, cronometramos cada parte separadamente e, em seguida, ambas juntas com as restrições, e fazemos a fusão dos cantos.”
O que significa caminhos aumentando em todos os lugares. “Muitas pessoas querem fazer análises de sistemas multi-die”, diz Mick Posner, diretor sênior de HPC IP da Synopsys. “Soluções de integridade de sinal e energia costumavam focar na matriz, através do pacote, até PCB. Agora virou morrer, interpor, embalar, PCB. Isso é especialmente verdadeiro para interfaces de alto desempenho, como 112G, e interfaces de memória, onde há muito foco no impacto desse intermediário, ou camada de roteamento. Temos que descobrir como empacotar essas informações com o IP, o que às vezes é impossível porque não sabemos como esse IP está sendo usado. Podemos fornecer um fluxo de referência que mostre como eles fazem essa análise.”
O problema é que é difícil fazer algumas das abstrações necessárias. “Os requisitos de abstração são muito específicos para a aplicação”, diz Narain da Real Intent. “Eles dependem da tecnologia e são diferentes de produto para produto, mesmo para essa aplicação. Eles dependem da tecnologia usada por cada produto para implementar a funcionalidade. Então você deve considerar o nível de precisão que está buscando. Será muito específico para uma aplicação e para a tecnologia, e os padrões realmente serão seguidos mais tarde, porque esse é um processo muito difícil de realizar.”
Posner fornece um exemplo específico. “Para o HBM3, criamos um design de referência. É um design de referência do nosso próprio chip de teste. Desenvolvemos um PHY, mas quando fazemos um chip de teste, também temos que desenvolver um intermediário que se conecte à pilha HBM. Temos que fazer tudo de maneira semelhante ao que um cliente teria que fazer. Então eles podem aproveitar esse fluxo. Mas, claro, esse foi o nosso chip de teste. Eles podem reutilizar o fluxo, mas os dados reais serão específicos de como eles organizam esse intermediário.”
O problema de modelagem
A razão para estas dificuldades é a falta de modelos e de meios para gerar esses modelos. Os modelos são compensações entre fidelidade, precisão e desempenho. Modelos de alta precisão tendem a ter boa fidelidade, mas são executados lentamente, enquanto modelos que executam mais rapidamente perdem algo em termos de precisão, fidelidade ou ambos. Os modelos necessários são modelos funcionais e não funcionais.
Já há algum tempo que lidamos com o problema no domínio funcional, mas é necessário mais trabalho. “Para verificação funcional, fazemos alguns modelos”, diz Neil Hand, diretor de estratégia para tecnologia de verificação de projeto da Siemens EDA. “Temos precisão de ciclo, precisão de conjunto de instruções e assim por diante. Mas você quer ter uma maneira de se mover facilmente entre eles. Com a modelagem híbrida, você tem a capacidade do que eles chamam de execução rápida e, em seguida, execução precisa. Na hora, você precisa ser capaz de mudar de modelo. Por exemplo, alguém pode inicializar o sistema operacional em um modelo menos preciso e de execução rápida e, em seguida, mudar o estado do design para um modelo de execução precisa. Agora eles conseguem avançar a partir desse ponto com muito mais granularidade e muito mais fidelidade no próprio modelo. Precisamos desenvolver capacidades ainda maiores para alternar entre as fidelidades quando você precisar delas.”
Hoje, uma metodologia semelhante é usada para verificação de nível de bloco e integração. “Quando você compra um núcleo Arm, você não verifica a funcionalidade do núcleo Arm”, diz Simon Davidmann, fundador e CEO da Software Imperas. “Você verifica a integração disso. É aí que entram empresas como a Breker. Você tem esses bloqueios, mas como verificar se todos estão falando bem uns com os outros? Você não faz isso da mesma maneira que verificaria um bloco com UVM ou Verilog, que é o que você usa para verificação em nível de bloco. A hierarquia na verificação é fazer com que todos os seus blocos funcionem, testá-los individualmente, depois juntá-los e se preocupar com os testes de integração. Mas eles exigem metodologias diferentes.”
O problema sempre foi que a criação desses modelos exige tempo e esforço, e cada modelo precisa ser verificado para garantir consistência. “Para arquitetura, você também precisa de propriedades não funcionais, como detalhes de tempo”, diz Tim Kogel, engenheiro principal de prototipagem virtual da Synopsys. “Isso implica um esforço consideravelmente maior para construir os modelos. Embora a indústria tenha estabelecido níveis mais elevados de abstração, não tem tido tanto sucesso na criação de ferramentas para construir estes modelos de desempenho não funcionais. Por exemplo, o software vê os elementos de processamento como unidades de recursos mais abstratas, e então você pode ter modelos mais detalhados do subsistema de interconexão e memória, ou da rede entre os diferentes chips. A Arteris e a Arm fornecem isso para redes coerentes, para diversos tipos de interconexão IP, e também para os controladores de memória, que são as peças-chave da integração.”
Mais ferramentas de geração de modelo são necessárias. “Quando você analisa um projeto usando padrões específicos, você tem a capacidade de criar um modelo abstrato”, diz Malik Vasirikala, diretor e especialista de produto da Ansys. “Por exemplo, quando analiso o interior de um chip, também sei como ele se comporta do ponto de vista da interface. Posso criar um modelo como se estivesse vendo toda essa parte da periferia, ou na fronteira do chip com o mundo externo. Então, ao analisar outro chip conectado a ele, não preciso dos detalhes internos do chip. Acabei de inserir esse modelo comportamental nesta análise e pronto.”
Mas existem lacunas. “A peça que falta é uma melhor integração e troca de dados entre os mundos físicos e os mundos virtuais”, diz Kogel da Synopsys. “Precisamos de um modelo arquitetônico baseado em informações aprendidas da planta baixa, geometrias aprendidas, que quando migradas para o nível de protótipo virtual ajudem a validar o desempenho, a potência e a térmica com base na atividade real da aplicação.”
Quando você termina?
A conclusão é um dos problemas em qualquer tarefa de análise. Você cobriu os casos importantes? Existem métricas de cobertura para verificação funcional em nível de bloco, mas este é mais um modelo que precisa ser migrado para níveis mais elevados de abstrações e para domínios não funcionais. “Se você está executando parte de sua verificação no domínio RTL e parte no protótipo virtual, como você mescla esses itens de cobertura?” pergunta Mão da Siemens. “Hoje isso é feito por meio de cobertura funcional, mas existe a oportunidade – especialmente quando você olha para a geração de estímulos, quando você usa IA no lado da cobertura – de começar a inferir informações de diferentes tipos de cobertura.”
O mundo do software tem sido muito negligente nesse aspecto. “Não creio que exista uma abordagem ou metodologia padrão para a cobertura”, afirma Davidmann, da Imperas. “Que eu saiba, não há nenhuma automação que as pessoas tenham feito em torno de software que seja equivalente a pontos de cobertura e grupos de cobertura em HDL. Existem verificadores de protocolo para verificação e análise. E você pode construir estatísticas, onde poderá observar as funções, ou observar os acessos às variáveis. Dada a falta de padronização, fornecemos as ferramentas necessárias, mas o próprio usuário teria que construí-las.”
Depois de ter uma noção de cobertura, então é possível pensar em otimizar a verificação. “Seja um estímulo portátil em sua forma atual ou algo que se baseie nessas noções, precisamos da geração de cenários no nível do sistema”, diz Hand. “Podemos pegar isso e subir um nível mais alto e seguir com os protótipos virtuais e a modelagem do sistema e gerar cenários em sistemas robustos? Isso se tornará cada vez mais importante à medida que os sistemas se tornarem cada vez mais integrados.”
Outros concordam. “Você deseja ter essa continuidade entre o nível IP, o nível SoC e, posteriormente, a verificação no silício”, diz Kogel. “O estímulo portátil é uma abordagem para conseguir isso. Você também pode executar o que era um caso de teste abstrato, como um programa em um núcleo incorporado, e depois no protótipo virtual. Nesse sentido amplo, trata-se da verificação do conceito arquitetônico. Posteriormente, você executa RTL com software em um emulador, em um protótipo FPGA, e isso pode ser usado para validação do desempenho porque é mais como 'O que você vê é o que você obtém'. Não é um modelo virtual de alto nível.”
Figura 1: Vários níveis de modelos e objetivos de verificação. Fonte: Sinopse
Outra forma de abordar a verificação da integração é através da conformidade funcional. “Há uma tentativa no Arm chamada 'sistema pronto' para definir o que significa ser compatível e capaz de inicializar um sistema operacional”, diz Nick Heaton, engenheiro ilustre e arquiteto de verificação de SoC da Cadência. “Se sua implementação for aprovada, você não terá que modificar as versões do sistema operacional da Red Hat, ou qualquer outra coisa. Eles simplesmente iniciarão isso. Este é um contrato entre o software e o hardware. O estímulo portátil está tentando fazer isso de uma maneira mais generalizada, e nós o chamamos de VIP porque é uma espécie de conteúdo pronto para uso que entregamos, digamos, em um nível de coerência. Testamos todas as permutações de coerência e podemos entregá-las basicamente a qualquer plataforma, seja Arm, RISC-V ou qualquer outra.”
O problema de depuração
Uma coisa é ser capaz de executar um modelo, mas outro nível de complexidade é encontrar e corrigir um problema em um modelo ou na forma como o modelo está sendo usado. “Se você estiver depurando software em hardware ou em um FPGA, você obtém um gdb que se conecta a ele e pode executar uma única etapa no fluxo de instruções de um processador”, diz Davidmann. “Mas o problema surge quando eles têm 10 ou mais processadores e precisam saber quando 'isto' está escrevendo para 'aquilo', como é isso? A análise e a depuração devem ser feitas de maneira holística para que você possa ver tudo. Isso precisa envolver as pilhas de software para que você possa observar o comportamento da plataforma.”
Este é um conjunto de demandas diferente do que apenas depurar hardware. “À medida que começamos a fazer testes de integração de hardware/software, começamos a ver mais recursos de depuração de software integrados ao ambiente de depuração de protótipo virtual”, diz Hand. “À medida que disponibilizamos isso para designers de sistemas, há uma oportunidade para observarmos os modelos de uso e quais são os ambientes de design nos quais essas equipes desejam trabalhar? Como podemos incorporar isso? Você deseja que os designers de sistemas interajam com os protótipos virtuais de uma forma que seja significativa para eles. Trata-se de identificar os usuários finais e mapear os modelos de uso para eles. É uma área onde há muito que podemos fazer e há muito que deveríamos fazer.”
As ferramentas e metodologias devem corresponder às necessidades de cada nível. “Os caras que fazem a verificação da integração não são os que conhecem cada um dos blocos”, diz Heaton, da Cadence. “O tempo para depurar ou o tempo de resposta está se tornando cada vez mais importante. O número de ciclos de depuração que você pode executar em um dia é extremamente problemático. Se as ferramentas puderem apontar para o primeiro pedido, isso poderá economizar horas de depuração. Estamos no início desta jornada. A aprendizagem está em andamento e a forma como usamos essas ferramentas é algo que vai melhorar.”
A IA pode ajudar. “Apesar do fato de os humanos terem a melhor rede neural, nossa E/S ainda é mais ou menos serial”, diz Matt Graham, diretor do grupo de engenharia de produto da Cadence. “Talvez possamos lidar com duas ou três pistas paralelas, mas certamente não mais do que isso. As máquinas podem considerar todas essas coisas em paralelo. Eles podem usar um algoritmo simples, ou um conjunto simples de IA, para fazer algo através dessa coisa massivamente paralela e altamente integrada. Mas isso é diferente do que somos capazes de fazer nós mesmos. Talvez sejam coisas como a última vez que tivemos uma revisão ou o que mudou, ou identificar onde o comportamento difere, ou quais foram os parâmetros que foram alterados em um IP.”
Conclusão
A complexidade do sistema está sobrecarregando muitas das ferramentas e metodologias existentes hoje. As técnicas utilizadas no passado, embora ainda valiosas, não são suficientes. A indústria tem visto muitos destes problemas na área de verificação funcional, mas isso é apenas a ponta do iceberg. Dado o pouco progresso registado na área mais bem compreendida, não é provável que o progresso seja rápido em muitas das outras áreas – especialmente aquelas que são impulsionadas pelas embalagens avançadas.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- Capaz
- Sobre
- RESUMO
- Conta
- precisão
- preciso
- Alcançar
- em
- atividade
- avançado
- AI
- algoritmo
- Todos os Produtos
- sempre
- análise
- analisar
- análise
- e
- Outro
- Aplicação
- abordagem
- se aproxima
- arquitetônico
- arquitetura
- ÁREA
- áreas
- ARM
- por aí
- Automação
- disponível
- em caminho duplo
- baseado
- Basicamente
- Porque
- tornam-se
- torna-se
- tornando-se
- antes
- Começo
- ser
- MELHOR
- Melhor
- entre
- maior
- Bloquear
- Blocos
- borda
- Quebra
- trazer
- amplo
- construir
- Prédio
- Constrói
- ônibus
- comprar
- Cadência
- chamada
- chamado
- capacidades
- capaz
- casas
- casos
- Chefe executivo
- certamente
- verificar
- lasca
- Chips
- COERENTE
- combinação
- como
- vinda
- Empresas
- integrações
- complexidade
- compliance
- compatível
- conceito
- conectado
- conecta
- Considerar
- restrições
- conteúdo
- contract
- cooperação
- núcleo
- Canto
- cantos
- curso
- cobrir
- cobertura
- coberto
- crio
- cria
- Criar
- Atual
- cliente
- ciclos
- dados,
- dia
- acordo
- lidar
- decisões
- entregar
- entregando
- demandas
- dependente
- Design
- desenhadores
- projetos
- detalhe
- detalhado
- detalhes
- desenvolver
- desenvolvido
- morrem
- diferente
- difícil
- dificuldades
- Diretor
- Distinto
- fazer
- domínio
- domínios
- não
- down
- dirigido
- cada
- facilmente
- esforço
- ou
- elementos
- incorporado
- engenheiro
- Engenharia
- garantir
- Meio Ambiente
- ambientes
- Equivalente
- especialmente
- estabelecido
- Mesmo
- tudo
- exemplo
- exchange
- executar
- existente
- estender
- externo
- Moda
- RÁPIDO
- mais rápido
- poucos
- fidelidade
- Figo
- Encontre
- descoberta
- Primeiro nome
- Fixar
- fluxo
- Fluxos
- Foco
- seguir
- formulário
- para a frente
- fundador
- Fundadora e CEO
- FPGA
- da
- totalmente
- funcional
- funcionalidade
- funções
- fundamental
- futuro
- jogo
- Geral
- gerando
- geração
- ter
- OFERTE
- dado
- Go
- Objetivos
- vai
- Bom estado, com sinais de uso
- maior
- Grupo
- Do grupo
- manipular
- Hardware
- chapéu
- ajudar
- hierarquia
- de alto nível
- alta performance
- superior
- altamente
- holística
- HORÁRIO
- Como funciona o dobrador de carta de canal
- Como Negociar
- hpc
- HTTPS
- enorme
- Humanos
- HÍBRIDO
- idéias
- identificar
- Impacto
- executar
- implementação
- importante
- imponente
- impossível
- in
- incorporar
- aumentando
- cada vez mais
- Individualmente
- indústria
- INFORMAÇÕES
- integrado
- integração
- integridade
- intenção
- interagir
- Interface
- interfaces de
- interno
- envolver
- IP
- emitem
- questões
- IT
- Unid
- se
- viagem
- Kapoor
- Guarda
- Chave
- Tipo
- Saber
- Conhecimento
- Falta
- grande
- Sobrenome
- camada
- camadas
- aprendido
- aprendizagem
- Nível
- níveis
- Alavancagem
- Provável
- pequeno
- mais
- olhar
- parece
- lote
- máquinas
- moldadas
- Fazendo
- gerencia
- maneira
- muitos
- mapeamento
- Marketing
- massivamente
- Match
- max-width
- significativo
- significa
- Memória
- ir
- fusão
- metodologias
- Metodologia
- Métrica
- poder
- desaparecido
- modelo
- modelagem
- modelos
- modificar
- mais
- a maioria
- em movimento
- múltiplo
- necessário
- você merece...
- Cria
- rede
- redes
- Neural
- rede neural
- Novo
- Noção
- número
- números
- ONE
- operando
- sistema operativo
- Oportunidade
- Otimize
- otimizando
- ordem
- OS
- Outros
- próprio
- pacote
- acondicionamento
- Paralelo
- parâmetros
- parte
- particular
- particularmente
- passes
- passado
- caminho
- padrões
- Pessoas
- atuação
- perspectiva
- físico
- peça
- peças
- Lugar
- Locais
- plataforma
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- pontos
- piscina
- possível
- potencial
- poder
- Prakash
- presidente
- Diretor
- princípio
- Problema
- problemas
- processo
- em processamento
- processadores
- Produto
- Produtos
- Agenda
- Progresso
- Propriedades
- proposto
- protocolo
- protótipo
- protótipos
- prototipagem
- fornecer
- fornece
- reais
- reino
- razão
- reconhecer
- Vermelho
- Red Hat
- reduzir
- design de referência
- Releases
- requerer
- requeridos
- Requisitos
- exige
- pesquisadores
- recurso
- uma conta de despesas robusta
- Tipo
- Execute
- corrida
- mesmo
- Salvar
- cenários
- segurança
- visto
- busca
- vê
- Semicondutor
- senior
- sentido
- serial
- grave
- conjunto
- rede de apoio social
- Shows
- assinar
- Signal
- semelhante
- Simon
- simples
- simulação
- desde
- solteiro
- Lentamente
- So
- até aqui
- Software
- solução
- Soluções
- alguns
- Alguém
- algo
- fonte
- vãos
- especialista
- específico
- pilha
- Pilhas
- padrão
- padrões
- começo
- Comece
- Estado
- estatística
- Passo
- Ainda
- estímulo
- Estratégia
- transmitir canais
- mais forte,
- bem sucedido
- entraram com sucesso
- tal
- suficiente
- supply
- Interruptor
- .
- sistemas
- adaptados
- Tire
- toma
- falando
- Tarefa
- equipes
- técnicas
- Tecnologia
- condições
- teste
- ensaio
- testes
- A
- A área
- O Futuro
- deles
- si mesmos
- térmico
- coisa
- coisas
- três
- Através da
- Tim
- tempo
- Cronometrado
- cronometragem
- tipo
- para
- hoje
- juntos
- também
- ferramentas
- topo
- para
- tradicionalmente
- verdadeiro
- tipos
- Entendido
- a caminho
- unidades
- us
- usar
- Utilizador
- usuários
- utilizado
- Utilizando
- VALIDAR
- validação
- Valioso
- vário
- Verificação
- verificado
- verificar
- verificação
- VIP
- Virtual
- mundos virtuais
- Assistir
- maneiras
- O Quê
- se
- qual
- enquanto
- QUEM
- precisarão
- sem
- Atividades:
- exercite-se
- trabalhar
- mundo
- do mundo
- seria
- escrita
- investimentos
- zefirnet