Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo Geral
Este experimento tem por objetivo familiarizar o aluno com a técnica HDL
de projeto de sistemas digitais e com suas ferramentas de projeto: a linguagem
de descrição de hardware Verilog, a placa DE2 e o software de síntese Quartus
II.
Tarefa 1:
O display de 7 segmentos possibilita escrever números decimais de 0 a 9 e
alguns outros símbolos que podem ser letras ou sinais. A Figura 13 representa uma
unidade do display genérica, com a numeração de identificação dos segmentos.
Figura 1 - Representação display de 7 segmentos
Verifica-se que a saída S vale 1 quando o valor das entradas forem iguais a 1,
e por sua vez, ao valor binário 0, quando forem os outros valores da tabea. A partir
desse fato, podemos deduzir a expressão lógica de (S = A . B).
// --------------------------------------------------------------------------
// Trecho para instanciação de módulos e interligação entre os mesmos
// Esta parte será modificada para cada um dos experimentos realizados
// --------------------------------------------------------------------------
// Defina os dados para realização do COMPARADOR
wire A, B;
wire S;
assign A = SW[0];
assign B = SW[1];
Porta_AND M1(S, A, B);
assign LEDG[0] = S;
// ---------------------------------------------------------------------------
// Fim do trecho para instanciação de módulos e interligação entre os mesmos
// ---------------------------------------------------------------------------
endmodule // fim do modulo
Verifica-se que a saída S vale 1 quando o valor das entradas forem iguais a 1, e por
sua vez, ao valor binário 0, quando forem os outros valores da tabela. A partir desse fato,
podemos deduzir a expressão lógica de: 𝑆 = ̅̅̅̅̅̅̅̅
𝐴+𝐵
Tarefa 3
Objetivo Específico
Utilização de um Conversor CBP4 – Mostrador de 7 Segmentos Hexadecimal.
Utilizar o Conversor de Código Binário Puro de quatro bits para o Código do
Mostrador de 7 Segmentos Hexadecimal NBA, implementado no módulo
SEG7_LUT.v.
Implementar o código a seguir em uma pasta copiada a anterior, abrir o projeto
em substituição à descrição de hardware anterir:
// --------------------------------------------------------------------------
// Trecho para instanciação de módulos e interligação entre os mesmos
// Esta parte será modificada para cada um dos experimentos realizados
// --------------------------------------------------------------------------
// Defina os dados para realização do conversosr de 7 segmentos
wire [3:0] entradaHEXA;
wire [6:0] saida7segmentos;
assign entradaHEXA[3:0] = SW[13:10];
assign HEX3[6:0] = saida7segmentos[6:0];
SEG7_LUT(saida7segmentos,entradaHEXA);
// ---------------------------------------------------------------------------
// Fim do trecho para instanciação de módulos e interligação entre os mesmos
// ---------------------------------------------------------------------------
endmodule // fim do modulo
Arquivo SEG7_LUT.v:
module SEG7_LUT (oSEG, iDIG);
input [3:0] iDIG;
output [6:0] oSEG;
reg [6:0] oSEG;
always @(iDIG)
begin
case(iDIG)
4'h0: oSEG = 7'b1000000 ;
4'h1: oSEG = ~7'b0000110 ;
4'h2: oSEG = 7'b0100100;
4'h3: oSEG = ~7'b1001111;
4'h4: oSEG = 7'b0011001;
4'h5: oSEG = ~7'b1101101;
4'h6: oSEG = 7'b0000010;
4'h7: oSEG = ~7'b0000111;
4'h8: oSEG = 7'b0000000;
4'h9: oSEG = ~7'b1101111;
4'ha: oSEG = 7'b0001000;
4'hb: oSEG = ~7'b1111100;
4'hc: oSEG = 7'b1000110;
4'hd: oSEG = ~7'b1011110;
4'he: oSEG = 7'b0000110;
4'hf: oSEG = ~7'b1110001;
endcase
end
endmodule
Aplicações
Tendo em vista a complexidade dos processadores atuais, linguagens de
programação como o Verilog/SystemVerilog, são amplamente aplicadas visto a
dimenção e o trabalho para o teste em meio eletronico físico. Com isso, a escrita da
linguaguem lígica por meio de software se faz necessária para a criação de
processadores complexos. As aplicações portanto tendem ao infinito, podendo ser
implementadas em sistemas de automação industrial ou até mesmo residencial.
Diagrama lógico
Figura 6 - Diagrama lógico de hierarquia
Questionamentos
Implementação de:
module circuito_Hierarquia (S, A, B, C)
input A, B, C;
output S;
assing S = ~(A & B) | C;