Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
Hydra - a radiation-tolerant SoC
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
Hydra - a radiation-tolerant SoC
Commits
f75d5e11
Commit
f75d5e11
authored
May 12, 2022
by
Tristan Gingold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hdl: reformatting
parent
da511871
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1235 additions
and
1588 deletions
+1235
-1588
dpram_generic.vhd
hdl/dpram_generic.vhd
+219
-259
ram_voter.vhd
hdl/ram_voter.vhd
+18
-30
secded_ecc.vhd
hdl/secded_ecc.vhd
+0
-1
seu_counters.vhd
hdl/seu_counters.vhd
+2
-8
urv_core_DTMR.vhd
hdl/urv_core_DTMR.vhd
+8
-8
urv_soc.vhd
hdl/urv_soc.vhd
+589
-863
urv_supervisor.vhd
hdl/urv_supervisor.vhd
+0
-2
wb_envm.vhd
hdl/wb_envm.vhd
+253
-251
xwb_ram_adapter.vhdl
hdl/xwb_ram_adapter.vhdl
+145
-162
xwb_seu_reg.vhd
hdl/xwb_seu_reg.vhd
+1
-2
xwb_uart.vhd
hdl/xwb_uart.vhd
+0
-1
xwb_wd_reg.vhd
hdl/xwb_wd_reg.vhd
+0
-1
No files found.
hdl/dpram_generic.vhd
View file @
f75d5e11
This diff is collapsed.
Click to expand it.
hdl/ram_voter.vhd
View file @
f75d5e11
...
...
@@ -23,52 +23,40 @@ use ieee.numeric_std.all;
use
work
.
voter
.
all
;
entity
ram_voter
is
generic
(
g_addr_width
:
natural
:
=
15
;
g_data_width
:
natural
:
=
38
);
port
(
da_vot_i
:
in
t_voter_stdvector
(
open
)(
g_data_width
-1
downto
0
);
aa_vot_i
:
in
t_voter_stdvector
(
open
)
(
g_addr_width
-1
downto
0
);
wa_vot_i
:
in
t_voter_stdlogic
;
ra_vot_i
:
in
t_voter_stdlogic
;
lock_a_req_vot_i
:
in
t_voter_stdlogic
;
da_o
:
out
std_logic_vector
(
g_data_width
-1
downto
0
);
aa_o
:
out
std_logic_vector
(
g_addr_width
-1
downto
0
);
wa_o
:
out
std_logic
;
ra_o
:
out
std_logic
;
lock_a_req_o
:
out
std_logic
);
generic
(
g_addr_width
:
natural
:
=
15
;
g_data_width
:
natural
:
=
38
);
port
(
da_vot_i
:
in
t_voter_stdvector
(
open
)(
g_data_width
-1
downto
0
);
aa_vot_i
:
in
t_voter_stdvector
(
open
)
(
g_addr_width
-1
downto
0
);
wa_vot_i
:
in
t_voter_stdlogic
;
ra_vot_i
:
in
t_voter_stdlogic
;
lock_a_req_vot_i
:
in
t_voter_stdlogic
;
da_o
:
out
std_logic_vector
(
g_data_width
-1
downto
0
);
aa_o
:
out
std_logic_vector
(
g_addr_width
-1
downto
0
);
wa_o
:
out
std_logic
;
ra_o
:
out
std_logic
;
lock_a_req_o
:
out
std_logic
);
end
ram_voter
;
architecture
rtl
of
ram_voter
is
begin
da
:
for
i
in
da_o
'range
generate
da_o
(
i
)
<=
(
da_vot_i
(
1
)(
i
)
and
da_vot_i
(
2
)(
i
))
or
(
da_vot_i
(
2
)(
i
)
and
da_vot_i
(
3
)(
i
))
or
(
da_vot_i
(
1
)(
i
)
and
da_vot_i
(
3
)(
i
));
end
generate
;
aa
:
for
i
in
aa_o
'range
generate
aa_o
(
i
)
<=
(
aa_vot_i
(
1
)(
i
)
and
aa_vot_i
(
2
)(
i
))
or
(
aa_vot_i
(
2
)(
i
)
and
aa_vot_i
(
3
)(
i
))
or
(
aa_vot_i
(
1
)(
i
)
and
aa_vot_i
(
3
)(
i
));
end
generate
;
wa_o
<=
(
wa_vot_i
(
1
)
and
wa_vot_i
(
2
))
or
(
wa_vot_i
(
2
)
and
wa_vot_i
(
3
))
or
(
wa_vot_i
(
1
)
and
wa_vot_i
(
3
));
ra_o
<=
(
ra_vot_i
(
1
)
and
ra_vot_i
(
2
))
or
(
ra_vot_i
(
2
)
and
ra_vot_i
(
3
))
or
(
ra_vot_i
(
1
)
and
ra_vot_i
(
3
));
lock_a_req_o
<=
(
lock_a_req_vot_i
(
1
)
and
lock_a_req_vot_i
(
2
))
or
(
lock_a_req_vot_i
(
2
)
and
lock_a_req_vot_i
(
3
))
or
(
lock_a_req_vot_i
(
1
)
and
lock_a_req_vot_i
(
3
));
end
architecture
;
hdl/secded_ecc.vhd
View file @
f75d5e11
...
...
@@ -165,7 +165,6 @@ architecture rtl of secded_ecc is
end
f_ecc_errors
;
function
f_ecc_one_error
(
syndrome
:
std_logic_vector
(
6
downto
0
))
return
std_logic
is
variable
syndrome_bound_check
:
std_logic
;
begin
if
Is_x
(
syndrome
(
0
))
then
return
'0'
;
...
...
hdl/seu_counters.vhd
View file @
f75d5e11
...
...
@@ -13,12 +13,8 @@ use work.wishbone_pkg.all;
--use smartfusion2.all;
use
work
.
voter
.
all
;
use
work
.
wb_voter_pkg
.
all
;
entity
seu_counters
is
port
(
clk_i
:
in
std_logic
;
rst_i
:
in
std_logic
;
...
...
@@ -34,16 +30,14 @@ entity seu_counters is
se_iram_o
:
out
std_logic_vector
(
15
downto
0
);
de_iram_o
:
out
std_logic_vector
(
15
downto
0
)
);
end
entity
seu_counters
;
architecture
rtl
of
seu_counters
is
signal
se_iram_counter
,
de_iram_counter
,
se_dram_counter
,
de_dram_counter
:
unsigned
(
15
downto
0
);
attribute
syn_radhardlevel
:
string
;
attribute
syn_radhardlevel
of
rtl
:
architecture
is
"tmr"
;
attribute
syn_radhardlevel
:
string
;
attribute
syn_radhardlevel
of
rtl
:
architecture
is
"tmr"
;
begin
...
...
hdl/urv_core_DTMR.vhd
View file @
f75d5e11
...
...
@@ -187,12 +187,12 @@ end component;
signal
im_addr
,
dm_addr
,
dram_addr
:
std_logic_vector
(
31
downto
0
);
signal
im_data
,
im_data_cpu
,
im_data_bank1
,
dram_data_in
,
dram_data_out
:
std_logic_vector
(
31
downto
0
);
signal
im_valid
,
im_valid_cpu
,
im_valid_bank1
:
std_logic
;
signal
im_data
,
dram_data_in
,
dram_data_out
:
std_logic_vector
(
31
downto
0
);
signal
im_valid
:
std_logic
;
signal
dm_data_s
,
dm_data_l
,
dm_
data_ram
,
dm_
wb_rdata
:
std_logic_vector
(
31
downto
0
);
signal
dm_data_s
,
dm_data_l
,
dm_wb_rdata
:
std_logic_vector
(
31
downto
0
);
signal
dm_data_select
,
dram_bwe
:
std_logic_vector
(
3
downto
0
);
signal
dm_load
,
dm_store
,
d
m_done
,
dm_ready
,
d
ram_we
,
dram_re
:
std_logic
;
signal
dm_load
,
dm_store
,
dram_we
,
dram_re
:
std_logic
;
signal
dram_done_r
,
dram_done_w
:
std_logic
;
signal
dm_is_wishbone
,
dm_cycle_in_progress
,
dm_load_done_wb
,
dm_store_done_wb
:
std_logic
;
...
...
@@ -384,11 +384,11 @@ end generate;
dram_addr
<=
(
others
=>
'0'
);
else
-- signals from uRV data interface to the data-ram are sampled to improve fmax
if
(
dram_done_r
or
dram_done_w
)
then
if
(
dram_done_r
or
dram_done_w
)
then
dram_we
<=
'0'
;
dram_re
<=
'0'
;
end
if
;
end
if
;
if
(
dm_is_wishbone
=
'0'
and
(
dm_load
=
'1'
or
dm_store
=
'1'
))
then
dram_addr
<=
dm_addr
;
dram_data_in
<=
dm_data_s
;
...
...
@@ -420,7 +420,7 @@ end generate;
dm_load_done_wb
<=
'0'
;
dm_cycle_in_progress
<=
'0'
;
end
if
;
else
if
(
cpu_dwb_i
.
stall
=
'0'
)
then
cpu_dwb_o
.
stb
<=
'0'
;
...
...
hdl/urv_soc.vhd
View file @
f75d5e11
This diff is collapsed.
Click to expand it.
hdl/urv_supervisor.vhd
View file @
f75d5e11
...
...
@@ -13,7 +13,6 @@ use work.wishbone_pkg.all;
--use smartfusion2.all;
use
work
.
voter
.
all
;
use
work
.
wb_voter_pkg
.
all
;
...
...
@@ -48,7 +47,6 @@ architecture rtl of urv_supervisor is
signal
state_cpu_1
,
state_cpu_2
,
state_cpu_3
:
std_logic
;
signal
state_cpu
:
std_logic_vector
(
3
downto
1
);
signal
release_cpu
:
std_logic
;
type
fsm_states
is
(
boot
,
boot_cnt
,
voting
,
lock_step
,
fatal
,
fatal_2
);
constant
recovery_dunc
:
std_logic_vector
(
15
downto
0
)
:
=
x"0000"
;
...
...
hdl/wb_envm.vhd
View file @
f75d5e11
This diff is collapsed.
Click to expand it.
hdl/xwb_ram_adapter.vhdl
View file @
f75d5e11
This diff is collapsed.
Click to expand it.
hdl/xwb_seu_reg.vhd
View file @
f75d5e11
...
...
@@ -83,8 +83,7 @@ begin
slave_o
.
err
<=
'0'
;
slave_o
.
rty
<=
'0'
;
slave_o
.
int
<=
'0'
;
desc_o
<=
(
others
=>
'0'
);
...
...
hdl/xwb_uart.vhd
View file @
f75d5e11
...
...
@@ -78,7 +78,6 @@ begin
slave_o
.
err
<=
'0'
;
slave_o
.
rty
<=
'0'
;
slave_o
.
int
<=
'0'
;
desc_o
<=
(
others
=>
'0'
);
...
...
hdl/xwb_wd_reg.vhd
View file @
f75d5e11
...
...
@@ -70,7 +70,6 @@ begin
slave_o
.
err
<=
'0'
;
slave_o
.
rty
<=
'0'
;
slave_o
.
int
<=
'0'
;
desc_o
<=
(
others
=>
'0'
);
...
...
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