Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
L
legacy-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
legacy-vme64x-core
Commits
6c8da241
Commit
6c8da241
authored
Dec 16, 2013
by
Cesar Prados
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi_interrupts: add function for controlling the IRQ buffers
parent
3e64397d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
43 additions
and
7 deletions
+43
-7
VME_Buffer.vhd
hdl/VME_Buffer.vhd
+4
-0
VME_Buffer_pack.vhd
hdl/VME_Buffer_pack.vhd
+32
-3
VME_IRQ_Controller.vhd
hdl/VME_IRQ_Controller.vhd
+4
-4
xvme64x_pack.vhd
hdl/xvme64x_pack.vhd
+3
-0
No files found.
hdl/VME_Buffer.vhd
View file @
6c8da241
...
...
@@ -26,6 +26,8 @@ entity VME_Buffer_ctrl is
addr_buff_v2f_o
:
out
std_logic
;
addr_buff_f2v_o
:
out
std_logic
;
dtack_oe_o
:
out
std_logic
;
latch_buff_o
:
out
std_logic
);
end
entity
;
...
...
@@ -83,6 +85,8 @@ begin
with
g_bus_mode
select
latch_buff_o
<=
'1'
when
LATCHED
,
'0'
when
CLOCKED
;
dtack_oe_o
<=
buffer_stat_i
.
s_dtack_oe
;
-- dir_eo_buff_ctrl : process(clk_i, rst_i)
-- begin
...
...
hdl/VME_Buffer_pack.vhd
View file @
6c8da241
...
...
@@ -38,6 +38,9 @@ package VME_Buffer_pack is
is_d64
:
std_logic
;
vme_write
:
std_logic
)
return
t_VME_BUFFER
;
function
buffer_irq_function
(
fsm
:
t_IRQMainFSM
)
return
t_VME_BUFFER
;
type
bus_mode
is
(
LATCHED
,
CLOCKED
);
...
...
@@ -57,6 +60,8 @@ package VME_Buffer_pack is
addr_buff_v2f_o
:
out
std_logic
;
addr_buff_f2v_o
:
out
std_logic
;
dtack_oe_o
:
out
std_logic
;
latch_buff_o
:
out
std_logic
);
end
component
VME_Buffer_ctrl
;
...
...
@@ -178,7 +183,29 @@ package body VME_Buffer_pack is
vme_buff
.
s_clk
:
=
'0'
;
vme_buff
.
s_dtack_oe
:
=
'1'
;
when
DATA_OUT
=>
when
others
=>
vme_buff
.
s_addrDir
:
=
VME2FPGA
;
vme_buff
.
s_dataDir
:
=
VME2FPGA
;
vme_buff
.
s_buffer_eo
:
=
ADDR_BUFF
;
vme_buff
.
s_clk
:
=
'0'
;
vme_buff
.
s_dtack_oe
:
=
'0'
;
end
case
;
return
vme_buff
;
end
buffer_function
;
function
buffer_irq_function
(
fsm
:
t_IRQMainFSM
)
return
t_VME_BUFFER
is
variable
vme_buff
:
t_VME_BUFFER
:
=
c_buffer_default
;
begin
case
fsm
is
when
DATA_OUT
=>
vme_buff
.
s_addrDir
:
=
VME2FPGA
;
vme_buff
.
s_dataDir
:
=
FPGA2VME
;
...
...
@@ -195,16 +222,18 @@ package body VME_Buffer_pack is
vme_buff
.
s_dtack_oe
:
=
'1'
;
when
others
=>
vme_buff
.
s_addrDir
:
=
VME2FPGA
;
vme_buff
.
s_dataDir
:
=
VME2FPGA
;
vme_buff
.
s_buffer_eo
:
=
ADDR_BUFF
;
vme_buff
.
s_clk
:
=
'0'
;
vme_buff
.
s_dtack_oe
:
=
'0'
;
end
case
;
return
vme_buff
;
end
buffer_function
;
end
buffer_
irq_
function
;
end
VME_Buffer_pack
;
hdl/VME_IRQ_Controller.vhd
View file @
6c8da241
...
...
@@ -143,8 +143,8 @@ architecture Behavioral of VME_IRQ_Controller is
--
signal
s_AS_FallingEdge
:
std_logic
;
signal
s_AS_RisingEdge
:
std_logic
;
type
t_
MainFSM
is
(
IDLE
,
IRQ
,
WAIT_AS
,
WAIT_DS
,
LATCH_DS
,
CHECK
,
DATA_OUT
,
DTACK
,
IACKOUT1
,
IACKOUT2
);
signal
s_currs
,
s_nexts
:
t_MainFSM
;
--type t_IRQ
MainFSM is (IDLE, IRQ, WAIT_AS, WAIT_DS, LATCH_DS, CHECK, DATA_OUT, DTACK,IACKOUT1,IACKOUT2);
signal
s_currs
,
s_nexts
:
t_
IRQ
MainFSM
;
signal
s_ack_int
:
std_logic
;
signal
s_VME_ADDR_123_latched
:
std_logic_vector
(
2
downto
0
);
signal
s_VME_DS_latched
:
std_logic_vector
(
1
downto
0
);
...
...
@@ -354,14 +354,14 @@ begin
s_FSM_IRQ
<=
c_FSM_IRQ
;
--s_FSM_IRQ.s_DataDir <= '1';
--s_FSM_IRQ.s_DTACK_OE <= '1';
s_FSM_IRQ
.
s_buffer
<=
buffer_
function
(
s_currs
,
'0'
,
'0'
);
s_FSM_IRQ
.
s_buffer
<=
buffer_
irq_function
(
s_currs
);
s_FSM_IRQ
.
s_resetIRQ
<=
'0'
;
when
DTACK
=>
s_FSM_IRQ
<=
c_FSM_IRQ
;
--s_FSM_IRQ.s_DataDir <= '1';
--s_FSM_IRQ.s_DTACK_OE <= '1';
s_FSM_IRQ
.
s_buffer
<=
buffer_
function
(
s_currs
,
'0'
,
'0'
);
s_FSM_IRQ
.
s_buffer
<=
buffer_
irq_function
(
s_currs
);
s_FSM_IRQ
.
s_DTACK
<=
'0'
;
when
others
=>
null
;
...
...
hdl/xvme64x_pack.vhd
View file @
6c8da241
...
...
@@ -422,6 +422,9 @@ package xvme64x_pack is
-- TWOe_END_2
);
type
t_IRQMainFSM
is
(
IDLE
,
IRQ
,
WAIT_AS
,
WAIT_DS
,
LATCH_DS
,
CHECK
,
DATA_OUT
,
DTACK
,
IACKOUT1
,
IACKOUT2
);
type
t_initState
is
(
IDLE
,
SET_ADDR
,
GET_DATA
,
...
...
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