Recapitulação - Desafio de Operadores
Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 29 de 90.
Desafio
Complete o código escrevendo as expressões corretas para cada tarefa. Este desafio abrange todos os operadores deste capítulo.
O que fazer:
- Lógico: Verifique se ambos
value1evalue2são diferentes de zero e armazene emlogic_out - Redução: Verifique se todos os bits de
vectorsão 1, armazene emreduction_out - Deslocamento: Desloque
datapara a esquerda em 2 bits, armazene emshift_out - Concatenação: Combine
highelowem um valor de 8 bits, armazene emconcat_out - Condicional: Armazene o maior entre `a` e `b` em
cond_out
Experimente você mesmo
module operator_challenge;
reg [3:0] value1, value2;
reg logic_out;
reg [3:0] vector;
reg reduction_out;
reg [7:0] data;
reg [7:0] shift_out;
reg [3:0] high, low;
reg [7:0] concat_out;
reg [3:0] a, b;
reg [3:0] cond_out;
initial begin
// Lógico
value1 = 4'd6;
value2 = 4'd0;
logic_out = ______; // Verifica se ambos value1 e value2 são diferentes de zero
// Redução
vector = 4'b1111;
reduction_out = ______; // Check if all bits of vector are 1
// Shift
data = 8'b00001111;
shift_out = ______; // Desloca data para a esquerda em 2 bits
// Concatenação
high = 4'b1010;
low = 4'b1100;
concat_out = ______; // Combina high e low em um valor de 8 bits
// Condicional
a = 4'd7;
b = 4'd12;
cond_out = ______; // Armazena o maior entre `a` e `b`
$display("6 && 0 = %d", logic_out);
$display("&4'b1111 = %d", reduction_out);
$display("00001111 << 2 = %b", shift_out);
$display("{1010, 1100} = %b", concat_out);
$display("max(7, 12) = %d", cond_out);
$finish;
end
endmoduleTodas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs SoftwareNíveis de Abstração de ProjetoSeu Primeiro MóduloComentários4Operadores Parte 1
Operadores AritméticosOperador de MóduloOperadores de ComparaçãoRecapitulação - Matemática SimplesOperadores Bitwise7Atribuição e Portas Lógicas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Comparador SimplesInstrução CaseCasex e CasezRecapitulação - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteger e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores Parte 2
Operadores LógicosOperadores de ReduçãoOperadores de DeslocamentoOperador de ConcatenaçãoOperador CondicionalRecapitulação - Desafio de Operadores3Sistemas de Numeração
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRecapitulação - Formatos de Números6Módulos
Estrutura de MóduloPortas de Entrada e SaídaPortas InoutInstanciação de MóduloMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação - Construa um Módulo