Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
G
Gennum GN4124 core
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Projects
Gennum GN4124 core
Commits
834f488f
Commit
834f488f
authored
9 years ago
by
Tomasz Wlostowski
Committed by
Javier D. Garcia-Lasheras
9 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Proposed fix for improved cross-clock domain handling
parent
2d3071b9
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
hdl/gn4124core/rtl/spartan6/gn4124_core.vhd
+26
-13
26 additions, 13 deletions
hdl/gn4124core/rtl/spartan6/gn4124_core.vhd
with
26 additions
and
13 deletions
hdl/gn4124core/rtl/spartan6/gn4124_core.vhd
+
26
−
13
View file @
834f488f
...
...
@@ -180,15 +180,27 @@ architecture rtl of gn4124_core is
rx_bufpll_lckd
:
out
std_logic
);
-- BUFPLL locked
end
component
serdes_1_to_n_clk_pll_s2_diff
;
component
pulse_synchronizer
port
(
clk_in_i
:
in
std_logic
;
--! Input pulse clock domain
clk_out_i
:
in
std_logic
;
--! Output pulse clock domain
pulse_i
:
in
std_logic
;
--! One clk_in_i tick input pulse
done_o
:
out
std_logic
;
--! Input pulse is synchronized (1 clk_in_i tick)
pulse_o
:
out
std_logic
--! One clk_out_i tick output pulse
);
end
component
pulse_synchronizer
;
component
gc_pulse_synchronizer
is
port
(
-- pulse input clock
clk_in_i
:
in
std_logic
;
-- pulse output clock
clk_out_i
:
in
std_logic
;
-- system reset (clk_in_i domain)
rst_n_i
:
in
std_logic
;
-- pulse input ready (clk_in_i domain). When HI, a pulse coming to d_p_i will be
-- correctly transferred to q_p_o.
d_ready_o
:
out
std_logic
;
-- pulse input (clk_in_i domain)
d_p_i
:
in
std_logic
;
-- pulse output (clk_out_i domain)
q_p_o
:
out
std_logic
);
end
component
gc_pulse_synchronizer
;
------------------------------------------------------------------------------
-- Signals declaration
...
...
@@ -610,13 +622,14 @@ begin
-- Synchronise DMA IRQ pulse to csr_clk_i clock domain
l_dma_irq_sync
:
for
I
in
0
to
dma_irq
'length
-1
generate
cmp_dma_irq_sync
:
pulse_synchronizer
cmp_dma_irq_sync
:
gc_
pulse_synchronizer
port
map
(
clk_in_i
=>
sys_clk
,
clk_out_i
=>
csr_clk_i
,
pulse_i
=>
dma_irq
(
I
),
done_o
=>
open
,
pulse_o
=>
dma_irq_o
(
I
)
rst_n_i
=>
rst_n
,
d_p_i
=>
dma_irq
(
I
),
d_ready_o
=>
open
,
q_p_o
=>
dma_irq_o
(
I
)
);
end
generate
l_dma_irq_sync
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
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