Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit core collection
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
30
Issues
30
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Schedules
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
White Rabbit core collection
Commits
dcd569f8
Commit
dcd569f8
authored
Jun 20, 2017
by
Maciej Lipinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[wbgen-ver] updated diags to have version of the wbgen registers
parent
dd82e961
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
50 deletions
+60
-50
wrc_diags_pkg.vhd
modules/wrc_core/wrc_diags_pkg.vhd
+4
-1
wrc_diags_wb.vhd
modules/wrc_core/wrc_diags_wb.vhd
+32
-30
wrc_diags_wb.wb
modules/wrc_core/wrc_diags_wb.wb
+1
-0
wrc_diags_regs.vh
sim/wrc_diags_regs.vh
+23
-19
No files found.
modules/wrc_core/wrc_diags_pkg.vhd
View file @
dcd569f8
...
...
@@ -3,7 +3,8 @@
---------------------------------------------------------------------------------------
-- File : wrc_diags_pkg.vhd
-- Author : auto-generated by wbgen2 from wrc_diags_wb.wb
-- Created : Tue Apr 25 12:14:42 2017
-- Created : Tue Jun 20 09:59:03 2017
-- Version : 0x00000001
-- Standard : VHDL'87
---------------------------------------------------------------------------------------
-- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE wrc_diags_wb.wb
...
...
@@ -70,10 +71,12 @@ package wrc_diags_wbgen2_pkg is
-- Output registers (WB slave -> user design)
type
t_wrc_diags_out_registers
is
record
ver_id_o
:
std_logic_vector
(
31
downto
0
);
ctrl_data_snapshot_o
:
std_logic
;
end
record
;
constant
c_wrc_diags_out_registers_init_value
:
t_wrc_diags_out_registers
:
=
(
ver_id_o
=>
(
others
=>
'0'
),
ctrl_data_snapshot_o
=>
'0'
);
function
"or"
(
left
,
right
:
t_wrc_diags_in_registers
)
return
t_wrc_diags_in_registers
;
...
...
modules/wrc_core/wrc_diags_wb.vhd
View file @
dcd569f8
...
...
@@ -3,7 +3,8 @@
---------------------------------------------------------------------------------------
-- File : wrc_diags_wb.vhd
-- Author : auto-generated by wbgen2 from wrc_diags_wb.wb
-- Created : Tue Apr 25 12:14:42 2017
-- Created : Tue Jun 20 09:59:03 2017
-- Version : 0x00000001
-- Standard : VHDL'87
---------------------------------------------------------------------------------------
-- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE wrc_diags_wb.wb
...
...
@@ -37,26 +38,17 @@ end wrc_diags_wb;
architecture
syn
of
wrc_diags_wb
is
signal
wrc_diags_ver_id_int
:
std_logic_vector
(
31
downto
0
);
signal
wrc_diags_ctrl_data_snapshot_int
:
std_logic
;
signal
ack_sreg
:
std_logic_vector
(
9
downto
0
);
signal
rddata_reg
:
std_logic_vector
(
31
downto
0
);
signal
wrdata_reg
:
std_logic_vector
(
31
downto
0
);
signal
bwsel_reg
:
std_logic_vector
(
3
downto
0
);
signal
rwaddr_reg
:
std_logic_vector
(
4
downto
0
);
signal
ack_in_progress
:
std_logic
;
signal
wr_int
:
std_logic
;
signal
rd_int
:
std_logic
;
signal
allones
:
std_logic_vector
(
31
downto
0
);
signal
allzeros
:
std_logic_vector
(
31
downto
0
);
begin
-- Some internal signals assignments
. For (foreseen) compatibility with other bus standards.
-- Some internal signals assignments
wrdata_reg
<=
wb_dat_i
;
bwsel_reg
<=
wb_sel_i
;
rd_int
<=
wb_cyc_i
and
(
wb_stb_i
and
(
not
wb_we_i
));
wr_int
<=
wb_cyc_i
and
(
wb_stb_i
and
wb_we_i
);
allones
<=
(
others
=>
'1'
);
allzeros
<=
(
others
=>
'0'
);
--
-- Main register bank access process.
process
(
clk_sys_i
,
rst_n_i
)
...
...
@@ -65,6 +57,7 @@ begin
ack_sreg
<=
"0000000000"
;
ack_in_progress
<=
'0'
;
rddata_reg
<=
"00000000000000000000000000000000"
;
wrc_diags_ver_id_int
<=
"00000000000000000000000000000001"
;
wrc_diags_ctrl_data_snapshot_int
<=
'0'
;
elsif
rising_edge
(
clk_sys_i
)
then
-- advance the ACK generator shift register
...
...
@@ -79,6 +72,13 @@ begin
if
((
wb_cyc_i
=
'1'
)
and
(
wb_stb_i
=
'1'
))
then
case
rwaddr_reg
(
4
downto
0
)
is
when
"00000"
=>
if
(
wb_we_i
=
'1'
)
then
wrc_diags_ver_id_int
<=
wrdata_reg
(
31
downto
0
);
end
if
;
rddata_reg
(
31
downto
0
)
<=
wrc_diags_ver_id_int
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"00001"
=>
if
(
wb_we_i
=
'1'
)
then
wrc_diags_ctrl_data_snapshot_int
<=
wrdata_reg
(
8
);
end
if
;
...
...
@@ -116,7 +116,7 @@ begin
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"000
01
"
=>
when
"000
10
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
0
)
<=
regs_i
.
wdiag_sstat_wr_mode_i
;
...
...
@@ -150,7 +150,7 @@ begin
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0001
0
"
=>
when
"0001
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
0
)
<=
regs_i
.
wdiag_pstat_link_i
;
...
...
@@ -187,7 +187,7 @@ begin
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"00
011
"
=>
when
"00
100
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
7
downto
0
)
<=
regs_i
.
wdiag_ptpstat_ptpstate_i
;
...
...
@@ -217,7 +217,7 @@ begin
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0010
0
"
=>
when
"0010
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
7
downto
0
)
<=
regs_i
.
wdiag_astat_aux_i
;
...
...
@@ -247,85 +247,85 @@ begin
rddata_reg
(
31
)
<=
'X'
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"001
01
"
=>
when
"001
10
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_txfcnt_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0011
0
"
=>
when
"0011
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_rxfcnt_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0
0111
"
=>
when
"0
1000
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_sec_msb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0100
0
"
=>
when
"0100
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_sec_lsb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"010
01
"
=>
when
"010
10
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_ns_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0101
0
"
=>
when
"0101
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_mu_msb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"01
011
"
=>
when
"01
100
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_mu_lsb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0110
0
"
=>
when
"0110
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_dms_msb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"011
01
"
=>
when
"011
10
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_dms_lsb_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"0111
0
"
=>
when
"0111
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_asym_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"
01111
"
=>
when
"
10000
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_cko_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"1000
0
"
=>
when
"1000
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_setp_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"100
01
"
=>
when
"100
10
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_ucnt_i
;
ack_sreg
(
0
)
<=
'1'
;
ack_in_progress
<=
'1'
;
when
"1001
0
"
=>
when
"1001
1
"
=>
if
(
wb_we_i
=
'1'
)
then
end
if
;
rddata_reg
(
31
downto
0
)
<=
regs_i
.
wdiag_temp_i
;
...
...
@@ -344,6 +344,8 @@ begin
-- Drive the data output bus
wb_dat_o
<=
rddata_reg
;
-- Version identifier
regs_o
.
ver_id_o
<=
wrc_diags_ver_id_int
;
-- WR DIAG data valid
-- WR DIAG data snapshot
regs_o
.
ctrl_data_snapshot_o
<=
wrc_diags_ctrl_data_snapshot_int
;
...
...
modules/wrc_core/wrc_diags_wb.wb
View file @
dcd569f8
...
...
@@ -5,6 +5,7 @@ peripheral {
description = "Diagnostics information accessible via WR";
prefix = "wrc_diags";
hdl_entity = "wrc_diags_wb";
version = 1;
reg {
name = "Ctrl";
...
...
sim/wrc_diags_regs.vh
View file @
dcd569f8
`define ADDR_WRC_DIAGS_CTRL 7'h0
`define WBGEN2_WRC_DIAGS_VERSION 32'h00000001
`define ADDR_WRC_DIAGS_VER 7'h0
`define WRC_DIAGS_VER_ID_OFFSET 0
`define WRC_DIAGS_VER_ID 32'hffffffff
`define ADDR_WRC_DIAGS_CTRL 7'h4
`define WRC_DIAGS_CTRL_DATA_VALID_OFFSET 0
`define WRC_DIAGS_CTRL_DATA_VALID 32'h00000001
`define WRC_DIAGS_CTRL_DATA_SNAPSHOT_OFFSET 8
`define WRC_DIAGS_CTRL_DATA_SNAPSHOT 32'h00000100
`define ADDR_WRC_DIAGS_WDIAG_SSTAT 7'h
4
`define ADDR_WRC_DIAGS_WDIAG_SSTAT 7'h
8
`define WRC_DIAGS_WDIAG_SSTAT_WR_MODE_OFFSET 0
`define WRC_DIAGS_WDIAG_SSTAT_WR_MODE 32'h00000001
`define WRC_DIAGS_WDIAG_SSTAT_SERVOSTATE_OFFSET 8
`define WRC_DIAGS_WDIAG_SSTAT_SERVOSTATE 32'h00000f00
`define ADDR_WRC_DIAGS_WDIAG_PSTAT 7'h
8
`define ADDR_WRC_DIAGS_WDIAG_PSTAT 7'h
c
`define WRC_DIAGS_WDIAG_PSTAT_LINK_OFFSET 0
`define WRC_DIAGS_WDIAG_PSTAT_LINK 32'h00000001
`define WRC_DIAGS_WDIAG_PSTAT_LOCKED_OFFSET 1
`define WRC_DIAGS_WDIAG_PSTAT_LOCKED 32'h00000002
`define ADDR_WRC_DIAGS_WDIAG_PTPSTAT 7'h
c
`define ADDR_WRC_DIAGS_WDIAG_PTPSTAT 7'h
10
`define WRC_DIAGS_WDIAG_PTPSTAT_PTPSTATE_OFFSET 0
`define WRC_DIAGS_WDIAG_PTPSTAT_PTPSTATE 32'h000000ff
`define ADDR_WRC_DIAGS_WDIAG_ASTAT 7'h1
0
`define ADDR_WRC_DIAGS_WDIAG_ASTAT 7'h1
4
`define WRC_DIAGS_WDIAG_ASTAT_AUX_OFFSET 0
`define WRC_DIAGS_WDIAG_ASTAT_AUX 32'h000000ff
`define ADDR_WRC_DIAGS_WDIAG_TXFCNT 7'h1
4
`define ADDR_WRC_DIAGS_WDIAG_RXFCNT 7'h1
8
`define ADDR_WRC_DIAGS_WDIAG_SEC_MSB 7'h
1c
`define ADDR_WRC_DIAGS_WDIAG_SEC_LSB 7'h2
0
`define ADDR_WRC_DIAGS_WDIAG_NS 7'h2
4
`define ADDR_WRC_DIAGS_WDIAG_MU_MSB 7'h2
8
`define ADDR_WRC_DIAGS_WDIAG_MU_LSB 7'h
2c
`define ADDR_WRC_DIAGS_WDIAG_DMS_MSB 7'h3
0
`define ADDR_WRC_DIAGS_WDIAG_DMS_LSB 7'h3
4
`define ADDR_WRC_DIAGS_WDIAG_ASYM 7'h3
8
`define ADDR_WRC_DIAGS_WDIAG_CKO 7'h
3c
`define ADDR_WRC_DIAGS_WDIAG_SETP 7'h4
0
`define ADDR_WRC_DIAGS_WDIAG_UCNT 7'h4
4
`define ADDR_WRC_DIAGS_WDIAG_TEMP 7'h4
8
`define ADDR_WRC_DIAGS_WDIAG_TXFCNT 7'h1
8
`define ADDR_WRC_DIAGS_WDIAG_RXFCNT 7'h1
c
`define ADDR_WRC_DIAGS_WDIAG_SEC_MSB 7'h
20
`define ADDR_WRC_DIAGS_WDIAG_SEC_LSB 7'h2
4
`define ADDR_WRC_DIAGS_WDIAG_NS 7'h2
8
`define ADDR_WRC_DIAGS_WDIAG_MU_MSB 7'h2
c
`define ADDR_WRC_DIAGS_WDIAG_MU_LSB 7'h
30
`define ADDR_WRC_DIAGS_WDIAG_DMS_MSB 7'h3
4
`define ADDR_WRC_DIAGS_WDIAG_DMS_LSB 7'h3
8
`define ADDR_WRC_DIAGS_WDIAG_ASYM 7'h3
c
`define ADDR_WRC_DIAGS_WDIAG_CKO 7'h
40
`define ADDR_WRC_DIAGS_WDIAG_SETP 7'h4
4
`define ADDR_WRC_DIAGS_WDIAG_UCNT 7'h4
8
`define ADDR_WRC_DIAGS_WDIAG_TEMP 7'h4
c
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