//processador01.sv // Processador, primeiros passos! module processador01( //////////////////////// Clock Input //////////////////////// input CLOCK_27, // 27 MHz input CLOCK_50, // 50 MHz input EXT_CLOCK, // External Clock //////////////////////// Push Button //////////////////////// input [3:0] KEY, // Pushbutton[3:0] //////////////////////// DPDT Switch //////////////////////// input [17:0] SW, // Toggle Switch[17:0] //////////////////////// 7-SEG Dispaly //////////////////////// output [6:0] HEX0, // Seven Segment Digit 0 output [6:0] HEX1, // Seven Segment Digit 1 output [6:0] HEX2, // Seven Segment Digit 2 output [6:0] HEX3, // Seven Segment Digit 3 output [6:0] HEX4, // Seven Segment Digit 4 output [6:0] HEX5, // Seven Segment Digit 5 output [6:0] HEX6, // Seven Segment Digit 6 output [6:0] HEX7, // Seven Segment Digit 7 //////////////////////////// LED //////////////////////////// output [8:0] LEDG, // LED Green[8:0] output [17:0] LEDR, // LED Red[17:0] //////////////////// LCD Module 16X2 //////////////////////////// inout [7:0] LCD_DATA, // LCD Data bus 8 bits output LCD_ON, // LCD Power ON/OFF output LCD_BLON, // LCD Back Light ON/OFF output LCD_RW, // LCD Read/Write Select, 0 = Write, 1 = Read output LCD_EN, // LCD Enable output LCD_RS // LCD Command/Data Select, 0 = Command, 1 = Data ); // module pins assign LEDG[3:0] = ~KEY[3:0]; // 03 m.s. Btn set to 03 m.s.leds assign LEDR[17:0] = SW[17:0]; // Switch to LED red // negative logic -> 0="active" (on) bit ON = 0; bit OFF = 1; // Last Significative Display (HEX0) // on the right! assign HEX0[0]= ON; // ---0---- assign HEX0[1]=OFF; // 5 1 assign HEX0[2]=OFF; // | | assign HEX0[3]= ON; // ---6---- assign HEX0[4]= ON; // 4 2 assign HEX0[5]= ON; // | | assign HEX0[6]=OFF; // ---3---- assign HEX1=7'b0001000; // 6564321 > lsb on the right! assign HEX2=7'b1000000; // assign HEX3=7'b1000111; // assign HEX4=7'b1111111; // not used -> 1 (off) assign HEX5=7'b1111111; assign HEX6=7'b1111111; assign HEX7=7'b1111111; endmodule : processador01