-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsupport_tb.v
92 lines (74 loc) · 1.71 KB
/
support_tb.v
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
`timescale 1ns/1ps
`default_nettype none
// ISIM: wave add /
module support_tb;
reg [2:0] slow;
reg [3:0] button;
reg locked;
reg sysclk;
wire boot;
wire clk1x;
wire dcm_reset;
wire halt;
wire interrupt;
wire lpddr_calib_done;
wire lpddr_reset;
wire reset;
wire sysclk_buf;
/*AUTOWIRE*/
/*AUTOREG*/
////////////////////////////////////////////////////////////////////////////////
support DUT
(
.sysclk(sysclk_buf),
.cpuclk(clk1x),
.button_r(button[3]),
.button_b(button[2]),
.button_h(button[1]),
.button_c(button[0]),
/*AUTOINST*/
// Outputs
.boot (boot),
.dcm_reset (dcm_reset),
.halt (halt),
.interrupt (interrupt),
.lpddr_reset (lpddr_reset),
.reset (reset),
// Inputs
.lpddr_calib_done (lpddr_calib_done));
////////////////////////////////////////////////////////////////////////////////
always @(posedge sysclk)
slow <= slow + 1;
assign sysclk_buf = sysclk;
assign clk1x = slow[0] & locked;
initial begin
$timeformat(-9, 0, "ns", 7);
$dumpfile(`VCDFILE);
$dumpvars(0, DUT);
end
always @(posedge sysclk) begin
if (dcm_reset)
locked = 0;
else if (~dcm_reset)
#20 locked = 1;
end
initial begin
slow = 0;
sysclk = 0;
button = 4'b0000;
locked = 0;
#5000 button = 4'b1000;
#40000000 button = 4'b0000;
#4000000; button = 4'b1000;
#40000000 button = 4'b0000;
#40000000 $finish;
end
always begin
#10 sysclk = 0;
#10 sysclk = 1;
end
endmodule
`default_nettype wire
// Local Variables:
// verilog-library-directories: (".")
// End: