Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
x393
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
x393
Commits
b135946f
Commit
b135946f
authored
Apr 18, 2016
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added serial-to-parallel converter for JTAG from the sensor ports, to increase bitstream load speed
parent
edcdce95
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
33 additions
and
17 deletions
+33
-17
.project
.project
+11
-11
fpga_version.vh
fpga_version.vh
+2
-1
x393_export_c.py
py393/x393_export_c.py
+2
-1
x393_sensor.py
py393/x393_sensor.py
+4
-0
sens_parallel12.v
sensor/sens_parallel12.v
+14
-4
x393.bit
x393.bit
+0
-0
No files found.
.project
View file @
b135946f
...
@@ -62,52 +62,52 @@
...
@@ -62,52 +62,52 @@
<link>
<link>
<name>
vivado_logs/VivadoBitstream.log
</name>
<name>
vivado_logs/VivadoBitstream.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoBitstream-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoBitstream-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoOpt.log
</name>
<name>
vivado_logs/VivadoOpt.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOpt-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOpt-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoOptPhys.log
</name>
<name>
vivado_logs/VivadoOptPhys.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOptPhys-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOptPhys-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoOptPower.log
</name>
<name>
vivado_logs/VivadoOptPower.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOptPower-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoOptPower-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoPlace.log
</name>
<name>
vivado_logs/VivadoPlace.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoPlace-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoPlace-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoRoute.log
</name>
<name>
vivado_logs/VivadoRoute.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoRoute-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoRoute-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoSynthesis.log
</name>
<name>
vivado_logs/VivadoSynthesis.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoSynthesis-201604
06001220877
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoSynthesis-201604
17173535326
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoTimimgSummaryReportImplemented.log
</name>
<name>
vivado_logs/VivadoTimimgSummaryReportImplemented.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimimgSummaryReportImplemented-201604
06001856812
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimimgSummaryReportImplemented-201604
17175241357
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoTimimgSummaryReportSynthesis.log
</name>
<name>
vivado_logs/VivadoTimimgSummaryReportSynthesis.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimimgSummaryReportSynthesis-201604
06001220877
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimimgSummaryReportSynthesis-201604
17173535326
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_logs/VivadoTimingReportSynthesis.log
</name>
<name>
vivado_logs/VivadoTimingReportSynthesis.log
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimingReportSynthesis-201604
06001220877
.log
</location>
<location>
/home/andrey/git/x393/vivado_logs/VivadoTimingReportSynthesis-201604
17173535326
.log
</location>
</link>
</link>
<link>
<link>
<name>
vivado_state/x393-opt-phys.dcp
</name>
<name>
vivado_state/x393-opt-phys.dcp
</name>
...
@@ -127,7 +127,7 @@
...
@@ -127,7 +127,7 @@
<link>
<link>
<name>
vivado_state/x393-synth.dcp
</name>
<name>
vivado_state/x393-synth.dcp
</name>
<type>
1
</type>
<type>
1
</type>
<location>
/home/andrey/git/x393/vivado_state/x393-synth-201604
06001220877
.dcp
</location>
<location>
/home/andrey/git/x393/vivado_state/x393-synth-201604
17173535326
.dcp
</location>
</link>
</link>
</linkedResources>
</linkedResources>
</projectDescription>
</projectDescription>
fpga_version.vh
View file @
b135946f
...
@@ -32,7 +32,8 @@
...
@@ -32,7 +32,8 @@
* with at least one of the Free Software programs.
* with at least one of the Free Software programs.
*******************************************************************************/
*******************************************************************************/
parameter FPGA_VERSION = 32'h03930085; // Adding software control for i2c pins when sequencer is stopped
parameter FPGA_VERSION = 32'h03930086; // Adding byte-wide JTAG read to speed-up 10359 load
// parameter FPGA_VERSION = 32'h03930085; // Adding software control for i2c pins when sequencer is stopped, timing matched
// parameter FPGA_VERSION = 32'h03930084; // Back to iserdes, inverting xfpgatdo - met
// parameter FPGA_VERSION = 32'h03930084; // Back to iserdes, inverting xfpgatdo - met
// parameter FPGA_VERSION = 32'h03930083; // Debugging JTAG, using plain IOBUF
// parameter FPGA_VERSION = 32'h03930083; // Debugging JTAG, using plain IOBUF
// parameter FPGA_VERSION = 32'h03930082; // trying other path to read xfpgatdo
// parameter FPGA_VERSION = 32'h03930082; // trying other path to read xfpgatdo
...
...
py393/x393_export_c.py
View file @
b135946f
...
@@ -1676,8 +1676,9 @@ class X393ExportC(object):
...
@@ -1676,8 +1676,9 @@ class X393ExportC(object):
dw
.
append
((
"hact_alive"
,
13
,
1
,
0
,
"HACT signal from the sensor (or internal) is toggling (N/A for HiSPI"
))
dw
.
append
((
"hact_alive"
,
13
,
1
,
0
,
"HACT signal from the sensor (or internal) is toggling (N/A for HiSPI"
))
dw
.
append
((
"hact_ext_alive"
,
14
,
1
,
0
,
"HACT signal from the sensor is toggling (N/A for HiSPI)"
))
dw
.
append
((
"hact_ext_alive"
,
14
,
1
,
0
,
"HACT signal from the sensor is toggling (N/A for HiSPI)"
))
dw
.
append
((
"vact_alive"
,
15
,
1
,
0
,
"VACT signal from the sensor is toggling (N/A for HiSPI)"
))
dw
.
append
((
"vact_alive"
,
15
,
1
,
0
,
"VACT signal from the sensor is toggling (N/A for HiSPI)"
))
dw
.
append
((
"xfpgatdo_byte"
,
16
,
8
,
0
,
"Multiplexer FPGA TDO output, previous 8 bits"
))
dw
.
append
((
"senspgmin"
,
24
,
1
,
0
,
"senspgm pin state"
))
dw
.
append
((
"senspgmin"
,
24
,
1
,
0
,
"senspgm pin state"
))
dw
.
append
((
"xfpgatdo"
,
25
,
1
,
0
,
"Multiplexer FPGA TDO output"
))
dw
.
append
((
"xfpgatdo"
,
25
,
1
,
0
,
"Multiplexer FPGA TDO output
, current
"
))
dw
.
append
((
"seq_num"
,
26
,
6
,
0
,
"Sequence number"
))
dw
.
append
((
"seq_num"
,
26
,
6
,
0
,
"Sequence number"
))
return
dw
return
dw
...
...
py393/x393_sensor.py
View file @
b135946f
...
@@ -167,12 +167,16 @@ class X393Sensor(object):
...
@@ -167,12 +167,16 @@ class X393Sensor(object):
print (" sof_mclk =
%
d"
%
((status>>17) & 1))
print (" sof_mclk =
%
d"
%
((status>>17) & 1))
print (" sol_mclk =
%
d"
%
((status>>16) & 1))
print (" sol_mclk =
%
d"
%
((status>>16) & 1))
"""
"""
"""
#Folowing 5 bits may be just temporarily available
#Folowing 5 bits may be just temporarily available
print (" irst =
%
d"
%
((status>>20) & 1))
print (" irst =
%
d"
%
((status>>20) & 1))
print ("async_prst_with_sens_mrst =
%
d"
%
((status>>19) & 1))
print ("async_prst_with_sens_mrst =
%
d"
%
((status>>19) & 1))
print (" imrst =
%
d"
%
((status>>18) & 1))
print (" imrst =
%
d"
%
((status>>18) & 1))
print (" rst_mmcm =
%
d"
%
((status>>17) & 1))
print (" rst_mmcm =
%
d"
%
((status>>17) & 1))
print (" pxd_out_pre[1] =
%
d"
%
((status>>16) & 1))
print (" pxd_out_pre[1] =
%
d"
%
((status>>16) & 1))
"""
print
(
" shifted TDO
%
d"
%
((
status
>>
16
)
&
0xff
))
print
(
" vact_alive =
%
d"
%
((
status
>>
15
)
&
1
))
print
(
" vact_alive =
%
d"
%
((
status
>>
15
)
&
1
))
print
(
" hact_ext_alive =
%
d"
%
((
status
>>
14
)
&
1
))
print
(
" hact_ext_alive =
%
d"
%
((
status
>>
14
)
&
1
))
...
...
sensor/sens_parallel12.v
View file @
b135946f
...
@@ -192,7 +192,8 @@ module sens_parallel12 #(
...
@@ -192,7 +192,8 @@ module sens_parallel12 #(
// wire [17:0] status;
// wire [17:0] status;
// wire [18:0] status;
// wire [18:0] status;
wire
[
22
:
0
]
status
;
// wire [22:0] status;
wire
[
25
:
0
]
status
;
// added byte-wide xfpgatdo
wire
cmd_we
;
wire
cmd_we
;
wire
[
2
:
0
]
cmd_a
;
wire
[
2
:
0
]
cmd_a
;
...
@@ -200,6 +201,7 @@ module sens_parallel12 #(
...
@@ -200,6 +201,7 @@ module sens_parallel12 #(
wire
xfpgadone
;
// state of the MRST pin ("DONE" pin on external FPGA)
wire
xfpgadone
;
// state of the MRST pin ("DONE" pin on external FPGA)
wire
xfpgatdo
;
// TDO read from external FPGA
wire
xfpgatdo
;
// TDO read from external FPGA
reg
[
7
:
0
]
xfpgatdo_byte
;
// tdo signal shifted left at each TCK _/~
wire
senspgmin
;
wire
senspgmin
;
reg
xpgmen
=
0
;
// enable programming mode for external FPGA
reg
xpgmen
=
0
;
// enable programming mode for external FPGA
...
@@ -233,11 +235,15 @@ module sens_parallel12 #(
...
@@ -233,11 +235,15 @@ module sens_parallel12 #(
// assign status = {pxd_out_pre[1],vact_alive, hact_ext_alive, hact_alive, locked_pxd_mmcm,
// assign status = {pxd_out_pre[1],vact_alive, hact_ext_alive, hact_alive, locked_pxd_mmcm,
// clkin_pxd_stopped_mmcm, clkfb_pxd_stopped_mmcm, xfpgadone,
// clkin_pxd_stopped_mmcm, clkfb_pxd_stopped_mmcm, xfpgadone,
// ps_rdy, ps_out, xfpgatdo, senspgmin};
// ps_rdy, ps_out, xfpgatdo, senspgmin};
assign
status
=
{
irst
,
async_prst_with_sens_mrst
,
imrst
,
rst_mmcm
,
pxd_out_pre
[
1
]
,
// wire [25:0] status; // added byte-wide xfpgatdo
assign
status
=
{
/// irst, async_prst_with_sens_mrst, imrst, rst_mmcm, pxd_out_pre[1],
xfpgatdo_byte
[
7
:
0
]
,
vact_alive
,
hact_ext_alive
,
hact_alive
,
locked_pxd_mmcm
,
vact_alive
,
hact_ext_alive
,
hact_alive
,
locked_pxd_mmcm
,
clkin_pxd_stopped_mmcm
,
clkfb_pxd_stopped_mmcm
,
xfpgadone
,
clkin_pxd_stopped_mmcm
,
clkfb_pxd_stopped_mmcm
,
xfpgadone
,
ps_rdy
,
ps_out
,
xfpgatdo
,
senspgmin
};
ps_rdy
,
ps_out
,
xfpgatdo
,
senspgmin
};
assign
hact_out
=
hact_r
;
assign
hact_out
=
hact_r
;
assign
iaro
=
trigger_mode
?
~
trig
:
iaro_soft
;
assign
iaro
=
trigger_mode
?
~
trig
:
iaro_soft
;
...
@@ -282,6 +288,10 @@ module sens_parallel12 #(
...
@@ -282,6 +288,10 @@ module sens_parallel12 #(
if
(
mclk_rst
)
xfpgatck
<=
0
;
if
(
mclk_rst
)
xfpgatck
<=
0
;
else
if
(
set_jtag_r
&&
data_r
[
SENS_JTAG_TCK
+
1
])
xfpgatck
<=
data_r
[
SENS_JTAG_TCK
]
;
else
if
(
set_jtag_r
&&
data_r
[
SENS_JTAG_TCK
+
1
])
xfpgatck
<=
data_r
[
SENS_JTAG_TCK
]
;
// shift xfpgatdo to xfpgatdo_byte each time xfpgatck is 0->1
if
(
mclk_rst
)
xfpgatdo_byte
<=
0
;
else
if
(
set_jtag_r
&&
data_r
[
SENS_JTAG_TCK
+
1
]
&&
!
xfpgatck
&&
data_r
[
SENS_JTAG_TCK
])
xfpgatdo_byte
<=
{
xfpgatdo_byte
[
6
:
0
]
,
xfpgatdo
};
if
(
mclk_rst
)
xfpgatms
<=
0
;
if
(
mclk_rst
)
xfpgatms
<=
0
;
else
if
(
set_jtag_r
&&
data_r
[
SENS_JTAG_TMS
+
1
])
xfpgatms
<=
data_r
[
SENS_JTAG_TMS
]
;
else
if
(
set_jtag_r
&&
data_r
[
SENS_JTAG_TMS
+
1
])
xfpgatms
<=
data_r
[
SENS_JTAG_TMS
]
;
...
...
x393.bit
View file @
b135946f
No preview for this file type
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