Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC ADC 100M 14b 4cha
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
FMC ADC 100M 14b 4cha
Commits
77bd4c90
Commit
77bd4c90
authored
May 02, 2019
by
Dimitris Lampridis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hdl: make sure that no triggers are forwarded if there is no ongoing acquisition
parent
89f33dc3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
64 deletions
+34
-64
fmc_adc_100Ms_core.vhd
hdl/rtl/fmc_adc_100Ms_core.vhd
+33
-51
fmc_adc_100Ms_core_pkg.vhd
hdl/rtl/fmc_adc_100Ms_core_pkg.vhd
+0
-2
fmc_adc_mezzanine.vhd
hdl/rtl/fmc_adc_mezzanine.vhd
+0
-6
timetag_core.vhd
hdl/rtl/timetag_core/timetag_core.vhd
+1
-5
No files found.
hdl/rtl/fmc_adc_100Ms_core.vhd
View file @
77bd4c90
...
...
@@ -82,8 +82,6 @@ entity fmc_adc_100Ms_core is
wr_tm_time_valid_i
:
in
std_logic
;
wr_enable_i
:
in
std_logic
;
current_time_i
:
in
t_timetag
;
-- FMC interface
ext_trigger_p_i
:
in
std_logic
;
-- External trigger
ext_trigger_n_i
:
in
std_logic
;
...
...
@@ -1743,8 +1741,8 @@ begin
b_trigout
:
block
subtype
t_trigout_channels
is
std_logic_vector
(
4
downto
0
);
signal
trigout_
fs_triggers
,
trigout_
triggers
:
t_trigout_channels
;
signal
trigout_en
:
t_trigout_channels
;
signal
trigout_triggers
:
t_trigout_channels
;
signal
trigout_en
:
t_trigout_channels
;
signal
trigout_trig
:
std_logic
;
...
...
@@ -1753,58 +1751,42 @@ begin
subtype
t_trigout_data_channels
is
std_logic_vector
(
72
downto
68
);
subtype
t_trigout_data
is
std_logic_vector
(
72
downto
0
);
signal
trigout_fifo_dout
:
t_trigout_data
;
signal
trigout_fifo_din
:
t_trigout_data
;
signal
trigout_fifo_empty
:
std_logic
;
signal
trigout_fifo_full
:
std_logic
;
signal
trigout_fifo_wr
:
std_logic
;
signal
trigout_fifo_dout
:
t_trigout_data
;
signal
trigout_fifo_din
:
t_trigout_data
;
signal
trigout_fifo_empty
:
std_logic
;
signal
trigout_fifo_full
:
std_logic
;
signal
trigout_fifo_wr
:
std_logic
;
signal
trigout_fifo_not_empty
:
std_logic
;
signal
trigout_fifo_rd_rq
:
std_logic
;
signal
trigout_fifo_rd
:
std_logic
;
signal
trigout_fifo_rd_rq
:
std_logic
;
signal
trigout_fifo_rd
:
std_logic
;
begin
cmp_alt_trigout
:
entity
work
.
alt_trigout
port
map
(
rst_n_i
=>
sys_rst_n_i
,
clk_i
=>
sys_clk_i
,
wb_i
=>
wb_trigout_slave_i
,
wb_o
=>
wb_trigout_slave_o
,
wr_enable_i
=>
wr_enable_i
,
wr_link_i
=>
wr_tm_link_up_i
,
wr_valid_i
=>
wr_tm_time_valid_i
,
ts_present_i
=>
trigout_fifo_not_empty
,
ts_sec_i
=>
trigout_fifo_dout
(
t_trigout_data_seconds
'range
),
ch1_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'right
+
0
),
ch2_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'right
+
1
),
ch3_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'right
+
2
),
ch4_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'right
+
3
),
ext_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'right
+
4
),
cycles_i
=>
trigout_fifo_dout
(
t_trigout_data_coarse
'range
),
ts_cycles_rd_o
=>
trigout_fifo_rd_rq
);
rst_n_i
=>
sys_rst_n_i
,
clk_i
=>
sys_clk_i
,
wb_i
=>
wb_trigout_slave_i
,
wb_o
=>
wb_trigout_slave_o
,
wr_enable_i
=>
wr_enable_i
,
wr_link_i
=>
wr_tm_link_up_i
,
wr_valid_i
=>
wr_tm_time_valid_i
,
ts_present_i
=>
trigout_fifo_not_empty
,
ts_sec_i
=>
trigout_fifo_dout
(
t_trigout_data_seconds
'range
),
ch1_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'RIGHT
+
0
),
ch2_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'RIGHT
+
1
),
ch3_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'RIGHT
+
2
),
ch4_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'RIGHT
+
3
),
ext_mask_i
=>
trigout_fifo_dout
(
t_trigout_data_channels
'RIGHT
+
4
),
cycles_i
=>
trigout_fifo_dout
(
t_trigout_data_coarse
'range
),
ts_cycles_rd_o
=>
trigout_fifo_rd_rq
);
trigout_fifo_rd
<=
trigout_fifo_rd_rq
and
not
trigout_fifo_empty
;
-- Triggers (from fs_clk domain).
trigout_fs_triggers
<=
(
0
=>
int_trig_d
(
1
),
1
=>
int_trig_d
(
2
),
2
=>
int_trig_d
(
3
),
3
=>
int_trig_d
(
4
),
4
=>
ext_trig_fixed_delay
(
ext_trig_fixed_delay
'HIGH
));
gen_trigout_sync
:
for
i
in
trigout_triggers
'range
generate
cmp_trigout_sync
:
gc_sync_ffs
port
map
(
clk_i
=>
sys_clk_i
,
rst_n_i
=>
'1'
,
data_i
=>
trigout_fs_triggers
(
i
),
synced_o
=>
open
,
npulse_o
=>
open
,
ppulse_o
=>
trigout_triggers
(
i
));
end
generate
;
trigout_triggers
(
0
)
<=
trig_storage
(
8
);
trigout_triggers
(
1
)
<=
trig_storage
(
9
);
trigout_triggers
(
2
)
<=
trig_storage
(
10
);
trigout_triggers
(
3
)
<=
trig_storage
(
11
);
trigout_triggers
(
4
)
<=
trig_storage
(
0
);
trigout_en
(
0
)
<=
csr_regout
.
trig_en_fwd_ch1_o
;
trigout_en
(
1
)
<=
csr_regout
.
trig_en_fwd_ch2_o
;
...
...
@@ -1814,7 +1796,7 @@ begin
trigout_trig
<=
f_reduce_or
(
trigout_triggers
and
trigout_en
);
trigout_fifo_wr
<=
trigout_trig
and
not
trigout_fifo_full
;
trigout_fifo_wr
<=
trigout_trig
and
not
trigout_fifo_full
and
trig_tag_done
;
cmp_trigout_fifo
:
generic_sync_fifo
generic
map
(
...
...
@@ -1845,8 +1827,8 @@ begin
trigout_fifo_not_empty
<=
not
trigout_fifo_empty
;
trigout_fifo_din
(
t_trigout_data_seconds
'range
)
<=
current_time
_i
.
seconds
;
trigout_fifo_din
(
t_trigout_data_coarse
'range
)
<=
current_time
_i
.
coarse
;
trigout_fifo_din
(
t_trigout_data_seconds
'range
)
<=
trigger_tag
_i
.
seconds
;
trigout_fifo_din
(
t_trigout_data_coarse
'range
)
<=
trigger_tag
_i
.
coarse
;
trigout_fifo_din
(
t_trigout_data_channels
'range
)
<=
trigout_triggers
;
end
block
b_trigout
;
end
rtl
;
hdl/rtl/fmc_adc_100Ms_core_pkg.vhd
View file @
77bd4c90
...
...
@@ -91,8 +91,6 @@ package fmc_adc_100Ms_core_pkg is
wr_tm_time_valid_i
:
in
std_logic
;
wr_enable_i
:
in
std_logic
;
current_time_i
:
in
t_timetag
;
-- FMC interface
ext_trigger_p_i
:
in
std_logic
;
-- External trigger
ext_trigger_n_i
:
in
std_logic
;
...
...
hdl/rtl/fmc_adc_mezzanine.vhd
View file @
77bd4c90
...
...
@@ -261,8 +261,6 @@ architecture rtl of fmc_adc_mezzanine is
signal
trigger_tag
:
t_timetag
;
signal
time_trigger
:
std_logic
;
signal
current_time
:
t_timetag
;
-- Alternative time trigger
signal
alt_trigin_enable_in
:
std_logic
;
signal
alt_trigin_enable_out
:
std_logic
;
...
...
@@ -475,8 +473,6 @@ begin
wr_tm_time_valid_i
=>
wr_tm_time_valid_i
,
wr_enable_i
=>
wr_enable_i
,
current_time_i
=>
current_time
,
ext_trigger_p_i
=>
ext_trigger_p_i
,
ext_trigger_n_i
=>
ext_trigger_n_i
,
...
...
@@ -609,8 +605,6 @@ begin
alt_trigin_tag_i
=>
alt_trigin_tag
,
alt_trigin_o
=>
alt_time_trigger
,
current_time_o
=>
current_time
,
wb_adr_i
=>
cnx_slave_in
(
c_WB_SLAVE_TIMETAG
)
.
adr
(
6
downto
2
),
-- cnx_slave_in.adr is byte address
wb_dat_i
=>
cnx_slave_in
(
c_WB_SLAVE_TIMETAG
)
.
dat
,
wb_dat_o
=>
cnx_slave_out
(
c_WB_SLAVE_TIMETAG
)
.
dat
,
...
...
hdl/rtl/timetag_core/timetag_core.vhd
View file @
77bd4c90
...
...
@@ -8,7 +8,7 @@
-- : Dimitrios Lampridis <dimitrios.lampridis@cern.ch>
-- Company : CERN (BE-CO-HT)
-- Created : 2011-11-18
-- Last update: 201
8-11-06
-- Last update: 201
9-05-02
-- Standard : VHDL'93/02
-------------------------------------------------------------------------------
-- Description: Implements a UTC seconds counter and a 125MHz system clock
...
...
@@ -70,8 +70,6 @@ entity timetag_core is
alt_trigin_tag_i
:
in
t_timetag
;
alt_trigin_o
:
out
std_logic
;
current_time_o
:
out
t_timetag
;
-- Wishbone interface
wb_adr_i
:
in
std_logic_vector
(
4
downto
0
);
wb_dat_i
:
in
std_logic_vector
(
31
downto
0
);
...
...
@@ -222,8 +220,6 @@ begin
current_time
.
coarse
<=
wr_tm_cycles_i
when
wr_enabled
=
'1'
else
time_counter
.
coarse
;
current_time_o
<=
current_time
;
------------------------------------------------------------------------------
-- Time trigger signal generation (stretched to two 125MHz cycles)
------------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment