Preservando Bits de Carry
Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 6 de 38.
A largura do sinal determina quais bits podem ser representados. Torne explícita a intenção aritmética estendendo os operandos antes de uma operação. Somar dois valores sem sinal de 8 bits pode exigir nove bits no resultado; atribuir apenas oito bits mantém os oito bits menos significativos e perde o carry.
Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};Cada operando tem explicitamente nove bits de largura, correspondendo à soma completa.
Escolha a largura de resultado necessária e estenda os operandos antes da aritmética.
Desafio
MédioSome a e b unsigned de 8 bits sem perder o carry. Retorne a soma completa de 9 bits em total. Estenda explicitamente ambos os operandos para nove bits. Colunas de saída: total. Todos os valores de estímulo são valores binários conhecidos.
Complete design.v e preserve os nomes e as portas de seus módulos. O testbench.v bloqueado fornece alterações nas entradas e imprime as saídas depois que elas se estabilizam. Ele escolhe um cenário usando um argumento do simulador, como +CASE=1; não é necessária entrada padrão. Não adicione impressão, atrasos ou encerramento da simulação ao design. A saída esperada é uma linha de valores decimais por observação, separados por um espaço e terminando com uma nova linha.
Experimente você mesmo
module dut (input [7:0] a, input [7:0] b, output [8:0] total);
// Substitua este placeholder pelo seu design.
assign total = 0;
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Design e Verificação RTL
1RTL Combinacional Confiável
Valores padrão evitam latchesCodificadores de prioridadeValidação One-HotDecodificação segura de caseRecapitulação - Roteador de requisições4RTL Sequencial Controlado
Prioridade de Reset e EnableContadores SaturantesPipeline de Dados e ValidDetecção de Bordas AmostradasRecapitulação - Contador de Eventos7Projeto - Monitor de Amostras
Acumular AmostrasAceitar Amostras Habilitadas2Larguras e Aritmética com Sinal
Preservando Bits de CarryComparações com SinalDeslocamentos Aritméticos à DireitaOverflow e SaturaçãoRecapitulação — Diferença com SinalPratique por conta própria: Compilador de Verilog online