Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
FMC DEL 1ns 2cha
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
9
Issues
9
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
FMC DEL 1ns 2cha
Commits
b0c9b185
Commit
b0c9b185
authored
Aug 04, 2016
by
Jan Pospisil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed timing issue in pulse generator
parent
a5678863
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
41 deletions
+70
-41
ClkRfDomain.vhd
hdl/ffpg/rtl/DelayedPulseGenerator/ClkRfDomain.vhd
+68
-39
Fsm.vhd
hdl/ffpg/rtl/DelayedPulseGenerator/Fsm.vhd
+2
-2
No files found.
hdl/ffpg/rtl/DelayedPulseGenerator/ClkRfDomain.vhd
View file @
b0c9b185
...
...
@@ -30,17 +30,33 @@ end entity;
architecture
syn
of
ClkRfDomain
is
signal
StreamReset
,
StreamReset_d
:
std_logic
;
signal
StreamResetOrReset
:
std_logic
;
signal
OutputEnable
:
std_logic
;
constant
c_MemLatency
:
integer
:
=
1
;
signal
LastStreamPosition
:
unsigned
(
Overflow_ib16
'range
);
signal
GenerationEnable
:
std_logic
;
signal
OutputEnable
:
std_logic
;
signal
AddressEnableCounterReset
,
AddressEnableCounterOverflow
:
std_logic
;
signal
AddressEnableCounterSetValue
:
unsigned
(
TriggerLatency_ib16
'range
);
signal
AddressCounterReset
:
std_logic
;
signal
AddressCounterSetValue
:
unsigned
(
TriggerLatency_ib16
'range
);
signal
AddressCounterValue
:
unsigned
(
SetMemAddress_ob11
'range
);
signal
StreamReset
,
StreamResetOrReset
:
std_logic
;
signal
StreamPosition
:
unsigned
(
Overflow_ib16
'range
);
signal
BitCounterOverflow
,
LoadShiftRegister
:
std_logic
;
signal
MemAddress
:
unsigned
(
SetMemAddress_ob11
'range
);
signal
SetStream
,
ResetStream
:
std_logic
;
begin
-- Sv_Seed = 2491921240
LastStreamPosition
<=
Overflow_ib16
-
1
;
cFsm
:
entity
work
.
Fsm
(
syn
)
port
map
(
Clk_ik
=>
Clk_ik
,
...
...
@@ -50,73 +66,86 @@ begin
Trigger_i
=>
Trigger_i
,
StreamReset_i
=>
StreamReset
,
Running_o
=>
Running_o
,
OutputEnable_o
=>
Output
Enable
,
GenerationEnable_o
=>
Generation
Enable
GenerationEnable_o
=>
Generation
Enable
,
OutputEnable_o
=>
Output
Enable
);
cStreamCounter
:
entity
work
.
Counter
(
syn
)
AddressEnableCounterReset
<=
'1'
when
StreamPosition
=
(
LastStreamPosition
-
c_MemLatency
)
else
Reset_ir
;
AddressEnableCounterSetValue
<=
TriggerLatency_ib16
+
c_MemLatency
;
cAddressEnableCounter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
Overflow_ib16
'length
g_Width
=>
5
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
StreamResetO
rReset
,
Reset_ir
=>
AddressEnableCounte
rReset
,
Enable_i
=>
GenerationEnable
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
TriggerLatency_ib16
,
SetValue_ib
=>
AddressEnableCounterSetValue
(
4
downto
0
),
Overflow_o
=>
AddressEnableCounterOverflow
,
Value_ob
=>
open
);
AddressCounterReset
<=
'1'
when
StreamPosition
=
(
LastStreamPosition
-
c_MemLatency
-
1
)
else
Reset_ir
;
AddressCounterSetValue
<=
(
TriggerLatency_ib16
+
c_MemLatency
+
1
);
cAddressCounter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
SetMemAddress_ob11
'length
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
AddressCounterReset
,
Enable_i
=>
AddressEnableCounterOverflow
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
AddressCounterSetValue
(
15
downto
5
),
Overflow_o
=>
open
,
Value_ob
=>
StreamPosition
Value_ob
=>
AddressCounterValue
);
SetMemAddress_ob11
<=
AddressCounterValue
;
ResMemAddress_ob11
<=
AddressCounterValue
;
SetMemReadStrobe_o
<=
AddressEnableCounterOverflow
or
AddressEnableCounterReset
;
ResMemReadStrobe_o
<=
AddressEnableCounterOverflow
or
AddressEnableCounterReset
;
StreamReset
<=
'1'
when
StreamPosition
=
Overflow_ib16
-1
else
'1'
when
StreamPosition
=
LastStreamPosition
else
'0'
;
StreamResetOrReset
<=
StreamReset
or
Reset_ir
;
c
Bit
Counter
:
entity
work
.
Counter
(
syn
)
c
Stream
Counter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
5
g_Width
=>
Overflow_ib16
'length
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
StreamResetOrReset
,
Enable_i
=>
GenerationEnable
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
TriggerLatency_ib16
(
4
downto
0
),
Overflow_o
=>
BitCounterOverflow
,
Value_ob
=>
open
);
cStreamResetReg
:
entity
work
.
Reg
(
syn
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
Reset_ir
,
Data_ib
(
0
)
=>
StreamReset
,
Enable_i
=>
'1'
,
Data_ob
(
0
)
=>
StreamReset_d
SetValue_ib
=>
TriggerLatency_ib16
,
Overflow_o
=>
open
,
Value_ob
=>
StreamPosition
);
LoadShiftRegister
<=
BitCounterOverflow
or
StreamReset_d
;
SetMemReadStrobe_o
<=
LoadShiftRegister
;
ResMemReadStrobe_o
<=
LoadShiftRegister
;
cAddressCounter
:
entity
work
.
Counter
(
syn
)
cBitCounter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
SetMemAddress_ob11
'length
g_Width
=>
5
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
StreamResetOrReset
,
Enable_i
=>
LoadShiftRegister
,
Enable_i
=>
GenerationEnable
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
TriggerLatency_ib16
(
15
downto
5
),
Overflow_o
=>
open
,
Value_ob
=>
MemAddress
SetValue_ib
=>
TriggerLatency_ib16
(
4
downto
0
),
Overflow_o
=>
BitCounterOverflow
,
Value_ob
=>
open
);
SetMemAddress_ob11
<=
MemAddress
;
ResMemAddress_ob11
<=
MemAddress
;
LoadShiftRegister
<=
BitCounterOverflow
or
StreamReset
;
cShiftRegisterSet
:
entity
work
.
ShiftRegister
(
right
)
generic
map
(
...
...
hdl/ffpg/rtl/DelayedPulseGenerator/Fsm.vhd
View file @
b0c9b185
...
...
@@ -16,8 +16,8 @@ entity Fsm is
StreamReset_i
:
in
std_logic
;
-- outputs
Running_o
:
out
std_logic
:
=
'0'
;
Output
Enable_o
:
out
std_logic
:
=
'0'
;
Generation
Enable_o
:
out
std_logic
:
=
'0'
Generation
Enable_o
:
out
std_logic
:
=
'0'
;
Output
Enable_o
:
out
std_logic
:
=
'0'
);
end
entity
;
...
...
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