Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Campina Grande - UFCG Centro de Engenharia Elétrica e Informática - CEEI Departamento de Engenharia Elétrica - DEE Nome:Pedro Henrique Alcantara Araújo Email: pedro.henrique.araujo@ee.ufcg.edu.br Disciplina: Laboratório de Circuitos Lógicos Professores: Fernanda Cecília Correia Lima Loureiro e Adolfo Hebster Exp. 3 Verilog: Multiplexadores e Demultiplexadores MUX 4:1 VERILOG: wire A, B, I0, I1, I2, I3; wire S; assign S = (~A&~B~I0) | (~A&B&I1) | (A&~B&I2) | (A&B&I3); assign LEDG[0] = S; assign SW[17] = A; assign SW[16] = B; assign SW[0] = I0; assign SW[1] = I1; assign SW[2] = I2; assign SW[3] = I3; DEMUX 1:4 VERILOG: wire A, B, I; wire S0, S1, S2, S3; assign S0 = (~A&~B~I); assign S1 = (~A&B&I); assign S2 = (A&~B&I); assign S3 = (A&B&I); assign LEDG[0] = S3; assign LEDG[1] = S2; assign LEDG[2] = S1; assign LEDG[3] = S0; assign SW[17] = A; assign SW[16] = B; assign SW[15] = I; SISTEMA MATRÍCULA: decodifica dec(.X2(r2), .X1(r1), .X0(r0), .Z7(I7), .Z6(I6), .Z5(I5), .Z4(I4), .Z3(I3), .Z2(I2), .Z1(I1), .Z0(I0)); wire r2 = SW[10]; //chave das entradas do decodificador wire r1 = SW[9]; //chave das entradas do decodificador wire r0 = SW[8]; //chave das entradas do decodificador //MUX 8:1 wire A, B, C; //entradas comuns dos MUX 8:1 wire I0, I1, I2, I3, I4, I5, I6, I7;//entradas de habilitacao dos mux 8:1 assign I0 = Z0; // atribuir a saida do decodificador na entrada de habilitação do mux assign I1 = Z1; // atribuir a saida do decodificador na entrada de habilitação do mux assign I2 = Z2; // atribuir a saida do decodificador na entrada de habilitação do mux assign I3 = Z3; // atribuir a saida do decodificador na entrada de habilitação do mux assign I4 = Z4; // atribuir a saida do decodificador na entrada de habilitação do mux assign I5 = Z5; // atribuir a saida do decodificador na entrada de habilitação do mux assign I6 = Z6; // atribuir a saida do decodificador na entrada de habilitação do mux assign I7 = Z7; // atribuir a saida do decodificador na entrada de habilitação do mux wire S0, S1, S2, S3, S4, S5, S6, S7; //expressao das saidas PRIMEIRO mux wire S8, S9, S10, S11, S12, S13, S14, S15; ////expressao das saidas SEGUNDO mux wire S16, S17, S18, S19, S20, S21, S22, S23; //expressao das saidas TERCEIRO mux wire S24, S25, S26, S27, S28, S29, S30, S31; ////expressao das saidas QUARTO mux wire S32, S33, S34, S35, S36, S37, S38, S39; //expressao das saidas QUINTO mux wire S40, S41, S42, S43, S44, S45, S46, S47; ////expressao das saidas SEXTO mux 8:1 wire S48, S49, S50, S51, S52, S53, S54, S55; //expressao das saidas SETIMO mux 8:1 wire S56, S57, S58, S59, S60, S61, S62, S63; ////expressao das saidas OITAVO mux assign A = SW[17]; //chave das entradas do muxs assign B = SW[16]; //chave das entradas do muxs assign C = SW[15]; //chave das entradas do muxs //aluno 1 assign S0 = (~A&~B&~C&1); assign S1 = (~A&~B&C&1); assign S2 = (~A&B&~C&1); assign S3 = (~A&B&C&0); assign S4 = (A&~B&~C&0); assign S5 = (A&~B&C&0); assign S6 = (A&B&~C&0); assign S7 = (A&B&C&0); //aluno 2 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&0); assign S13 = (A&~B&C&0); assign S14 = (A&B&~C&1); assign S15 = (A&B&C&1); //aluno 3 assign S16 = (~A&~B&~C&1); assign S17 = (~A&~B&C&1); assign S18 = (~A&B&~C&0); assign S19 = (~A&B&C&0); assign S20 = (A&~B&~C&0); assign S21 = (A&~B&C&0); assign S22 = (A&B&~C&0); assign S23 = (A&B&C&0); //aluno 4 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&0); assign S29 = (A&~B&C&0); assign S30 = (A&B&~C&0); assign S31 = (A&B&C&1); //aluno 5 assign S32 = (~A&~B&~C&1); assign S33 = (~A&~B&C&0); assign S34 = (~A&B&~C&0); assign S35 = (~A&B&C&0); assign S36 = (A&~B&~C&0); assign S37 = (A&~B&C&0); assign S38 = (A&B&~C&0); assign S39 = (A&B&C&0); //aluno 6 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&0); assign S45 = (A&~B&C&1); assign S46 = (A&B&~C&0); assign S47 = (A&B&C&1); //aluno 7 assign S48 = (~A&~B&~C&0); assign S49 = (~A&~B&C&1); assign S50 = (~A&B&~C&1); assign S51 = (~A&B&C&0); assign S52 = (A&~B&~C&0); assign S53 = (A&~B&C&0); assign S54 = (A&B&~C&0); assign S55 = (A&B&C&0); //aluno 8 assign S56 = (~A&~B&~C&0); assign S57 = (~A&~B&C&0); assign S58 = (~A&B&~C&0); assign S59 = (~A&B&C&0); assign S60 = (A&~B&~C&0); assign S61 = (A&~B&C&1); assign S62 = (A&B&~C&1); assign S63 = (A&B&C&1); wire saidaFinal; assign saidaFinal = (S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7) & I0 | (S8 | S9 | S10 | S11 | S12 | S13 | S14 | S15) & I1 | (S16 | S17 | S18 | S19 | S20 | S21 | S22 | S23) & I2 | (S24 | S25 | S26 | S27 | S28 | S29 | S30 | S31) & I3 | (S32 | S33 | S34 | S35 | S36 | S37 | S38 | S39) & I4 | (S40 | S41 | S42 | S43 | S44 | S45 | S46 | S47) & I5 | (S48 | S49 | S50 | S51 | S52 | S53 | S54 | S55) & I6 | (S56 | S57 | S58 | S59 | S60 | S61 | S62 | S63) & I7; //expressao saida final assign LEDG[1] = saidaFinal; //matriculado assign LEDR[0] = ~saidaFinal; //nao matriculado endmodule // fim do modulo module decodifica(input X2, X1, X0, output Z7, Z6, Z5, Z4, Z3, Z2, Z1, Z0); assign Z7 = X2&X1&X0; assign Z6 = X2&X1&(~X0); assign Z5 = X2&(~X1)&X0; assign Z4 = X2&(~X1)&(~X0); assign Z3 = (~X2)&X1&X0; assign Z2 = (~X2)&X1&(~X0); assign Z1 = (~X2)&(~X1)&X0; assign Z0 = (~X2)&(~X1)&(~X0); endmodule
Compartilhar