Skip to content

Commit 4f5655c

Browse files
committed
cn0577_adaq2387x: Generate ref_clk using VIP, update dco generation
Signed-off-by: Stanca Pop <stanca.pop@analog.com>
1 parent f76c1af commit 4f5655c

File tree

3 files changed

+39
-18
lines changed

3 files changed

+39
-18
lines changed

testbenches/project/cn0577_adaq2387x/system_bd.tcl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,29 @@ if {$CN0577_ADAQ2387X_N == 1} {
5454
ad_disconnect sys_200m_clk axi_ltc2387/delay_clk
5555
ad_connect sys_dma_clk axi_ltc2387/delay_clk
5656

57+
delete_bd_objs [get_bd_nets ref_clk_1]
58+
59+
if {$CN0577_ADAQ2387X_N == 1} {
60+
# 120MHz ref_clk for cn0577
61+
set ref_freq 120000000
62+
} else {
63+
# 100Mhz ref_clk for adaq2387x
64+
set ref_freq 100000000
65+
}
66+
67+
ad_ip_instance clk_vip ref_clk_vip [ list \
68+
INTERFACE_MODE {MASTER} \
69+
FREQ_HZ $ref_freq \
70+
]
71+
72+
adi_sim_add_define "REF_CLK=ref_clk_vip"
73+
74+
create_bd_port -dir O ref_clk_out
75+
ad_connect ref_clk_out ref_clk_vip/clk_out
76+
ad_connect axi_ltc2387/ref_clk ref_clk_vip/clk_out
77+
ad_connect axi_ltc2387_dma/fifo_wr_clk ref_clk_vip/clk_out
78+
ad_connect axi_pwm_gen/ext_clk ref_clk_vip/clk_out
79+
5780
set BA_AXI_LTC2387 0x44A00000
5881
set_property offset $BA_AXI_LTC2387 [get_bd_addr_segs {mng_axi_vip/Master_AXI/SEG_data_axi_ltc2387}]
5982
adi_sim_add_define "AXI_LTC2387_BA=[format "%d" ${BA_AXI_LTC2387}]"

testbenches/project/cn0577_adaq2387x/system_tb.sv

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,9 @@ module system_tb();
4141

4242
// reg signals
4343

44-
reg ref_clk = 1'b0;
4544
reg dco_init = 1'b0;
46-
reg cnv_out = 1'b0;
45+
reg ref_clk_out = 1'b0;
4746
reg clk_gate = 1'b0;
48-
reg dco_p;
49-
reg dco_n;
5047
reg da_p = 1'b0;
5148
reg da_n = 1'b0;
5249
reg db_p = 1'b0;
@@ -56,10 +53,8 @@ module system_tb();
5653

5754
// test bench variables
5855

59-
always #25 ref_clk = ~ref_clk;
60-
6156
`TEST_PROGRAM test(
62-
.ref_clk (ref_clk),
57+
.ref_clk_out (ref_clk_out),
6358
.clk_gate (clk_gate),
6459
.dco_in (dco_init),
6560
.dco_p (dco_p),
@@ -71,10 +66,7 @@ module system_tb();
7166
.cnv (cnv));
7267

7368
test_harness `TH (
74-
.ref_clk (ref_clk),
75-
.sampling_clk (sampling_clk),
76-
.dco_p (dco_p),
77-
.dco_n (dco_n),
69+
.ref_clk_out (ref_clk_out),
7870
.cnv (cnv),
7971
.da_n (da_n),
8072
.da_p (da_p),

testbenches/project/cn0577_adaq2387x/tests/test_program.sv

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import `PKGIFY(test_harness, ddr_axi_vip)::*;
5050
localparam NUM_OF_TRANSFERS = 16;
5151

5252
program test_program (
53-
input ref_clk,
53+
input ref_clk_out,
5454
input clk_gate,
5555
input dco_in,
5656
output da_n,
@@ -109,6 +109,9 @@ initial begin
109109
setLoggerVerbosity(ADI_VERBOSITY_NONE);
110110

111111
base_env.start();
112+
113+
`TH.`REF_CLK.inst.IF.start_clock();
114+
112115
base_env.sys_reset();
113116

114117
sanity_tests();
@@ -117,6 +120,8 @@ initial begin
117120

118121
base_env.stop();
119122

123+
`TH.`REF_CLK.inst.IF.stop_clock();
124+
120125
`INFO(("Test Done"), ADI_VERBOSITY_NONE);
121126
$finish();
122127

@@ -163,11 +168,12 @@ reg dco_init = 1'b0;
163168

164169
initial begin
165170
forever begin
166-
if (clk_gate == 1'b1) begin
167-
dco_init = ref_clk;
168-
end else begin
169-
dco_init = 1'b0;
170-
end
171+
@(posedge clk_gate, negedge clk_gate)
172+
if (clk_gate == 1'b1) begin
173+
dco_init = ref_clk_out;
174+
end else begin
175+
dco_init = 1'b0;
176+
end
171177
end
172178
end
173179

@@ -358,7 +364,7 @@ task data_acquisition_test();
358364

359365
#100ns;
360366
@(negedge cnv);
361-
@(posedge ref_clk);
367+
@(posedge ref_clk_out);
362368
transfer_status = 0;
363369

364370
//@(posedge system_tb.test_harness.axi_ltc2387_dma.irq);

0 commit comments

Comments
 (0)