Escolar Documentos
Profissional Documentos
Cultura Documentos
Experimento Verilog 3 –
Multiplexadores,
Demultiplexadores
Objetivo geral
O presente experimento visa utilizar a linguagem HDL, Verilog, para implementar e
contextualizaros circuitos combinacionais multiplexadores, demultiplexadores e outros
circuitos combinacionais como decodificadores e funções lógicas (or, xnor, and e not)
1. Sistema de multiplexação
Multiplexador é um circuito utilizado para selecionar uma informação, entre um certo
número de informaçõesfornecidas por vários canais, a um só canal de saída. Assim há
os canais de informação de entrada e a entrada de seleção, que tem como função
escolher qual dos canais de informação vaiser ligado à saída.
Atividade
assign S = (~A&~B&D0)|(~A&B&D1)|(A&~B&D2)|(A&B&D3);
endmodule
Diagrama lógico:
Figura 1 – Bloco de mux 4:1
2. Sistema de demultiplexação
Demultiplexador é um circuito que efetua a função inversa ao multiplexador. Assim,
seu objetivo é enviar a informação contida, em um canal de entrada, a um entre os
vários canais de saída, que for selecionado. Assim, há a entrada de informação e há
as entrada de seleção, que têm como função escolher, a qual dos canais de saída,
deve ser ligada a entrada.
Atividade
demux14 dm(.entrada (SW[2:0]), .saida (LEDR[3:0]);
Diagrama lógico:
Figura 2 – Bloco lógico Demux 1:4
3. Sistema de matrícula
Usar 8 multiplexadores e um decodificador para implementar um sistema de matricula
para 8 alunos. Cada aluno tem uma matrícula de 6 bits, os 3 primeiros determinam o
aluno e os 3 ultimos a disciplina. O decodificador define qual dos 8 alunos é
selecionado, e cada mux representa as disciplinas dos alunos. Caso o aluno não
atenda aos pré-requisitos da disciplina, um LED é ligado para representar que sua
matricula não foi confirmada, caso contrário, um outro LED é aceso para confirmar sua
matrícula.
Atividade
decodificador d1(.entradaM (SW[5:3]), .A(SW[2]), .B(SW[1]), .C(SW[2]),
.saidaFinal_S(LEDR[1]), .saidaFinal_N(LEDR[0]));
reg [7:0] X;
//saidas aluno1
wire S0, S1, S2, S3, S4, S5, S6, S7;
//saidas aluno2
wire S8, S9, S10, S11, S12, S13, S14, S15;
//saidas aluno3
wire S16, S17, S18, S19, S20, S21, S22, S23;
//saidas aluno4
wire S24, S25, S26, S27, S28, S29, S30, S31;
//saidas aluno5
wire S32, S33, S34, S35, S36, S37, S38, S39;
//saidas aluno6
wire S40, S41, S42, S43, S44, S45, S46, S47;
//saidas aluno7
wire S48, S49, S50, S51, S52, S53, S54, S55;
//saidas aluno8
wire S56, S57, S58, S59, S60, S61, S62, S63;
//aluno1
assign S0 = (~A&~B&~C&1);
assign S1 = (~A&~B&C&1);
assign S2 = (~A&B&~C&1);
assign S3 = (~A&B&C&1);
assign S4 = (A&~B&~C&0);
assign S5 = (A&~B&C&0);
assign S6 = (A&B&~C&0);
assign S7 = (A&B&C&0);
//aluno2
assign S8 = (~A&~B&~C&0);
assign S9 = (~A&~B&C&0);
assign S10 = (~A&B&~C&0);
assign S11 = (~A&B&C&0);
assign S12 = (A&~B&~C&1);
assign S13 = (A&~B&C&1);
assign S14 = (A&B&~C&1);
assign S15 = (A&B&C&1);
//aluno3
assign S16 = (~A&~B&~C&1);
assign S17 = (~A&~B&C&1);
assign S18 = (~A&B&~C&1);
assign S19 = (~A&B&C&1);
assign S20 = (A&~B&~C&1);
assign S21 = (A&~B&C&0);
assign S22 = (A&B&~C&0);
assign S23 = (A&B&C&0);
//aluno4
assign S24 = (~A&~B&~C&0);
assign S25 = (~A&~B&C&0);
assign S26 = (~A&B&~C&0);
assign S27 = (~A&B&C&0);
assign S28 = (A&~B&~C&1);
assign S29 = (A&~B&C&1);
assign S30 = (A&B&~C&1);
assign S31 = (A&B&C&1);
//aluno5
assign S32 = (~A&~B&~C&1);
assign S33 = (~A&~B&C&1);
assign S34 = (~A&B&~C&1);
assign S35 = (~A&B&C&1);
assign S36 = (A&~B&~C&0);
assign S37 = (A&~B&C&0);
assign S38 = (A&B&~C&0);
assign S39 = (A&B&C&0);
//aluno6
assign S40 = (~A&~B&~C&0);
assign S41 = (~A&~B&C&0);
assign S42 = (~A&B&~C&0);
assign S43 = (~A&B&C&0);
assign S44 = (A&~B&~C&1);
assign S45 = (A&~B&C&1);
assign S46 = (A&B&~C&1);
assign S47 = (A&B&C&1);
//aluno7
assign S48 = (~A&~B&~C&1);
assign S49 = (~A&~B&C&1);
assign S50 = (~A&B&~C&1);
assign S51 = (~A&B&C&1);
assign S52 = (A&~B&~C&0);
assign S53 = (A&~B&C&0);
assign S54 = (A&B&~C&0);
assign S55 = (A&B&C&0);
//aluno8
assign S56 = (~A&~B&~C&0);
assign S57 = (~A&~B&C&0);
assign S58 = (~A&B&~C&1);
assign S59 = (~A&B&C&1);
assign S60 = (A&~B&~C&1);
assign S61 = (A&~B&C&1);
assign S62 = (A&B&~C&1);
assign S63 = (A&B&C&1);
Diagrama lógico:
Figura 3 – Sistema de matrícula