Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo Geral
• Codificador Binário
• Decodificador Binário
• Conversor de Código
Codificador binário
Objetivo específico
Atividades
A. Realizar a programação em Verilog desse Codificador Binário supondo que a
função implementada é Z = f(X) (usar a ordem convencional de índices para os
bits de entrada X = X9 X8 X7 X6 X5 X4 X3 X2 X1 X0 e a ordem convencional
de índices para os bits de saída Z = Z3 Z2 Z1 Z0; apresentar a tabela-verdade
simplificada usada para representá-lo, supondo que, de acordo com o número
correspondente a chave q esta sendo ligada o número em binário deverá ser
representado nos LED’s (Nível Alto Ativo).
X9 X8 X7 X6 X5 X4 X3 X2 X1 X0 Z3 Z2 Z1 Z0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 0 1 0 0 0 0 1 1
0 0 0 0 0 0 1 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 0 1 0 0 0 0 0 0 1 1 0
0 0 0 1 0 0 0 0 0 0 0 1 1 1
0 0 1 0 0 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0 0 0 1 0 0 1
1 0 0 0 0 0 0 0 0 0 1 0 1 0
Z0 = X8 + X6 + X4 + X2 + X0
Z1 = X9 + X6 + X5 + X2 + X1
Z2 = X6 + X5 + X4 + X3
Z3 = X9 + X8 + X7
// ---MODULO CODIFICADOR---
module codificador (input [9:0] entrada, output reg [3:0] saida);
always@ (*) begin
case(entrada)
10’b 0000000000 : saida = 4’b 0000;
10’b 0000000001 : saida = 4’b 0000;
10’b 0000000010 : saida = 4’b 0001;
10’b 0000000100 : saida = 4’b 0010;
10’b 0000001000 : saida = 4’b 0011;
10’b 0000010000 : saida = 4’b 0100;
10’b 0000100000 : saida = 4’b 0101;
10’b 0001000000 : saida = 4’b 0110;
10’b 0010000000 : saida = 4’b 0111;
10’b 0100000000 : saida = 4’b 1000;
10’b 1000000000 : saida = 4’b 1001;
default : saida = 4’b 0000;
endcase
end
endmodule
Decodificador binário
Objetivo específico
Atividades
E2 E1 E0 S8 S7 S6 S5 S4 S3 S2 S1
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0
Fonte: FPGA
S1 = ~E0~E1~E2
S2 = E0~E1~E2
S3 = ~E0E1~E2
S4 = E0E1~E2
S5 = ~E0~E1E2
S6 = E0~E1E2
S7 = ~E0E1E2
S8 = E0E1E2
// ---MODULO DECODIFICADOR---
module decodificador (input logic e0, e1, e2, output logic s1, s2, s3, s4, s5, s6,
s7, s8);
assign s1 = ~e0&~e1&~e2;
assign s2 = e0&~e1&~e2;
assign s3 = ~e0&e1&~e2;
assign s4 = e0&e1&~e2;
assign s5 = ~e0&~e1&e2;
assign s6 = e0&~e1&e2;
assign s7 = ~e0&e1&e2;
assign s8 = e0&e1&e2;
endmodule
Conversor de código
Atividade
Fazer o programa e verificação do funcionamento do Conversor de código de três
bits, definido na Tabela- verdade, com entradas X = X2 X1 X0 e saídas Y = Y2 Y1 Y0.
Usar a linguagem Verilog para a implementação do conversor na placa DE2.
X2 X1 X0 Y2 Y1 Y0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 1
0 1 1 0 1 0
1 0 0 1 1 0
1 0 1 1 1 1
1 1 0 1 0 1
1 1 1 1 0 0