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
11cd4f6f
Commit
11cd4f6f
authored
Oct 08, 2020
by
Jorge Machado
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add leap second values to hdl cores
parent
61bdb074
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
283 additions
and
114 deletions
+283
-114
wr_dio.wb
hdl/modules/wr_dio/wr_dio.wb
+83
-0
wr_dio_wb.vhd
hdl/modules/wr_dio/wr_dio_wb.vhd
+61
-37
xwr_dio.vhd
hdl/modules/wr_dio/xwr_dio.vhd
+110
-71
dio_common_top.vhd
hdl/top/dio-common/dio_common_top.vhd
+18
-3
dio_common_top_pkg.vhd
hdl/top/dio-common/dio_common_top_pkg.vhd
+6
-2
dio_nic_top.vhd
hdl/top/dio-nic/dio_nic_top.vhd
+5
-1
No files found.
hdl/modules/wr_dio/wr_dio.wb
View file @
11cd4f6f
...
...
@@ -89,6 +89,20 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
...
...
@@ -155,6 +169,19 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
...
...
@@ -221,6 +248,20 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
description = "LeapSecond valid";
...
...
@@ -286,6 +327,20 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
description = "LeapSecond valid";
...
...
@@ -351,6 +406,20 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
description = "LeapSecond valid";
...
...
@@ -416,6 +485,20 @@ peripheral {
size = 16;
};
field {
name = "LeapSecond flag 59";
description = "LeapSecond flag 59";
prefix = "leap_second_flag_59";
type = BIT;
};
field {
name = "LeapSecond flag 61";
description = "LeapSecond flag 61";
prefix = "leap_second_flag_61";
type = BIT;
};
field {
name = "LeapSecond valid";
description = "LeapSecond valid";
...
...
hdl/modules/wr_dio/wr_dio_wb.vhd
View file @
11cd4f6f
This diff is collapsed.
Click to expand it.
hdl/modules/wr_dio/xwr_dio.vhd
View file @
11cd4f6f
...
...
@@ -98,7 +98,13 @@ entity xwr_dio is
TRIG0
:
out
std_logic_vector
(
31
downto
0
);
TRIG1
:
out
std_logic_vector
(
31
downto
0
);
TRIG2
:
out
std_logic_vector
(
31
downto
0
);
TRIG3
:
out
std_logic_vector
(
31
downto
0
)
TRIG3
:
out
std_logic_vector
(
31
downto
0
);
-- Leap second
leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
leap_second_flag_59_i
:
in
std_logic
;
leap_second_flag_61_i
:
in
std_logic
;
leap_second_flag_valid_i
:
in
std_logic
);
end
xwr_dio
;
...
...
@@ -251,6 +257,8 @@ architecture rtl of xwr_dio is
dio_tsf0_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf0_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf0_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf0_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf0_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf0_leap_second_valid_i
:
in
std_logic
;
irq_nempty_0_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -263,6 +271,8 @@ architecture rtl of xwr_dio is
dio_tsf1_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf1_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf1_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf1_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf1_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf1_leap_second_valid_i
:
in
std_logic
;
irq_nempty_1_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -275,6 +285,8 @@ architecture rtl of xwr_dio is
dio_tsf2_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf2_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf2_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf2_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf2_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf2_leap_second_valid_i
:
in
std_logic
;
irq_nempty_2_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -287,6 +299,8 @@ architecture rtl of xwr_dio is
dio_tsf3_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf3_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf3_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf3_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf3_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf3_leap_second_valid_i
:
in
std_logic
;
irq_nempty_3_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -299,6 +313,8 @@ architecture rtl of xwr_dio is
dio_tsf4_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf4_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf4_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf4_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf4_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf4_leap_second_valid_i
:
in
std_logic
;
irq_nempty_4_i
:
in
std_logic
;
-- FIFO write request
...
...
@@ -311,6 +327,8 @@ architecture rtl of xwr_dio is
dio_tsf5_tag_secondsh_i
:
in
std_logic_vector
(
7
downto
0
);
dio_tsf5_tag_cycles_i
:
in
std_logic_vector
(
27
downto
0
);
dio_tsf5_leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
dio_tsf5_leap_second_flag_59_i
:
in
std_logic
;
dio_tsf5_leap_second_flag_61_i
:
in
std_logic
;
dio_tsf5_leap_second_valid_i
:
in
std_logic
;
irq_nempty_5_i
:
in
std_logic
;
-- Port for std_logic_vector field: 'seconds field' in reg: 'fmc-dio 0 seconds-based trigger for pulse generation'
...
...
@@ -478,6 +496,8 @@ architecture rtl of xwr_dio is
signal
dio_tsf_tag_seconds
:
t_seconds_array
;
signal
dio_tsf_tag_cycles
:
t_cycles_array
;
signal
dio_tsf_leap_second
:
t_leap_seconds_array
;
signal
dio_tsf_leap_second_flag_59
:
std_logic_vector
(
5
downto
0
);
signal
dio_tsf_leap_second_flag_61
:
std_logic_vector
(
5
downto
0
);
signal
dio_tsf_leap_second_valid
:
std_logic_vector
(
5
downto
0
);
-- Fifos no-empty interrupts
...
...
@@ -858,7 +878,14 @@ begin
dio_sdn_ck_n_o
<=
gpio_out
(
30
);
dio_sdn_n_o
<=
gpio_out
(
31
);
-- Adapter of wbgen2 salve signals to top wb mode and granularity
leap_second_asig
:
for
i
in
0
to
5
generate
dio_tsf_leap_second
(
i
)
<=
leap_second_value_i
;
dio_tsf_leap_second_flag_59
(
i
)
<=
leap_second_flag_59_i
;
dio_tsf_leap_second_flag_61
(
i
)
<=
leap_second_flag_61_i
;
dio_tsf_leap_second_valid
(
i
)
<=
leap_second_flag_valid_i
;
end
generate
leap_second_asig
;
-- Adapter of wbgen2 salve to top wb mode and granularity
U_Adapter
:
wb_slave_adapter
generic
map
(
g_master_use_struct
=>
true
,
...
...
@@ -907,6 +934,8 @@ begin
dio_tsf0_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
0
)(
39
downto
32
),
dio_tsf0_tag_cycles_i
=>
dio_tsf_tag_cycles
(
0
),
dio_tsf0_leap_second_value_i
=>
dio_tsf_leap_second
(
0
),
dio_tsf0_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
0
),
dio_tsf0_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
0
),
dio_tsf0_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
0
),
irq_nempty_0_i
=>
irq_nempty
(
0
),
...
...
@@ -917,6 +946,8 @@ begin
dio_tsf1_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
1
)(
39
downto
32
),
dio_tsf1_tag_cycles_i
=>
dio_tsf_tag_cycles
(
1
),
dio_tsf1_leap_second_value_i
=>
dio_tsf_leap_second
(
1
),
dio_tsf1_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
1
),
dio_tsf1_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
1
),
dio_tsf1_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
1
),
irq_nempty_1_i
=>
irq_nempty
(
1
),
...
...
@@ -927,6 +958,8 @@ begin
dio_tsf2_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
2
)(
39
downto
32
),
dio_tsf2_tag_cycles_i
=>
dio_tsf_tag_cycles
(
2
),
dio_tsf2_leap_second_value_i
=>
dio_tsf_leap_second
(
2
),
dio_tsf2_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
2
),
dio_tsf2_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
2
),
dio_tsf2_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
2
),
irq_nempty_2_i
=>
irq_nempty
(
2
),
...
...
@@ -937,6 +970,8 @@ begin
dio_tsf3_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
3
)(
39
downto
32
),
dio_tsf3_tag_cycles_i
=>
dio_tsf_tag_cycles
(
3
),
dio_tsf3_leap_second_value_i
=>
dio_tsf_leap_second
(
3
),
dio_tsf3_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
3
),
dio_tsf3_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
3
),
dio_tsf3_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
3
),
irq_nempty_3_i
=>
irq_nempty
(
3
),
...
...
@@ -947,6 +982,8 @@ begin
dio_tsf4_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
4
)(
39
downto
32
),
dio_tsf4_tag_cycles_i
=>
dio_tsf_tag_cycles
(
4
),
dio_tsf4_leap_second_value_i
=>
dio_tsf_leap_second
(
4
),
dio_tsf4_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
4
),
dio_tsf4_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
4
),
dio_tsf4_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
4
),
irq_nempty_4_i
=>
irq_nempty
(
4
),
...
...
@@ -957,6 +994,8 @@ begin
dio_tsf5_tag_secondsh_i
=>
dio_tsf_tag_seconds
(
5
)(
39
downto
32
),
dio_tsf5_tag_cycles_i
=>
dio_tsf_tag_cycles
(
5
),
dio_tsf5_leap_second_value_i
=>
dio_tsf_leap_second
(
5
),
dio_tsf5_leap_second_flag_59_i
=>
dio_tsf_leap_second_flag_59
(
5
),
dio_tsf5_leap_second_flag_61_i
=>
dio_tsf_leap_second_flag_61
(
5
),
dio_tsf5_leap_second_valid_i
=>
dio_tsf_leap_second_valid
(
5
),
irq_nempty_5_i
=>
irq_nempty
(
5
),
...
...
hdl/top/dio-common/dio_common_top.vhd
View file @
11cd4f6f
...
...
@@ -216,8 +216,13 @@ entity dio_common_top is
-- I2C interface for accessing FMC EEPROM. Deprecated, was used in
-- pre-v3.0 releases to store WRPC configuration. Now we use Flash for this.
dio_scl_b
:
inout
std_logic
;
dio_sda_b
:
inout
std_logic
dio_sda_b
:
inout
std_logic
;
-- Leap second
leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
leap_second_flag_59_i
:
in
std_logic
;
leap_second_flag_61_i
:
in
std_logic
;
leap_second_flag_valid_i
:
in
std_logic
);
end
entity
dio_common_top
;
...
...
@@ -265,7 +270,13 @@ architecture top of dio_common_top is
slave_i
:
in
t_wishbone_slave_in
;
slave_o
:
out
t_wishbone_slave_out
;
dio_int
:
out
std_logic
dio_int
:
out
std_logic
;
-- Leap second
leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
leap_second_flag_59_i
:
in
std_logic
;
leap_second_flag_61_i
:
in
std_logic
;
leap_second_flag_valid_i
:
in
std_logic
);
end
component
;
...
...
@@ -679,7 +690,11 @@ begin -- architecture top
tm_cycles_i
=>
tm_cycles
,
slave_i
=>
cnx_slave_in
(
c_WB_SLAVE_DIO
),
slave_o
=>
cnx_slave_out
(
c_WB_SLAVE_DIO
),
dio_int
=>
dio_int
dio_int
=>
dio_int
,
leap_second_value_i
=>
leap_second_value_i
,
leap_second_flag_59_i
=>
leap_second_flag_59_i
,
leap_second_flag_61_i
=>
leap_second_flag_61_i
,
leap_second_flag_valid_i
=>
leap_second_flag_valid_i
);
dio_oe_n_o
<=
dio_oe_n_o_internal
(
4
downto
0
);
...
...
hdl/top/dio-common/dio_common_top_pkg.vhd
View file @
11cd4f6f
...
...
@@ -205,12 +205,16 @@ package dio_common_top_pkg is
dio_onewire_b
:
inout
std_logic
;
dio_sdn_n_o
:
out
std_logic
;
dio_sdn_ck_n_o
:
out
std_logic
;
-- I2C interface for accessing FMC EEPROM. Deprecated, was used in
-- pre-v3.0 releases to store WRPC configuration. Now we use Flash for this.
dio_scl_b
:
inout
std_logic
;
dio_sda_b
:
inout
std_logic
dio_sda_b
:
inout
std_logic
;
-- Leap second
leap_second_value_i
:
in
std_logic_vector
(
15
downto
0
);
leap_second_flag_59_i
:
in
std_logic
;
leap_second_flag_61_i
:
in
std_logic
;
leap_second_flag_valid_i
:
in
std_logic
);
end
component
;
...
...
hdl/top/dio-nic/dio_nic_top.vhd
View file @
11cd4f6f
...
...
@@ -283,7 +283,11 @@ begin
dio_sdn_n_o
=>
dio_sdn_n_o
,
dio_sdn_ck_n_o
=>
dio_sdn_ck_n_o
,
dio_scl_b
=>
dio_scl_b
,
dio_sda_b
=>
dio_sda_b
dio_sda_b
=>
dio_sda_b
,
leap_second_value_i
=>
x"CAFE"
,
leap_second_flag_59_i
=>
'1'
,
leap_second_flag_61_i
=>
'0'
,
leap_second_flag_valid_i
=>
'1'
);
end
architecture
top
;
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