aboutsummaryrefslogtreecommitdiff
path: root/src/tb/mzi_tb.h
blob: 16ed6241cfa89c288febf68479ff0813ffbb0e4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include <optical_signal.h>
#include <systemc.h>
#include <waveguide.h>
#include <directional_coupler.h>
#include <mzi.h>
#include <probe.h>
#include <specs.h>

SC_MODULE(mzi_tb)
{
public:
    spx::oa_port_out_type IN;
    spx::oa_port_in_type OUT1, OUT2;
    sc_out<double> vphi,vtheta;

    void run_1();
    void monitor();
    SC_CTOR(mzi_tb)
    {
        SC_HAS_PROCESS(mzi_tb);

        SC_THREAD(run_1);

        SC_THREAD(monitor);
        sensitive << IN << OUT1 << OUT2 << vphi << vtheta;
    }
};

void MZI_tb_run();