|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- // 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, clk, spi_read); //dip[3:0] / spi_read[1:0]
- modport spi_port(input dip, timer, clk, 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) | | |
- |__________________| |___________________|
-
-
- __________________________________________________________________________________________________________________
-
- */
-
-
-
-
-
|