Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC DIO 5ch TTL a
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
6
Issues
6
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 DIO 5ch TTL a
Commits
5ae31c31
Commit
5ae31c31
authored
Jun 29, 2012
by
Javier
Committed by
Miguel Jimenez Lopez
Apr 03, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fist dio-core update from jdiaz
parent
452092a1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1204 additions
and
602 deletions
+1204
-602
wrsw_dio.vhd
modules/wrsw_dio/wrsw_dio.vhd
+144
-135
wrsw_dio.wb
modules/wrsw_dio/wrsw_dio.wb
+129
-92
wrsw_dio_wb.htm
modules/wrsw_dio/wrsw_dio_wb.htm
+676
-262
wrsw_dio_wb.vhd
modules/wrsw_dio/wrsw_dio_wb.vhd
+255
-113
No files found.
modules/wrsw_dio/wrsw_dio.vhd
View file @
5ae31c31
...
...
@@ -11,10 +11,10 @@
-- Standard : VHDL
-------------------------------------------------------------------------------
-- Description: The DIO core allows configuration of each one of the 5 channels of
-- the DIO mezzanine as input or output. For inputs, it provides an accurate
UTC
-- time stamp (using
UTC
from the WRPC, not shown in the diagram) and
-- the DIO mezzanine as input or output. For inputs, it provides an accurate
seconds
-- time stamp (using
seconds
from the WRPC, not shown in the diagram) and
-- a host (PCIe) interrupt via the IRQ Gen block. For outputs, it allows the user
-- to schedule the generation of a pulse at a given future
UTC
time, or to generate
-- to schedule the generation of a pulse at a given future
seconds
time, or to generate
-- it immediately.
-------------------------------------------------------------------------------
-- TODO:
...
...
@@ -60,7 +60,7 @@ entity wrsw_dio is
fmc_sda_b
:
inout
std_logic
;
tm_time_valid_i
:
in
std_logic
;
tm_
utc
_i
:
in
std_logic_vector
(
39
downto
0
);
tm_
seconds
_i
:
in
std_logic_vector
(
39
downto
0
);
tm_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
TRIG0
:
out
std_logic_vector
(
31
downto
0
);
...
...
@@ -69,8 +69,8 @@ entity wrsw_dio is
TRIG3
:
out
std_logic_vector
(
31
downto
0
);
slave_i
:
in
t_wishbone_slave_in
;
slave_o
:
out
t_wishbone_slave_out
;
wb_irq_data_fifo_o
:
out
std_logic
slave_o
:
out
t_wishbone_slave_out
--
wb_irq_data_fifo_o : out std_logic
);
end
wrsw_dio
;
...
...
@@ -78,20 +78,20 @@ entity wrsw_dio is
architecture
rtl
of
wrsw_dio
is
-------------------------------------------------------------------------------
-- Component only for debugging (in order to generate
UTC
time)
-- Component only for debugging (in order to generate
seconds
time)
-------------------------------------------------------------------------------
component
dummy_time
is
port
(
clk_sys
:
in
std_logic
;
rst_n
:
in
std_logic
;
tm_utc
:
out
std_logic_vector
(
39
downto
0
);
tm_cycles
:
out
std_logic_vector
(
27
downto
0
));
end
component
;
--
component dummy_time is
--
port(
--
clk_sys : in std_logic;
--
rst_n : in std_logic;
--
tm_utc : out std_logic_vector(39 downto 0);
--
tm_cycles : out std_logic_vector(27 downto 0));
--
end component;
-------------------------------------------------------------------------------
-- PULSE GENERATOR which produces a 1-tick-long pulse in its
-- output when the
UTC
time passed to it through a vector equals a
-- pre-programmed
UTC
time.
-- output when the
seconds
time passed to it through a vector equals a
-- pre-programmed
seconds
time.
-------------------------------------------------------------------------------
component
pulse_gen
is
generic
(
...
...
@@ -146,7 +146,7 @@ architecture rtl of wrsw_dio is
-------------------------------------------------------------------------------
-- Timing input (from WRPC), clk_ref_i domain
------------------------------------------------------------------------------
-- 1: time given on tm_
utc
_i and tm_cycles_i is valid (otherwise, don't timestamp)
-- 1: time given on tm_
seconds
_i and tm_cycles_i is valid (otherwise, don't timestamp)
tm_time_valid_i
:
in
std_logic
;
-- number of seconds
tm_utc_i
:
in
std_logic_vector
(
39
downto
0
);
...
...
@@ -158,7 +158,7 @@ architecture rtl of wrsw_dio is
---------------------------------------------------------------------------
tag_utc_o
:
out
std_logic_vector
(
39
downto
0
);
tag_cycles_o
:
out
std_logic_vector
(
27
downto
0
);
-- single-cycle pulse: strobe tag on tag_
utc
_o and tag_cycles_o
-- single-cycle pulse: strobe tag on tag_
seconds
_o and tag_cycles_o
tag_valid_p1_o
:
out
std_logic
);
end
component
;
...
...
@@ -184,8 +184,8 @@ architecture rtl of wrsw_dio is
dio_tsf0_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf0_wr_empty_o
:
out
std_logic
;
dio_tsf0_tag_
utc
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf0_tag_
utc
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf0_tag_
seconds
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf0_tag_
seconds
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf0_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_0_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -194,8 +194,8 @@ architecture rtl of wrsw_dio is
dio_tsf1_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf1_wr_empty_o
:
out
std_logic
;
dio_tsf1_tag_
utc
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf1_tag_
utc
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf1_tag_
seconds
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf1_tag_
seconds
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf1_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_1_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -204,8 +204,8 @@ architecture rtl of wrsw_dio is
dio_tsf2_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf2_wr_empty_o
:
out
std_logic
;
dio_tsf2_tag_
utc
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf2_tag_
utc
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf2_tag_
seconds
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf2_tag_
seconds
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf2_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_2_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -214,8 +214,8 @@ architecture rtl of wrsw_dio is
dio_tsf3_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf3_wr_empty_o
:
out
std_logic
;
dio_tsf3_tag_
utc
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf3_tag_
utc
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf3_tag_
seconds
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf3_tag_
seconds
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf3_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_3_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -224,44 +224,54 @@ architecture rtl of wrsw_dio is
dio_tsf4_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf4_wr_empty_o
:
out
std_logic
;
dio_tsf4_tag_
utc
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf4_tag_
utc
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf4_tag_
seconds
_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf4_tag_
seconds
h_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf4_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_4_i
:
in
std_logic
;
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 0 UTC
-based trigger for pulse generation'
dio_trig0_
utc
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 0 UTC
-based trigger for pulse generation'
dio_trigh0_
utc
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 0 seconds
-based trigger for pulse generation'
dio_trig0_
seconds
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 0 seconds
-based trigger for pulse generation'
dio_trigh0_
seconds
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 0 cycles to trigger a pulse generation'
dio_cyc0_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 1 UTC
-based trigger for pulse generation'
dio_trig1_
utc
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 1 UTC
-based trigger for pulse generation'
dio_trigh1_
utc
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 1 seconds
-based trigger for pulse generation'
dio_trig1_
seconds
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 1 seconds
-based trigger for pulse generation'
dio_trigh1_
seconds
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 1 cycles to trigger a pulse generation'
dio_cyc1_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 2 UTC
-based trigger for pulse generation'
dio_trig2_
utc
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 2 UTC
-based trigger for pulse generation'
dio_trigh2_
utc
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 2 seconds
-based trigger for pulse generation'
dio_trig2_
seconds
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 2 seconds
-based trigger for pulse generation'
dio_trigh2_
seconds
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 2 cycles to trigger a pulse generation'
dio_cyc2_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 3 UTC
-based trigger for pulse generation'
dio_trig3_
utc
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 3 UTC
-based trigger for pulse generation'
dio_trigh3_
utc
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 3 seconds
-based trigger for pulse generation'
dio_trig3_
seconds
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 3 seconds
-based trigger for pulse generation'
dio_trigh3_
seconds
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 3 cycles to trigger a pulse generation'
dio_cyc3_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 4 UTC
-based trigger for pulse generation'
dio_trig4_
utc
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 4 UTC
-based trigger for pulse generation'
dio_trigh4_
utc
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 4 seconds
-based trigger for pulse generation'
dio_trig4_
seconds
_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 4 seconds
-based trigger for pulse generation'
dio_trigh4_
seconds
_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 4 cycles to trigger a pulse generation'
dio_cyc4_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: 'trig_enable field' in reg: 'FMC-DIO UTC-based trigger Enable-register for pulse generation'
dio_trig_ena_ena_o
:
out
std_logic_vector
(
4
downto
0
);
-- Port for std_logic_vector field: 'trig_rdy field' in reg: 'FMC-DIO UTC-based trigger ready informaton for pulse generation'
dio_trig_ena_rdy_i
:
in
std_logic_vector
(
4
downto
0
);
-- Port for std_logic_vector field: 'outmode' in reg: 'FMC-DIO output configuration register. '
dio_out_mode_o
:
out
std_logic_vector
(
4
downto
0
);
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch0_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch1_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch2_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch3_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch4_o
:
out
std_logic
;
-- Port for std_logic_vector field: 'trig_rdy field' in reg: 'FMC-DIO seconds-based trigger is ready to accept a new trigger generation request'
dio_trig_rdy_i
:
in
std_logic_vector
(
4
downto
0
);
-- Port for asynchronous (clock: clk_asyn_i) MONOSTABLE field: 'pulse_gen_now_0' in reg: 'Pulse generate immediately'
dio_puls_inmed_pul_inm_0_o
:
out
std_logic
;
-- Port for asynchronous (clock: clk_asyn_i) MONOSTABLE field: 'pulse_gen_now_1' in reg: 'Pulse generate immediately'
...
...
@@ -295,16 +305,16 @@ architecture rtl of wrsw_dio is
signal
sda_pad_in
,
sda_pad_out
,
sda_pad_oen
:
std_logic
;
-- Pulse generator trigger registers signals
type
t_
utc
_array
is
array
(
4
downto
0
)
of
std_logic_vector
(
39
downto
0
);
type
t_
seconds
_array
is
array
(
4
downto
0
)
of
std_logic_vector
(
39
downto
0
);
type
t_cycles_array
is
array
(
4
downto
0
)
of
std_logic_vector
(
27
downto
0
);
signal
trig_
utc
:
t_utc
_array
;
signal
trig_
seconds
:
t_seconds
_array
;
signal
trig_cycles
:
t_cycles_array
;
signal
trig_valid_p1
:
std_logic_vector
(
4
downto
0
);
signal
trig_ready
:
std_logic_vector
(
4
downto
0
);
signal
tag_
utc
:
t_utc
_array
;
signal
tag_
seconds
:
t_seconds
_array
;
signal
tag_cycles
:
t_cycles_array
;
signal
tag_valid_p1
:
std_logic_vector
(
4
downto
0
);
...
...
@@ -312,21 +322,15 @@ architecture rtl of wrsw_dio is
signal
dio_tsf_wr_req
:
std_logic_vector
(
4
downto
0
);
signal
dio_tsf_wr_full
:
std_logic_vector
(
4
downto
0
);
signal
dio_tsf_wr_empty
:
std_logic_vector
(
4
downto
0
);
signal
dio_tsf_tag_
utc
:
t_utc
_array
;
signal
dio_tsf_tag_
seconds
:
t_seconds
_array
;
signal
dio_tsf_tag_cycles
:
t_cycles_array
;
-- Fifos no-empty interrupts
signal
irq_nempty
:
std_logic_vector
(
4
downto
0
);
-- Monostable signals
signal
dio_puls_inmed_pul_inm_0
:
std_logic
;
signal
dio_puls_inmed_pul_inm_1
:
std_logic
;
signal
dio_puls_inmed_pul_inm_2
:
std_logic
;
signal
dio_puls_inmed_pul_inm_3
:
std_logic
;
signal
dio_puls_inmed_pul_inm_4
:
std_logic
;
-- DEBUG SIGNALS FOR USING
UTC
time values from dummy_time instead WRPC
signal
tm_
utc
:
std_logic_vector
(
39
downto
0
);
-- DEBUG SIGNALS FOR USING
seconds
time values from dummy_time instead WRPC
signal
tm_
seconds
:
std_logic_vector
(
39
downto
0
);
signal
tm_cycles
:
std_logic_vector
(
27
downto
0
);
-- WB Crossbar
...
...
@@ -345,24 +349,25 @@ architecture rtl of wrsw_dio is
signal
cbar_master_in
:
t_wishbone_master_in_array
(
c_WB_SLAVES_DIO
-1
downto
0
);
signal
cbar_master_out
:
t_wishbone_master_out_array
(
c_WB_SLAVES_DIO
-1
downto
0
);
-- DIO SIGNAL
signal
dio_out
:
std_logic_vector
(
4
downto
0
);
signal
dio_puls_inmed
:
std_logic_vector
(
4
downto
0
);
-- DIO related signasls
signal
dio_monost
:
std_logic_vector
(
4
downto
0
);
signal
dio_prog
:
std_logic_vector
(
4
downto
0
);
signal
dio_puls_inmed
:
std_logic_vector
(
4
downto
0
);
signal
dio_out_mode
:
std_logic_vector
(
4
downto
0
);
-------------------------------------------------------------------------------
-- rtl
-------------------------------------------------------------------------------
begin
-- Dummy counter for simulationg WRPC
utc
time
U_dummy
:
dummy_time
port
map
(
clk_sys
=>
clk_ref_i
,
rst_n
=>
rst_n_i
,
tm_utc
=>
tm_utc
,
tm_cycles
=>
tm_cycles
);
-- Dummy counter for simulationg WRPC
seconds
time
--
U_dummy: dummy_time
--
port map(
--
clk_sys => clk_ref_i,
--
rst_n => rst_n_i,
--
tm_utc => tm_utc,
--
tm_cycles => tm_cycles
--
);
------------------------------------------------------------------------------
-- GEN AND STAMPER
...
...
@@ -374,19 +379,21 @@ begin
clk_sys_i
=>
clk_sys_i
,
rst_n_i
=>
rst_n_i
,
pulse_o
=>
dio_out
(
i
),
tm_time_valid_i
=>
'1'
,
--tm_time_valid_i,
tm_utc_i
=>
tm_utc
,
--tm_utc_i,
tm_cycles_i
=>
tm_cycles
,
--tm_cycles_i,
pulse_o
=>
dio_prog
(
i
),
-- DEBUG
-- tm_time_valid_i => '1',--tm_time_valid_i,
-- tm_utc_i => tm_utc,--tm_utc_i,
-- tm_cycles_i => tm_cycles, --tm_cycles_i,
tm_time_valid_i
=>
tm_time_valid_i
,
tm_utc_i
=>
tm_seconds_i
,
tm_cycles_i
=>
tm_cycles_i
,
trig_ready_o
=>
trig_ready
(
i
),
trig_utc_i
=>
trig_
utc
(
i
),
trig_utc_i
=>
trig_
seconds
(
i
),
trig_cycles_i
=>
trig_cycles
(
i
),
trig_valid_p1_i
=>
trig_valid_p1
(
i
));
dio_out_o
(
i
)
<=
dio_puls_inmed
(
i
)
when
dio_puls_inmed
(
i
)
=
'1'
else
dio_out
(
i
);
U_pulse_stamper
:
pulse_stamper
port
map
(
...
...
@@ -396,23 +403,18 @@ begin
pulse_a_i
=>
dio_in_i
(
i
),
tm_time_valid_i
=>
'1'
,
--tm_time_valid_i,
tm_utc_i
=>
tm_utc
,
--tm_utc_i,
tm_cycles_i
=>
tm_cycles
,
--tm_cycles_i,
tag_utc_o
=>
tag_utc
(
i
),
-- tm_time_valid_i => '1',--tm_time_valid_i,
-- tm_utc_i => tm_utc, --tm_utc_i,
-- tm_cycles_i => tm_cycles, --tm_cycles_i,
tm_time_valid_i
=>
tm_time_valid_i
,
tm_utc_i
=>
tm_seconds_i
,
tm_cycles_i
=>
tm_cycles_i
,
tag_utc_o
=>
tag_seconds
(
i
),
tag_cycles_o
=>
tag_cycles
(
i
),
tag_valid_p1_o
=>
tag_valid_p1
(
i
));
end
generate
gen_pulse_modules
;
dio_puls_inmed
(
0
)
<=
dio_puls_inmed_pul_inm_0
;
dio_puls_inmed
(
1
)
<=
dio_puls_inmed_pul_inm_1
;
dio_puls_inmed
(
2
)
<=
dio_puls_inmed_pul_inm_2
;
dio_puls_inmed
(
3
)
<=
dio_puls_inmed_pul_inm_3
;
dio_puls_inmed
(
4
)
<=
dio_puls_inmed_pul_inm_4
;
end
generate
gen_pulse_modules
;
------------------------------------------------------------------------------
-- WB ONEWIRE MASTER
...
...
@@ -509,10 +511,9 @@ begin
gen_pio_assignment
:
for
i
in
0
to
4
generate
gpio_in
(
4
*
i
)
<=
dio_in_i
(
i
);
-- DEBUG: BE CAREFULL, dio_out disconected from GPIO because it is used in
-- pulse_gen module!
--dio_out_o(i) <= gpio_out(4*i);
-- END DEBUG
dio_monost
(
i
)
<=
'1'
when
dio_puls_inmed
(
i
)
=
'1'
else
dio_prog
(
i
);
dio_out_o
(
i
)
<=
dio_monost
(
i
)
when
dio_out_mode
(
i
)
=
'1'
else
gpio_out
(
4
*
i
);
dio_oe_n_o
(
i
)
<=
gpio_out
(
4
*
i
+
1
);
dio_term_en_o
(
i
)
<=
gpio_out
(
4
*
i
+
2
);
end
generate
gen_pio_assignment
;
...
...
@@ -526,9 +527,9 @@ begin
--gpio_in(30) <= prsnt_m2c_l;
------------------------------------------------------------------------------
-- WB
UTC
-BASED PULSE GENERATION & INPUT STAMPING
-- WB
seconds
-BASED PULSE GENERATION & INPUT STAMPING
------------------------------------------------------------------------------
U_
utc
_wbslave
:
wrsw_dio_wb
U_
seconds
_wbslave
:
wrsw_dio_wb
port
map
(
rst_n_i
=>
rst_n_i
,
clk_sys_i
=>
clk_sys_i
,
...
...
@@ -541,76 +542,84 @@ begin
wb_we_i
=>
cbar_master_out
(
3
)
.
we
,
wb_ack_o
=>
cbar_master_in
(
3
)
.
ack
,
wb_stall_o
=>
cbar_master_in
(
3
)
.
stall
,
wb_int_o
=>
wb_irq_data_fifo_o
,
--slave_o.int,
wb_int_o
=>
cbar_master_in
(
3
)
.
int
,
--
wb_irq_data_fifo_o, --slave_o.int,
clk_asyn_i
=>
clk_ref_i
,
dio_tsf0_wr_req_i
=>
dio_tsf_wr_req
(
0
),
dio_tsf0_wr_full_o
=>
dio_tsf_wr_full
(
0
),
dio_tsf0_wr_empty_o
=>
dio_tsf_wr_empty
(
0
),
dio_tsf0_tag_
utc_i
=>
dio_tsf_tag_utc
(
0
)(
31
downto
0
),
dio_tsf0_tag_
utch_i
=>
dio_tsf_tag_utc
(
0
)(
39
downto
32
),
dio_tsf0_tag_
seconds_i
=>
dio_tsf_tag_seconds
(
0
)(
31
downto
0
),
dio_tsf0_tag_
secondsh_i
=>
dio_tsf_tag_seconds
(
0
)(
39
downto
32
),
dio_tsf0_tag_cycles_i
=>
dio_tsf_tag_cycles
(
0
),
irq_nempty_0_i
=>
irq_nempty
(
0
),
dio_tsf1_wr_req_i
=>
dio_tsf_wr_req
(
1
),
dio_tsf1_wr_full_o
=>
dio_tsf_wr_full
(
1
),
dio_tsf1_wr_empty_o
=>
dio_tsf_wr_empty
(
1
),
dio_tsf1_tag_
utc_i
=>
dio_tsf_tag_utc
(
1
)(
31
downto
0
),
dio_tsf1_tag_
utch_i
=>
dio_tsf_tag_utc
(
1
)(
39
downto
32
),
dio_tsf1_tag_
seconds_i
=>
dio_tsf_tag_seconds
(
1
)(
31
downto
0
),
dio_tsf1_tag_
secondsh_i
=>
dio_tsf_tag_seconds
(
1
)(
39
downto
32
),
dio_tsf1_tag_cycles_i
=>
dio_tsf_tag_cycles
(
1
),
irq_nempty_1_i
=>
irq_nempty
(
1
),
dio_tsf2_wr_req_i
=>
dio_tsf_wr_req
(
2
),
dio_tsf2_wr_full_o
=>
dio_tsf_wr_full
(
2
),
dio_tsf2_wr_empty_o
=>
dio_tsf_wr_empty
(
2
),
dio_tsf2_tag_
utc_i
=>
dio_tsf_tag_utc
(
2
)(
31
downto
0
),
dio_tsf2_tag_
utch_i
=>
dio_tsf_tag_utc
(
2
)(
39
downto
32
),
dio_tsf2_tag_
seconds_i
=>
dio_tsf_tag_seconds
(
2
)(
31
downto
0
),
dio_tsf2_tag_
secondsh_i
=>
dio_tsf_tag_seconds
(
2
)(
39
downto
32
),
dio_tsf2_tag_cycles_i
=>
dio_tsf_tag_cycles
(
2
),
irq_nempty_2_i
=>
irq_nempty
(
2
),
dio_tsf3_wr_req_i
=>
dio_tsf_wr_req
(
3
),
dio_tsf3_wr_full_o
=>
dio_tsf_wr_full
(
3
),
dio_tsf3_wr_empty_o
=>
dio_tsf_wr_empty
(
3
),
dio_tsf3_tag_
utc_i
=>
dio_tsf_tag_utc
(
3
)(
31
downto
0
),
dio_tsf3_tag_
utch_i
=>
dio_tsf_tag_utc
(
3
)(
39
downto
32
),
dio_tsf3_tag_
seconds_i
=>
dio_tsf_tag_seconds
(
3
)(
31
downto
0
),
dio_tsf3_tag_
secondsh_i
=>
dio_tsf_tag_seconds
(
3
)(
39
downto
32
),
dio_tsf3_tag_cycles_i
=>
dio_tsf_tag_cycles
(
3
),
irq_nempty_3_i
=>
irq_nempty
(
3
),
dio_tsf4_wr_req_i
=>
dio_tsf_wr_req
(
4
),
dio_tsf4_wr_full_o
=>
dio_tsf_wr_full
(
4
),
dio_tsf4_wr_empty_o
=>
dio_tsf_wr_empty
(
4
),
dio_tsf4_tag_
utc_i
=>
dio_tsf_tag_utc
(
4
)(
31
downto
0
),
dio_tsf4_tag_
utch_i
=>
dio_tsf_tag_utc
(
4
)(
39
downto
32
),
dio_tsf4_tag_
seconds_i
=>
dio_tsf_tag_seconds
(
4
)(
31
downto
0
),
dio_tsf4_tag_
secondsh_i
=>
dio_tsf_tag_seconds
(
4
)(
39
downto
32
),
dio_tsf4_tag_cycles_i
=>
dio_tsf_tag_cycles
(
4
),
irq_nempty_4_i
=>
irq_nempty
(
4
),
dio_trig0_
utc_o
=>
trig_utc
(
0
)(
31
downto
0
),
dio_trigh0_
utc_o
=>
trig_utc
(
0
)(
39
downto
32
),
dio_trig0_
seconds_o
=>
trig_seconds
(
0
)(
31
downto
0
),
dio_trigh0_
seconds_o
=>
trig_seconds
(
0
)(
39
downto
32
),
dio_cyc0_cyc_o
=>
trig_cycles
(
0
),
dio_trig1_
utc_o
=>
trig_utc
(
1
)(
31
downto
0
),
dio_trigh1_
utc_o
=>
trig_utc
(
1
)(
39
downto
32
),
dio_trig1_
seconds_o
=>
trig_seconds
(
1
)(
31
downto
0
),
dio_trigh1_
seconds_o
=>
trig_seconds
(
1
)(
39
downto
32
),
dio_cyc1_cyc_o
=>
trig_cycles
(
1
),
dio_trig2_
utc_o
=>
trig_utc
(
2
)(
31
downto
0
),
dio_trigh2_
utc_o
=>
trig_utc
(
2
)(
39
downto
32
),
dio_trig2_
seconds_o
=>
trig_seconds
(
2
)(
31
downto
0
),
dio_trigh2_
seconds_o
=>
trig_seconds
(
2
)(
39
downto
32
),
dio_cyc2_cyc_o
=>
trig_cycles
(
2
),
dio_trig3_
utc_o
=>
trig_utc
(
3
)(
31
downto
0
),
dio_trigh3_
utc_o
=>
trig_utc
(
3
)(
39
downto
32
),
dio_trig3_
seconds_o
=>
trig_seconds
(
3
)(
31
downto
0
),
dio_trigh3_
seconds_o
=>
trig_seconds
(
3
)(
39
downto
32
),
dio_cyc3_cyc_o
=>
trig_cycles
(
3
),
dio_trig4_
utc_o
=>
trig_utc
(
4
)(
31
downto
0
),
dio_trigh4_
utc_o
=>
trig_utc
(
4
)(
39
downto
32
),
dio_trig4_
seconds_o
=>
trig_seconds
(
4
)(
31
downto
0
),
dio_trigh4_
seconds_o
=>
trig_seconds
(
4
)(
39
downto
32
),
dio_cyc4_cyc_o
=>
trig_cycles
(
4
),
dio_trig_ena_ena_o
=>
trig_valid_p1
,
dio_trig_ena_rdy_i
=>
trig_ready
,
dio_puls_inmed_pul_inm_0_o
=>
dio_puls_inmed_pul_inm_0
,
dio_puls_inmed_pul_inm_1_o
=>
dio_puls_inmed_pul_inm_1
,
dio_puls_inmed_pul_inm_2_o
=>
dio_puls_inmed_pul_inm_2
,
dio_puls_inmed_pul_inm_3_o
=>
dio_puls_inmed_pul_inm_3
,
dio_puls_inmed_pul_inm_4_o
=>
dio_puls_inmed_pul_inm_4
dio_out_mode_o
=>
dio_out_mode
,
dio_latch_time_ch0_o
=>
trig_valid_p1
(
0
),
dio_latch_time_ch1_o
=>
trig_valid_p1
(
1
),
dio_latch_time_ch2_o
=>
trig_valid_p1
(
2
),
dio_latch_time_ch3_o
=>
trig_valid_p1
(
3
),
dio_latch_time_ch4_o
=>
trig_valid_p1
(
4
),
dio_trig_rdy_i
=>
trig_ready
,
dio_puls_inmed_pul_inm_0_o
=>
dio_puls_inmed
(
0
),
dio_puls_inmed_pul_inm_1_o
=>
dio_puls_inmed
(
1
),
dio_puls_inmed_pul_inm_2_o
=>
dio_puls_inmed
(
2
),
dio_puls_inmed_pul_inm_3_o
=>
dio_puls_inmed
(
3
),
dio_puls_inmed_pul_inm_4_o
=>
dio_puls_inmed
(
4
)
);
-----------------------------------------------------------------------------------
...
...
@@ -620,14 +629,14 @@ begin
-- TRIG1(27 downto 0) <= tag_cycles(0)(27 downto 0);
-- TRIG1(0) <= cbar_master_in(3).int;
-- TRIG2 <= tm_utc(31 downto 0);
TRIG3
(
2
downto
0
)
<=
dio_in_i
(
0
)
&
dio_out
(
0
)
&
dio_puls_inmed
(
0
);
--
TRIG3(2 downto 0) <= dio_in_i(0) & dio_out(0) & dio_puls_inmed(0);
--TRIG3(4 downto 0) <= dio_tsf_wr_req(0) & tag_valid_p1(0) & gpio_out(1) & dio_in_i(0) & dio_out(0);
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--
UTC
timestamped FIFO-no-empty interrupts
--
seconds
timestamped FIFO-no-empty interrupts
irq_fifos
:
for
i
in
0
to
4
generate
irq_nempty
(
i
)
<=
not
dio_tsf_wr_empty
(
i
);
...
...
@@ -636,12 +645,12 @@ begin
if
rising_edge
(
clk_sys_i
)
then
if
rst_n_i
=
'0'
then
dio_tsf_wr_req
(
i
)
<=
'0'
;
dio_tsf_tag_
utc
(
i
)
<=
(
others
=>
'0'
);
dio_tsf_tag_
seconds
(
i
)
<=
(
others
=>
'0'
);
dio_tsf_tag_cycles
(
i
)
<=
(
others
=>
'0'
);
else
if
((
tag_valid_p1
(
i
)
=
'1'
)
AND
(
dio_tsf_wr_full
(
i
)
=
'0'
))
then
dio_tsf_wr_req
(
i
)
<=
'1'
;
dio_tsf_tag_
utc
(
i
)
<=
tag_utc
(
i
);
dio_tsf_tag_
seconds
(
i
)
<=
tag_seconds
(
i
);
dio_tsf_tag_cycles
(
i
)
<=
tag_cycles
(
i
);
else
dio_tsf_wr_req
(
i
)
<=
'0'
;
...
...
modules/wrsw_dio/wrsw_dio.wb
View file @
5ae31c31
...
...
@@ -18,24 +18,24 @@ peripheral {
prefix = "tsf0";
name = "Timestamp FIFO 0";
description = "This FIFO holds the DIO input timestamps for each input channel. Each entry contains a single timestamp value consisting of 2 numbers:\
- tag_
utc - utc time in seconds
\
- tag_
seconds - seconds time
\
- tag_cycles - counter value for sub-second accuracy";
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_dev = {FIFO_FULL, FIFO_EMPTY};
field {
name = "
UTC
time";
descritpion = "
UTC time in seconds
(LSB)";
prefix = "tag_
utc
";
name = "
seconds
time";
descritpion = "
seconds time
(LSB)";
prefix = "tag_
seconds
";
type = SLV;
size = 32;
};
field {
name = "
UTC
time H";
descritpion = "
UTC
time in seconds (MSB)";
prefix = "tag_
utc
H";
name = "
seconds
time H";
descritpion = "time in seconds (MSB)";
prefix = "tag_
seconds
H";
type = SLV;
size = 8;
};
...
...
@@ -66,24 +66,24 @@ peripheral {
prefix = "tsf1";
name = "Timestamp FIFO 1";
description = "This FIFO holds the DIO input timestamps for each input channel. Each entry contains a single timestamp value consisting of 2 numbers:\
- tag_
utc - utc
time in seconds\
- tag_
seconds -
time in seconds\
- tag_cycles - counter value for sub-second accuracy";
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_dev = {FIFO_FULL, FIFO_EMPTY};
field {
name = "
UTC
time";
descritpion = "
UTC
time in seconds (LSB)";
prefix = "tag_
utc
";
name = "
seconds
time";
descritpion = "time in seconds (LSB)";
prefix = "tag_
seconds
";
type = SLV;
size = 32;
};
field {
name = "
UTC
time H";
descritpion = "
UTC
time in seconds (MSB)";
prefix = "tag_
utc
H";
name = "
seconds
time H";
descritpion = "time in seconds (MSB)";
prefix = "tag_
seconds
H";
type = SLV;
size = 8;
};
...
...
@@ -114,24 +114,24 @@ peripheral {
prefix = "tsf2";
name = "Timestamp FIFO 2";
description = "This FIFO holds the DIO input timestamps for each input channel. Each entry contains a single timestamp value consisting of 2 numbers:\
- tag_
utc - utc
time in seconds\
- tag_
seconds -
time in seconds\
- tag_cycles - counter value for sub-second accuracy";
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_dev = {FIFO_FULL, FIFO_EMPTY};
field {
name = "
UTC
time";
descritpion = "
UTC
time in seconds (LSB)";
prefix = "tag_
utc
";
name = "
seconds
time";
descritpion = "time in seconds (LSB)";
prefix = "tag_
seconds
";
type = SLV;
size = 32;
};
field {
name = "
UTC
time H";
descritpion = "
UTC
time in seconds (MSB)";
prefix = "tag_
utc
H";
name = "
seconds
time H";
descritpion = "time in seconds (MSB)";
prefix = "tag_
seconds
H";
type = SLV;
size = 8;
};
...
...
@@ -162,24 +162,24 @@ peripheral {
prefix = "tsf3";
name = "Timestamp FIFO 3";
description = "This FIFO holds the DIO input timestamps for each input channel. Each entry contains a single timestamp value consisting of 2 numbers:\
- tag_
utc - utc
time in seconds\
- tag_
seconds -
time in seconds\
- tag_cycles - counter value for sub-second accuracy";
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_dev = {FIFO_FULL, FIFO_EMPTY};
field {
name = "
UTC
time";
descritpion = "
UTC
time in seconds (LSB)";
prefix = "tag_
utc
";
name = "
seconds
time";
descritpion = "time in seconds (LSB)";
prefix = "tag_
seconds
";
type = SLV;
size = 32;
};
field {
name = "
UTC
time H";
descritpion = "
UTC
time in seconds (MSB)";
prefix = "tag_
utc
H";
name = "
seconds
time H";
descritpion = "time in seconds (MSB)";
prefix = "tag_
seconds
H";
type = SLV;
size = 8;
};
...
...
@@ -210,24 +210,24 @@ peripheral {
prefix = "tsf4";
name = "Timestamp FIFO 4";
description = "This FIFO holds the DIO input timestamps for each input channel. Each entry contains a single timestamp value consisting of 2 numbers:\
- tag_
utc - utc
time in seconds\
- tag_
seconds -
time in seconds\
- tag_cycles - counter value for sub-second accuracy";
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_dev = {FIFO_FULL, FIFO_EMPTY};
field {
name = "
UTC
time";
descritpion = "
UTC
time in seconds (LSB)";
prefix = "tag_
utc
";
name = "
seconds
time";
descritpion = "time in seconds (LSB)";
prefix = "tag_
seconds
";
type = SLV;
size = 32;
};
field {
name = "
UTC
time H";
descritpion = "
UTC
time in seconds (MSB)";
prefix = "tag_
utc
H";
name = "
seconds
time H";
descritpion = "time in seconds (MSB)";
prefix = "tag_
seconds
H";
type = SLV;
size = 8;
};
...
...
@@ -254,16 +254,16 @@ peripheral {
-- REGISTERS FOR OUTPUT EVENT TIME-BASED TRIGGER
-------------------------------------------------
-- DIO CHANNEL 0:
UTC
value . Readable-writable the bus, readble from the device.
-- DIO CHANNEL 0:
seconds
value . Readable-writable the bus, readble from the device.
reg {
name = "fmc-dio 0
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (LSB).";
name = "fmc-dio 0
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (LSB).";
prefix = "trig0";
field {
name = "
utc
field";
name = "
seconds
field";
description = "TBD";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 32;
access_bus = READ_WRITE;
...
...
@@ -272,14 +272,14 @@ peripheral {
};
reg {
name = "fmc-dio 0
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (MSB).";
name = "fmc-dio 0
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (MSB).";
prefix = "trigH0";
field {
name = "
utc
field";
name = "
seconds
field";
description = "Number of seconds";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 8;
access_bus = READ_WRITE;
...
...
@@ -303,16 +303,16 @@ peripheral {
};
};
-- DIO CHANNEL 1:
UTC
value . Readable-writable the bus, readble from the device.
-- DIO CHANNEL 1:
seconds
value . Readable-writable the bus, readble from the device.
reg {
name = "fmc-dio 1
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (LSB).";
name = "fmc-dio 1
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (LSB).";
prefix = "trig1";
field {
name = "
utc
field";
name = "
seconds
field";
description = "TBD";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 32;
access_bus = READ_WRITE;
...
...
@@ -321,14 +321,14 @@ peripheral {
};
reg {
name = "fmc-dio 1
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (MSB).";
name = "fmc-dio 1
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (MSB).";
prefix = "trigH1";
field {
name = "
utc
field";
name = "
seconds
field";
description = "Number of seconds";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 8;
access_bus = READ_WRITE;
...
...
@@ -352,16 +352,16 @@ peripheral {
};
};
-- DIO CHANNEL 2:
UTC
value . Readable-writable the bus, readble from the device.
-- DIO CHANNEL 2:
seconds
value . Readable-writable the bus, readble from the device.
reg {
name = "fmc-dio 2
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (LSB).";
name = "fmc-dio 2
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (LSB).";
prefix = "trig2";
field {
name = "
utc
field";
name = "
seconds
field";
description = "TBD";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 32;
access_bus = READ_WRITE;
...
...
@@ -370,14 +370,14 @@ peripheral {
};
reg {
name = "fmc-dio 2
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (MSB).";
name = "fmc-dio 2
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (MSB).";
prefix = "trigH2";
field {
name = "
utc
field";
name = "
seconds
field";
description = "Number of seconds";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 8;
access_bus = READ_WRITE;
...
...
@@ -401,16 +401,16 @@ peripheral {
};
};
-- DIO CHANNEL 3:
UTC
value . Readable-writable the bus, readble from the device.
-- DIO CHANNEL 3:
seconds
value . Readable-writable the bus, readble from the device.
reg {
name = "fmc-dio 3
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (LSB).";
name = "fmc-dio 3
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (LSB).";
prefix = "trig3";
field {
name = "
utc
field";
name = "
seconds
field";
description = "TBD";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 32;
access_bus = READ_WRITE;
...
...
@@ -419,14 +419,14 @@ peripheral {
};
reg {
name = "fmc-dio 3
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (MSB).";
name = "fmc-dio 3
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (MSB).";
prefix = "trigH3";
field {
name = "
utc
field";
name = "
seconds
field";
description = "Number of seconds";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 8;
access_bus = READ_WRITE;
...
...
@@ -450,16 +450,16 @@ peripheral {
};
};
-- DIO CHANNEL 4:
UTC
value . Readable-writable the bus, readble from the device.
-- DIO CHANNEL 4:
seconds
value . Readable-writable the bus, readble from the device.
reg {
name = "fmc-dio 4
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (LSB).";
name = "fmc-dio 4
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (LSB).";
prefix = "trig4";
field {
name = "
utc
field";
name = "
seconds
field";
description = "TBD";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 32;
access_bus = READ_WRITE;
...
...
@@ -468,14 +468,14 @@ peripheral {
};
reg {
name = "fmc-dio 4
UTC
-based trigger for pulse generation";
description = "trigger
utc
value for dio output (MSB).";
name = "fmc-dio 4
seconds
-based trigger for pulse generation";
description = "trigger
seconds
value for dio output (MSB).";
prefix = "trigH4";
field {
name = "
utc
field";
name = "
seconds
field";
description = "Number of seconds";
prefix = "
utc
";
prefix = "
seconds
";
type = SLV;
size = 8;
access_bus = READ_WRITE;
...
...
@@ -500,16 +500,16 @@ peripheral {
};
--
UTC trigger enable value. Readable-writable the bus, readble from the device.
--
Monostable/Programmable output or GPIO selection
reg {
name = "FMC-DIO
UTC-based trigger Enable-register for pulse generation
";
description = "
enable register for using using utc trigger values for dio
output.";
prefix = "
trig_ena
";
name = "FMC-DIO
output configuration register.
";
description = "
It allows to choose a Monostable/programmable output or a standard GPIO
output.";
prefix = "
out
";
field {
name = "
trig_enable field
";
description = "
TBD
";
prefix = "
ena
";
name = "
outmode
";
description = "
1 for programmable, 0 for GPIO output mode
";
prefix = "
mode
";
type = SLV;
size = 5;
access_bus = READ_WRITE;
...
...
@@ -517,11 +517,49 @@ peripheral {
};
};
--
UTC trigger ready value. Readable-writable the bus, writable from the device.
--
Single-cycle strobe signal to latch the second/cycles values of the programamble output
reg {
name = "FMC-DIO UTC-based trigger ready informaton for pulse generation";
description = "ready state, waiting trigger commands for dio output.";
prefix = "trig_ena";
name = "Time-programmable output strobe signal";
description = "It is used to latch second/cycles values generation just 1 clock cycle output ";
prefix = "latch";
field {
name = "Sincle-cycle strobe";
description = "It generates a one-clock cycle pulse for programmable time latching";
prefix = "time_ch0";
type = MONOSTABLE;
};
field {
name = "Sincle-cycle strobe";
description = "It generates a one-clock cycle pulse for programmable time latching";
prefix = "time_ch1";
type = MONOSTABLE;
};
field {
name = "Sincle-cycle strobe";
description = "It generates a one-clock cycle pulse for programmable time latching";
prefix = "time_ch2";
type = MONOSTABLE;
};
field {
name = "Sincle-cycle strobe";
description = "It generates a one-clock cycle pulse for programmable time latching";
prefix = "time_ch3";
type = MONOSTABLE;
};
field {
name = "Sincle-cycle strobe";
description = "It generates a one-clock cycle pulse for programmable time latching";
prefix = "time_ch4";
type = MONOSTABLE;
};
};
-- seconds trigger ready value. Readable-writable the bus, writable from the device.
reg {
name = "FMC-DIO seconds-based trigger is ready to accept a new trigger generation request";
description = "ready state, waiting new trigger commands for dio output.";
prefix = "trig";
field {
name = "trig_rdy field";
...
...
@@ -576,7 +614,6 @@ peripheral {
type = MONOSTABLE;
clock = "clk_asyn_i";
};
};
};
modules/wrsw_dio/wrsw_dio_wb.htm
View file @
5ae31c31
...
...
@@ -34,48 +34,49 @@
<span
style=
"margin-left: 0px; "
>
1.
<A
href=
"#sect_1_0"
>
Memory map summary
</a></span><br/>
<span
style=
"margin-left: 0px; "
>
2.
<A
href=
"#sect_2_0"
>
HDL symbol
</a></span><br/>
<span
style=
"margin-left: 0px; "
>
3.
<A
href=
"#sect_3_0"
>
Register description
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.1.
<A
href=
"#sect_3_1"
>
fmc-dio 0
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.2.
<A
href=
"#sect_3_2"
>
fmc-dio 0
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.1.
<A
href=
"#sect_3_1"
>
fmc-dio 0
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.2.
<A
href=
"#sect_3_2"
>
fmc-dio 0
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.3.
<A
href=
"#sect_3_3"
>
fmc-dio 0 cycles to trigger a pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.4.
<A
href=
"#sect_3_4"
>
fmc-dio 1
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.5.
<A
href=
"#sect_3_5"
>
fmc-dio 1
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.4.
<A
href=
"#sect_3_4"
>
fmc-dio 1
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.5.
<A
href=
"#sect_3_5"
>
fmc-dio 1
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.6.
<A
href=
"#sect_3_6"
>
fmc-dio 1 cycles to trigger a pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.7.
<A
href=
"#sect_3_7"
>
fmc-dio 2
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.8.
<A
href=
"#sect_3_8"
>
fmc-dio 2
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.7.
<A
href=
"#sect_3_7"
>
fmc-dio 2
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.8.
<A
href=
"#sect_3_8"
>
fmc-dio 2
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.9.
<A
href=
"#sect_3_9"
>
fmc-dio 2 cycles to trigger a pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.10.
<A
href=
"#sect_3_10"
>
fmc-dio 3
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.11.
<A
href=
"#sect_3_11"
>
fmc-dio 3
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.10.
<A
href=
"#sect_3_10"
>
fmc-dio 3
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.11.
<A
href=
"#sect_3_11"
>
fmc-dio 3
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.12.
<A
href=
"#sect_3_12"
>
fmc-dio 3 cycles to trigger a pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.13.
<A
href=
"#sect_3_13"
>
fmc-dio 4
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.14.
<A
href=
"#sect_3_14"
>
fmc-dio 4
UTC
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.13.
<A
href=
"#sect_3_13"
>
fmc-dio 4
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.14.
<A
href=
"#sect_3_14"
>
fmc-dio 4
seconds
-based trigger for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.15.
<A
href=
"#sect_3_15"
>
fmc-dio 4 cycles to trigger a pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.16.
<A
href=
"#sect_3_16"
>
FMC-DIO UTC-based trigger Enable-register for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.17.
<A
href=
"#sect_3_17"
>
FMC-DIO UTC-based trigger ready informaton for pulse generation
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.18.
<A
href=
"#sect_3_18"
>
Pulse generate immediately
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.19.
<A
href=
"#sect_3_19"
>
Interrupt disable register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.20.
<A
href=
"#sect_3_20"
>
Interrupt enable register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.21.
<A
href=
"#sect_3_21"
>
Interrupt mask register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.22.
<A
href=
"#sect_3_22"
>
Interrupt status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.23.
<A
href=
"#sect_3_23"
>
FIFO 'Timestamp FIFO 0' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.24.
<A
href=
"#sect_3_24"
>
FIFO 'Timestamp FIFO 0' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.25.
<A
href=
"#sect_3_25"
>
FIFO 'Timestamp FIFO 0' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.26.
<A
href=
"#sect_3_26"
>
FIFO 'Timestamp FIFO 0' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.27.
<A
href=
"#sect_3_27"
>
FIFO 'Timestamp FIFO 1' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.28.
<A
href=
"#sect_3_28"
>
FIFO 'Timestamp FIFO 1' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.29.
<A
href=
"#sect_3_29"
>
FIFO 'Timestamp FIFO 1' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.30.
<A
href=
"#sect_3_30"
>
FIFO 'Timestamp FIFO 1' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.31.
<A
href=
"#sect_3_31"
>
FIFO 'Timestamp FIFO 2' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.32.
<A
href=
"#sect_3_32"
>
FIFO 'Timestamp FIFO 2' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.33.
<A
href=
"#sect_3_33"
>
FIFO 'Timestamp FIFO 2' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.34.
<A
href=
"#sect_3_34"
>
FIFO 'Timestamp FIFO 2' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.35.
<A
href=
"#sect_3_35"
>
FIFO 'Timestamp FIFO 3' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.36.
<A
href=
"#sect_3_36"
>
FIFO 'Timestamp FIFO 3' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.37.
<A
href=
"#sect_3_37"
>
FIFO 'Timestamp FIFO 3' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.38.
<A
href=
"#sect_3_38"
>
FIFO 'Timestamp FIFO 3' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.39.
<A
href=
"#sect_3_39"
>
FIFO 'Timestamp FIFO 4' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.40.
<A
href=
"#sect_3_40"
>
FIFO 'Timestamp FIFO 4' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.41.
<A
href=
"#sect_3_41"
>
FIFO 'Timestamp FIFO 4' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.42.
<A
href=
"#sect_3_42"
>
FIFO 'Timestamp FIFO 4' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.16.
<A
href=
"#sect_3_16"
>
FMC-DIO output configuration register.
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.17.
<A
href=
"#sect_3_17"
>
Time-programmable output strobe signal
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.18.
<A
href=
"#sect_3_18"
>
FMC-DIO seconds-based trigger is ready to accept a new trigger generation request
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.19.
<A
href=
"#sect_3_19"
>
Pulse generate immediately
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.20.
<A
href=
"#sect_3_20"
>
Interrupt disable register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.21.
<A
href=
"#sect_3_21"
>
Interrupt enable register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.22.
<A
href=
"#sect_3_22"
>
Interrupt mask register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.23.
<A
href=
"#sect_3_23"
>
Interrupt status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.24.
<A
href=
"#sect_3_24"
>
FIFO 'Timestamp FIFO 0' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.25.
<A
href=
"#sect_3_25"
>
FIFO 'Timestamp FIFO 0' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.26.
<A
href=
"#sect_3_26"
>
FIFO 'Timestamp FIFO 0' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.27.
<A
href=
"#sect_3_27"
>
FIFO 'Timestamp FIFO 0' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.28.
<A
href=
"#sect_3_28"
>
FIFO 'Timestamp FIFO 1' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.29.
<A
href=
"#sect_3_29"
>
FIFO 'Timestamp FIFO 1' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.30.
<A
href=
"#sect_3_30"
>
FIFO 'Timestamp FIFO 1' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.31.
<A
href=
"#sect_3_31"
>
FIFO 'Timestamp FIFO 1' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.32.
<A
href=
"#sect_3_32"
>
FIFO 'Timestamp FIFO 2' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.33.
<A
href=
"#sect_3_33"
>
FIFO 'Timestamp FIFO 2' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.34.
<A
href=
"#sect_3_34"
>
FIFO 'Timestamp FIFO 2' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.35.
<A
href=
"#sect_3_35"
>
FIFO 'Timestamp FIFO 2' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.36.
<A
href=
"#sect_3_36"
>
FIFO 'Timestamp FIFO 3' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.37.
<A
href=
"#sect_3_37"
>
FIFO 'Timestamp FIFO 3' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.38.
<A
href=
"#sect_3_38"
>
FIFO 'Timestamp FIFO 3' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.39.
<A
href=
"#sect_3_39"
>
FIFO 'Timestamp FIFO 3' control/status register
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.40.
<A
href=
"#sect_3_40"
>
FIFO 'Timestamp FIFO 4' data output register 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.41.
<A
href=
"#sect_3_41"
>
FIFO 'Timestamp FIFO 4' data output register 1
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.42.
<A
href=
"#sect_3_42"
>
FIFO 'Timestamp FIFO 4' data output register 2
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
3.43.
<A
href=
"#sect_3_43"
>
FIFO 'Timestamp FIFO 4' control/status register
</a></span><br/>
<span
style=
"margin-left: 0px; "
>
5.
<A
href=
"#sect_5_0"
>
Interrupts
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
5.1.
<A
href=
"#sect_5_1"
>
dio fifo not-empty 0
</a></span><br/>
<span
style=
"margin-left: 20px; "
>
5.2.
<A
href=
"#sect_5_2"
>
dio fifo not-empty 1
</a></span><br/>
...
...
@@ -109,7 +110,7 @@ C prefix
REG
</td>
<td
>
<A
href=
"#TRIG0"
>
fmc-dio 0
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIG0"
>
fmc-dio 0
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trig0
...
...
@@ -126,7 +127,7 @@ TRIG0
REG
</td>
<td
>
<A
href=
"#TRIGH0"
>
fmc-dio 0
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIGH0"
>
fmc-dio 0
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trigh0
...
...
@@ -160,7 +161,7 @@ CYC0
REG
</td>
<td
>
<A
href=
"#TRIG1"
>
fmc-dio 1
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIG1"
>
fmc-dio 1
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trig1
...
...
@@ -177,7 +178,7 @@ TRIG1
REG
</td>
<td
>
<A
href=
"#TRIGH1"
>
fmc-dio 1
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIGH1"
>
fmc-dio 1
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trigh1
...
...
@@ -211,7 +212,7 @@ CYC1
REG
</td>
<td
>
<A
href=
"#TRIG2"
>
fmc-dio 2
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIG2"
>
fmc-dio 2
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trig2
...
...
@@ -228,7 +229,7 @@ TRIG2
REG
</td>
<td
>
<A
href=
"#TRIGH2"
>
fmc-dio 2
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIGH2"
>
fmc-dio 2
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trigh2
...
...
@@ -262,7 +263,7 @@ CYC2
REG
</td>
<td
>
<A
href=
"#TRIG3"
>
fmc-dio 3
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIG3"
>
fmc-dio 3
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trig3
...
...
@@ -279,7 +280,7 @@ TRIG3
REG
</td>
<td
>
<A
href=
"#TRIGH3"
>
fmc-dio 3
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIGH3"
>
fmc-dio 3
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trigh3
...
...
@@ -313,7 +314,7 @@ CYC3
REG
</td>
<td
>
<A
href=
"#TRIG4"
>
fmc-dio 4
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIG4"
>
fmc-dio 4
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trig4
...
...
@@ -330,7 +331,7 @@ TRIG4
REG
</td>
<td
>
<A
href=
"#TRIGH4"
>
fmc-dio 4
UTC
-based trigger for pulse generation
</a>
<A
href=
"#TRIGH4"
>
fmc-dio 4
seconds
-based trigger for pulse generation
</a>
</td>
<td
class=
"td_code"
>
dio_trigh4
...
...
@@ -364,13 +365,13 @@ CYC4
REG
</td>
<td
>
<A
href=
"#
TRIG_ENA"
>
FMC-DIO UTC-based trigger Enable-register for pulse generation
</a>
<A
href=
"#
OUT"
>
FMC-DIO output configuration register.
</a>
</td>
<td
class=
"td_code"
>
dio_
trig_ena
dio_
out
</td>
<td
class=
"td_code"
>
TRIG_ENA
OUT
</td>
</tr>
<tr
class=
"tr_odd"
>
...
...
@@ -381,13 +382,13 @@ TRIG_ENA
REG
</td>
<td
>
<A
href=
"#
TRIG_ENA"
>
FMC-DIO UTC-based trigger ready informaton for pulse generation
</a>
<A
href=
"#
LATCH"
>
Time-programmable output strobe signal
</a>
</td>
<td
class=
"td_code"
>
dio_
trig_ena
dio_
latch
</td>
<td
class=
"td_code"
>
TRIG_ENA
LATCH
</td>
</tr>
<tr
class=
"tr_even"
>
...
...
@@ -398,6 +399,23 @@ TRIG_ENA
REG
</td>
<td
>
<A
href=
"#TRIG"
>
FMC-DIO seconds-based trigger is ready to accept a new trigger generation request
</a>
</td>
<td
class=
"td_code"
>
dio_trig
</td>
<td
class=
"td_code"
>
TRIG
</td>
</tr>
<tr
class=
"tr_odd"
>
<td
class=
"td_code"
>
0x12
</td>
<td
>
REG
</td>
<td
>
<A
href=
"#PULS_INMED"
>
Pulse generate immediately
</a>
</td>
<td
class=
"td_code"
>
...
...
@@ -407,7 +425,7 @@ dio_puls_inmed
PULS_INMED
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x18
</td>
...
...
@@ -424,7 +442,7 @@ dio_eic_idr
EIC_IDR
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x19
</td>
...
...
@@ -441,7 +459,7 @@ dio_eic_ier
EIC_IER
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x1a
</td>
...
...
@@ -458,7 +476,7 @@ dio_eic_imr
EIC_IMR
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x1b
</td>
...
...
@@ -475,7 +493,7 @@ dio_eic_isr
EIC_ISR
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x1c
</td>
...
...
@@ -492,7 +510,7 @@ dio_tsf0_r0
TSF0_R0
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x1d
</td>
...
...
@@ -509,7 +527,7 @@ dio_tsf0_r1
TSF0_R1
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x1e
</td>
...
...
@@ -526,7 +544,7 @@ dio_tsf0_r2
TSF0_R2
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x1f
</td>
...
...
@@ -543,7 +561,7 @@ dio_tsf0_csr
TSF0_CSR
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x20
</td>
...
...
@@ -560,7 +578,7 @@ dio_tsf1_r0
TSF1_R0
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x21
</td>
...
...
@@ -577,7 +595,7 @@ dio_tsf1_r1
TSF1_R1
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x22
</td>
...
...
@@ -594,7 +612,7 @@ dio_tsf1_r2
TSF1_R2
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x23
</td>
...
...
@@ -611,7 +629,7 @@ dio_tsf1_csr
TSF1_CSR
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x24
</td>
...
...
@@ -628,7 +646,7 @@ dio_tsf2_r0
TSF2_R0
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x25
</td>
...
...
@@ -645,7 +663,7 @@ dio_tsf2_r1
TSF2_R1
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x26
</td>
...
...
@@ -662,7 +680,7 @@ dio_tsf2_r2
TSF2_R2
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x27
</td>
...
...
@@ -679,7 +697,7 @@ dio_tsf2_csr
TSF2_CSR
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x28
</td>
...
...
@@ -696,7 +714,7 @@ dio_tsf3_r0
TSF3_R0
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x29
</td>
...
...
@@ -713,7 +731,7 @@ dio_tsf3_r1
TSF3_R1
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x2a
</td>
...
...
@@ -730,7 +748,7 @@ dio_tsf3_r2
TSF3_R2
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x2b
</td>
...
...
@@ -747,7 +765,7 @@ dio_tsf3_csr
TSF3_CSR
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x2c
</td>
...
...
@@ -764,7 +782,7 @@ dio_tsf4_r0
TSF4_R0
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x2d
</td>
...
...
@@ -781,7 +799,7 @@ dio_tsf4_r1
TSF4_R1
</td>
</tr>
<tr
class=
"tr_
odd
"
>
<tr
class=
"tr_
even
"
>
<td
class=
"td_code"
>
0x2e
</td>
...
...
@@ -798,7 +816,7 @@ dio_tsf4_r2
TSF4_R2
</td>
</tr>
<tr
class=
"tr_
even
"
>
<tr
class=
"tr_
odd
"
>
<td
class=
"td_code"
>
0x2f
</td>
...
...
@@ -898,7 +916,7 @@ wb_dat_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_tsf0_tag_
utc
_i[31:0]
dio_tsf0_tag_
seconds
_i[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -915,7 +933,7 @@ wb_cyc_i
</td>
<td
class=
"td_pblock_right"
>
dio_tsf0_tag_
utc
h_i[7:0]
dio_tsf0_tag_
seconds
h_i[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1085,7 +1103,7 @@ dio_tsf1_wr_empty_o
</td>
<td
class=
"td_pblock_right"
>
dio_tsf1_tag_
utc
_i[31:0]
dio_tsf1_tag_
seconds
_i[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1102,7 +1120,7 @@ dio_tsf1_tag_utc_i[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_tsf1_tag_
utc
h_i[7:0]
dio_tsf1_tag_
seconds
h_i[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1272,7 +1290,7 @@ dio_tsf2_wr_empty_o
</td>
<td
class=
"td_pblock_right"
>
dio_tsf2_tag_
utc
_i[31:0]
dio_tsf2_tag_
seconds
_i[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1289,7 +1307,7 @@ dio_tsf2_tag_utc_i[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_tsf2_tag_
utc
h_i[7:0]
dio_tsf2_tag_
seconds
h_i[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1459,7 +1477,7 @@ dio_tsf3_wr_empty_o
</td>
<td
class=
"td_pblock_right"
>
dio_tsf3_tag_
utc
_i[31:0]
dio_tsf3_tag_
seconds
_i[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1476,7 +1494,7 @@ dio_tsf3_tag_utc_i[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_tsf3_tag_
utc
h_i[7:0]
dio_tsf3_tag_
seconds
h_i[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1646,7 +1664,7 @@ dio_tsf4_wr_empty_o
</td>
<td
class=
"td_pblock_right"
>
dio_tsf4_tag_
utc
_i[31:0]
dio_tsf4_tag_
seconds
_i[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1663,7 +1681,7 @@ dio_tsf4_tag_utc_i[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_tsf4_tag_
utc
h_i[7:0]
dio_tsf4_tag_
seconds
h_i[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -1765,7 +1783,7 @@ irq_nempty_4_i
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 0
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 0
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -1782,7 +1800,7 @@ irq_nempty_4_i
</td>
<td
class=
"td_pblock_right"
>
dio_trig0_
utc
_o[31:0]
dio_trig0_
seconds
_o[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -1816,7 +1834,7 @@ dio_trig0_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 0
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 0
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -1833,7 +1851,7 @@ dio_trig0_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trigh0_
utc
_o[7:0]
dio_trigh0_
seconds
_o[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -1918,7 +1936,7 @@ dio_cyc0_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 1
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 1
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -1935,7 +1953,7 @@ dio_cyc0_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trig1_
utc
_o[31:0]
dio_trig1_
seconds
_o[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -1969,7 +1987,7 @@ dio_trig1_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 1
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 1
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -1986,7 +2004,7 @@ dio_trig1_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trigh1_
utc
_o[7:0]
dio_trigh1_
seconds
_o[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2071,7 +2089,7 @@ dio_cyc1_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 2
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 2
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2088,7 +2106,7 @@ dio_cyc1_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trig2_
utc
_o[31:0]
dio_trig2_
seconds
_o[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2122,7 +2140,7 @@ dio_trig2_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 2
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 2
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2139,7 +2157,7 @@ dio_trig2_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trigh2_
utc
_o[7:0]
dio_trigh2_
seconds
_o[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2224,7 +2242,7 @@ dio_cyc2_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 3
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 3
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2241,7 +2259,7 @@ dio_cyc2_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trig3_
utc
_o[31:0]
dio_trig3_
seconds
_o[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2275,7 +2293,7 @@ dio_trig3_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 3
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 3
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2292,7 +2310,7 @@ dio_trig3_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trigh3_
utc
_o[7:0]
dio_trigh3_
seconds
_o[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2377,7 +2395,7 @@ dio_cyc3_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 4
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 4
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2394,7 +2412,7 @@ dio_cyc3_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trig4_
utc
_o[31:0]
dio_trig4_
seconds
_o[31:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2428,7 +2446,7 @@ dio_trig4_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
fmc-dio 4
UTC
-based trigger for pulse generation:
</b>
<b>
fmc-dio 4
seconds
-based trigger for pulse generation:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2445,7 +2463,7 @@ dio_trig4_utc_o[31:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trigh4_
utc
_o[7:0]
dio_trigh4_
seconds
_o[7:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2530,7 +2548,7 @@ dio_cyc4_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
FMC-DIO
UTC-based trigger Enable-register for pulse generation
:
</b>
<b>
FMC-DIO
output configuration register.
:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2547,7 +2565,7 @@ dio_cyc4_cyc_o[27:0]
</td>
<td
class=
"td_pblock_right"
>
dio_
trig_ena_ena
_o[4:0]
dio_
out_mode
_o[4:0]
</td>
<td
class=
"td_arrow_right"
>
⇒
...
...
@@ -2581,7 +2599,7 @@ dio_trig_ena_ena_o[4:0]
</td>
<td
class=
"td_pblock_right"
>
<b>
FMC-DIO UTC-based trigger ready informaton for pulse generation
:
</b>
<b>
Time-programmable output strobe signal
:
</b>
</td>
<td
class=
"td_arrow_right"
>
...
...
@@ -2598,7 +2616,126 @@ dio_trig_ena_ena_o[4:0]
</td>
<td
class=
"td_pblock_right"
>
dio_trig_ena_rdy_i[4:0]
dio_latch_time_ch0_o
</td>
<td
class=
"td_arrow_right"
>
→
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
dio_latch_time_ch1_o
</td>
<td
class=
"td_arrow_right"
>
→
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
dio_latch_time_ch2_o
</td>
<td
class=
"td_arrow_right"
>
→
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
dio_latch_time_ch3_o
</td>
<td
class=
"td_arrow_right"
>
→
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
dio_latch_time_ch4_o
</td>
<td
class=
"td_arrow_right"
>
→
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
</td>
<td
class=
"td_arrow_right"
>
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
<b>
FMC-DIO seconds-based trigger is ready to accept a new trigger generation request:
</b>
</td>
<td
class=
"td_arrow_right"
>
</td>
</tr>
<tr>
<td
class=
"td_arrow_left"
>
</td>
<td
class=
"td_pblock_left"
>
</td>
<td
class=
"td_sym_center"
>
</td>
<td
class=
"td_pblock_right"
>
dio_trig_rdy_i[4:0]
</td>
<td
class=
"td_arrow_right"
>
⇐
...
...
@@ -3237,7 +3374,7 @@ dio_puls_inmed_pul_inm_4_o
<h3><a
name=
"sect_3_0"
>
3. Register description
</a></h3>
<a
name=
"TRIG0"
></a>
<h3><a
name=
"sect_3_1"
>
3.1. fmc-dio 0
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_1"
>
3.1. fmc-dio 0
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -3273,7 +3410,7 @@ TRIG0
</tr>
</table>
<p>
trigger
utc
value for dio output (LSB).
trigger
seconds
value for dio output (LSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -3304,7 +3441,7 @@ trigger utc value for dio output (LSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[31:24]
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -3358,7 +3495,7 @@ UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[23:16]
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -3412,7 +3549,7 @@ UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[15:8]
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -3466,7 +3603,7 @@ UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -3493,12 +3630,12 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
TBD
</ul>
<a
name=
"TRIGH0"
></a>
<h3><a
name=
"sect_3_2"
>
3.2. fmc-dio 0
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_2"
>
3.2. fmc-dio 0
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -3534,7 +3671,7 @@ TRIGH0
</tr>
</table>
<p>
trigger
utc
value for dio output (MSB).
trigger
seconds
value for dio output (MSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -3727,7 +3864,7 @@ trigger utc value for dio output (MSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -3754,8 +3891,8 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
Number of seconds
</ul>
<a
name=
"CYC0"
></a>
...
...
@@ -4020,7 +4157,7 @@ CYC
<br>
Number of cycles in one second (depends on current clock frequency)
</ul>
<a
name=
"TRIG1"
></a>
<h3><a
name=
"sect_3_4"
>
3.4. fmc-dio 1
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_4"
>
3.4. fmc-dio 1
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -4056,7 +4193,7 @@ TRIG1
</tr>
</table>
<p>
trigger
utc
value for dio output (LSB).
trigger
seconds
value for dio output (LSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -4087,7 +4224,7 @@ trigger utc value for dio output (LSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[31:24]
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -4141,7 +4278,7 @@ UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[23:16]
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -4195,7 +4332,7 @@ UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[15:8]
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -4249,7 +4386,7 @@ UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -4276,12 +4413,12 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
TBD
</ul>
<a
name=
"TRIGH1"
></a>
<h3><a
name=
"sect_3_5"
>
3.5. fmc-dio 1
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_5"
>
3.5. fmc-dio 1
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -4317,7 +4454,7 @@ TRIGH1
</tr>
</table>
<p>
trigger
utc
value for dio output (MSB).
trigger
seconds
value for dio output (MSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -4510,7 +4647,7 @@ trigger utc value for dio output (MSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -4537,8 +4674,8 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
Number of seconds
</ul>
<a
name=
"CYC1"
></a>
...
...
@@ -4803,7 +4940,7 @@ CYC
<br>
Number of cycles in one second (depends on current clock frequency)
</ul>
<a
name=
"TRIG2"
></a>
<h3><a
name=
"sect_3_7"
>
3.7. fmc-dio 2
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_7"
>
3.7. fmc-dio 2
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -4839,7 +4976,7 @@ TRIG2
</tr>
</table>
<p>
trigger
utc
value for dio output (LSB).
trigger
seconds
value for dio output (LSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -4870,7 +5007,7 @@ trigger utc value for dio output (LSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[31:24]
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -4924,7 +5061,7 @@ UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[23:16]
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -4978,7 +5115,7 @@ UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[15:8]
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -5032,7 +5169,7 @@ UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -5059,12 +5196,12 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
TBD
</ul>
<a
name=
"TRIGH2"
></a>
<h3><a
name=
"sect_3_8"
>
3.8. fmc-dio 2
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_8"
>
3.8. fmc-dio 2
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -5100,7 +5237,7 @@ TRIGH2
</tr>
</table>
<p>
trigger
utc
value for dio output (MSB).
trigger
seconds
value for dio output (MSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -5293,7 +5430,7 @@ trigger utc value for dio output (MSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -5320,8 +5457,8 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
Number of seconds
</ul>
<a
name=
"CYC2"
></a>
...
...
@@ -5586,7 +5723,7 @@ CYC
<br>
Number of cycles in one second (depends on current clock frequency)
</ul>
<a
name=
"TRIG3"
></a>
<h3><a
name=
"sect_3_10"
>
3.10. fmc-dio 3
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_10"
>
3.10. fmc-dio 3
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -5622,7 +5759,7 @@ TRIG3
</tr>
</table>
<p>
trigger
utc
value for dio output (LSB).
trigger
seconds
value for dio output (LSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -5653,7 +5790,7 @@ trigger utc value for dio output (LSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[31:24]
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -5707,7 +5844,7 @@ UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[23:16]
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -5761,7 +5898,7 @@ UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[15:8]
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -5815,7 +5952,7 @@ UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -5842,12 +5979,12 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
TBD
</ul>
<a
name=
"TRIGH3"
></a>
<h3><a
name=
"sect_3_11"
>
3.11. fmc-dio 3
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_11"
>
3.11. fmc-dio 3
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -5883,7 +6020,7 @@ TRIGH3
</tr>
</table>
<p>
trigger
utc
value for dio output (MSB).
trigger
seconds
value for dio output (MSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -6076,7 +6213,7 @@ trigger utc value for dio output (MSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -6103,8 +6240,8 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
Number of seconds
</ul>
<a
name=
"CYC3"
></a>
...
...
@@ -6369,7 +6506,7 @@ CYC
<br>
Number of cycles in one second (depends on current clock frequency)
</ul>
<a
name=
"TRIG4"
></a>
<h3><a
name=
"sect_3_13"
>
3.13. fmc-dio 4
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_13"
>
3.13. fmc-dio 4
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -6405,7 +6542,7 @@ TRIG4
</tr>
</table>
<p>
trigger
utc
value for dio output (LSB).
trigger
seconds
value for dio output (LSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -6436,7 +6573,7 @@ trigger utc value for dio output (LSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[31:24]
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -6490,7 +6627,7 @@ UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[23:16]
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -6544,7 +6681,7 @@ UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[15:8]
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -6598,7 +6735,7 @@ UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -6625,12 +6762,12 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
TBD
</ul>
<a
name=
"TRIGH4"
></a>
<h3><a
name=
"sect_3_14"
>
3.14. fmc-dio 4
UTC
-based trigger for pulse generation
</a></h3>
<h3><a
name=
"sect_3_14"
>
3.14. fmc-dio 4
seconds
-based trigger for pulse generation
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -6666,7 +6803,7 @@ TRIGH4
</tr>
</table>
<p>
trigger
utc
value for dio output (MSB).
trigger
seconds
value for dio output (MSB).
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -6859,7 +6996,7 @@ trigger utc value for dio output (MSB).
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
UTC
[7:0]
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -6886,8 +7023,8 @@ UTC[7:0]
</table>
<ul>
<li><b>
UTC
</b>
[
<i>
read/write
</i>
]:
utc
field
SECONDS
</b>
[
<i>
read/write
</i>
]:
seconds
field
<br>
Number of seconds
</ul>
<a
name=
"CYC4"
></a>
...
...
@@ -7151,15 +7288,15 @@ CYC
</b>
[
<i>
read/write
</i>
]: cycles field
<br>
Number of cycles in one second (depends on current clock frequency)
</ul>
<a
name=
"
TRIG_ENA
"
></a>
<h3><a
name=
"sect_3_16"
>
3.16. FMC-DIO
UTC-based trigger Enable-register for pulse generation
</a></h3>
<a
name=
"
OUT
"
></a>
<h3><a
name=
"sect_3_16"
>
3.16. FMC-DIO
output configuration register.
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
<b>
HW prefix:
</b>
</td>
<td
class=
"td_code"
>
dio_
trig_ena
dio_
out
</td>
</tr>
<tr>
...
...
@@ -7175,7 +7312,7 @@ dio_trig_ena
<b>
C prefix:
</b>
</td>
<td
class=
"td_code"
>
TRIG_ENA
OUT
</td>
</tr>
<tr>
...
...
@@ -7188,7 +7325,7 @@ TRIG_ENA
</tr>
</table>
<p>
enable register for using using utc trigger values for dio
output.
It allows to choose a Monostable/programmable output or a standard GPIO
output.
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -7390,7 +7527,7 @@ enable register for using using utc trigger values for dio output.
-
</td>
<td
style=
"border: solid 1px black;"
colspan=
5
class=
"td_field"
>
ENA
[4:0]
MODE
[4:0]
</td>
<td
>
...
...
@@ -7408,19 +7545,19 @@ ENA[4:0]
</table>
<ul>
<li><b>
ENA
</b>
[
<i>
read/write
</i>
]:
trig_enable field
<br>
TBD
MODE
</b>
[
<i>
read/write
</i>
]:
outmode
<br>
1 for programmable, 0 for GPIO output mode
</ul>
<a
name=
"
TRIG_ENA
"
></a>
<h3><a
name=
"sect_3_17"
>
3.17.
FMC-DIO UTC-based trigger ready informaton for pulse generation
</a></h3>
<a
name=
"
LATCH
"
></a>
<h3><a
name=
"sect_3_17"
>
3.17.
Time-programmable output strobe signal
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
<b>
HW prefix:
</b>
</td>
<td
class=
"td_code"
>
dio_
trig_ena
dio_
latch
</td>
</tr>
<tr>
...
...
@@ -7436,7 +7573,7 @@ dio_trig_ena
<b>
C prefix:
</b>
</td>
<td
class=
"td_code"
>
TRIG_ENA
LATCH
</td>
</tr>
<tr>
...
...
@@ -7449,7 +7586,284 @@ TRIG_ENA
</tr>
</table>
<p>
ready state, waiting trigger commands for dio output.
It is used to latch second/cycles values generation just 1 clock cycle output
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
class=
"td_bit"
>
31
</td>
<td
class=
"td_bit"
>
30
</td>
<td
class=
"td_bit"
>
29
</td>
<td
class=
"td_bit"
>
28
</td>
<td
class=
"td_bit"
>
27
</td>
<td
class=
"td_bit"
>
26
</td>
<td
class=
"td_bit"
>
25
</td>
<td
class=
"td_bit"
>
24
</td>
</tr>
<tr>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
</tr>
</table>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
class=
"td_bit"
>
23
</td>
<td
class=
"td_bit"
>
22
</td>
<td
class=
"td_bit"
>
21
</td>
<td
class=
"td_bit"
>
20
</td>
<td
class=
"td_bit"
>
19
</td>
<td
class=
"td_bit"
>
18
</td>
<td
class=
"td_bit"
>
17
</td>
<td
class=
"td_bit"
>
16
</td>
</tr>
<tr>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
</tr>
</table>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
class=
"td_bit"
>
15
</td>
<td
class=
"td_bit"
>
14
</td>
<td
class=
"td_bit"
>
13
</td>
<td
class=
"td_bit"
>
12
</td>
<td
class=
"td_bit"
>
11
</td>
<td
class=
"td_bit"
>
10
</td>
<td
class=
"td_bit"
>
9
</td>
<td
class=
"td_bit"
>
8
</td>
</tr>
<tr>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
</tr>
</table>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
class=
"td_bit"
>
7
</td>
<td
class=
"td_bit"
>
6
</td>
<td
class=
"td_bit"
>
5
</td>
<td
class=
"td_bit"
>
4
</td>
<td
class=
"td_bit"
>
3
</td>
<td
class=
"td_bit"
>
2
</td>
<td
class=
"td_bit"
>
1
</td>
<td
class=
"td_bit"
>
0
</td>
</tr>
<tr>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
class=
"td_unused"
>
-
</td>
<td
style=
"border: solid 1px black;"
colspan=
1
class=
"td_field"
>
TIME_CH4
</td>
<td
style=
"border: solid 1px black;"
colspan=
1
class=
"td_field"
>
TIME_CH3
</td>
<td
style=
"border: solid 1px black;"
colspan=
1
class=
"td_field"
>
TIME_CH2
</td>
<td
style=
"border: solid 1px black;"
colspan=
1
class=
"td_field"
>
TIME_CH1
</td>
<td
style=
"border: solid 1px black;"
colspan=
1
class=
"td_field"
>
TIME_CH0
</td>
</tr>
</table>
<ul>
<li><b>
TIME_CH0
</b>
[
<i>
write-only
</i>
]: Sincle-cycle strobe
<br>
It generates a one-clock cycle pulse for programmable time latching
<li><b>
TIME_CH1
</b>
[
<i>
write-only
</i>
]: Sincle-cycle strobe
<br>
It generates a one-clock cycle pulse for programmable time latching
<li><b>
TIME_CH2
</b>
[
<i>
write-only
</i>
]: Sincle-cycle strobe
<br>
It generates a one-clock cycle pulse for programmable time latching
<li><b>
TIME_CH3
</b>
[
<i>
write-only
</i>
]: Sincle-cycle strobe
<br>
It generates a one-clock cycle pulse for programmable time latching
<li><b>
TIME_CH4
</b>
[
<i>
write-only
</i>
]: Sincle-cycle strobe
<br>
It generates a one-clock cycle pulse for programmable time latching
</ul>
<a
name=
"TRIG"
></a>
<h3><a
name=
"sect_3_18"
>
3.18. FMC-DIO seconds-based trigger is ready to accept a new trigger generation request
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
<b>
HW prefix:
</b>
</td>
<td
class=
"td_code"
>
dio_trig
</td>
</tr>
<tr>
<td
>
<b>
HW address:
</b>
</td>
<td
class=
"td_code"
>
0x11
</td>
</tr>
<tr>
<td
>
<b>
C prefix:
</b>
</td>
<td
class=
"td_code"
>
TRIG
</td>
</tr>
<tr>
<td
>
<b>
C offset:
</b>
</td>
<td
class=
"td_code"
>
0x44
</td>
</tr>
</table>
<p>
ready state, waiting new trigger commands for dio output.
</p>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
...
...
@@ -7674,7 +8088,7 @@ RDY
<br>
TBD
</ul>
<a
name=
"PULS_INMED"
></a>
<h3><a
name=
"sect_3_1
8"
>
3.18
. Pulse generate immediately
</a></h3>
<h3><a
name=
"sect_3_1
9"
>
3.19
. Pulse generate immediately
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -7689,7 +8103,7 @@ dio_puls_inmed
<b>
HW address:
</b>
</td>
<td
class=
"td_code"
>
0x1
1
0x1
2
</td>
</tr>
<tr>
...
...
@@ -7705,7 +8119,7 @@ PULS_INMED
<b>
C offset:
</b>
</td>
<td
class=
"td_code"
>
0x4
4
0x4
8
</td>
</tr>
</table>
...
...
@@ -7951,7 +8365,7 @@ PUL_INM_4
<br>
It generates a pulse
</ul>
<a
name=
"EIC_IDR"
></a>
<h3><a
name=
"sect_3_
19"
>
3.19
. Interrupt disable register
</a></h3>
<h3><a
name=
"sect_3_
20"
>
3.20
. Interrupt disable register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -8228,7 +8642,7 @@ NEMPTY_4
<br>
write 1: disable interrupt 'dio fifo not-empty 4'
<br>
write 0: no effect
</ul>
<a
name=
"EIC_IER"
></a>
<h3><a
name=
"sect_3_2
0"
>
3.20
. Interrupt enable register
</a></h3>
<h3><a
name=
"sect_3_2
1"
>
3.21
. Interrupt enable register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -8505,7 +8919,7 @@ NEMPTY_4
<br>
write 1: enable interrupt 'dio fifo not-empty 4'
<br>
write 0: no effect
</ul>
<a
name=
"EIC_IMR"
></a>
<h3><a
name=
"sect_3_2
1"
>
3.21
. Interrupt mask register
</a></h3>
<h3><a
name=
"sect_3_2
2"
>
3.22
. Interrupt mask register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -8782,7 +9196,7 @@ NEMPTY_4
<br>
read 1: interrupt 'dio fifo not-empty 4' is enabled
<br>
read 0: interrupt 'dio fifo not-empty 4' is disabled
</ul>
<a
name=
"EIC_ISR"
></a>
<h3><a
name=
"sect_3_2
2"
>
3.22
. Interrupt status register
</a></h3>
<h3><a
name=
"sect_3_2
3"
>
3.23
. Interrupt status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -9059,7 +9473,7 @@ NEMPTY_4
<br>
read 1: interrupt 'dio fifo not-empty 4' is pending
<br>
read 0: interrupt not pending
<br>
write 1: clear interrupt 'dio fifo not-empty 4'
<br>
write 0: no effect
</ul>
<a
name=
"TSF0_R0"
></a>
<h3><a
name=
"sect_3_2
3"
>
3.23
. FIFO 'Timestamp FIFO 0' data output register 0
</a></h3>
<h3><a
name=
"sect_3_2
4"
>
3.24
. FIFO 'Timestamp FIFO 0' data output register 0
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -9123,7 +9537,7 @@ TSF0_R0
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[31:24]
TAG_
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -9177,7 +9591,7 @@ TAG_UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[23:16]
TAG_
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -9231,7 +9645,7 @@ TAG_UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[15:8]
TAG_
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -9285,7 +9699,7 @@ TAG_UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[7:0]
TAG_
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -9312,11 +9726,11 @@ TAG_UTC[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
</b>
[
<i>
read-only
</i>
]:
UTC
time
TAG_
SECONDS
</b>
[
<i>
read-only
</i>
]:
seconds
time
</ul>
<a
name=
"TSF0_R1"
></a>
<h3><a
name=
"sect_3_2
4"
>
3.24
. FIFO 'Timestamp FIFO 0' data output register 1
</a></h3>
<h3><a
name=
"sect_3_2
5"
>
3.25
. FIFO 'Timestamp FIFO 0' data output register 1
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -9542,7 +9956,7 @@ TSF0_R1
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
H[7:0]
TAG_
SECONDS
H[7:0]
</td>
<td
>
...
...
@@ -9569,11 +9983,11 @@ TAG_UTCH[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
H
</b>
[
<i>
read-only
</i>
]:
UTC
time H
TAG_
SECONDS
H
</b>
[
<i>
read-only
</i>
]:
seconds
time H
</ul>
<a
name=
"TSF0_R2"
></a>
<h3><a
name=
"sect_3_2
5"
>
3.25
. FIFO 'Timestamp FIFO 0' data output register 2
</a></h3>
<h3><a
name=
"sect_3_2
6"
>
3.26
. FIFO 'Timestamp FIFO 0' data output register 2
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -9830,7 +10244,7 @@ TAG_CYCLES
</b>
[
<i>
read-only
</i>
]: Sub-second accuracy
</ul>
<a
name=
"TSF0_CSR"
></a>
<h3><a
name=
"sect_3_2
6"
>
3.26
. FIFO 'Timestamp FIFO 0' control/status register
</a></h3>
<h3><a
name=
"sect_3_2
7"
>
3.27
. FIFO 'Timestamp FIFO 0' control/status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -10096,7 +10510,7 @@ USEDW
<br>
Number of data records currently being stored in FIFO 'Timestamp FIFO 0'
</ul>
<a
name=
"TSF1_R0"
></a>
<h3><a
name=
"sect_3_2
7"
>
3.27
. FIFO 'Timestamp FIFO 1' data output register 0
</a></h3>
<h3><a
name=
"sect_3_2
8"
>
3.28
. FIFO 'Timestamp FIFO 1' data output register 0
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -10160,7 +10574,7 @@ TSF1_R0
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[31:24]
TAG_
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -10214,7 +10628,7 @@ TAG_UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[23:16]
TAG_
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -10268,7 +10682,7 @@ TAG_UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[15:8]
TAG_
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -10322,7 +10736,7 @@ TAG_UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[7:0]
TAG_
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -10349,11 +10763,11 @@ TAG_UTC[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
</b>
[
<i>
read-only
</i>
]:
UTC
time
TAG_
SECONDS
</b>
[
<i>
read-only
</i>
]:
seconds
time
</ul>
<a
name=
"TSF1_R1"
></a>
<h3><a
name=
"sect_3_2
8"
>
3.28
. FIFO 'Timestamp FIFO 1' data output register 1
</a></h3>
<h3><a
name=
"sect_3_2
9"
>
3.29
. FIFO 'Timestamp FIFO 1' data output register 1
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -10579,7 +10993,7 @@ TSF1_R1
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
H[7:0]
TAG_
SECONDS
H[7:0]
</td>
<td
>
...
...
@@ -10606,11 +11020,11 @@ TAG_UTCH[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
H
</b>
[
<i>
read-only
</i>
]:
UTC
time H
TAG_
SECONDS
H
</b>
[
<i>
read-only
</i>
]:
seconds
time H
</ul>
<a
name=
"TSF1_R2"
></a>
<h3><a
name=
"sect_3_
29"
>
3.29
. FIFO 'Timestamp FIFO 1' data output register 2
</a></h3>
<h3><a
name=
"sect_3_
30"
>
3.30
. FIFO 'Timestamp FIFO 1' data output register 2
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -10867,7 +11281,7 @@ TAG_CYCLES
</b>
[
<i>
read-only
</i>
]: Sub-second accuracy
</ul>
<a
name=
"TSF1_CSR"
></a>
<h3><a
name=
"sect_3_3
0"
>
3.30
. FIFO 'Timestamp FIFO 1' control/status register
</a></h3>
<h3><a
name=
"sect_3_3
1"
>
3.31
. FIFO 'Timestamp FIFO 1' control/status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -11133,7 +11547,7 @@ USEDW
<br>
Number of data records currently being stored in FIFO 'Timestamp FIFO 1'
</ul>
<a
name=
"TSF2_R0"
></a>
<h3><a
name=
"sect_3_3
1"
>
3.31
. FIFO 'Timestamp FIFO 2' data output register 0
</a></h3>
<h3><a
name=
"sect_3_3
2"
>
3.32
. FIFO 'Timestamp FIFO 2' data output register 0
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -11197,7 +11611,7 @@ TSF2_R0
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[31:24]
TAG_
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -11251,7 +11665,7 @@ TAG_UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[23:16]
TAG_
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -11305,7 +11719,7 @@ TAG_UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[15:8]
TAG_
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -11359,7 +11773,7 @@ TAG_UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[7:0]
TAG_
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -11386,11 +11800,11 @@ TAG_UTC[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
</b>
[
<i>
read-only
</i>
]:
UTC
time
TAG_
SECONDS
</b>
[
<i>
read-only
</i>
]:
seconds
time
</ul>
<a
name=
"TSF2_R1"
></a>
<h3><a
name=
"sect_3_3
2"
>
3.32
. FIFO 'Timestamp FIFO 2' data output register 1
</a></h3>
<h3><a
name=
"sect_3_3
3"
>
3.33
. FIFO 'Timestamp FIFO 2' data output register 1
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -11616,7 +12030,7 @@ TSF2_R1
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
H[7:0]
TAG_
SECONDS
H[7:0]
</td>
<td
>
...
...
@@ -11643,11 +12057,11 @@ TAG_UTCH[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
H
</b>
[
<i>
read-only
</i>
]:
UTC
time H
TAG_
SECONDS
H
</b>
[
<i>
read-only
</i>
]:
seconds
time H
</ul>
<a
name=
"TSF2_R2"
></a>
<h3><a
name=
"sect_3_3
3"
>
3.33
. FIFO 'Timestamp FIFO 2' data output register 2
</a></h3>
<h3><a
name=
"sect_3_3
4"
>
3.34
. FIFO 'Timestamp FIFO 2' data output register 2
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -11904,7 +12318,7 @@ TAG_CYCLES
</b>
[
<i>
read-only
</i>
]: Sub-second accuracy
</ul>
<a
name=
"TSF2_CSR"
></a>
<h3><a
name=
"sect_3_3
4"
>
3.34
. FIFO 'Timestamp FIFO 2' control/status register
</a></h3>
<h3><a
name=
"sect_3_3
5"
>
3.35
. FIFO 'Timestamp FIFO 2' control/status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -12170,7 +12584,7 @@ USEDW
<br>
Number of data records currently being stored in FIFO 'Timestamp FIFO 2'
</ul>
<a
name=
"TSF3_R0"
></a>
<h3><a
name=
"sect_3_3
5"
>
3.35
. FIFO 'Timestamp FIFO 3' data output register 0
</a></h3>
<h3><a
name=
"sect_3_3
6"
>
3.36
. FIFO 'Timestamp FIFO 3' data output register 0
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -12234,7 +12648,7 @@ TSF3_R0
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[31:24]
TAG_
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -12288,7 +12702,7 @@ TAG_UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[23:16]
TAG_
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -12342,7 +12756,7 @@ TAG_UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[15:8]
TAG_
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -12396,7 +12810,7 @@ TAG_UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[7:0]
TAG_
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -12423,11 +12837,11 @@ TAG_UTC[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
</b>
[
<i>
read-only
</i>
]:
UTC
time
TAG_
SECONDS
</b>
[
<i>
read-only
</i>
]:
seconds
time
</ul>
<a
name=
"TSF3_R1"
></a>
<h3><a
name=
"sect_3_3
6"
>
3.36
. FIFO 'Timestamp FIFO 3' data output register 1
</a></h3>
<h3><a
name=
"sect_3_3
7"
>
3.37
. FIFO 'Timestamp FIFO 3' data output register 1
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -12653,7 +13067,7 @@ TSF3_R1
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
H[7:0]
TAG_
SECONDS
H[7:0]
</td>
<td
>
...
...
@@ -12680,11 +13094,11 @@ TAG_UTCH[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
H
</b>
[
<i>
read-only
</i>
]:
UTC
time H
TAG_
SECONDS
H
</b>
[
<i>
read-only
</i>
]:
seconds
time H
</ul>
<a
name=
"TSF3_R2"
></a>
<h3><a
name=
"sect_3_3
7"
>
3.37
. FIFO 'Timestamp FIFO 3' data output register 2
</a></h3>
<h3><a
name=
"sect_3_3
8"
>
3.38
. FIFO 'Timestamp FIFO 3' data output register 2
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -12941,7 +13355,7 @@ TAG_CYCLES
</b>
[
<i>
read-only
</i>
]: Sub-second accuracy
</ul>
<a
name=
"TSF3_CSR"
></a>
<h3><a
name=
"sect_3_3
8"
>
3.38
. FIFO 'Timestamp FIFO 3' control/status register
</a></h3>
<h3><a
name=
"sect_3_3
9"
>
3.39
. FIFO 'Timestamp FIFO 3' control/status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -13207,7 +13621,7 @@ USEDW
<br>
Number of data records currently being stored in FIFO 'Timestamp FIFO 3'
</ul>
<a
name=
"TSF4_R0"
></a>
<h3><a
name=
"sect_3_
39"
>
3.39
. FIFO 'Timestamp FIFO 4' data output register 0
</a></h3>
<h3><a
name=
"sect_3_
40"
>
3.40
. FIFO 'Timestamp FIFO 4' data output register 0
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -13271,7 +13685,7 @@ TSF4_R0
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[31:24]
TAG_
SECONDS
[31:24]
</td>
<td
>
...
...
@@ -13325,7 +13739,7 @@ TAG_UTC[31:24]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[23:16]
TAG_
SECONDS
[23:16]
</td>
<td
>
...
...
@@ -13379,7 +13793,7 @@ TAG_UTC[23:16]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[15:8]
TAG_
SECONDS
[15:8]
</td>
<td
>
...
...
@@ -13433,7 +13847,7 @@ TAG_UTC[15:8]
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
[7:0]
TAG_
SECONDS
[7:0]
</td>
<td
>
...
...
@@ -13460,11 +13874,11 @@ TAG_UTC[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
</b>
[
<i>
read-only
</i>
]:
UTC
time
TAG_
SECONDS
</b>
[
<i>
read-only
</i>
]:
seconds
time
</ul>
<a
name=
"TSF4_R1"
></a>
<h3><a
name=
"sect_3_4
0"
>
3.40
. FIFO 'Timestamp FIFO 4' data output register 1
</a></h3>
<h3><a
name=
"sect_3_4
1"
>
3.41
. FIFO 'Timestamp FIFO 4' data output register 1
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -13690,7 +14104,7 @@ TSF4_R1
</tr>
<tr>
<td
style=
"border: solid 1px black;"
colspan=
8
class=
"td_field"
>
TAG_
UTC
H[7:0]
TAG_
SECONDS
H[7:0]
</td>
<td
>
...
...
@@ -13717,11 +14131,11 @@ TAG_UTCH[7:0]
</table>
<ul>
<li><b>
TAG_
UTC
H
</b>
[
<i>
read-only
</i>
]:
UTC
time H
TAG_
SECONDS
H
</b>
[
<i>
read-only
</i>
]:
seconds
time H
</ul>
<a
name=
"TSF4_R2"
></a>
<h3><a
name=
"sect_3_4
1"
>
3.41
. FIFO 'Timestamp FIFO 4' data output register 2
</a></h3>
<h3><a
name=
"sect_3_4
2"
>
3.42
. FIFO 'Timestamp FIFO 4' data output register 2
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
@@ -13978,7 +14392,7 @@ TAG_CYCLES
</b>
[
<i>
read-only
</i>
]: Sub-second accuracy
</ul>
<a
name=
"TSF4_CSR"
></a>
<h3><a
name=
"sect_3_4
2"
>
3.42
. FIFO 'Timestamp FIFO 4' control/status register
</a></h3>
<h3><a
name=
"sect_3_4
3"
>
3.43
. FIFO 'Timestamp FIFO 4' control/status register
</a></h3>
<table
cellpadding=
0
cellspacing=
0
border=
0
>
<tr>
<td
>
...
...
modules/wrsw_dio/wrsw_dio_wb.vhd
View file @
5ae31c31
...
...
@@ -3,7 +3,7 @@
---------------------------------------------------------------------------------------
-- File : wrsw_dio_wb.vhd
-- Author : auto-generated by wbgen2 from wrsw_dio.wb
-- Created :
Sun Mar 18 11:40:55
2012
-- Created :
Fri Jun 29 10:14:46
2012
-- Standard : VHDL'87
---------------------------------------------------------------------------------------
-- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE wrsw_dio.wb
...
...
@@ -36,8 +36,8 @@ entity wrsw_dio_wb is
dio_tsf0_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf0_wr_empty_o
:
out
std_logic
;
dio_tsf0_tag_
utc_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf0_tag_
utch_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf0_tag_
seconds_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf0_tag_
secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf0_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_0_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -46,8 +46,8 @@ entity wrsw_dio_wb is
dio_tsf1_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf1_wr_empty_o
:
out
std_logic
;
dio_tsf1_tag_
utc_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf1_tag_
utch_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf1_tag_
seconds_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf1_tag_
secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf1_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_1_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -56,8 +56,8 @@ entity wrsw_dio_wb is
dio_tsf2_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf2_wr_empty_o
:
out
std_logic
;
dio_tsf2_tag_
utc_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf2_tag_
utch_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf2_tag_
seconds_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf2_tag_
secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf2_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_2_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -66,8 +66,8 @@ entity wrsw_dio_wb is
dio_tsf3_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf3_wr_empty_o
:
out
std_logic
;
dio_tsf3_tag_
utc_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf3_tag_
utch_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf3_tag_
seconds_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf3_tag_
secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf3_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_3_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -76,44 +76,54 @@ entity wrsw_dio_wb is
dio_tsf4_wr_full_o
:
out
std_logic
;
-- FIFO empty flag
dio_tsf4_wr_empty_o
:
out
std_logic
;
dio_tsf4_tag_
utc_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf4_tag_
utch_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf4_tag_
seconds_i
:
in
std_logic_vector
(
31
downto
0
);
dio_tsf4_tag_
secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf4_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
irq_nempty_4_i
:
in
std_logic
;
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 0 UTC
-based trigger for pulse generation'
dio_trig0_
utc_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 0 UTC
-based trigger for pulse generation'
dio_trigh0_
utc_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 0 seconds
-based trigger for pulse generation'
dio_trig0_
seconds_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 0 seconds
-based trigger for pulse generation'
dio_trigh0_
seconds_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 0 cycles to trigger a pulse generation'
dio_cyc0_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 1 UTC
-based trigger for pulse generation'
dio_trig1_
utc_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 1 UTC
-based trigger for pulse generation'
dio_trigh1_
utc_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 1 seconds
-based trigger for pulse generation'
dio_trig1_
seconds_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 1 seconds
-based trigger for pulse generation'
dio_trigh1_
seconds_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 1 cycles to trigger a pulse generation'
dio_cyc1_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 2 UTC
-based trigger for pulse generation'
dio_trig2_
utc_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 2 UTC
-based trigger for pulse generation'
dio_trigh2_
utc_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 2 seconds
-based trigger for pulse generation'
dio_trig2_
seconds_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 2 seconds
-based trigger for pulse generation'
dio_trigh2_
seconds_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 2 cycles to trigger a pulse generation'
dio_cyc2_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 3 UTC
-based trigger for pulse generation'
dio_trig3_
utc_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 3 UTC
-based trigger for pulse generation'
dio_trigh3_
utc_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 3 seconds
-based trigger for pulse generation'
dio_trig3_
seconds_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 3 seconds
-based trigger for pulse generation'
dio_trigh3_
seconds_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 3 cycles to trigger a pulse generation'
dio_cyc3_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 4 UTC
-based trigger for pulse generation'
dio_trig4_
utc_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
utc field' in reg: 'fmc-dio 4 UTC
-based trigger for pulse generation'
dio_trigh4_
utc_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 4 seconds
-based trigger for pulse generation'
dio_trig4_
seconds_o
:
out
std_logic_vector
(
31
downto
0
);
-- Port for std_logic_vector field: '
seconds field' in reg: 'fmc-dio 4 seconds
-based trigger for pulse generation'
dio_trigh4_
seconds_o
:
out
std_logic_vector
(
7
downto
0
);
-- Port for std_logic_vector field: 'cycles field' in reg: 'fmc-dio 4 cycles to trigger a pulse generation'
dio_cyc4_cyc_o
:
out
std_logic_vector
(
27
downto
0
);
-- Port for std_logic_vector field: 'trig_enable field' in reg: 'FMC-DIO UTC-based trigger Enable-register for pulse generation'
dio_trig_ena_ena_o
:
out
std_logic_vector
(
4
downto
0
);
-- Port for std_logic_vector field: 'trig_rdy field' in reg: 'FMC-DIO UTC-based trigger ready informaton for pulse generation'
dio_trig_ena_rdy_i
:
in
std_logic_vector
(
4
downto
0
);
-- Port for std_logic_vector field: 'outmode' in reg: 'FMC-DIO output configuration register. '
dio_out_mode_o
:
out
std_logic_vector
(
4
downto
0
);
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch0_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch1_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch2_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch3_o
:
out
std_logic
;
-- Port for MONOSTABLE field: 'Sincle-cycle strobe' in reg: 'Time-programmable output strobe signal'
dio_latch_time_ch4_o
:
out
std_logic
;
-- Port for std_logic_vector field: 'trig_rdy field' in reg: 'FMC-DIO seconds-based trigger is ready to accept a new trigger generation request'
dio_trig_rdy_i
:
in
std_logic_vector
(
4
downto
0
);
-- Port for asynchronous (clock: clk_asyn_i) MONOSTABLE field: 'pulse_gen_now_0' in reg: 'Pulse generate immediately'
dio_puls_inmed_pul_inm_0_o
:
out
std_logic
;
-- Port for asynchronous (clock: clk_asyn_i) MONOSTABLE field: 'pulse_gen_now_1' in reg: 'Pulse generate immediately'
...
...
@@ -154,22 +164,32 @@ signal dio_tsf4_in_int : std_logic_vector(67 downto 0);
signal
dio_tsf4_out_int
:
std_logic_vector
(
67
downto
0
);
signal
dio_tsf4_rdreq_int
:
std_logic
;
signal
dio_tsf4_rdreq_int_d0
:
std_logic
;
signal
dio_trig0_
utc_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh0_
utc_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_trig0_
seconds_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh0_
seconds_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_cyc0_cyc_int
:
std_logic_vector
(
27
downto
0
);
signal
dio_trig1_
utc_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh1_
utc_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_trig1_
seconds_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh1_
seconds_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_cyc1_cyc_int
:
std_logic_vector
(
27
downto
0
);
signal
dio_trig2_
utc_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh2_
utc_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_trig2_
seconds_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh2_
seconds_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_cyc2_cyc_int
:
std_logic_vector
(
27
downto
0
);
signal
dio_trig3_
utc_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh3_
utc_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_trig3_
seconds_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh3_
seconds_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_cyc3_cyc_int
:
std_logic_vector
(
27
downto
0
);
signal
dio_trig4_
utc_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh4_
utc_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_trig4_
seconds_int
:
std_logic_vector
(
31
downto
0
);
signal
dio_trigh4_
seconds_int
:
std_logic_vector
(
7
downto
0
);
signal
dio_cyc4_cyc_int
:
std_logic_vector
(
27
downto
0
);
signal
dio_trig_ena_ena_int
:
std_logic_vector
(
4
downto
0
);
signal
dio_out_mode_int
:
std_logic_vector
(
4
downto
0
);
signal
dio_latch_time_ch0_dly0
:
std_logic
;
signal
dio_latch_time_ch0_int
:
std_logic
;
signal
dio_latch_time_ch1_dly0
:
std_logic
;
signal
dio_latch_time_ch1_int
:
std_logic
;
signal
dio_latch_time_ch2_dly0
:
std_logic
;
signal
dio_latch_time_ch2_int
:
std_logic
;
signal
dio_latch_time_ch3_dly0
:
std_logic
;
signal
dio_latch_time_ch3_int
:
std_logic
;
signal
dio_latch_time_ch4_dly0
:
std_logic
;
signal
dio_latch_time_ch4_int
:
std_logic
;
signal
dio_puls_inmed_pul_inm_0_int
:
std_logic
;
signal
dio_puls_inmed_pul_inm_0_int_delay
:
std_logic
;
signal
dio_puls_inmed_pul_inm_0_sync0
:
std_logic
;
...
...
@@ -247,22 +267,27 @@ begin
ack_sreg
<=
"0000000000"
;
ack_in_progress
<=
'0'
;
rddata_reg
<=
"00000000000000000000000000000000"
;
dio_trig0_
utc
_int
<=
"00000000000000000000000000000000"
;
dio_trigh0_
utc
_int
<=
"00000000"
;
dio_trig0_
seconds
_int
<=
"00000000000000000000000000000000"
;
dio_trigh0_
seconds
_int
<=
"00000000"
;
dio_cyc0_cyc_int
<=
"0000000000000000000000000000"
;
dio_trig1_
utc
_int
<=
"00000000000000000000000000000000"
;
dio_trigh1_
utc
_int
<=
"00000000"
;
dio_trig1_
seconds
_int
<=
"00000000000000000000000000000000"
;
dio_trigh1_
seconds
_int
<=
"00000000"
;
dio_cyc1_cyc_int
<=
"0000000000000000000000000000"
;
dio_trig2_
utc
_int
<=
"00000000000000000000000000000000"
;
dio_trigh2_
utc
_int
<=
"00000000"
;
dio_trig2_
seconds
_int
<=
"00000000000000000000000000000000"
;
dio_trigh2_
seconds
_int
<=
"00000000"
;
dio_cyc2_cyc_int
<=
"0000000000000000000000000000"
;
dio_trig3_
utc
_int
<=
"00000000000000000000000000000000"
;
dio_trigh3_
utc
_int
<=
"00000000"
;
dio_trig3_
seconds
_int
<=
"00000000000000000000000000000000"
;
dio_trigh3_
seconds
_int
<=
"00000000"
;
dio_cyc3_cyc_int
<=
"0000000000000000000000000000"
;
dio_trig4_
utc
_int
<=
"00000000000000000000000000000000"
;
dio_trigh4_
utc
_int
<=
"00000000"
;
dio_trig4_
seconds
_int
<=
"00000000000000000000000000000000"
;
dio_trigh4_
seconds
_int
<=
"00000000"
;
dio_cyc4_cyc_int
<=
"0000000000000000000000000000"
;
dio_trig_ena_ena_int
<=
"00000"
;
dio_out_mode_int
<=
"00000"
;
dio_latch_time_ch0_int
<=
'0'
;
dio_latch_time_ch1_int
<=
'0'
;
dio_latch_time_ch2_int
<=
'0'
;
dio_latch_time_ch3_int
<=
'0'
;
dio_latch_time_ch4_int
<=
'0'
;
dio_puls_inmed_pul_inm_0_int
<=
'0'
;
dio_puls_inmed_pul_inm_0_int_delay
<=
'0'
;
dio_puls_inmed_pul_inm_1_int
<=
'0'
;
...
...
@@ -287,6 +312,11 @@ begin
ack_sreg
(
9
)
<=
'0'
;
if
(
ack_in_progress
=
'1'
)
then
if
(
ack_sreg
(
0
)
=
'1'
)
then
dio_latch_time_ch0_int
<=
'0'
;
dio_latch_time_ch1_int
<=
'0'
;
dio_latch_time_ch2_int
<=
'0'
;
dio_latch_time_ch3_int
<=
'0'
;
dio_latch_time_ch4_int
<=
'0'
;
eic_idr_write_int
<=
'0'
;
eic_ier_write_int
<=
'0'
;
eic_isr_write_int
<=
'0'
;
...
...
@@ -308,16 +338,16 @@ begin
case
rwaddr_reg
(
5
downto
0
)
is
when
"000000"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trig0_
utc
_int
<=
wrdata_reg
(
31
downto
0
);
dio_trig0_
seconds
_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
dio_trig0_
utc
_int
;
rddata_reg
(
31
downto
0
)
<=
dio_trig0_
seconds
_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"000001"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trigh0_
utc
_int
<=
wrdata_reg
(
7
downto
0
);
dio_trigh0_
seconds
_int
<=
wrdata_reg
(
7
downto
0
);
end
if
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh0_
utc
_int
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh0_
seconds
_int
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
...
...
@@ -357,16 +387,16 @@ begin
ack_in_progress
<=
'1'
;
when
"000011"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trig1_
utc
_int
<=
wrdata_reg
(
31
downto
0
);
dio_trig1_
seconds
_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
dio_trig1_
utc
_int
;
rddata_reg
(
31
downto
0
)
<=
dio_trig1_
seconds
_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"000100"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trigh1_
utc
_int
<=
wrdata_reg
(
7
downto
0
);
dio_trigh1_
seconds
_int
<=
wrdata_reg
(
7
downto
0
);
end
if
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh1_
utc
_int
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh1_
seconds
_int
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
...
...
@@ -406,16 +436,16 @@ begin
ack_in_progress
<=
'1'
;
when
"000110"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trig2_
utc
_int
<=
wrdata_reg
(
31
downto
0
);
dio_trig2_
seconds
_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
dio_trig2_
utc
_int
;
rddata_reg
(
31
downto
0
)
<=
dio_trig2_
seconds
_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"000111"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trigh2_
utc
_int
<=
wrdata_reg
(
7
downto
0
);
dio_trigh2_
seconds
_int
<=
wrdata_reg
(
7
downto
0
);
end
if
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh2_
utc
_int
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh2_
seconds
_int
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
...
...
@@ -455,16 +485,16 @@ begin
ack_in_progress
<=
'1'
;
when
"001001"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trig3_
utc
_int
<=
wrdata_reg
(
31
downto
0
);
dio_trig3_
seconds
_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
dio_trig3_
utc
_int
;
rddata_reg
(
31
downto
0
)
<=
dio_trig3_
seconds
_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"001010"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trigh3_
utc
_int
<=
wrdata_reg
(
7
downto
0
);
dio_trigh3_
seconds
_int
<=
wrdata_reg
(
7
downto
0
);
end
if
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh3_
utc
_int
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh3_
seconds
_int
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
...
...
@@ -504,16 +534,16 @@ begin
ack_in_progress
<=
'1'
;
when
"001100"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trig4_
utc
_int
<=
wrdata_reg
(
31
downto
0
);
dio_trig4_
seconds
_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
dio_trig4_
utc
_int
;
rddata_reg
(
31
downto
0
)
<=
dio_trig4_
seconds
_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"001101"
=>
if
(
wb_we_i
=
'1'
)
then
dio_trigh4_
utc
_int
<=
wrdata_reg
(
7
downto
0
);
dio_trigh4_
seconds
_int
<=
wrdata_reg
(
7
downto
0
);
end
if
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh4_
utc
_int
;
rddata_reg
(
7
downto
0
)
<=
dio_trigh4_
seconds
_int
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
...
...
@@ -553,9 +583,9 @@ begin
ack_in_progress
<=
'1'
;
when
"001111"
=>
if
(
wb_we_i
=
'1'
)
then
dio_
trig_ena_ena
_int
<=
wrdata_reg
(
4
downto
0
);
dio_
out_mode
_int
<=
wrdata_reg
(
4
downto
0
);
end
if
;
rddata_reg
(
4
downto
0
)
<=
dio_
trig_ena_ena
_int
;
rddata_reg
(
4
downto
0
)
<=
dio_
out_mode
_int
;
rddata_reg
(
5
)
<=
'X'
;
rddata_reg
(
6
)
<=
'X'
;
rddata_reg
(
7
)
<=
'X'
;
...
...
@@ -587,8 +617,22 @@ begin
ack_in_progress
<=
'1'
;
when
"010000"
=>
if
(
wb_we_i
=
'1'
)
then
dio_latch_time_ch0_int
<=
wrdata_reg
(
0
);
dio_latch_time_ch1_int
<=
wrdata_reg
(
1
);
dio_latch_time_ch2_int
<=
wrdata_reg
(
2
);
dio_latch_time_ch3_int
<=
wrdata_reg
(
3
);
dio_latch_time_ch4_int
<=
wrdata_reg
(
4
);
end
if
;
rddata_reg
(
4
downto
0
)
<=
dio_trig_ena_rdy_i
;
rddata_reg
(
0
)
<=
'X'
;
rddata_reg
(
1
)
<=
'X'
;
rddata_reg
(
2
)
<=
'X'
;
rddata_reg
(
3
)
<=
'X'
;
rddata_reg
(
4
)
<=
'X'
;
rddata_reg
(
0
)
<=
'X'
;
rddata_reg
(
1
)
<=
'X'
;
rddata_reg
(
2
)
<=
'X'
;
rddata_reg
(
3
)
<=
'X'
;
rddata_reg
(
4
)
<=
'X'
;
rddata_reg
(
5
)
<=
'X'
;
rddata_reg
(
6
)
<=
'X'
;
rddata_reg
(
7
)
<=
'X'
;
...
...
@@ -616,9 +660,42 @@ begin
rddata_reg
(
29
)
<=
'X'
;
rddata_reg
(
30
)
<=
'X'
;
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_sreg
(
2
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"010001"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
4
downto
0
)
<=
dio_trig_rdy_i
;
rddata_reg
(
5
)
<=
'X'
;
rddata_reg
(
6
)
<=
'X'
;
rddata_reg
(
7
)
<=
'X'
;
rddata_reg
(
8
)
<=
'X'
;
rddata_reg
(
9
)
<=
'X'
;
rddata_reg
(
10
)
<=
'X'
;
rddata_reg
(
11
)
<=
'X'
;
rddata_reg
(
12
)
<=
'X'
;
rddata_reg
(
13
)
<=
'X'
;
rddata_reg
(
14
)
<=
'X'
;
rddata_reg
(
15
)
<=
'X'
;
rddata_reg
(
16
)
<=
'X'
;
rddata_reg
(
17
)
<=
'X'
;
rddata_reg
(
18
)
<=
'X'
;
rddata_reg
(
19
)
<=
'X'
;
rddata_reg
(
20
)
<=
'X'
;
rddata_reg
(
21
)
<=
'X'
;
rddata_reg
(
22
)
<=
'X'
;
rddata_reg
(
23
)
<=
'X'
;
rddata_reg
(
24
)
<=
'X'
;
rddata_reg
(
25
)
<=
'X'
;
rddata_reg
(
26
)
<=
'X'
;
rddata_reg
(
27
)
<=
'X'
;
rddata_reg
(
28
)
<=
'X'
;
rddata_reg
(
29
)
<=
'X'
;
rddata_reg
(
30
)
<=
'X'
;
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"010010"
=>
if
(
wb_we_i
=
'1'
)
then
dio_puls_inmed_pul_inm_0_int
<=
wrdata_reg
(
0
);
dio_puls_inmed_pul_inm_0_int_delay
<=
wrdata_reg
(
0
);
...
...
@@ -1227,8 +1304,8 @@ begin
-- Drive the data output bus
wb_dat_o
<=
rddata_reg
;
-- extra code for reg/fifo/mem: Timestamp FIFO 0
dio_tsf0_in_int
(
31
downto
0
)
<=
dio_tsf0_tag_
utc
_i
;
dio_tsf0_in_int
(
39
downto
32
)
<=
dio_tsf0_tag_
utc
h_i
;
dio_tsf0_in_int
(
31
downto
0
)
<=
dio_tsf0_tag_
seconds
_i
;
dio_tsf0_in_int
(
39
downto
32
)
<=
dio_tsf0_tag_
seconds
h_i
;
dio_tsf0_in_int
(
67
downto
40
)
<=
dio_tsf0_tag_cycles_i
;
dio_tsf0_rst_n
<=
rst_n_i
;
dio_tsf0_INST
:
wbgen2_fifo_sync
...
...
@@ -1252,8 +1329,8 @@ begin
);
-- extra code for reg/fifo/mem: Timestamp FIFO 1
dio_tsf1_in_int
(
31
downto
0
)
<=
dio_tsf1_tag_
utc
_i
;
dio_tsf1_in_int
(
39
downto
32
)
<=
dio_tsf1_tag_
utc
h_i
;
dio_tsf1_in_int
(
31
downto
0
)
<=
dio_tsf1_tag_
seconds
_i
;
dio_tsf1_in_int
(
39
downto
32
)
<=
dio_tsf1_tag_
seconds
h_i
;
dio_tsf1_in_int
(
67
downto
40
)
<=
dio_tsf1_tag_cycles_i
;
dio_tsf1_rst_n
<=
rst_n_i
;
dio_tsf1_INST
:
wbgen2_fifo_sync
...
...
@@ -1277,8 +1354,8 @@ begin
);
-- extra code for reg/fifo/mem: Timestamp FIFO 2
dio_tsf2_in_int
(
31
downto
0
)
<=
dio_tsf2_tag_
utc
_i
;
dio_tsf2_in_int
(
39
downto
32
)
<=
dio_tsf2_tag_
utc
h_i
;
dio_tsf2_in_int
(
31
downto
0
)
<=
dio_tsf2_tag_
seconds
_i
;
dio_tsf2_in_int
(
39
downto
32
)
<=
dio_tsf2_tag_
seconds
h_i
;
dio_tsf2_in_int
(
67
downto
40
)
<=
dio_tsf2_tag_cycles_i
;
dio_tsf2_rst_n
<=
rst_n_i
;
dio_tsf2_INST
:
wbgen2_fifo_sync
...
...
@@ -1302,8 +1379,8 @@ begin
);
-- extra code for reg/fifo/mem: Timestamp FIFO 3
dio_tsf3_in_int
(
31
downto
0
)
<=
dio_tsf3_tag_
utc
_i
;
dio_tsf3_in_int
(
39
downto
32
)
<=
dio_tsf3_tag_
utc
h_i
;
dio_tsf3_in_int
(
31
downto
0
)
<=
dio_tsf3_tag_
seconds
_i
;
dio_tsf3_in_int
(
39
downto
32
)
<=
dio_tsf3_tag_
seconds
h_i
;
dio_tsf3_in_int
(
67
downto
40
)
<=
dio_tsf3_tag_cycles_i
;
dio_tsf3_rst_n
<=
rst_n_i
;
dio_tsf3_INST
:
wbgen2_fifo_sync
...
...
@@ -1327,8 +1404,8 @@ begin
);
-- extra code for reg/fifo/mem: Timestamp FIFO 4
dio_tsf4_in_int
(
31
downto
0
)
<=
dio_tsf4_tag_
utc
_i
;
dio_tsf4_in_int
(
39
downto
32
)
<=
dio_tsf4_tag_
utc
h_i
;
dio_tsf4_in_int
(
31
downto
0
)
<=
dio_tsf4_tag_
seconds
_i
;
dio_tsf4_in_int
(
39
downto
32
)
<=
dio_tsf4_tag_
seconds
h_i
;
dio_tsf4_in_int
(
67
downto
40
)
<=
dio_tsf4_tag_cycles_i
;
dio_tsf4_rst_n
<=
rst_n_i
;
dio_tsf4_INST
:
wbgen2_fifo_sync
...
...
@@ -1351,38 +1428,103 @@ begin
rd_data_o
=>
dio_tsf4_out_int
);
--
utc
field
dio_trig0_
utc_o
<=
dio_trig0_utc
_int
;
--
utc
field
dio_trigh0_
utc_o
<=
dio_trigh0_utc
_int
;
--
seconds
field
dio_trig0_
seconds_o
<=
dio_trig0_seconds
_int
;
--
seconds
field
dio_trigh0_
seconds_o
<=
dio_trigh0_seconds
_int
;
-- cycles field
dio_cyc0_cyc_o
<=
dio_cyc0_cyc_int
;
--
utc
field
dio_trig1_
utc_o
<=
dio_trig1_utc
_int
;
--
utc
field
dio_trigh1_
utc_o
<=
dio_trigh1_utc
_int
;
--
seconds
field
dio_trig1_
seconds_o
<=
dio_trig1_seconds
_int
;
--
seconds
field
dio_trigh1_
seconds_o
<=
dio_trigh1_seconds
_int
;
-- cycles field
dio_cyc1_cyc_o
<=
dio_cyc1_cyc_int
;
--
utc
field
dio_trig2_
utc_o
<=
dio_trig2_utc
_int
;
--
utc
field
dio_trigh2_
utc_o
<=
dio_trigh2_utc
_int
;
--
seconds
field
dio_trig2_
seconds_o
<=
dio_trig2_seconds
_int
;
--
seconds
field
dio_trigh2_
seconds_o
<=
dio_trigh2_seconds
_int
;
-- cycles field
dio_cyc2_cyc_o
<=
dio_cyc2_cyc_int
;
--
utc
field
dio_trig3_
utc_o
<=
dio_trig3_utc
_int
;
--
utc
field
dio_trigh3_
utc_o
<=
dio_trigh3_utc
_int
;
--
seconds
field
dio_trig3_
seconds_o
<=
dio_trig3_seconds
_int
;
--
seconds
field
dio_trigh3_
seconds_o
<=
dio_trigh3_seconds
_int
;
-- cycles field
dio_cyc3_cyc_o
<=
dio_cyc3_cyc_int
;
--
utc
field
dio_trig4_
utc_o
<=
dio_trig4_utc
_int
;
--
utc
field
dio_trigh4_
utc_o
<=
dio_trigh4_utc
_int
;
--
seconds
field
dio_trig4_
seconds_o
<=
dio_trig4_seconds
_int
;
--
seconds
field
dio_trigh4_
seconds_o
<=
dio_trigh4_seconds
_int
;
-- cycles field
dio_cyc4_cyc_o
<=
dio_cyc4_cyc_int
;
-- trig_enable field
dio_trig_ena_ena_o
<=
dio_trig_ena_ena_int
;
-- outmode
dio_out_mode_o
<=
dio_out_mode_int
;
-- Sincle-cycle strobe
process
(
clk_sys_i
,
rst_n_i
)
begin
if
(
rst_n_i
=
'0'
)
then
dio_latch_time_ch0_dly0
<=
'0'
;
dio_latch_time_ch0_o
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
dio_latch_time_ch0_dly0
<=
dio_latch_time_ch0_int
;
dio_latch_time_ch0_o
<=
dio_latch_time_ch0_int
and
(
not
dio_latch_time_ch0_dly0
);
end
if
;
end
process
;
-- Sincle-cycle strobe
process
(
clk_sys_i
,
rst_n_i
)
begin
if
(
rst_n_i
=
'0'
)
then
dio_latch_time_ch1_dly0
<=
'0'
;
dio_latch_time_ch1_o
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
dio_latch_time_ch1_dly0
<=
dio_latch_time_ch1_int
;
dio_latch_time_ch1_o
<=
dio_latch_time_ch1_int
and
(
not
dio_latch_time_ch1_dly0
);
end
if
;
end
process
;
-- Sincle-cycle strobe
process
(
clk_sys_i
,
rst_n_i
)
begin
if
(
rst_n_i
=
'0'
)
then
dio_latch_time_ch2_dly0
<=
'0'
;
dio_latch_time_ch2_o
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
dio_latch_time_ch2_dly0
<=
dio_latch_time_ch2_int
;
dio_latch_time_ch2_o
<=
dio_latch_time_ch2_int
and
(
not
dio_latch_time_ch2_dly0
);
end
if
;
end
process
;
-- Sincle-cycle strobe
process
(
clk_sys_i
,
rst_n_i
)
begin
if
(
rst_n_i
=
'0'
)
then
dio_latch_time_ch3_dly0
<=
'0'
;
dio_latch_time_ch3_o
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
dio_latch_time_ch3_dly0
<=
dio_latch_time_ch3_int
;
dio_latch_time_ch3_o
<=
dio_latch_time_ch3_int
and
(
not
dio_latch_time_ch3_dly0
);
end
if
;
end
process
;
-- Sincle-cycle strobe
process
(
clk_sys_i
,
rst_n_i
)
begin
if
(
rst_n_i
=
'0'
)
then
dio_latch_time_ch4_dly0
<=
'0'
;
dio_latch_time_ch4_o
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
dio_latch_time_ch4_dly0
<=
dio_latch_time_ch4_int
;
dio_latch_time_ch4_o
<=
dio_latch_time_ch4_int
and
(
not
dio_latch_time_ch4_dly0
);
end
if
;
end
process
;
-- trig_rdy field
-- pulse_gen_now_0
process
(
clk_asyn_i
,
rst_n_i
)
...
...
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