Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
V
VME64x core
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
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
VME64x core
Commits
9174e0e7
Commit
9174e0e7
authored
Nov 27, 2017
by
Tristan Gingold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Address issues in vme64x_pkg.
parent
593dbebd
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
64 additions
and
93 deletions
+64
-93
GD-vme64x-core-review.txt
doc/review-2017-11-13/GD-vme64x-core-review.txt
+3
-3
vme64x_pkg.vhd
hdl/rtl/vme64x_pkg.vhd
+53
-83
vme_funct_match.vhd
hdl/rtl/vme_funct_match.vhd
+5
-5
xvme64x_core.vhd
hdl/rtl/xvme64x_core.vhd
+2
-1
top_tb.vhd
hdl/testbench/simple_tb/top_tb.vhd
+1
-1
No files found.
doc/review-2017-11-13/GD-vme64x-core-review.txt
View file @
9174e0e7
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
'Detail'.
'Detail'.
- how about using t_vme64x_in and t_vme64x_out types inside the design to make
- how about using t_vme64x_in and t_vme64x_out types inside the design to make
the core more compact and having only an std_logic wrapper for simulations?
the core more compact and having only an std_logic wrapper for simulations?
Good convention to be adopted.
Done.
Good convention to be adopted.
- vme64x_pack.vhd and xvme64x_core_pkg.vhd should be merged into one package
- vme64x_pack.vhd and xvme64x_core_pkg.vhd should be merged into one package
Done.
Done.
...
@@ -34,9 +34,9 @@
...
@@ -34,9 +34,9 @@
Done. Default removed.
Done. Default removed.
- line 55:
- line 55:
c_ADEM_M is a type not a constant, rename it to t_ADEM_M
c_ADEM_M is a type not a constant, rename it to t_ADEM_M
Add a comment
.
Done
.
- cleanup, remove types that are not used e.g. c_ADER_C_XAM or c_ADER_C_AM
- cleanup, remove types that are not used e.g. c_ADER_C_XAM or c_ADER_C_AM
Add a comment
as unused.
Done. Commented
as unused.
------------------------
------------------------
-- VME64xCore_Top.vhd --
-- VME64xCore_Top.vhd --
...
...
hdl/rtl/vme64x_pkg.vhd
View file @
9174e0e7
...
@@ -51,22 +51,25 @@ package vme64x_pkg is
...
@@ -51,22 +51,25 @@ package vme64x_pkg is
constant
c_SVEC_ID
:
std_logic_vector
(
31
downto
0
)
:
=
x"00000198"
;
constant
c_SVEC_ID
:
std_logic_vector
(
31
downto
0
)
:
=
x"00000198"
;
constant
c_SVEC_REVISION_ID
:
std_logic_vector
(
31
downto
0
)
:
=
x"00000001"
;
constant
c_SVEC_REVISION_ID
:
std_logic_vector
(
31
downto
0
)
:
=
x"00000001"
;
constant
c_PROGRAM_ID
:
std_logic_vector
(
7
downto
0
)
:
=
x"5a"
;
-- Default Program ID value for SVEC.
constant
c_SVEC_PROGRAM_ID
:
std_logic_vector
(
7
downto
0
)
:
=
x"5a"
;
-- Bits in ADEM/ADER registers
-- Bits in ADEM/ADER registers
subtype
c
_ADEM_M
is
integer
range
31
downto
8
;
subtype
t
_ADEM_M
is
integer
range
31
downto
8
;
constant
c_ADEM_M_PAD
:
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
constant
c_ADEM_M_PAD
:
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
constant
c_ADEM_FAF
:
integer
:
=
3
;
constant
c_ADEM_FAF
:
integer
:
=
3
;
constant
c_ADEM_DFS
:
integer
:
=
2
;
constant
c_ADEM_DFS
:
integer
:
=
2
;
constant
c_ADEM_EFD
:
integer
:
=
1
;
constant
c_ADEM_EFD
:
integer
:
=
1
;
constant
c_ADEM_EFM
:
integer
:
=
0
;
constant
c_ADEM_EFM
:
integer
:
=
0
;
subtype
c_ADER_C_XAM
is
integer
range
31
downto
10
;
-- Although the XAM registers are not used, these declarations are still
-- present for completness.
subtype
t_ADER_C_XAM
is
integer
range
31
downto
10
;
constant
c_ADER_C_XAM_PAD
:
std_logic_vector
(
9
downto
0
)
:
=
(
others
=>
'0'
);
constant
c_ADER_C_XAM_PAD
:
std_logic_vector
(
9
downto
0
)
:
=
(
others
=>
'0'
);
subtype
c
_ADER_C_AM
is
integer
range
31
downto
8
;
subtype
t
_ADER_C_AM
is
integer
range
31
downto
8
;
constant
c_ADER_C_AM_PAD
:
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
constant
c_ADER_C_AM_PAD
:
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
subtype
c
_ADER_AM
is
integer
range
7
downto
2
;
subtype
t
_ADER_AM
is
integer
range
7
downto
2
;
subtype
c
_ADER_XAM
is
integer
range
9
downto
2
;
subtype
t
_ADER_XAM
is
integer
range
9
downto
2
;
constant
c_ADER_DFSR
:
integer
:
=
1
;
constant
c_ADER_DFSR
:
integer
:
=
1
;
constant
c_ADER_XAM_MODE
:
integer
:
=
0
;
constant
c_ADER_XAM_MODE
:
integer
:
=
0
;
...
@@ -75,51 +78,52 @@ package vme64x_pkg is
...
@@ -75,51 +78,52 @@ package vme64x_pkg is
-- Table 2-3 "Address Modifier Codes" pages 21/22 VME64std ANSI/VITA 1-1994
-- Table 2-3 "Address Modifier Codes" pages 21/22 VME64std ANSI/VITA 1-1994
-- Table 2.4 "Extended Address Modifier Code" page 12 2eSST
-- Table 2.4 "Extended Address Modifier Code" page 12 2eSST
-- ANSI/VITA 1.5-2003(R2009)
-- ANSI/VITA 1.5-2003(R2009)
subtype
am_vec_type
is
std_logic_vector
(
5
downto
0
);
subtype
t_am_vec
is
std_logic_vector
(
5
downto
0
);
constant
c_AM_A24_S_SUP
:
am_vec_type
:
=
"111101"
;
-- 0x3d
constant
c_AM_A24_S_SUP
:
t_am_vec
:
=
"111101"
;
-- 0x3d
constant
c_AM_A24_S
:
am_vec_type
:
=
"111001"
;
-- 0x39
constant
c_AM_A24_S
:
t_am_vec
:
=
"111001"
;
-- 0x39
constant
c_AM_A24_BLT
:
am_vec_type
:
=
"111011"
;
-- 0x3b
constant
c_AM_A24_BLT
:
t_am_vec
:
=
"111011"
;
-- 0x3b
constant
c_AM_A24_BLT_SUP
:
am_vec_type
:
=
"111111"
;
-- 0x3f
constant
c_AM_A24_BLT_SUP
:
t_am_vec
:
=
"111111"
;
-- 0x3f
constant
c_AM_A24_MBLT
:
am_vec_type
:
=
"111000"
;
-- 0x38
constant
c_AM_A24_MBLT
:
t_am_vec
:
=
"111000"
;
-- 0x38
constant
c_AM_A24_MBLT_SUP
:
am_vec_type
:
=
"111100"
;
-- 0x3c
constant
c_AM_A24_MBLT_SUP
:
t_am_vec
:
=
"111100"
;
-- 0x3c
constant
c_AM_A24_LCK
:
am_vec_type
:
=
"110010"
;
-- 0x32
constant
c_AM_A24_LCK
:
t_am_vec
:
=
"110010"
;
-- 0x32
constant
c_AM_CR_CSR
:
am_vec_type
:
=
"101111"
;
-- 0x2f
constant
c_AM_CR_CSR
:
t_am_vec
:
=
"101111"
;
-- 0x2f
constant
c_AM_A16
:
am_vec_type
:
=
"101001"
;
-- 0x29
constant
c_AM_A16
:
t_am_vec
:
=
"101001"
;
-- 0x29
constant
c_AM_A16_SUP
:
am_vec_type
:
=
"101101"
;
-- 0x2d
constant
c_AM_A16_SUP
:
t_am_vec
:
=
"101101"
;
-- 0x2d
constant
c_AM_A16_LCK
:
am_vec_type
:
=
"101100"
;
-- 0x2c
constant
c_AM_A16_LCK
:
t_am_vec
:
=
"101100"
;
-- 0x2c
constant
c_AM_A32
:
am_vec_type
:
=
"001001"
;
-- 0x09
constant
c_AM_A32
:
t_am_vec
:
=
"001001"
;
-- 0x09
constant
c_AM_A32_SUP
:
am_vec_type
:
=
"001101"
;
-- 0x0d
constant
c_AM_A32_SUP
:
t_am_vec
:
=
"001101"
;
-- 0x0d
constant
c_AM_A32_BLT
:
am_vec_type
:
=
"001011"
;
-- 0x0b
constant
c_AM_A32_BLT
:
t_am_vec
:
=
"001011"
;
-- 0x0b
constant
c_AM_A32_BLT_SUP
:
am_vec_type
:
=
"001111"
;
-- 0x0f
constant
c_AM_A32_BLT_SUP
:
t_am_vec
:
=
"001111"
;
-- 0x0f
constant
c_AM_A32_MBLT
:
am_vec_type
:
=
"001000"
;
-- 0x08
constant
c_AM_A32_MBLT
:
t_am_vec
:
=
"001000"
;
-- 0x08
constant
c_AM_A32_MBLT_SUP
:
am_vec_type
:
=
"001100"
;
-- 0x0c
constant
c_AM_A32_MBLT_SUP
:
t_am_vec
:
=
"001100"
;
-- 0x0c
constant
c_AM_A32_LCK
:
am_vec_type
:
=
"000101"
;
-- 0x05
constant
c_AM_A32_LCK
:
t_am_vec
:
=
"000101"
;
-- 0x05
constant
c_AM_A64
:
am_vec_type
:
=
"000001"
;
-- 0x01
constant
c_AM_A64
:
t_am_vec
:
=
"000001"
;
-- 0x01
constant
c_AM_A64_BLT
:
am_vec_type
:
=
"000011"
;
-- 0x03
constant
c_AM_A64_BLT
:
t_am_vec
:
=
"000011"
;
-- 0x03
constant
c_AM_A64_MBLT
:
am_vec_type
:
=
"000000"
;
-- 0x00
constant
c_AM_A64_MBLT
:
t_am_vec
:
=
"000000"
;
-- 0x00
constant
c_AM_A64_LCK
:
am_vec_type
:
=
"000100"
;
-- 0x04
constant
c_AM_A64_LCK
:
t_am_vec
:
=
"000100"
;
-- 0x04
constant
c_AM_2EVME_6U
:
am_vec_type
:
=
"100000"
;
-- 0x20
constant
c_AM_2EVME_6U
:
t_am_vec
:
=
"100000"
;
-- 0x20
constant
c_AM_2EVME_3U
:
am_vec_type
:
=
"100001"
;
-- 0x21
constant
c_AM_2EVME_3U
:
t_am_vec
:
=
"100001"
;
-- 0x21
subtype
xam_vec_type
is
std_logic_vector
(
7
downto
0
);
-- Not used, but for completness.
constant
c_AM_A32_2EVME
:
xam_vec_type
:
=
"00000001"
;
-- 0x01
subtype
t_xam_vec
is
std_logic_vector
(
7
downto
0
);
constant
c_AM_A64_2EVME
:
xam_vec_type
:
=
"00000010"
;
-- 0x02
constant
c_AM_A32_2EVME
:
t_xam_vec
:
=
"00000001"
;
-- 0x01
constant
c_AM_A32_2ESST
:
xam_vec_type
:
=
"00010001"
;
-- 0x11
constant
c_AM_A64_2EVME
:
t_xam_vec
:
=
"00000010"
;
-- 0x02
constant
c_AM_A64_2ESST
:
xam_vec_type
:
=
"00010010"
;
-- 0x12
constant
c_AM_A32_2ESST
:
t_xam_vec
:
=
"00010001"
;
-- 0x11
constant
c_AM_A64_2ESST
:
t_xam_vec
:
=
"00010010"
;
-- 0x12
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- Types
-- Types
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- CR/CSR parameter arrays
-- CR/CSR parameter arrays
type
t_adem_array
is
type
t_adem_array
is
array
(
integer
range
<>
)
of
std_logic_vector
(
31
downto
0
);
array
(
integer
range
<>
)
of
std_logic_vector
(
31
downto
0
);
type
t_ader_array
is
type
t_ader_array
is
array
(
integer
range
<>
)
of
std_logic_vector
(
31
downto
0
);
array
(
integer
range
<>
)
of
std_logic_vector
(
31
downto
0
);
type
t_amcap_array
is
type
t_amcap_array
is
array
(
integer
range
<>
)
of
std_logic_vector
(
63
downto
0
);
array
(
integer
range
<>
)
of
std_logic_vector
(
63
downto
0
);
type
t_dawpr_array
is
type
t_dawpr_array
is
array
(
integer
range
<>
)
of
std_logic_vector
(
7
downto
0
);
array
(
integer
range
<>
)
of
std_logic_vector
(
7
downto
0
);
type
t_vme64x_in
is
record
type
t_vme64x_in
is
record
as_n
:
std_logic
;
as_n
:
std_logic
;
...
@@ -152,12 +156,14 @@ package vme64x_pkg is
...
@@ -152,12 +156,14 @@ package vme64x_pkg is
irq_n
:
std_logic_vector
(
6
downto
0
);
irq_n
:
std_logic_vector
(
6
downto
0
);
end
record
;
end
record
;
-- For generics: per decoder values.
type
t_vme64x_decoder
is
record
type
t_vme64x_decoder
is
record
adem
:
std_logic_vector
(
31
downto
0
);
adem
:
std_logic_vector
(
31
downto
0
);
amcap
:
std_logic_vector
(
63
downto
0
);
amcap
:
std_logic_vector
(
63
downto
0
);
dawpr
:
std_logic_vector
(
7
downto
0
);
dawpr
:
std_logic_vector
(
7
downto
0
);
end
record
;
end
record
;
-- Value to disable a decoder.
constant
c_vme64x_decoder_disabled
:
t_vme64x_decoder
:
=
(
constant
c_vme64x_decoder_disabled
:
t_vme64x_decoder
:
=
(
adem
=>
x"00000000"
,
adem
=>
x"00000000"
,
amcap
=>
x"00000000_00000000"
,
amcap
=>
x"00000000_00000000"
,
...
@@ -177,45 +183,20 @@ package vme64x_pkg is
...
@@ -177,45 +183,20 @@ package vme64x_pkg is
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- Components declaration
-- Components declaration
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-- Refer to the entity declaration (xvme64x_core.vhd) for comments.
component
xvme64x_core
component
xvme64x_core
generic
(
generic
(
-- Clock period (ns). Used for DS synchronization.
g_CLOCK_PERIOD
:
integer
:
=
-1
;
g_CLOCK_PERIOD
:
integer
:
=
-1
;
-- Consider AM field of ADER to decode addresses. This is what the VME64x
-- standard says. However, for compatibility with previous implementations
-- (or to reduce resources), it is possible for a decoder to allow all AM
-- declared in the AMCAP.
g_DECODE_AM
:
boolean
:
=
true
;
g_DECODE_AM
:
boolean
:
=
true
;
-- Use external user CSR
g_USER_CSR_EXT
:
boolean
:
=
false
;
g_USER_CSR_EXT
:
boolean
:
=
false
;
-- Manufacturer ID: IEEE OUID
-- e.g. CERN is 0x080030
g_MANUFACTURER_ID
:
std_logic_vector
(
23
downto
0
);
g_MANUFACTURER_ID
:
std_logic_vector
(
23
downto
0
);
-- Board ID: Per manufacturer, each board shall have an unique ID
-- e.g. SVEC = 408 (CERN IDs: http://cern.ch/boardid)
g_BOARD_ID
:
std_logic_vector
(
31
downto
0
);
g_BOARD_ID
:
std_logic_vector
(
31
downto
0
);
-- Revision ID: user defined revision code
g_REVISION_ID
:
std_logic_vector
(
31
downto
0
);
g_REVISION_ID
:
std_logic_vector
(
31
downto
0
);
-- Program ID: Defined per VME64:
-- 0x00 = Not used
-- 0x01 = No program, ID ROM only
-- 0x02-0x4F = Manufacturer defined
-- 0x50-0x7F = User defined
-- 0x80-0xEF = Reserved for future use
-- 0xF0-0xFE = Reserved for Boot Firmware (P1275)
-- 0xFF = Not to be used
g_PROGRAM_ID
:
std_logic_vector
(
7
downto
0
);
g_PROGRAM_ID
:
std_logic_vector
(
7
downto
0
);
-- Pointer to a user defined ASCII string.
g_ASCII_PTR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_ASCII_PTR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
-- User CR/CSR, CRAM & serial number pointers
g_BEG_USER_CR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_BEG_USER_CR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_END_USER_CR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_END_USER_CR
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_BEG_CRAM
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_BEG_CRAM
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
...
@@ -225,32 +206,22 @@ package vme64x_pkg is
...
@@ -225,32 +206,22 @@ package vme64x_pkg is
g_BEG_SN
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_BEG_SN
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_END_SN
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
g_END_SN
:
std_logic_vector
(
23
downto
0
)
:
=
x"000000"
;
-- Number of function decoder implemented and decoder parameters.
g_NBR_DECODERS
:
natural
range
1
to
8
:
=
2
;
g_NBR_DECODERS
:
natural
range
1
to
8
:
=
2
;
g_DECODER
:
t_vme64x_decoder_arr
:
=
c_vme64x_decoders_default
);
g_DECODER
:
t_vme64x_decoder_arr
:
=
c_vme64x_decoders_default
);
port
(
port
(
-- Main clock and reset.
clk_i
:
in
std_logic
;
clk_i
:
in
std_logic
;
rst_n_i
:
in
std_logic
;
rst_n_i
:
in
std_logic
;
-- Reset for wishbone core.
rst_n_o
:
out
std_logic
;
rst_n_o
:
out
std_logic
;
-- VME slave interface.
vme_i
:
in
t_vme64x_in
;
vme_i
:
in
t_vme64x_in
;
vme_o
:
out
t_vme64x_out
;
vme_o
:
out
t_vme64x_out
;
-- Wishbone interface.
wb_i
:
in
t_wishbone_master_in
;
wb_i
:
in
t_wishbone_master_in
;
wb_o
:
out
t_wishbone_master_out
;
wb_o
:
out
t_wishbone_master_out
;
-- When the IRQ controller acknowledges the Interrupt cycle it sends a
-- pulse to the IRQ Generator.
irq_ack_o
:
out
std_logic
;
irq_ack_o
:
out
std_logic
;
-- User CSR
-- The following signals are used when g_USER_CSR_EXT = true
-- otherwise they are connected to the internal user CSR.
irq_level_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
irq_level_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
irq_vector_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
irq_vector_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
);
user_csr_addr_o
:
out
std_logic_vector
(
18
downto
2
);
user_csr_addr_o
:
out
std_logic_vector
(
18
downto
2
);
...
@@ -258,7 +229,6 @@ package vme64x_pkg is
...
@@ -258,7 +229,6 @@ package vme64x_pkg is
user_csr_data_o
:
out
std_logic_vector
(
7
downto
0
);
user_csr_data_o
:
out
std_logic_vector
(
7
downto
0
);
user_csr_we_o
:
out
std_logic
;
user_csr_we_o
:
out
std_logic
;
-- User CR
user_cr_addr_o
:
out
std_logic_vector
(
18
downto
2
);
user_cr_addr_o
:
out
std_logic_vector
(
18
downto
2
);
user_cr_data_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
));
user_cr_data_i
:
in
std_logic_vector
(
7
downto
0
)
:
=
(
others
=>
'0'
));
end
component
xvme64x_core
;
end
component
xvme64x_core
;
...
...
hdl/rtl/vme_funct_match.vhd
View file @
9174e0e7
...
@@ -78,14 +78,14 @@ begin
...
@@ -78,14 +78,14 @@ begin
gen_match_loop
:
for
i
in
0
to
7
generate
gen_match_loop
:
for
i
in
0
to
7
generate
-- True in case of match
-- True in case of match
s_function
(
i
)
<=
s_function
(
i
)
<=
'1'
when
(((
addr_i
(
c_ADEM_M
)
and
g_ADEM
(
i
)(
c
_ADEM_M
))
'1'
when
(((
addr_i
(
t_ADEM_M
)
and
g_ADEM
(
i
)(
t
_ADEM_M
))
=
ader_i
(
i
)(
c
_ADEM_M
))
=
ader_i
(
i
)(
t
_ADEM_M
))
and
((
am_i
=
ader_i
(
i
)(
c
_ADER_AM
))
and
((
am_i
=
ader_i
(
i
)(
t
_ADER_AM
))
or
not
g_DECODE_AM
))
or
not
g_DECODE_AM
))
else
'0'
;
else
'0'
;
-- True if the AM part of ADER is enabled by AMCAP
-- True if the AM part of ADER is enabled by AMCAP
s_ader_am_valid
(
i
)
<=
s_ader_am_valid
(
i
)
<=
g_AMCAP
(
i
)(
to_integer
(
unsigned
(
ader_i
(
i
)(
c
_ADER_AM
))));
g_AMCAP
(
i
)(
to_integer
(
unsigned
(
ader_i
(
i
)(
t
_ADER_AM
))));
end
generate
;
end
generate
;
------------------------------------------------------------------------------
------------------------------------------------------------------------------
...
@@ -130,7 +130,7 @@ begin
...
@@ -130,7 +130,7 @@ begin
if
s_function_sel_valid
=
'1'
then
if
s_function_sel_valid
=
'1'
then
mask
:
=
(
others
=>
'0'
);
mask
:
=
(
others
=>
'0'
);
mask
(
c_ADEM_M
)
:
=
g_ADEM
(
s_function_sel
)(
c
_ADEM_M
);
mask
(
t_ADEM_M
)
:
=
g_ADEM
(
s_function_sel
)(
t
_ADEM_M
);
addr_o
<=
addr_i
and
not
mask
;
addr_o
<=
addr_i
and
not
mask
;
decode_sel_o
<=
'1'
;
decode_sel_o
<=
'1'
;
else
else
...
...
hdl/rtl/xvme64x_core.vhd
View file @
9174e0e7
...
@@ -109,7 +109,8 @@ use work.vme64x_pkg.all;
...
@@ -109,7 +109,8 @@ use work.vme64x_pkg.all;
entity
xvme64x_core
is
entity
xvme64x_core
is
generic
(
generic
(
-- Clock period (ns). Used for DS synchronization.
-- Clock period (ns). Used for DS synchronization. The default value
-- will genrate an assertion failure.
g_CLOCK_PERIOD
:
integer
:
=
-1
;
g_CLOCK_PERIOD
:
integer
:
=
-1
;
-- Consider AM field of ADER to decode addresses. This is what the VME64x
-- Consider AM field of ADER to decode addresses. This is what the VME64x
...
...
hdl/testbench/simple_tb/top_tb.vhd
View file @
9174e0e7
...
@@ -268,7 +268,7 @@ begin
...
@@ -268,7 +268,7 @@ begin
g_MANUFACTURER_ID
=>
c_CERN_ID
,
g_MANUFACTURER_ID
=>
c_CERN_ID
,
g_BOARD_ID
=>
c_SVEC_ID
,
g_BOARD_ID
=>
c_SVEC_ID
,
g_REVISION_ID
=>
c_SVEC_REVISION_ID
,
g_REVISION_ID
=>
c_SVEC_REVISION_ID
,
g_PROGRAM_ID
=>
c_PROGRAM_ID
,
g_PROGRAM_ID
=>
c_
SVEC_
PROGRAM_ID
,
g_ASCII_PTR
=>
x"000000"
,
g_ASCII_PTR
=>
x"000000"
,
g_BEG_USER_CR
=>
x"000000"
,
g_BEG_USER_CR
=>
x"000000"
,
...
...
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