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
4a3aa688
Commit
4a3aa688
authored
Aug 17, 2016
by
Jan Pospisil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix AD9512 synchronization - now synchronized by Trigger_i
parent
7c6f7f70
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
87 additions
and
30 deletions
+87
-30
Ad9512Syncer.vhd
hdl/ffpg/rtl/Ad9512Syncer.vhd
+49
-0
FfpgCore.vhd
hdl/ffpg/rtl/FfpgCore.vhd
+1
-0
FfpgSlave.vhd
hdl/ffpg/rtl/FfpgSlave.vhd
+6
-9
make
hdl/ffpg/sim/testbench/make
+1
-0
Testbench.sv
hdl/svec/sim/testbench/Testbench.sv
+10
-6
make
hdl/svec/sim/testbench/make
+1
-0
SvecFfpg.xise
hdl/svec/syn/SvecFfpg.xise
+19
-15
No files found.
hdl/ffpg/rtl/Ad9512Syncer.vhd
0 → 100644
View file @
4a3aa688
library
ieee
;
use
ieee
.
std_logic_1164
.
all
;
entity
Ad9512Syncer
is
generic
(
g_ClkFrequency
:
positive
-- input clock frequency in Hz
);
port
(
Clk_ik
:
in
std_logic
;
StartSync_i
:
in
std_logic
;
-- one pulse starts synchronization
Trigger_i
:
in
std_logic
;
-- falling edge of this signals determines synchronization point
Ad9512Sync_o
:
out
std_logic
:
=
'0'
-- synchronization pulse for AD9512
);
end
entity
;
architecture
syn
of
Ad9512Syncer
is
signal
Pulse
,
GeneratorReset_ra
:
std_logic
;
begin
-- AD9512 function pin is set as SYNCB - needs negative pulse > 1.5*T_rfClk
-- (f_rfClk >= 1 MHz) => (1.5*T_rfClk <= 1.5 us)
cAd9512SyncPulseGenerator
:
entity
work
.
PulseGeneratorTime
(
syn
)
generic
map
(
g_ClkFrequency
=>
g_ClkFrequency
,
g_PulseMinWidthInTime
=>
2
us
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
'0'
,
Signal_i
=>
StartSync_i
,
Pulse_o
=>
Pulse
);
GeneratorReset_ra
<=
Trigger_i
and
(
not
Pulse
);
pSyncPulseGenerator
:
process
(
Clk_ik
,
GeneratorReset_ra
)
is
begin
if
GeneratorReset_ra
=
'1'
then
Ad9512Sync_o
<=
'0'
;
elsif
rising_edge
(
Clk_ik
)
then
if
StartSync_i
=
'1'
then
Ad9512Sync_o
<=
'1'
;
end
if
;
end
if
;
end
process
;
end
architecture
;
\ No newline at end of file
hdl/ffpg/rtl/FfpgCore.vhd
View file @
4a3aa688
...
...
@@ -39,6 +39,7 @@ entity FfpgCore is
Ch1ResLe_o
:
out
std_logic
;
Ch2SetLe_o
:
out
std_logic
;
Ch2ResLe_o
:
out
std_logic
;
--
Ch1Set_o
:
out
std_logic
;
Ch1Res_o
:
out
std_logic
;
Ch2Set_o
:
out
std_logic
;
...
...
hdl/ffpg/rtl/FfpgSlave.vhd
View file @
4a3aa688
...
...
@@ -31,6 +31,7 @@ entity FfpgSlave is
Ch1ResLe_o
:
out
std_logic
;
Ch2SetLe_o
:
out
std_logic
;
Ch2ResLe_o
:
out
std_logic
;
--
Ch1Set_o
:
out
std_logic
;
Ch1Res_o
:
out
std_logic
;
Ch2Set_o
:
out
std_logic
;
...
...
@@ -246,19 +247,15 @@ begin
-- Pulse generator board clocks
----------------------------------
-- Ad9512Func_o is set as SYNCB - need negative pulse > 1.5*T_rfClk
-- (f_rfClk >= 1 MHz) => (1.5*T_rfClk <= 1.5 us)
cAd9512SyncPulseGenerator
:
entity
work
.
PulseGeneratorTime
(
syn
)
cAd9512Syncer
:
entity
work
.
Ad9512Syncer
(
syn
)
generic
map
(
g_ClkFrequency
=>
g_ClkFrequency
,
g_PulseMinWidthInTime
=>
2
us
g_ClkFrequency
=>
g_ClkFrequency
)
port
map
(
Clk_ik
=>
Clk_ik
,
Reset_ir
=>
Reset_ir
,
Signal_i
=>
WbRegsOutput
.
control_ad9512_sync_o
,
Pulse
_o
=>
Ad9512SyncePulse
StartSync_i
=>
WbRegsOutput
.
control_ad9512_sync_o
,
Trigger_i
=>
Trigger_i
,
Ad9512Sync
_o
=>
Ad9512SyncePulse
);
Ad9512Func_o
<=
not
Ad9512SyncePulse
;
...
...
hdl/ffpg/sim/testbench/make
View file @
4a3aa688
...
...
@@ -53,6 +53,7 @@ vcom -2008 -reportprogress 300 -work work ../../rtl/DacsController.vhd
vcom -2008 -reportprogress 300 -work work ../../rtl/DelayedPulseGenerator/Fsm.vhd
vcom -2008 -reportprogress 300 -work work ../../rtl/DelayedPulseGenerator/ClkRfDomain.vhd
vcom -2008 -reportprogress 300 -work work ../../rtl/DelayedPulseGenerator/DelayedPulseGenerator.vhd
vcom -2008 -reportprogress 300 -work work ../../rtl/Ad9512Syncer.vhd
vcom -2008 -reportprogress 300 -work work ../../rtl/FfpgSlave.vhd
vcom -2008 -reportprogress 300 -work work ../../../ip_cores/general-cores/modules/wishbone/wb_crossbar/sdb_rom.vhd
...
...
hdl/svec/sim/testbench/Testbench.sv
View file @
4a3aa688
...
...
@@ -209,8 +209,16 @@ module Testbench;
WbRead
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_DEBUG
)
,
dataOut
,
"Debug"
)
;
endtask
initial
begin
task
automatic
TestAd9512Sync
;
uint32_t
data
;
WbWrite
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
'h200
)
;
WbRead
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
data
)
;
#
2u
s
WbRead
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
data
)
;
endtask
initial
begin
acc
=
new
(
VME
)
;
#
10u
s
;
// for PLL lock and reset settle
...
...
@@ -221,11 +229,7 @@ module Testbench;
// TestFfpgCsr;
// TestSpi;
// TestReal;
WbWrite
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
'h200
)
;
WbRead
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
data
)
;
#
2u
s
WbRead
(
`WB_FFPG_CSR_REG
(
`ADDR_FFPG_CONTROL
)
,
data
)
;
TestAd9512Sync
;
// uint64_t blt_addr[];
// uint64_t blt_data[];
...
...
hdl/svec/sim/testbench/make
View file @
4a3aa688
...
...
@@ -55,6 +55,7 @@ vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/DacsController.vhd
vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/DelayedPulseGenerator/Fsm.vhd
vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/DelayedPulseGenerator/DelayedPulseGenerator.vhd
vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/DelayedPulseGenerator/DelayedPulseGeneratorsCdc.vhd
vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/Ad9512Syncer.vhd
vcom -2008 -reportprogress 300 -work work ../../../ffpg/rtl/FfpgSlave.vhd
vcom -2008 -reportprogress 300 -work work ../../../ip_cores/general-cores/modules/wishbone/wb_crossbar/sdb_rom.vhd
...
...
hdl/svec/syn/SvecFfpg.xise
View file @
4a3aa688
...
...
@@ -380,15 +380,15 @@
<files>
<file
xil_pn:name=
"../rtl/SvecTopFfpg.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
3
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
4
"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/FfpgCore.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"2"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
2
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
3
"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/FfpgSlave.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"3"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
5
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
6
"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/DacsController.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"4"
/>
...
...
@@ -480,7 +480,7 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_onewire_master/xwb_onewire_master.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"27"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
1
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
2
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_slave_adapter/wb_slave_adapter.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"28"
/>
...
...
@@ -492,7 +492,7 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_spi/xwb_spi.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"30"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
0
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
1
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_spi/spi_clgen.v"
xil_pn:type=
"FILE_VERILOG"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"31"
/>
...
...
@@ -516,7 +516,7 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_crossbar/xwb_sdb_crossbar.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"38"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
3
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
4
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/genrams/genram_pkg.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"44"
/>
...
...
@@ -548,11 +548,11 @@
</file>
<file
xil_pn:name=
"../../ip_cores/vme64x-core/hdl/vme64x-core/rtl/xvme64x_core.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"60"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
8
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
9
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/vme64x-core/hdl/vme64x-core/rtl/VME64xCore_Top.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"61"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"
59
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"
60
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/vme64x-core/hdl/vme64x-core/rtl/VME_bus.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"62"
/>
...
...
@@ -612,11 +612,11 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_clock_crossing/xwb_clock_crossing.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"76"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
0
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
1
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/genrams/generic/generic_async_fifo.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"77"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
4
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
5
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/genrams/generic/inferred_async_fifo.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"78"
/>
...
...
@@ -632,11 +632,11 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_i2c_master/xwb_i2c_master.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"81"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"
69
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"
70
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_i2c_master/wb_i2c_master.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"82"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
2
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
3
"
/>
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/wishbone/wb_i2c_master/i2c_master_top.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"83"
/>
...
...
@@ -652,7 +652,7 @@
</file>
<file
xil_pn:name=
"../rtl/carrier_csr.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"86"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
7
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
8
"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/SlowToggle.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"87"
/>
...
...
@@ -660,19 +660,23 @@
</file>
<file
xil_pn:name=
"../../ip_cores/general-cores/modules/common/gc_bicolor_led_ctrl.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"88"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
1
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"7
2
"
/>
</file>
<file
xil_pn:name=
"SvecFfpg.ucf"
xil_pn:type=
"FILE_UCF"
>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"0"
/>
</file>
<file
xil_pn:name=
"../rtl/HeartBeat.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"126"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
6
"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"6
7
"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/DelayedPulseGenerator/DelayedPulseGeneratorsCdc.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"152"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"56"
/>
</file>
<file
xil_pn:name=
"../../ffpg/rtl/Ad9512Syncer.vhd"
xil_pn:type=
"FILE_VHDL"
>
<association
xil_pn:name=
"BehavioralSimulation"
xil_pn:seqID=
"128"
/>
<association
xil_pn:name=
"Implementation"
xil_pn:seqID=
"59"
/>
</file>
</files>
<bindings>
...
...
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