Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module processor_with_SW (CLOCK_50, SW, KEY, LEDR, LEDG, HEX7, HEX6, HEX5, HEX4, HEX3, HEX2, HEX1, HEX0);  
  2.   input CLOCK_50;
  3.   input [9:0] SW;
  4.   input [3:0] KEY;
  5.   output reg [9:0] LEDR;
  6.   output [8:0] LEDG;
  7.   output [0:6] HEX7, HEX6, HEX5, HEX4, HEX3, HEX2, HEX1, HEX0;
  8.  
  9.   wire [15:0] BusWires, ADDR, DOUT, LEDsOUT, RAMOUT, PORTNOUT;
  10.   reg [15:0] DIN;
  11.   wire Resetn, Clock, Run, Done, W;
  12.  
  13.   reg LEDen, MEMen, SSDen, PRTen;
  14.  
  15.   wire [25:0] newclock;
  16.   counter_modk C_new (CLOCK_50, 1, newclock);
  17.   defparam C_new.n = 26;
  18.   defparam C_new.k = 50000000;
  19.   assign MClock = KEY[1];
  20.   assign PClock = KEY[2];
  21.   assign Run = SW[9];
  22.   assign LEDG[8] = Done;
  23.   assign Resetn = KEY[0];
  24.  
  25.   wire [15:0] R0;
  26.   always
  27.     if (SW[8])
  28.       LEDR[15:0] = DIN;
  29.     else
  30.       LEDR[15:0] = R0;
  31.  
  32.   always
  33.   begin
  34.     MEMen = W & ~(ADDR[15] | ADDR[14] | ADDR[13] | ADDR[12]);
  35.     LEDen = W & ~(ADDR[15] | ADDR[14] | ADDR[13] | ~ADDR[12]);
  36.     SSDen = W & ~(ADDR[15] | ADDR[14] | ~ADDR[13] | ADDR[12]);
  37.     PRTen = ~(ADDR[15] | ADDR[14] | ~ADDR[13] | ~ADDR[12]);
  38.     case (ADDR[15:12])
  39.       4'b0000: DIN = RAMOUT;
  40.       4'b0011: DIN = PORTNOUT;
  41.     endcase
  42.   end
  43.  
  44.   proc2 P0 (DIN, Resetn, PClock, Run, Done, BusWires, ADDR, DOUT, W, LEDG[2:0], R0);
  45.   regn LEDs (DOUT, LEDen, MClock, LEDsOUT);
  46.   ramlpm Memory (ADDR, MClock, DOUT, MEMen, RAMOUT);
  47.   seg7_scroll SSDs (ADDR, MClock, DOUT, SSDen, HEX0, HEX1, HEX2, HEX3, HEX4, HEX5, HEX6, HEX7);
  48.   port_n (MClock, SW[9:0], PRTen, PORTNOUT);
  49.  
  50.   hex_ssd H0 (BusWires[3:0], HEX0);
  51.   hex_ssd H1 (BusWires[7:4], HEX1);
  52.   hex_ssd H2 (BusWires[11:8], HEX2);
  53.   hex_ssd H3 (BusWires[15:12], HEX3);
  54.  
  55.   hex_ssd H4 (ADDR[3:0], HEX4);
  56.   hex_ssd H5 (ADDR[7:4], HEX5);
  57.   hex_ssd H6 (ADDR[11:8], HEX6);
  58.   hex_ssd H7 (ADDR[15:12], HEX7);
  59.  
  60. endmodule
  61.  
  62. module port_n (Clock, SW, wren, out);
  63.   input [9:0] SW;
  64.   input Clock;
  65.   output reg [9:0] out;
  66.   input wren;
  67.  
  68.   always @ (posedge Clock) begin
  69.     out <= SW;
  70.   end
  71. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement