93 lines
2.8 KiB
Systemverilog
93 lines
2.8 KiB
Systemverilog
//------------------------------------------------------
|
|
//
|
|
// File : stimuli.sv
|
|
// Related Files :
|
|
// Author(s) : Mueller
|
|
// Email : muelleral82290@th-nuernberg.de
|
|
// Organization : Georg-Simon-Ohm-Hochschule Nuernberg
|
|
// Notes : Stimuli Modul
|
|
//
|
|
//------------------------------------------------------
|
|
// History
|
|
//------------------------------------------------------
|
|
// Version| Author | Mod. Date | Changes Made:
|
|
// v1.00 | Mueller | 11/05/2023 | first code
|
|
//------------------------------------------------------
|
|
|
|
//interface for LED
|
|
//reg [2:0]rbg stores rgb values that depend on dip[3:2]
|
|
|
|
//interface for DIPSCHALER
|
|
// dip[3:2] -> select colour, dip[1] -> read ~ 1/write ~ 0, dip[0] -> on ~ 1/off ~ 0
|
|
|
|
//interface for FRAM
|
|
// sck -> 0 ~ cummonication enabled, 1 ~ communication disabled
|
|
// clk -> system clock / timer
|
|
// miso -> testbench output
|
|
// mosi -> testbench input
|
|
|
|
//testbenchclock replaces the oscillator on the board
|
|
|
|
// 27.04.23 -> #delay/#oszillatordelay is not set jet
|
|
// 09.06.23 -> removed fram_if.fram_port_stim fram_spi from the stimuli parameters, moved to "fram_module"
|
|
// 09.06.23 -> oszillatordelay = 1, delay = 5
|
|
|
|
`timescale 10ns/10ps
|
|
|
|
module stimuli(led_if.led_port_stim led_stim, dip_if.dip_port_stim dip_stim, clock_if.clock_port_stim clk_stim);
|
|
|
|
// generate oszillator signal for the timer block (clock_if)
|
|
reg oszillator;
|
|
|
|
initial oszillator = 0;
|
|
|
|
always
|
|
begin
|
|
#1 oszillator <= ! oszillator;
|
|
clk_stim.clk <= ! oszillator;
|
|
end
|
|
|
|
|
|
initial
|
|
begin
|
|
|
|
/*~~~~toplevel is set to off~~~~~~~~*/
|
|
/*~~~~dip[0] is set to 0~~~~~~~~~~~~*/
|
|
dip_stim.dip = 4'b0000;
|
|
#500 dip_stim.dip = 4'b0010;
|
|
#500 dip_stim.dip = 4'b0100;
|
|
#500 dip_stim.dip = 4'b0110;
|
|
#500 dip_stim.dip = 4'b1000;
|
|
#500 dip_stim.dip = 4'b1010;
|
|
#500 dip_stim.dip = 4'b1100;
|
|
#500 dip_stim.dip = 4'b1110;
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
/*~~~~toplevel is set to on~~~~~~~~~*/
|
|
/*~~~~dip[0] is set to 1~~~~~~~~~~~~*/
|
|
|
|
/*~~fram is set to write~~~~~~~~*/
|
|
/*~~~~dip[1] is set to 0~~~~~~~~*/
|
|
#800 dip_stim.dip = 4'b0001;
|
|
#2000 dip_stim.dip = 4'b0101;
|
|
#2000 dip_stim.dip = 4'b1001;
|
|
#2000 dip_stim.dip = 4'b1101;
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
/*~~fram is set to read~~~~~~~~~*/
|
|
/*~~~~dip[1] is set to 1~~~~~~~~*/
|
|
#2000 dip_stim.dip = 4'b0011;
|
|
#2000 dip_stim.dip = 4'b0111;
|
|
#2000 dip_stim.dip = 4'b1011;
|
|
#2000 dip_stim.dip = 4'b1111;
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
|
|
|
end
|
|
|
|
endmodule : stimuli
|
|
|
|
|
|
|