Projeto RTL: Matrizes sistólicas
Construa uma matriz parametrizada de multiplicação de matrizes a partir de aritmética MAC com sinal, defasagem de entradas e elementos de processamento; depois, verifique a divisão em blocos, o controle de fluxo e o comportamento exato borda a borda.
O que você vai aprender
- Mapear índices de matrizes e produtos escalares para elementos de processamento
- Escolher larguras com sinal para produtos, acumuladores e saídas de ponto fixo
- Planejar matrizes 2×2 e N×N com saídas estacionárias e entradas defasadas
- Especificar valid, etiquetas, pausas e reset com um contrato exato de bordas
- Verificar limites de blocos, largura de banda e o projeto final com um scoreboard
Antes de começar
Os exercícios no navegador usam modelos educacionais; não compilam nem executam HDL. Para executar o código separadamente, siga o guia do Digital Design Studio para seu sistema operacional e entre na conta quando a operação exigir.
Instalação e primeiro uso ↗ · Downloads ↗Programa
- Matrizes e contratos aritméticos
- Mapeie produtos escalares para elementos de processamentoConceito
Separe os índices de linha, coluna e redução e calcule uma pequena matriz de referência.
- Produtos com sinal e largura do acumuladorConceito
Derive a largura do acumulador a partir da faixa dos operandos no pior caso.
- Política de saída em ponto fixoConceito
Separe escala de entrada, arredondamento de negativos, saturação e comportamento modular.
- Verifique o contrato aritméticoVerificação
Escolha a largura do acumulador usando o comprimento completo da redução.
- Elementos de processamento e tokens válidos
- O contrato em uma borda de subidaConceito
Defina a numeração das bordas, o encaminhamento registrado, a acumulação e a prioridade da inicialização.
- Laboratório: elemento de processamento MAC com sinalPrática
Use um modelo independente para verificar operandos válidos, pausas e clear.
- Indicadores de validade, etiquetas e descarteConceito
Distinga zero numérico, bolhas e tokens de outro trabalho.
- Verifique o controle do elemento de processamentoVerificação
Identifique o estado que deve ser mantido durante uma pausa.
- Matrizes e cronogramas de entrada
- Saídas estacionárias e outros fluxos de dadosConceito
Compare armazenamento e transporte identificando o que permanece no PE.
- Laboratório: matriz 2×2 com entradas defasadasPrática
Modele atrasos de encaminhamento de uma borda e verifique cada acumulador intermediário.
- Amplie para N×N e conte as bordas de conclusãoConceito
Parametrize o tamanho espacial N separadamente do comprimento de redução K.
- Verifique o escalonamento e a conclusãoVerificação
Distinga a injeção final da disponibilidade do resultado final.
- Divisão em blocos, largura de banda e controle de fluxo
- Divisão em blocos e preenchimento das bordasConceito
Mapeie matrizes maiores para uma grade menor e trate o preenchimento com zeros e as máscaras de saída.
- Largura de banda e utilização útilConceito
Separe a capacidade máxima de MACs dos custos de preenchimento inicial, esvaziamento, padding e memória.
- Laboratório: contrapressão e resetPrática
Execute pausa global, retenção do resultado e reset de um trabalho interrompido.
- Verifique preenchimento e largura de bandaVerificação
Distinga a validade de operandos da validade de endereços de resultados.
- Verificação e projeto final
- Scoreboards e invariantesConceito
Verifique termos, etiquetas, bordas e transferências de saída além da matriz final.
- Projete testes com sinal e nos limitesConceito
Combine limites aritméticos, de dimensões e de controle além de um único exemplo sem falhas.
- Projeto final: modelo de verificação N×N dividido em blocosPrática
Combine N e K arbitrários com preenchimento e pausas e compare com uma referência independente.
- Revisão de integração RTL e extensõesConceito
Conecte o modelo didático às interfaces RTL e às evidências de verificação.