Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
H
HDL
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RTSD
HDL
Commits
8417490f
Commit
8417490f
authored
Jul 26, 2016
by
Priest
Browse files
Options
Downloads
Patches
Plain Diff
Added support for 8 nodes (4 front, 4 back)
parent
9590b4f6
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
applications/stagiair/libraries/terminal/tb/vhdl/tb_terminal_node.vhd
+242
-185
242 additions, 185 deletions
.../stagiair/libraries/terminal/tb/vhdl/tb_terminal_node.vhd
with
242 additions
and
185 deletions
applications/stagiair/libraries/terminal/tb/vhdl/tb_terminal_node.vhd
+
242
−
185
View file @
8417490f
...
@@ -23,12 +23,12 @@ USE IEEE.STD_LOGIC_1164.ALL;
...
@@ -23,12 +23,12 @@ USE IEEE.STD_LOGIC_1164.ALL;
USE
IEEE
.
NUMERIC_STD
.
ALL
;
USE
IEEE
.
NUMERIC_STD
.
ALL
;
USE
common_lib
.
common_pkg
.
ALL
;
USE
common_lib
.
common_pkg
.
ALL
;
USE
common_lib
.
common_mem_pkg
.
ALL
;
USE
common_lib
.
common_mem_pkg
.
ALL
;
USE
dp_lib
.
dp_stream_pkg
.
ALL
;
USE
unb1_board_lib
.
unb1_board_pkg
.
ALL
;
USE
unb1_board_lib
.
unb1_board_pkg
.
ALL
;
USE
unb1_board_lib
.
unb1_board_peripherals_pkg
.
ALL
;
USE
unb1_board_lib
.
tb_unb1_board_pkg
.
ALL
;
USE
diag_lib
.
diag_pkg
.
ALL
;
USE
mm_lib
.
mm_file_unb_pkg
.
ALL
;
USE
mm_lib
.
mm_file_unb_pkg
.
ALL
;
USE
mm_lib
.
mm_file_pkg
.
ALL
;
USE
mm_lib
.
mm_file_pkg
.
ALL
;
USE
dp_lib
.
dp_stream_pkg
.
ALL
;
USE
diag_lib
.
diag_pkg
.
ALL
;
ENTITY
tb_terminal_node
IS
ENTITY
tb_terminal_node
IS
END
tb_terminal_node
;
END
tb_terminal_node
;
...
@@ -37,16 +37,20 @@ ARCHITECTURE t_bench OF tb_terminal_node IS
...
@@ -37,16 +37,20 @@ ARCHITECTURE t_bench OF tb_terminal_node IS
-- Clocks
-- Clocks
CONSTANT
c_mm_clk_period
:
TIME
:
=
20
ns
;
-- 100 ps;
CONSTANT
c_mm_clk_period
:
TIME
:
=
20
ns
;
-- 100 ps;
CONSTANT
c_dp_clk_period
:
TIME
:
=
5
ns
;
CONSTANT
c_dp_clk_period
:
TIME
:
=
5
ns
;
CONSTANT
c_tr_clk_period
:
TIME
:
=
6
.
4
n
s
;
CONSTANT
c_tr_clk_period
:
TIME
:
=
6
400
p
s
;
CONSTANT
c_cal_rec_clk_period
:
TIME
:
=
25
ns
;
CONSTANT
c_cal_rec_clk_period
:
TIME
:
=
25
ns
;
CONSTANT
c_sim
:
BOOLEAN
:
=
TRUE
;
CONSTANT
c_sim
:
BOOLEAN
:
=
TRUE
;
CONSTANT
c_sim_level
:
NATURAL
:
=
1
;
CONSTANT
c_sim_level
:
NATURAL
:
=
1
;
CONSTANT
c_nof_nodes
:
NATURAL
:
=
2
;
CONSTANT
c_nof_fn
:
NATURAL
:
=
4
;
CONSTANT
c_nof_bn
:
NATURAL
:
=
4
;
CONSTANT
c_nof_nodes
:
NATURAL
:
=
c_nof_fn
+
c_nof_bn
;
CONSTANT
c_ena_mesh_reorder
:
BOOLEAN
:
=
TRUE
;
CONSTANT
c_chip_id_w
:
NATURAL
:
=
3
;
TYPE
t_fn_bn_arr
IS
ARRAY
(
INTEGER
RANGE
<>
)
OF
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
TYPE
t_mesh_arr
IS
ARRAY
(
0
TO
c_nof_nodes
-1
)
OF
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
TYPE
t_fn_bn_2arr
IS
ARRAY
(
INTEGER
RANGE
<>
)
OF
t_fn_bn_arr
(
7
DOWNTO
0
);
-- Clock signals
-- Clock signals
SIGNAL
dp_clk
:
STD_LOGIC
:
=
'0'
;
SIGNAL
dp_clk
:
STD_LOGIC
:
=
'0'
;
...
@@ -57,58 +61,40 @@ ARCHITECTURE t_bench OF tb_terminal_node IS
...
@@ -57,58 +61,40 @@ ARCHITECTURE t_bench OF tb_terminal_node IS
SIGNAL
tr_clk
:
STD_LOGIC
:
=
'0'
;
SIGNAL
tr_clk
:
STD_LOGIC
:
=
'0'
;
SIGNAL
cal_rec_clk
:
STD_LOGIC
:
=
'0'
;
SIGNAL
cal_rec_clk
:
STD_LOGIC
:
=
'0'
;
-- 2D array of the FN_BN_0 to FN_BN_3 signals
-- Set TX and RX in different arrays?
-- SIGNAL fn_bn_tx_rx_2arr : t_fn_bn_2arr(0 TO c_nof_nodes);
-----------------------------------------------------------------------------
-- FN0 Signals
-----------------------------------------------------------------------------
SIGNAL
fn0_bg_reg_ctrl_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_bg_reg_ctrl_miso
:
t_mem_miso
;
SIGNAL
fn0_bg_ram_data_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_bg_ram_data_miso
:
t_mem_miso
;
SIGNAL
fn0_db_ram_data_buf_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_db_ram_data_buf_miso
:
t_mem_miso
;
SIGNAL
fn0_db_reg_data_buf_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_db_reg_data_buf_miso
:
t_mem_miso
;
SIGNAL
fn0_reg_tr_nonbonded_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_reg_tr_nonbonded_miso
:
t_mem_miso
;
SIGNAL
fn0_reg_diagnostics_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
fn0_reg_diagnostics_miso
:
t_mem_miso
;
SIGNAL
fn0_FN_BN_0_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_0_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_1_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_1_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_2_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_2_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_3_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
fn0_FN_BN_3_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--
BN0 S
ignals
--
DUT s
ignals
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
SIGNAL
bn0_bg_reg_ctrl_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
bg_reg_ctrl_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_bg_reg_ctrl_miso
:
t_mem_miso
;
SIGNAL
bg_reg_ctrl_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
bn0_bg_ram_data_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
bg_ram_data_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_bg_ram_data_miso
:
t_mem_miso
;
SIGNAL
bg_ram_data_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
bn0_db_ram_data_buf_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
bn0_db_ram_data_buf_miso
:
t_mem_miso
;
SIGNAL
db_ram_data_buf_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_db_reg_data_buf_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
db_ram_data_buf_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
bn0_db_reg_data_buf_miso
:
t_mem_miso
;
SIGNAL
db_reg_data_buf_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_reg_tr_nonbonded_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
db_reg_data_buf_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
bn0_reg_tr_nonbonded_miso
:
t_mem_miso
;
SIGNAL
bn0_reg_diagnostics_mosi
:
t_mem_mosi
:
=
c_mem_mosi_rst
;
SIGNAL
mt_reg_tr_nonbonded_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_reg_diagnostics_miso
:
t_mem_miso
;
SIGNAL
mt_reg_tr_nonbonded_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
mt_reg_diagnostics_mosi_arr
:
t_mem_mosi_arr
(
c_nof_nodes
-1
DOWNTO
0
)
:
=
(
OTHERS
=>
c_mem_mosi_rst
);
SIGNAL
bn0_FN_BN_0_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
mt_reg_diagnostics_miso_arr
:
t_mem_miso_arr
(
c_nof_nodes
-1
DOWNTO
0
);
SIGNAL
bn0_FN_BN_0_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
bn0_FN_BN_1_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_0_TX_arr
:
t_mesh_arr
;
SIGNAL
bn0_FN_BN_1_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_0_RX_arr
:
t_mesh_arr
;
SIGNAL
bn0_FN_BN_2_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_1_TX_arr
:
t_mesh_arr
;
SIGNAL
bn0_FN_BN_2_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_1_RX_arr
:
t_mesh_arr
;
SIGNAL
bn0_FN_BN_3_TX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_2_TX_arr
:
t_mesh_arr
;
SIGNAL
bn0_FN_BN_3_RX
:
STD_LOGIC_VECTOR
(
c_unb1_board_tr_mesh
.
bus_w
-1
DOWNTO
0
);
SIGNAL
FN_BN_2_RX_arr
:
t_mesh_arr
;
SIGNAL
FN_BN_3_TX_arr
:
t_mesh_arr
;
SIGNAL
FN_BN_3_RX_arr
:
t_mesh_arr
;
------------------------------------------------------------------------------
-- BN & FN mesh side serial I/O
------------------------------------------------------------------------------
SIGNAL
bn_out_mesh_serial_3arr
:
t_unb1_board_mesh_sl_3arr
;
SIGNAL
bn_in_mesh_serial_3arr
:
t_unb1_board_mesh_sl_3arr
;
SIGNAL
fn_in_mesh_serial_3arr
:
t_unb1_board_mesh_sl_3arr
;
SIGNAL
fn_out_mesh_serial_3arr
:
t_unb1_board_mesh_sl_3arr
;
COMPONENT
mm_file
COMPONENT
mm_file
GENERIC
(
GENERIC
(
...
@@ -133,17 +119,21 @@ BEGIN
...
@@ -133,17 +119,21 @@ BEGIN
tr_clk
<=
NOT
tr_clk
AFTER
c_tr_clk_period
/
2
;
tr_clk
<=
NOT
tr_clk
AFTER
c_tr_clk_period
/
2
;
cal_rec_clk
<=
NOT
cal_rec_clk
AFTER
c_cal_rec_clk_period
/
2
;
cal_rec_clk
<=
NOT
cal_rec_clk
AFTER
c_cal_rec_clk_period
/
2
;
---------------------------------------------------------------------------
dutFN0
:
ENTITY
work
.
terminal_node
-- Generate front and back nodes
GENERIC
MAP
(
--------------------------------------------------------------------------
gen_fn
:
FOR
FN
IN
0
TO
c_nof_fn
-1
GENERATE
dutFN
:
ENTITY
work
.
terminal_node
GENERIC
MAP
(
g_sim
=>
c_sim
,
g_sim
=>
c_sim
,
g_sim_level
=>
c_sim_level
,
g_sim_level
=>
c_sim_level
,
g_sim_node_nr
=>
0
g_sim_node_nr
=>
FN
--g_node_type => e_fn
--g_node_type => e_fn
)
)
PORT
MAP
(
PORT
MAP
(
-- System
-- System
chip_id
=>
"000"
,
-- Front node 0
chip_id
=>
TO_UVEC
(
FN
,
c_chip_id_w
),
mm_rst
=>
mm_rst
,
mm_rst
=>
mm_rst
,
mm_clk
=>
mm_clk
,
mm_clk
=>
mm_clk
,
dp_rst
=>
dp_rst
,
dp_rst
=>
dp_rst
,
...
@@ -153,41 +143,66 @@ BEGIN
...
@@ -153,41 +143,66 @@ BEGIN
cal_clk
=>
cal_rec_clk
,
cal_clk
=>
cal_rec_clk
,
-- MM interface
-- MM interface
-- Block generator
-- Block generator
bg_reg_ctrl_mosi
=>
fn0_
bg_reg_ctrl_mosi
,
bg_reg_ctrl_mosi
=>
bg_reg_ctrl_mosi
_arr
(
FN
)
,
bg_reg_ctrl_miso
=>
fn0_
bg_reg_ctrl_miso
,
bg_reg_ctrl_miso
=>
bg_reg_ctrl_miso
_arr
(
FN
)
,
bg_ram_data_mosi
=>
fn0_
bg_ram_data_mosi
,
bg_ram_data_mosi
=>
bg_ram_data_mosi
_arr
(
FN
)
,
bg_ram_data_miso
=>
fn0_
bg_ram_data_miso
,
bg_ram_data_miso
=>
bg_ram_data_miso
_arr
(
FN
)
,
-- Diag Data buffer
-- Diag Data buffer
db_ram_data_buf_mosi
=>
fn0_
db_ram_data_buf_mosi
,
db_ram_data_buf_mosi
=>
db_ram_data_buf_mosi
_arr
(
FN
)
,
db_ram_data_buf_miso
=>
fn0_
db_ram_data_buf_miso
,
db_ram_data_buf_miso
=>
db_ram_data_buf_miso
_arr
(
FN
)
,
db_reg_data_buf_mosi
=>
fn0_
db_reg_data_buf_mosi
,
db_reg_data_buf_mosi
=>
db_reg_data_buf_mosi
_arr
(
FN
)
,
db_reg_data_buf_miso
=>
fn0_
db_reg_data_buf_miso
,
db_reg_data_buf_miso
=>
db_reg_data_buf_miso
_arr
(
FN
)
,
-- Terminal
-- Terminal
reg_tr_nonbonded_mosi
=>
fn0
_reg_tr_nonbonded_mosi
,
reg_tr_nonbonded_mosi
=>
mt
_reg_tr_nonbonded_mosi
_arr
(
FN
)
,
reg_tr_nonbonded_miso
=>
fn0
_reg_tr_nonbonded_miso
,
reg_tr_nonbonded_miso
=>
mt
_reg_tr_nonbonded_miso
_arr
(
FN
)
,
reg_diagnostics_mosi
=>
fn0
_reg_diagnostics_mosi
,
reg_diagnostics_mosi
=>
mt
_reg_diagnostics_mosi
_arr
(
FN
)
,
reg_diagnostics_miso
=>
fn0
_reg_diagnostics_miso
,
reg_diagnostics_miso
=>
mt
_reg_diagnostics_miso
_arr
(
FN
)
,
-- Mesh Serial I/O
-- Mesh Serial I/O
FN_BN_0_TX
=>
fn0_
FN_BN_0_TX
,
FN_BN_0_TX
=>
FN_BN_0_TX
_arr
(
FN
)
,
FN_BN_0_RX
=>
fn0_
FN_BN_0_RX
,
FN_BN_0_RX
=>
FN_BN_0_RX
_arr
(
FN
)
,
FN_BN_1_TX
=>
fn0_
FN_BN_1_TX
,
FN_BN_1_TX
=>
FN_BN_1_TX
_arr
(
FN
)
,
FN_BN_1_RX
=>
fn0_
FN_BN_1_RX
,
FN_BN_1_RX
=>
FN_BN_1_RX
_arr
(
FN
)
,
FN_BN_2_TX
=>
fn0_
FN_BN_2_TX
,
FN_BN_2_TX
=>
FN_BN_2_TX
_arr
(
FN
)
,
FN_BN_2_RX
=>
fn0_
FN_BN_2_RX
,
FN_BN_2_RX
=>
FN_BN_2_RX
_arr
(
FN
)
,
FN_BN_3_TX
=>
fn0_
FN_BN_3_TX
,
FN_BN_3_TX
=>
FN_BN_3_TX
_arr
(
FN
)
,
FN_BN_3_RX
=>
fn0_
FN_BN_3_RX
FN_BN_3_RX
=>
FN_BN_3_RX
_arr
(
FN
)
);
);
dutBN0
:
ENTITY
work
.
terminal_node
-- Use mesh_io block to create 3arr format for the mesh model.
u_mesh_io
:
ENTITY
unb1_board_lib
.
unb1_board_mesh_io
GENERIC
MAP
(
GENERIC
MAP
(
g_bus_w
=>
c_unb1_board_tr_mesh
.
bus_w
)
PORT
MAP
(
tx_serial_2arr
=>
fn_in_mesh_serial_3arr
(
FN
),
rx_serial_2arr
=>
fn_out_mesh_serial_3arr
(
FN
),
-- Serial I/O
FN_BN_0_TX
=>
FN_BN_0_RX_arr
(
FN
),
FN_BN_0_RX
=>
FN_BN_0_TX_arr
(
FN
),
FN_BN_1_TX
=>
FN_BN_1_RX_arr
(
FN
),
FN_BN_1_RX
=>
FN_BN_1_TX_arr
(
FN
),
FN_BN_2_TX
=>
FN_BN_2_RX_arr
(
FN
),
FN_BN_2_RX
=>
FN_BN_2_TX_arr
(
FN
),
FN_BN_3_TX
=>
FN_BN_3_RX_arr
(
FN
),
FN_BN_3_RX
=>
FN_BN_3_TX_arr
(
FN
)
);
END
GENERATE
;
-- Back nodes
gen_bn
:
FOR
BN
IN
0
TO
c_nof_bn
-1
GENERATE
dutBN
:
ENTITY
work
.
terminal_node
GENERIC
MAP
(
g_sim
=>
c_sim
,
g_sim
=>
c_sim
,
g_sim_level
=>
c_sim_level
,
g_sim_level
=>
c_sim_level
,
g_sim_node_nr
=>
1
g_sim_node_nr
=>
BN
--g_node_type => e_bn
--g_node_type => e_bn
)
)
PORT
MAP
(
PORT
MAP
(
-- System
-- System
chip_id
=>
"100"
,
-- Back node 0
chip_id
=>
TO_UVEC
(
BN
+
4
,
c_chip_id_w
),
mm_rst
=>
mm_rst
,
mm_rst
=>
mm_rst
,
mm_clk
=>
mm_clk
,
mm_clk
=>
mm_clk
,
dp_rst
=>
dp_rst
,
dp_rst
=>
dp_rst
,
...
@@ -197,44 +212,78 @@ BEGIN
...
@@ -197,44 +212,78 @@ BEGIN
cal_clk
=>
cal_rec_clk
,
cal_clk
=>
cal_rec_clk
,
-- MM interface
-- MM interface
-- Block generator
-- Block generator
bg_reg_ctrl_mosi
=>
bn0_
bg_reg_ctrl_mosi
,
bg_reg_ctrl_mosi
=>
bg_reg_ctrl_mosi
_arr
(
BN
+
c_nof_fn
)
,
bg_reg_ctrl_miso
=>
bn0_
bg_reg_ctrl_miso
,
bg_reg_ctrl_miso
=>
bg_reg_ctrl_miso
_arr
(
BN
+
c_nof_fn
)
,
bg_ram_data_mosi
=>
bn0_
bg_ram_data_mosi
,
bg_ram_data_mosi
=>
bg_ram_data_mosi
_arr
(
BN
+
c_nof_fn
)
,
bg_ram_data_miso
=>
bn0_
bg_ram_data_miso
,
bg_ram_data_miso
=>
bg_ram_data_miso
_arr
(
BN
+
c_nof_fn
)
,
-- Diag Data buffer
-- Diag Data buffer
db_ram_data_buf_mosi
=>
bn0_
db_ram_data_buf_mosi
,
db_ram_data_buf_mosi
=>
db_ram_data_buf_mosi
_arr
(
BN
+
c_nof_fn
)
,
db_ram_data_buf_miso
=>
bn0_
db_ram_data_buf_miso
,
db_ram_data_buf_miso
=>
db_ram_data_buf_miso
_arr
(
BN
+
c_nof_fn
)
,
db_reg_data_buf_mosi
=>
bn0_
db_reg_data_buf_mosi
,
db_reg_data_buf_mosi
=>
db_reg_data_buf_mosi
_arr
(
BN
+
c_nof_fn
)
,
db_reg_data_buf_miso
=>
bn0_
db_reg_data_buf_miso
,
db_reg_data_buf_miso
=>
db_reg_data_buf_miso
_arr
(
BN
+
c_nof_fn
)
,
-- Terminal
-- Terminal
reg_tr_nonbonded_mosi
=>
bn0
_reg_tr_nonbonded_mosi
,
reg_tr_nonbonded_mosi
=>
mt
_reg_tr_nonbonded_mosi
_arr
(
BN
+
c_nof_fn
)
,
reg_tr_nonbonded_miso
=>
bn0
_reg_tr_nonbonded_miso
,
reg_tr_nonbonded_miso
=>
mt
_reg_tr_nonbonded_miso
_arr
(
BN
+
c_nof_fn
)
,
reg_diagnostics_mosi
=>
bn0
_reg_diagnostics_mosi
,
reg_diagnostics_mosi
=>
mt
_reg_diagnostics_mosi
_arr
(
BN
+
c_nof_fn
)
,
reg_diagnostics_miso
=>
bn0
_reg_diagnostics_miso
,
reg_diagnostics_miso
=>
mt
_reg_diagnostics_miso
_arr
(
BN
+
c_nof_fn
)
,
-- Mesh Serial I/O
-- Mesh Serial I/O
FN_BN_0_TX
=>
bn0_FN_BN_0_TX
,
FN_BN_0_TX
=>
FN_BN_0_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_0_RX
=>
bn0_FN_BN_0_RX
,
FN_BN_0_RX
=>
FN_BN_0_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_1_TX
=>
bn0_FN_BN_1_TX
,
FN_BN_1_TX
=>
FN_BN_1_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_1_RX
=>
bn0_FN_BN_1_RX
,
FN_BN_1_RX
=>
FN_BN_1_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_2_TX
=>
bn0_FN_BN_2_TX
,
FN_BN_2_TX
=>
FN_BN_2_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_2_RX
=>
bn0_FN_BN_2_RX
,
FN_BN_2_RX
=>
FN_BN_2_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_3_TX
=>
bn0_FN_BN_3_TX
,
FN_BN_3_TX
=>
FN_BN_3_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_3_RX
=>
bn0_FN_BN_3_RX
FN_BN_3_RX
=>
FN_BN_3_RX_arr
(
BN
+
c_nof_fn
)
);
-- Use mesh_io block to create 3arr format for the mesh model.
u_mesh_io
:
ENTITY
unb1_board_lib
.
unb1_board_mesh_io
GENERIC
MAP
(
g_bus_w
=>
c_unb1_board_tr_mesh
.
bus_w
)
PORT
MAP
(
tx_serial_2arr
=>
bn_in_mesh_serial_3arr
(
BN
),
rx_serial_2arr
=>
bn_out_mesh_serial_3arr
(
BN
),
-- Serial I/O
FN_BN_0_TX
=>
FN_BN_0_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_0_RX
=>
FN_BN_0_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_1_TX
=>
FN_BN_1_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_1_RX
=>
FN_BN_1_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_2_TX
=>
FN_BN_2_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_2_RX
=>
FN_BN_2_TX_arr
(
BN
+
c_nof_fn
),
FN_BN_3_TX
=>
FN_BN_3_RX_arr
(
BN
+
c_nof_fn
),
FN_BN_3_RX
=>
FN_BN_3_TX_arr
(
BN
+
c_nof_fn
)
);
);
END
GENERATE
;
---------------------------------------------------------------------------
---------------------------------------------------------------------------
-- Link the TX and RX's together
-- Link the TX and RX's together
--------------------------------------------------------------------------
--------------------------------------------------------------------------
fn0_FN_BN_0_RX
<=
bn0_FN_BN_0_TX
;
fn0_FN_BN_1_RX
<=
bn0_FN_BN_1_TX
;
-- Direct interconnect BN0<->FN0.
fn0_FN_BN_2_RX
<=
bn0_FN_BN_2_TX
;
no_mesh
:
IF
c_nof_bn
=
1
AND
c_nof_fn
=
1
GENERATE
fn0_FN_BN_3_RX
<=
bn0_FN_BN_3_TX
;
fn_in_mesh_serial_3arr
(
0
)
<=
bn_out_mesh_serial_3arr
(
0
);
bn0_FN_BN_0_RX
<=
fn0_FN_BN_0_TX
;
bn_in_mesh_serial_3arr
(
0
)
<=
fn_out_mesh_serial_3arr
(
0
);
bn0_FN_BN_1_RX
<=
fn0_FN_BN_1_TX
;
END
GENERATE
;
bn0_FN_BN_2_RX
<=
fn0_FN_BN_2_TX
;
bn0_FN_BN_3_RX
<=
fn0_FN_BN_3_TX
;
-- Mesh model
--fn_bn_tx_rx_2arr(0)(1) <= fn_bn_tx_rx_2arr(1)(0); -- FN0:FN_BN_0_RX <= BN0:FN_BN_0_TX
gen_mesh
:
IF
c_nof_bn
>
1
OR
c_nof_fn
>
1
GENERATE
--fn_bn_tx_rx_2arr(1)(1) <= fn_bn_tx_rx_2arr(0)(0); -- BN0:FN_BN_0_RX <= FN0:FN_BN_0_TX
u_mesh_model_serial
:
ENTITY
unb1_board_lib
.
unb1_board_mesh_model_sl
GENERIC
MAP
(
g_reorder
=>
c_ena_mesh_reorder
)
PORT
MAP
(
-- FN to BN
fn_tx_sl_3arr
=>
fn_out_mesh_serial_3arr
,
bn_rx_sl_3arr
=>
bn_in_mesh_serial_3arr
,
-- BN to FN
bn_tx_sl_3arr
=>
bn_out_mesh_serial_3arr
,
fn_rx_sl_3arr
=>
fn_in_mesh_serial_3arr
);
END
GENERATE
;
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- Procedure that polls a sim control file that can be used to e.g. get
-- Procedure that polls a sim control file that can be used to e.g. get
...
@@ -242,30 +291,38 @@ BEGIN
...
@@ -242,30 +291,38 @@ BEGIN
----------------------------------------------------------------------------
----------------------------------------------------------------------------
mmf_poll_sim_ctrl_file
(
c_mmf_unb_file_path
&
"sim.ctrl"
,
c_mmf_unb_file_path
&
"sim.stat"
);
mmf_poll_sim_ctrl_file
(
c_mmf_unb_file_path
&
"sim.ctrl"
,
c_mmf_unb_file_path
&
"sim.stat"
);
u_mm_file_fn0_bg_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"RAM_DIAG_BG"
)
-- Front nodes
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_bg_ram_data_mosi
,
fn0_bg_ram_data_miso
);
gen_mm_fn
:
FOR
i
IN
0
TO
c_nof_fn
-1
GENERATE
u_mm_file_fn0_bg_reg_ctrl
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"REG_DIAG_BG"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_bg_reg_ctrl_mosi
,
fn0_bg_reg_ctrl_miso
);
u_mm_file_bg_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"RAM_DIAG_BG"
)
u_mm_file_fn0_db_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"RAM_DIAG_DATA_BUFFER"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bg_ram_data_mosi_arr
(
i
),
bg_ram_data_miso_arr
(
i
));
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_db_ram_data_buf_mosi
,
fn0_db_ram_data_buf_miso
);
u_mm_file_bg_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"REG_DIAG_BG"
)
u_mm_file_fn0_db_reg_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"REG_DIAG_DATA_BUFFER"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bg_reg_ctrl_mosi_arr
(
i
),
bg_reg_ctrl_miso_arr
(
i
));
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_db_reg_data_buf_mosi
,
fn0_db_reg_data_buf_miso
);
u_mm_file_db_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"RAM_DIAG_DATA_BUFFER"
)
u_mm_file_fn0_tm_tr_nonbo
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"REG_TR_NONBONDED"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
db_ram_data_buf_mosi_arr
(
i
),
db_ram_data_buf_miso_arr
(
i
));
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_reg_tr_nonbonded_mosi
,
fn0_reg_tr_nonbonded_miso
);
u_mm_file_db_reg_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"REG_DIAG_DATA_BUFFER"
)
u_mm_file_fn0_tm_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"FN"
)
&
"REG_DIAGNOSTICS_MESH"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
db_reg_data_buf_mosi_arr
(
i
),
db_reg_data_buf_miso_arr
(
i
));
PORT
MAP
(
mm_rst
,
mm_clk
,
fn0_reg_diagnostics_mosi
,
fn0_reg_diagnostics_miso
);
u_mm_file_tm_tr_nonbo
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"REG_TR_NONBONDED"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
mt_reg_tr_nonbonded_mosi_arr
(
i
),
mt_reg_tr_nonbonded_miso_arr
(
i
));
u_mm_file_bn0_bg_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"RAM_DIAG_BG"
)
u_mm_file_tm_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"FN"
)
&
"REG_DIAGNOSTICS_MESH"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_bg_ram_data_mosi
,
bn0_bg_ram_data_miso
);
PORT
MAP
(
mm_rst
,
mm_clk
,
mt_reg_diagnostics_mosi_arr
(
i
),
mt_reg_diagnostics_miso_arr
(
i
));
u_mm_file_bn0_bg_reg_ctrl
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"REG_DIAG_BG"
)
END
GENERATE
;
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_bg_reg_ctrl_mosi
,
bn0_bg_reg_ctrl_miso
);
-- Back nodes
u_mm_file_bn0_db_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"RAM_DIAG_DATA_BUFFER"
)
gen_mm_bn
:
FOR
i
IN
c_nof_fn
TO
c_nof_nodes
-1
GENERATE
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_db_ram_data_buf_mosi
,
bn0_db_ram_data_buf_miso
);
u_mm_file_bn0_db_reg_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"REG_DIAG_DATA_BUFFER"
)
u_mm_file_bg_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"RAM_DIAG_BG"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_db_reg_data_buf_mosi
,
bn0_db_reg_data_buf_miso
);
PORT
MAP
(
mm_rst
,
mm_clk
,
bg_ram_data_mosi_arr
(
i
),
bg_ram_data_miso_arr
(
i
));
u_mm_file_bn0_tm_tr_nonbo
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"REG_TR_NONBONDED"
)
u_mm_file_bg_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"REG_DIAG_BG"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_reg_tr_nonbonded_mosi
,
bn0_reg_tr_nonbonded_miso
);
PORT
MAP
(
mm_rst
,
mm_clk
,
bg_reg_ctrl_mosi_arr
(
i
),
bg_reg_ctrl_miso_arr
(
i
));
u_mm_file_bn0_tm_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
0
,
"BN"
)
&
"REG_DIAGNOSTICS_MESH"
)
u_mm_file_db_ram_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"RAM_DIAG_DATA_BUFFER"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
bn0_reg_diagnostics_mosi
,
bn0_reg_diagnostics_miso
);
PORT
MAP
(
mm_rst
,
mm_clk
,
bg_ram_data_mosi_arr
(
i
),
bg_ram_data_miso_arr
(
i
));
u_mm_file_db_reg_data
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"REG_DIAG_DATA_BUFFER"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
db_reg_data_buf_mosi_arr
(
i
),
db_reg_data_buf_miso_arr
(
i
));
u_mm_file_tm_tr_nonbo
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"REG_TR_NONBONDED"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
mt_reg_tr_nonbonded_mosi_arr
(
i
),
mt_reg_tr_nonbonded_miso_arr
(
i
));
u_mm_file_tm_reg_diag
:
mm_file
GENERIC
MAP
(
mmf_unb_file_prefix
(
0
,
i
,
"BN"
)
&
"REG_DIAGNOSTICS_MESH"
)
PORT
MAP
(
mm_rst
,
mm_clk
,
mt_reg_diagnostics_mosi_arr
(
i
),
mt_reg_diagnostics_miso_arr
(
i
));
END
GENERATE
;
END
t_bench
;
END
t_bench
;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment