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
8866c64a
Commit
8866c64a
authored
Feb 03, 2021
by
Tristan Gingold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rtl: add g_ASYNC_DTACK generic to disable asynchronous dtack.
Fix issue#18
parent
0b143861
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
1 deletion
+13
-1
vme64x_core.vhd
hdl/rtl/vme64x_core.vhd
+2
-0
vme_bus.vhd
hdl/rtl/vme_bus.vhd
+2
-1
xvme64x_core.vhd
hdl/rtl/xvme64x_core.vhd
+9
-0
No files found.
hdl/rtl/vme64x_core.vhd
View file @
8866c64a
...
...
@@ -17,6 +17,7 @@ entity vme64x_core is
g_USER_CSR_EXT
:
boolean
:
=
false
;
g_VME32
:
boolean
:
=
true
;
g_VME_2e
:
boolean
:
=
False
;
g_ASYNC_DTACK
:
boolean
:
=
False
;
g_WB_GRANULARITY
:
t_wishbone_address_granularity
;
g_MANUFACTURER_ID
:
std_logic_vector
(
23
downto
0
);
g_BOARD_ID
:
std_logic_vector
(
31
downto
0
);
...
...
@@ -119,6 +120,7 @@ begin
g_WB_GRANULARITY
=>
g_WB_GRANULARITY
,
g_WB_MODE
=>
CLASSIC
,
g_VME_2e
=>
g_VME_2e
,
g_ASYNC_DTACK
=>
g_ASYNC_DTACK
,
g_MANUFACTURER_ID
=>
g_MANUFACTURER_ID
,
g_BOARD_ID
=>
g_BOARD_ID
,
g_REVISION_ID
=>
g_REVISION_ID
,
...
...
hdl/rtl/vme_bus.vhd
View file @
8866c64a
...
...
@@ -37,6 +37,7 @@ entity vme_bus is
g_CLOCK_PERIOD
:
integer
;
g_VME32
:
boolean
;
g_VME_2E
:
boolean
;
g_ASYNC_DTACK
:
boolean
;
g_WB_GRANULARITY
:
t_wishbone_address_granularity
;
g_WB_MODE
:
t_wishbone_interface_mode
);
...
...
@@ -1187,7 +1188,7 @@ begin
process
(
vme_odff_dtack_n
,
vme_nsync_ds_n_i
,
vme_dtack_async_ctrl
)
begin
if
vme_dtack_async_ctrl
=
'0'
then
if
vme_dtack_async_ctrl
=
'0'
or
not
g_ASYNC_DTACK
then
vme_dtack_n_o
<=
vme_odff_dtack_n
;
else
-- Asserted (to 0) as soon as one ds signal is asserted (to 0).
...
...
hdl/rtl/xvme64x_core.vhd
View file @
8866c64a
...
...
@@ -67,6 +67,14 @@ entity xvme64x_core is
-- Do not forget to assign g_DECODER if set to True.
g_VME_2e
:
boolean
:
=
False
;
-- If True, allows to directly drives DTACK from DS inputs.
-- This improves performance as synchronizers and registers are skipped.
-- But it then requires a minimal frequency, otherwise the master may
-- change the bus before the slave latched the data.
-- No problems have been reported when the clock is faster than 62.5Mhz.
-- Problems have been repored for clock slower than 40Mhz.
g_ASYNC_DTACK
:
boolean
:
=
False
;
-- Address granularity on the WB bus. Value can be:
-- WORD: VME address bits 31:2 are translated to WB address bits 29:0,
-- the WB data represents bytes for VME address bits 1:0.
...
...
@@ -326,6 +334,7 @@ begin
g_CLOCK_PERIOD
=>
g_CLOCK_PERIOD
,
g_VME32
=>
g_VME32
,
g_VME_2E
=>
g_VME_2E
,
g_ASYNC_DTACK
=>
g_ASYNC_DTACK
,
g_WB_GRANULARITY
=>
g_WB_GRANULARITY
,
g_WB_MODE
=>
g_WB_MODE
)
port
map
(
...
...
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