Menu
Coddy logo textTech

Deslocamentos Aritméticos à Direita

Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 8 de 38.

Um deslocamento aritmético para a direita usa >>> e replica o bit de sinal quando seu operando esquerdo é signed. Um deslocamento lógico para a direita usa >> e preenche com zeros. Para um valor negativo ímpar, o deslocamento aritmético para a direita não é igual à divisão integer que trunca em direção a zero.

Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.

reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);

O resultado é menos dois porque a extensão de sinal preserva a interpretação negativa em complemento de dois.

Use um operando esquerdo signed com >>> quando a extensão de sinal for necessária.

challenge icon

Desafio

Médio

Deslocar aritmeticamente para a direita o valor signed de 8 bits pela quantidade (de 0 a 7). Retornar o resultado signed de 8 bits y. Valores negativos são preenchidos com seu bit de sinal. Colunas de saída: y. Todos os valores de estímulo são valores binários conhecidos.

Complete design.v e preserve os nomes e as portas do módulo. 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 quebra de linha.

FORMATO DE SAÍDA OBRIGATÓRIO: [Seu conteúdo traduzido aqui]

Experimente você mesmo

module dut (input signed [7:0] value, input [2:0] amount, output signed [7:0] y);
    // Substitua este placeholder pelo seu design.
    assign y = 0;
endmodule
quiz iconTeste seus conhecimentos

Esta 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

Pratique por conta própria: Compilador de Verilog online