Comparações com Sinal
Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 7 de 38.
O mesmo padrão de bits pode representar números signed e sem sinal diferentes. Declare ambos os operandos como signed ao comparar valores em complemento de dois. Misturar operandos signed e sem sinal pode alterar a interpretação da comparação. Concatenações são expressões sem sinal, mesmo quando contêm sinais signed.
Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.
wire signed [7:0] a,b;
assign less = a < b;As declarações signed fazem com que valores negativos sejam comparados como menores que valores não negativos.
Mantenha os operandos de comparação consistentemente signed e estenda os valores signed com o bit de sinal deles.
Desafio
MédioCompare signed a e b de 8 bits. Produza less quando a for menor que b e equal quando forem iguais. Ambas as entradas são valores signed em complemento de dois. Colunas de saída: less, equal. Todos os valores de estímulo são valores binários conhecidos.
Complete design.v e preserve os nomes e as portas dos módulos. O testbench.v bloqueado fornece alterações nas entradas e imprime as saídas após a estabilização. Ele escolhe um cenário usando um argumento do simulador, como +CASE=1; nenhuma entrada padrão é necessária. 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 signed [7:0] a, input signed [7:0] b, output less, output equal);
// Substitua este placeholder pelo seu design.
assign less = 0;
assign equal = 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