Skip to content

Commit b348763

Browse files
committed
Add missing files to testbench
1 parent 9fd1be4 commit b348763

File tree

3 files changed

+90
-15
lines changed

3 files changed

+90
-15
lines changed

spdif/testbench/makefile

+2-15
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
#########################################################
44
SYSTEMC_HOME ?= /usr/local/systemc-2.3.1
55

6-
GENERATE_PATH ?= ~/svn_vhdl/tools/sysc_wrap
7-
GENERATE_CMD ?= python $(GENERATE_PATH)/generate.py
8-
GENERATE_ARGS ?=
9-
106
TRACE ?= 1
117

128
DUT_NAME = spdif
@@ -46,13 +42,7 @@ EXE = output.out
4642
#########################################################
4743
all: run
4844

49-
tb_top.v: $(RTL_DUT)
50-
$(GENERATE_CMD) $(RTL_DUT) $@ $(GENERATE_PATH)/tb_top.v.mk $(GENERATE_ARGS)
51-
52-
$(DUT_NAME)_vpi.h: $(RTL_DUT)
53-
$(GENERATE_CMD) $(RTL_DUT) $@ $(GENERATE_PATH)/dut_vpi.h.mk $(GENERATE_ARGS)
54-
55-
%.o : %.cpp $(DUT_NAME)_vpi.h
45+
%.o : %.cpp
5646
gcc -c $(INC_PATH) $(CFLAGS) $< -o $@
5747

5848
$(VPI_OBJ).vpi: $(OBJ)
@@ -64,8 +54,5 @@ $(EXE) : $(SRC_V)
6454
run: $(EXE) $(VPI_OBJ).vpi
6555
vvp -M. -m$(VPI_OBJ) $(EXE) -vcd
6656

67-
view:
68-
gtkwave waveform.vcd gtksettings.sav
69-
7057
clean:
71-
rm -rf $(OBJ) dut.vpi *.vcd *.out tb_top.v $(DUT_NAME)_vpi.h
58+
rm -rf $(OBJ) dut.vpi *.vcd *.out

spdif/testbench/spdif_vpi.h

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#ifndef SPDIF_VPI_H
2+
#define SPDIF_VPI_H
3+
4+
#include "sc_vpi_module.h"
5+
6+
class spdif_vpi: public sc_vpi_module
7+
{
8+
public:
9+
sc_in <bool> clk_i;
10+
sc_in <bool> rst_i;
11+
sc_in <bool> audio_clk_i;
12+
sc_out <bool> spdif_o;
13+
sc_in <sc_uint<32> > sample_i;
14+
sc_out <bool> sample_req_o;
15+
16+
void read_outputs(void)
17+
{
18+
sc_vpi_module_read_output_int(spdif_o, "spdif_o");
19+
sc_vpi_module_read_output_int(sample_req_o, "sample_req_o");
20+
}
21+
22+
void write_inputs(void)
23+
{
24+
sc_vpi_module_write_input_int(clk_i, "clk_i");
25+
sc_vpi_module_write_input_int(rst_i, "rst_i");
26+
sc_vpi_module_write_input_int(audio_clk_i, "audio_clk_i");
27+
sc_vpi_module_write_input_int(sample_i, "sample_i");
28+
}
29+
30+
spdif_vpi(sc_module_name name):
31+
sc_vpi_module(name)
32+
, clk_i ("clk_i")
33+
, rst_i ("rst_i")
34+
, audio_clk_i ("audio_clk_i")
35+
, spdif_o ("spdif_o")
36+
, sample_i ("sample_i")
37+
, sample_req_o ("sample_req_o")
38+
{
39+
register_signal("clk_i");
40+
register_signal("rst_i");
41+
register_signal("audio_clk_i");
42+
register_signal("spdif_o");
43+
register_signal("sample_i");
44+
register_signal("sample_req_o");
45+
}
46+
};
47+
48+
#endif

spdif/testbench/tb_top.v

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
`timescale 1ns / 1ns
2+
3+
//-----------------------------------------------------------------
4+
// Module: Auto generated top
5+
//-----------------------------------------------------------------
6+
module tb_top();
7+
8+
reg clk_i;
9+
reg rst_i;
10+
reg audio_clk_i;
11+
wire spdif_o;
12+
reg [31:0] sample_i;
13+
wire sample_req_o;
14+
15+
//-----------------------------------------------------------------
16+
// DUT
17+
//-----------------------------------------------------------------
18+
spdif dut
19+
(
20+
.clk_i(clk_i)
21+
, .rst_i(rst_i)
22+
, .audio_clk_i(audio_clk_i)
23+
, .spdif_o(spdif_o)
24+
, .sample_i(sample_i)
25+
, .sample_req_o(sample_req_o)
26+
);
27+
28+
//-----------------------------------------------------------------
29+
// Trace
30+
//-----------------------------------------------------------------
31+
initial
32+
begin
33+
if (`TRACE)
34+
begin
35+
$dumpfile("waveform.vcd");
36+
$dumpvars(0,tb_top);
37+
end
38+
end
39+
40+
endmodule

0 commit comments

Comments
 (0)