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
7f6d4fd3
Commit
7f6d4fd3
authored
Aug 11, 2016
by
Jan Pospisil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
improved timing by IOB registers packing for serial stream outputs
parent
17c67fed
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
34 deletions
+35
-34
ClkRfDomain.vhd
hdl/ffpg/rtl/DelayedPulseGenerator/ClkRfDomain.vhd
+20
-14
FfpgSlave.vhd
hdl/ffpg/rtl/FfpgSlave.vhd
+8
-13
SvecFfpg.xise
hdl/svec/syn/SvecFfpg.xise
+7
-7
No files found.
hdl/ffpg/rtl/DelayedPulseGenerator/ClkRfDomain.vhd
View file @
7f6d4fd3
...
...
@@ -33,7 +33,7 @@ architecture syn of ClkRfDomain is
constant
c_MemLatency
:
integer
:
=
2
;
signal
LastStreamPosition
:
unsigned
(
Overflow_ib16
'range
);
signal
TriggerLatencyPlus
One
:
unsigned
(
TriggerLatency_ib16
'range
);
signal
TriggerLatencyPlus
Two
:
unsigned
(
TriggerLatency_ib16
'range
);
signal
GenerationEnable
:
std_logic
;
signal
OutputEnable
:
std_logic
;
...
...
@@ -51,14 +51,16 @@ architecture syn of ClkRfDomain is
signal
BitCounterOverflow
,
LoadShiftRegister
:
std_logic
;
signal
SetStream
,
ResetStream
:
std_logic
;
begin
-- for better timing
pInputReg
:
process
(
Clk_ik
)
is
begin
if
rising_edge
(
Clk_ik
)
then
LastStreamPosition
<=
Overflow_ib16
-
1
;
TriggerLatencyPlusOne
<=
TriggerLatency_ib16
+
1
;
TriggerLatencyPlusTwo
<=
TriggerLatency_ib16
+
2
;
-- +1 because of ???
-- +1 because of output registers on Set/ResetStream_o
end
if
;
end
process
;
...
...
@@ -86,7 +88,7 @@ begin
end
if
;
end
process
;
AddressEnableCounterSetValue
<=
TriggerLatencyPlus
One
+
c_MemLatency
;
AddressEnableCounterSetValue
<=
TriggerLatencyPlus
Two
+
c_MemLatency
;
cAddressEnableCounter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
5
...
...
@@ -104,7 +106,7 @@ begin
AddressCounterReset
<=
'1'
when
StreamPosition
=
(
LastStreamPosition
-
c_MemLatency
)
else
Reset_ir
;
AddressCounterSetValue
<=
(
TriggerLatencyPlus
One
+
c_MemLatency
);
AddressCounterSetValue
<=
(
TriggerLatencyPlus
Two
+
c_MemLatency
);
cAddressCounter
:
entity
work
.
Counter
(
syn
)
generic
map
(
g_Width
=>
SetMemAddress_ob11
'length
...
...
@@ -147,7 +149,7 @@ begin
Reset_ir
=>
StreamResetOrReset
,
Enable_i
=>
GenerationEnable
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
TriggerLatencyPlus
One
,
SetValue_ib
=>
TriggerLatencyPlus
Two
,
Overflow_o
=>
open
,
Value_ob
=>
StreamPosition
);
...
...
@@ -161,7 +163,7 @@ begin
Reset_ir
=>
StreamResetOrReset
,
Enable_i
=>
GenerationEnable
,
Set_i
=>
Trigger_i
,
SetValue_ib
=>
TriggerLatencyPlus
One
(
4
downto
0
),
SetValue_ib
=>
TriggerLatencyPlus
Two
(
4
downto
0
),
Overflow_o
=>
BitCounterOverflow
,
Value_ob
=>
open
);
...
...
@@ -198,12 +200,16 @@ begin
LoadEnable_i
=>
LoadShiftRegister
);
SetStream_o
<=
SetStream
when
OutputEnable
=
'1'
else
'0'
;
ResetStream_o
<=
ResetStream
when
OutputEnable
=
'1'
else
'0'
;
pOutputRegs
:
process
(
Clk_ik
)
is
begin
if
rising_edge
(
Clk_ik
)
then
if
OutputEnable
=
'1'
then
SetStream_o
<=
SetStream
;
ResetStream_o
<=
ResetStream
;
else
SetStream_o
<=
'0'
;
ResetStream_o
<=
'0'
;
end
if
;
end
if
;
end
process
;
end
architecture
;
\ No newline at end of file
hdl/ffpg/rtl/FfpgSlave.vhd
View file @
7f6d4fd3
...
...
@@ -67,7 +67,6 @@ architecture syn of FfpgSlave is
signal
WbRegsInput
:
t_ffpg_in_registers
;
signal
WbRegsOutput
:
t_ffpg_out_registers
;
signal
Ch1Set
,
Ch1Res
,
Ch2Set
,
Ch2Res
:
std_logic
;
signal
LedSignal_b
:
std_logic_vector
(
4
downto
1
);
begin
...
...
@@ -176,11 +175,9 @@ begin
ModeLoad_i
=>
WbRegsOutput
.
control_ch1_mode_load_o
,
Running_o
=>
WbRegsInput
.
status_channel_1_running_i
,
ClkRf_ik
=>
ClkRf_k
,
SetStream_o
=>
Ch1Set
,
ResetStream_o
=>
Ch1Res
SetStream_o
=>
Ch1Set
_o
,
ResetStream_o
=>
Ch1Res
_o
);
Ch1Set_o
<=
Ch1Set
;
Ch1Res_o
<=
Ch1Res
;
cDelayedPulseGeneratorCh2
:
entity
work
.
DelayedPulseGenerator
(
syn
)
port
map
(
...
...
@@ -201,11 +198,9 @@ begin
ModeLoad_i
=>
WbRegsOutput
.
control_ch2_mode_load_o
,
Running_o
=>
WbRegsInput
.
status_channel_2_running_i
,
ClkRf_ik
=>
ClkRf_k
,
SetStream_o
=>
Ch2Set
,
ResetStream_o
=>
Ch2Res
SetStream_o
=>
Ch2Set
_o
,
ResetStream_o
=>
Ch2Res
_o
);
Ch2Set_o
<=
Ch2Set
;
Ch2Res_o
<=
Ch2Res
;
----------------------------------
-- Clock selection (temporary)
...
...
@@ -230,11 +225,11 @@ begin
Data_ob
(
0
)
=>
TriggerRf
);
-- OUT1
LedSignal_b
(
1
)
<=
Ch1Set
;
-- OUT1
- enabled and running
LedSignal_b
(
1
)
<=
WbRegsInput
.
status_channel_1_running_i
and
WbRegsOutput
.
control_ch1_oe_o
;
-- OUT2
LedSignal_b
(
2
)
<=
Ch2Set
;
-- OUT2
- enabled and running
LedSignal_b
(
2
)
<=
WbRegsInput
.
status_channel_2_running_i
and
WbRegsOutput
.
control_ch2_oe_o
;
-- TRIG IN
LedSignal_b
(
3
)
<=
TriggerRf
;
...
...
hdl/svec/syn/SvecFfpg.xise
View file @
7f6d4fd3
...
...
@@ -47,7 +47,7 @@
<property
xil_pn:name=
"Case Implementation Style"
xil_pn:value=
"None"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Change Device Speed To"
xil_pn:value=
"-3"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Change Device Speed To Post Trace"
xil_pn:value=
"-3"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Combinatorial Logic Optimization"
xil_pn:value=
"
false"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Combinatorial Logic Optimization"
xil_pn:value=
"
true"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Compile EDK Simulation Library"
xil_pn:value=
"true"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Compile SIMPRIM (Timing) Simulation Library"
xil_pn:value=
"true"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Compile UNISIM (Functional) Simulation Library"
xil_pn:value=
"true"
xil_pn:valueState=
"default"
/>
...
...
@@ -87,7 +87,7 @@
<property
xil_pn:name=
"Enable Message Filtering"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Enable Multi-Pin Wake-Up Suspend Mode spartan6"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Enable Multi-Threading"
xil_pn:value=
"2"
xil_pn:valueState=
"non-default"
/>
<property
xil_pn:name=
"Enable Multi-Threading par spartan6"
xil_pn:value=
"
Off"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Enable Multi-Threading par spartan6"
xil_pn:value=
"
4"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Enable Outputs (Output Events)"
xil_pn:value=
"Default (5)"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Enable Suspend/Wake Global Set/Reset spartan6"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Encrypt Bitstream spartan6"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
...
...
@@ -121,7 +121,7 @@
<property
xil_pn:name=
"Generate Multiple Hierarchical Netlist Files"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generate Post-Place & Route Power Report"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generate Post-Place & Route Simulation Model"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generate RTL Schematic"
xil_pn:value=
"
Yes"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Generate RTL Schematic"
xil_pn:value=
"
No"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Generate SAIF File for Power Optimization/Estimation"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generate SAIF File for Power Optimization/Estimation Par"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generate Testbench File"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
...
...
@@ -130,7 +130,7 @@
<property
xil_pn:name=
"Generate Verbose Library Compilation Messages"
xil_pn:value=
"true"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Generics, Parameters"
xil_pn:value=
""
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Global Optimization Goal"
xil_pn:value=
"AllClockNets"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Global Optimization map spartan6"
xil_pn:value=
"
Off"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Global Optimization map spartan6"
xil_pn:value=
"
Speed"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Global Set/Reset Port Name"
xil_pn:value=
"GSR_PORT"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Global Tristate Port Name"
xil_pn:value=
"GTS_PORT"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"HDL Instantiation Template Target Language"
xil_pn:value=
"VHDL"
xil_pn:valueState=
"default"
/>
...
...
@@ -191,7 +191,7 @@
<property
xil_pn:name=
"Number of Clock Buffers"
xil_pn:value=
"16"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Number of Paths in Error/Verbose Report"
xil_pn:value=
"3"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Number of Paths in Error/Verbose Report Post Trace"
xil_pn:value=
"3"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Optimization Effort spartan6"
xil_pn:value=
"
Normal"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Optimization Effort spartan6"
xil_pn:value=
"
High"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Optimization Goal"
xil_pn:value=
"Speed"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Optimize Instantiated Primitives"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Other Bitgen Command Line Options spartan6"
xil_pn:value=
""
xil_pn:valueState=
"default"
/>
...
...
@@ -217,7 +217,7 @@
<property
xil_pn:name=
"Output File Name"
xil_pn:value=
"SvecTopFfpg"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Overwrite Compiled Libraries"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Pack I/O Registers into IOBs"
xil_pn:value=
"Auto"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Pack I/O Registers/Latches into IOBs"
xil_pn:value=
"
Off"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Pack I/O Registers/Latches into IOBs"
xil_pn:value=
"
For Inputs and Outputs"
xil_pn:valueState=
"non-
default"
/>
<property
xil_pn:name=
"Package"
xil_pn:value=
"fgg900"
xil_pn:valueState=
"non-default"
/>
<property
xil_pn:name=
"Perform Advanced Analysis"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Perform Advanced Analysis Post Trace"
xil_pn:value=
"false"
xil_pn:valueState=
"default"
/>
...
...
@@ -356,7 +356,7 @@
<property
xil_pn:name=
"Watchdog Timer Value spartan6"
xil_pn:value=
"0xFFFF"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Wave window"
xil_pn:value=
"true"
xil_pn:valueState=
"default"
/>
<property
xil_pn:name=
"Working Directory"
xil_pn:value=
"."
xil_pn:valueState=
"non-default"
/>
<property
xil_pn:name=
"Write Timing Constraints"
xil_pn:value=
"
false"
xil_pn:valueState=
"
default"
/>
<property
xil_pn:name=
"Write Timing Constraints"
xil_pn:value=
"
true"
xil_pn:valueState=
"non-
default"
/>
<!-- -->
<!-- The following properties are for internal use only. These should not be modified.-->
<!-- -->
...
...
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