Dateien hochladen nach „“
This commit is contained in:
parent
2624055082
commit
5213d9b6eb
109
top_level.sv
Normal file
109
top_level.sv
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
// Definition of top level
|
||||||
|
module top(led_if.led_port_top l, dip_if.dip_port_top d, fram_if.fram_port_top f, clock_if.clock_port_top c);
|
||||||
|
|
||||||
|
// Initialisation of bus
|
||||||
|
bus fpga_bus();
|
||||||
|
|
||||||
|
// Initialisation of modules
|
||||||
|
timer t(fpga_bus, c);
|
||||||
|
steuerung st(fpga_bus, l);
|
||||||
|
spi s(fpga_bus, f);
|
||||||
|
parallelport p(fpga_bus, d);
|
||||||
|
endmodule : top
|
||||||
|
|
||||||
|
// Definition of bus interface
|
||||||
|
interface bus();
|
||||||
|
// bus wires
|
||||||
|
logic clk; // clock
|
||||||
|
logic timer;
|
||||||
|
logic [3:0]dip;
|
||||||
|
logic [1:0]spi_read;
|
||||||
|
|
||||||
|
// modports from modules pov
|
||||||
|
modport timer_port(input dip, output timer, clk); //dip[0]
|
||||||
|
modport parallel_port(output dip);
|
||||||
|
modport steuerung_port(input dip, timer, spi_read); //dip[3:0] / spi_read[1:0]
|
||||||
|
modport spi_port(input dip, timer, output spi_read); //spi_read[1:0]
|
||||||
|
endinterface : bus
|
||||||
|
|
||||||
|
// Definition of parallelport
|
||||||
|
module parallelport(bus.parallel_port b, dip_if.dip_port_top d);
|
||||||
|
//b.dip <= d.dip;
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module spi(bus.spi_port b, fram_if.fram_port_top i);
|
||||||
|
/*...
|
||||||
|
b.dip[3:0], b.timer, b.spi_read[1:0]
|
||||||
|
i.ss, i.mosi, i.miso, i.sclk
|
||||||
|
...*/
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module timer(bus.timer_port b, clock_if.clock_port_top i);
|
||||||
|
/*...
|
||||||
|
b.clk, b.dip[0], b.timer
|
||||||
|
i.clk
|
||||||
|
...*/
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module steuerung(bus.steuerung_port b, led_if.led_port_top i);
|
||||||
|
/*...
|
||||||
|
b.dip[3:0], b.timer, b.spi_read[1:0]
|
||||||
|
i.rgb[2:0]
|
||||||
|
...*/
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
/*
|
||||||
|
_______________________________________________________________________________________________________________
|
||||||
|
Testbench
|
||||||
|
__________________ ___________________
|
||||||
|
| | | |
|
||||||
|
| DIP-Schalter | | FRAM-Speicher |
|
||||||
|
| | | |
|
||||||
|
|__________________| |___________________|
|
||||||
|
| |
|
||||||
|
____________________________|________________________________________________________________|_________________
|
||||||
|
Toplevel | |
|
||||||
|
| |
|
||||||
|
dip[3:0]-->| |<--mosi, miso, sclk, ss
|
||||||
|
| |
|
||||||
|
________|_________ ________|__________
|
||||||
|
| | | |
|
||||||
|
| Parallelport | | SPI-Schnittstelle |
|
||||||
|
| | | & FRAM-Kontroller |
|
||||||
|
|__________________| |___________________|
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
dip[3:0]-->| |<--dip[3:0], timer, spi_read[1:0]
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
---------------------------------------------------------------------BUS
|
||||||
|
| |
|
||||||
|
| |
|
||||||
|
dip[0], clk, timer-->| |<--dip[3:0], timer, spi_read[1:0]
|
||||||
|
| |
|
||||||
|
________|_________ ___________________ ________|__________
|
||||||
|
| | | | | |
|
||||||
|
| Timer | | Oszillator-Takt | | Ampel-Steuerung |
|
||||||
|
| | | (auf Board) | | |
|
||||||
|
|__________________| |___________________| |___________________|
|
||||||
|
| | |
|
||||||
|
| | |
|
||||||
|
clk-->------------------------------ |<--rgb[2:0]
|
||||||
|
| |
|
||||||
|
____________________________|________________________________________________________________|___________________
|
||||||
|
| |
|
||||||
|
________|_________ ________|__________
|
||||||
|
| | | |
|
||||||
|
| Takt | | RGB-LED |
|
||||||
|
| (der Testbench) | | |
|
||||||
|
|__________________| |___________________|
|
||||||
|
|
||||||
|
|
||||||
|
__________________________________________________________________________________________________________________
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user