2011-10-18 11:47:32 +02:00

56 lines
1.0 KiB
Verilog

`timescale 1ns / 1ps
//Praktikum TGDI WS 09/10
//Toplevel Modul
//100108 TW: Initial Version
module top(input clk, reset,
output [7:0] led);
wire [31:0] aluout, writedata, readdata;
wire memwrite;
wire [31:0] pc, instr;
//LEDs belegen und Signale zusammen-ORen, damit sie nicht wegopimiert werden
assign led[0] = (|aluout | |writedata | |readdata | |memwrite);
assign led[1] = 0;
//PC auf LEDs legen zur Kontrolle
assign led[7:2] = pc[7:2];
//50 MHZ-Takt teilen
wire clkout;
divider taktteiler (
.clkin(clk),
.clkout(clkout)
);
//MIPS-CPU instanziieren
mips myMIPS (
.clk(clkout),
.reset(reset),
.pc(pc),
.instr(instr),
.memwrite(memwrite),
.aluout(aluout),
.writedata(writedata),
.readdata(readdata)
);
//Instruction-Speicher
imem imem (
.a(pc[7:2]),
.rd(instr)
);
//Datenspeicher
dmem dmem(
.clk(clkout),
.we(memwrite),
.a(aluout),
.wd(writedata),
.rd(readdata)
);
endmodule