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
8555ff12
Commit
8555ff12
authored
Oct 17, 2016
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Plain Diff
merged with framepars
parents
74db0472
987eadef
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
24 additions
and
18 deletions
+24
-18
.gitignore
.gitignore
+2
-1
fpga_version.vh
fpga_version.vh
+3
-1
x393_parameters.vh
includes/x393_parameters.vh
+2
-2
event_logger.v
logger/event_logger.v
+2
-3
x393_export_c.py
py393/x393_export_c.py
+1
-1
camsync393.v
timing/camsync393.v
+14
-10
x393_parallel.bit
x393_parallel.bit
+0
-0
No files found.
.gitignore
View file @
8555ff12
...
@@ -60,4 +60,5 @@ cocotb/results.xml
...
@@ -60,4 +60,5 @@ cocotb/results.xml
html.tar.gz
html.tar.gz
latex
latex
bitbake-logs
bitbake-logs
sysroots
sysroots
image
fpga_version.vh
View file @
8555ff12
...
@@ -35,7 +35,9 @@
...
@@ -35,7 +35,9 @@
* contains all the components and scripts required to completely simulate it
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
* with at least one of the Free Software programs.
*/
*/
parameter FPGA_VERSION = 32'h039300be; //parallel - adding odd/even pixels shift -0.066/12, 80.26%
parameter FPGA_VERSION = 32'h039300c0; //parallel - chnaging LOGGER_PAGE_IMU 3->0 (how it was in 353) -0.044/16, 79.59%
// parameter FPGA_VERSION = 32'h039300bf; //parallel - mask extrenal timestamps mode -0.043/17 79.56%
// parameter FPGA_VERSION = 32'h039300be; //parallel - adding odd/even pixels shift -0.066/12, 80.26%
// parameter FPGA_VERSION = 32'h039300bd; //hispi, trying the same -0.173/36, 80.95%
// parameter FPGA_VERSION = 32'h039300bd; //hispi, trying the same -0.173/36, 80.95%
// parameter FPGA_VERSION = 32'h039300bc; //parallel, 100kHz min i2c speed -0.076/8, 79.69%
// parameter FPGA_VERSION = 32'h039300bc; //parallel, 100kHz min i2c speed -0.076/8, 79.69%
// parameter FPGA_VERSION = 32'h039300bb; //parallel, adding i2c almost full. -0.101/8, 79.37%
// parameter FPGA_VERSION = 32'h039300bb; //parallel, adding i2c almost full. -0.101/8, 79.37%
...
...
includes/x393_parameters.vh
View file @
8555ff12
...
@@ -825,10 +825,10 @@
...
@@ -825,10 +825,10 @@
parameter LOGGER_MASK = 'h7fe,
parameter LOGGER_MASK = 'h7fe,
parameter LOGGER_STATUS_MASK = 'h7ff,
parameter LOGGER_STATUS_MASK = 'h7ff,
// parameter LOGGER_PAGE_IMU = 0, // 'h00..'h1f - overlaps with period/duration/halfperiod/config? (was so in x353)
//First 4 registers are not used (it is when time stamps are sent)
parameter LOGGER_PAGE_IMU = 0, // 'h04..'h1f - overlaps with period/duration/halfperiod/config? (was so in x353)
parameter LOGGER_PAGE_GPS = 1, // 'h20..'h3f
parameter LOGGER_PAGE_GPS = 1, // 'h20..'h3f
parameter LOGGER_PAGE_MSG = 2, // 'h40..'h5f
parameter LOGGER_PAGE_MSG = 2, // 'h40..'h5f
parameter LOGGER_PAGE_IMU = 3, // 'h60..'h7f - removing overlap with period/duration/halfperiod/config
parameter LOGGER_PERIOD = 0,
parameter LOGGER_PERIOD = 0,
parameter LOGGER_BIT_DURATION = 1,
parameter LOGGER_BIT_DURATION = 1,
...
...
logger/event_logger.v
View file @
8555ff12
...
@@ -44,11 +44,10 @@ module event_logger#(
...
@@ -44,11 +44,10 @@ module event_logger#(
parameter
LOGGER_STATUS_REG_ADDR
=
'h39
,
// just 1 location)
parameter
LOGGER_STATUS_REG_ADDR
=
'h39
,
// just 1 location)
parameter
LOGGER_MASK
=
'h7fe
,
parameter
LOGGER_MASK
=
'h7fe
,
parameter
LOGGER_STATUS_MASK
=
'h7ff
,
parameter
LOGGER_STATUS_MASK
=
'h7ff
,
//First 4 registers are not used (it is when time stamps are sent)
// parameter LOGGER_PAGE_IMU = 0, // 'h00
..'h1f - overlaps with period/duration/halfperiod/config? (was so in x353)
parameter
LOGGER_PAGE_IMU
=
0
,
// 'h04
..'h1f - overlaps with period/duration/halfperiod/config? (was so in x353)
parameter
LOGGER_PAGE_GPS
=
1
,
// 'h20..'h3f
parameter
LOGGER_PAGE_GPS
=
1
,
// 'h20..'h3f
parameter
LOGGER_PAGE_MSG
=
2
,
// 'h40..'h5f
parameter
LOGGER_PAGE_MSG
=
2
,
// 'h40..'h5f
parameter
LOGGER_PAGE_IMU
=
3
,
// 'h60..'h7f - removing overlap with period/duration/halfperiod/config
parameter
LOGGER_PERIOD
=
0
,
parameter
LOGGER_PERIOD
=
0
,
parameter
LOGGER_BIT_DURATION
=
1
,
parameter
LOGGER_BIT_DURATION
=
1
,
...
...
py393/x393_export_c.py
View file @
8555ff12
...
@@ -1109,7 +1109,7 @@ class X393ExportC(object):
...
@@ -1109,7 +1109,7 @@ class X393ExportC(object):
((
'_Address consists of 2 parts - 2-bit page (configuration, imu, gps, message) and a 5-bit sub-address autoincremented when writing data.'
,)),
((
'_Address consists of 2 parts - 2-bit page (configuration, imu, gps, message) and a 5-bit sub-address autoincremented when writing data.'
,)),
((
'_Register pages:'
,)),
((
'_Register pages:'
,)),
((
"X393_LOGGER_PAGE_CONF"
,
""
,
0
,
0
,
None
,
None
,
""
,
"Logger configuration page"
)),
((
"X393_LOGGER_PAGE_CONF"
,
""
,
0
,
0
,
None
,
None
,
""
,
"Logger configuration page"
)),
((
"X393_LOGGER_PAGE_IMU"
,
""
,
vrlg
.
LOGGER_PAGE_IMU
,
0
,
None
,
None
,
""
,
"Logger IMU parameters page"
)),
((
"X393_LOGGER_PAGE_IMU"
,
""
,
vrlg
.
LOGGER_PAGE_IMU
,
0
,
None
,
None
,
""
,
"Logger IMU parameters page
(fist 4 DWORDs are not used)
"
)),
((
"X393_LOGGER_PAGE_GPS"
,
""
,
vrlg
.
LOGGER_PAGE_GPS
,
0
,
None
,
None
,
""
,
"Logger GPS parameters page"
)),
((
"X393_LOGGER_PAGE_GPS"
,
""
,
vrlg
.
LOGGER_PAGE_GPS
,
0
,
None
,
None
,
""
,
"Logger GPS parameters page"
)),
((
"X393_LOGGER_PAGE_MSG"
,
""
,
vrlg
.
LOGGER_PAGE_MSG
,
0
,
None
,
None
,
""
,
"Logger MSG (odometer) parameters page"
)),
((
"X393_LOGGER_PAGE_MSG"
,
""
,
vrlg
.
LOGGER_PAGE_MSG
,
0
,
None
,
None
,
""
,
"Logger MSG (odometer) parameters page"
)),
((
'_Register configuration addresses (with X393_LOGGER_PAGE_CONF):'
,)),
((
'_Register configuration addresses (with X393_LOGGER_PAGE_CONF):'
,)),
...
...
timing/camsync393.v
View file @
8555ff12
...
@@ -167,7 +167,8 @@ module camsync393 #(
...
@@ -167,7 +167,8 @@ module camsync393 #(
wire
en_pclk
;
wire
en_pclk
;
wire
eprst
=
prst
||
!
en_pclk
;
wire
eprst
=
prst
||
!
en_pclk
;
reg
ts_snd_en
;
// enable sending timestamp over sync line
reg
ts_snd_en
;
// enable sending timestamp over sync line
reg
ts_external
;
// 1 - use external timestamp, if available. 0 - always use local ts
reg
ts_external
;
// Combined bit 1 - use external timestamp, if available. 0 - always use local ts
reg
ts_external_m
;
// 1 - use external timestamp, if available. 0 - always use local ts (mode bit)
reg
triggered_mode_r
;
reg
triggered_mode_r
;
reg
[
31
:
0
]
ts_snd_sec
;
// [31:0] timestamp seconds to be sent over the sync line - multiplexed from master channel
reg
[
31
:
0
]
ts_snd_sec
;
// [31:0] timestamp seconds to be sent over the sync line - multiplexed from master channel
...
@@ -377,19 +378,22 @@ module camsync393 #(
...
@@ -377,19 +378,22 @@ module camsync393 #(
always
@
(
posedge
mclk
)
begin
always
@
(
posedge
mclk
)
begin
if
(
set_mode_reg_w
)
begin
if
(
set_mode_reg_w
)
begin
if
(
cmd_data
[
CAMSYNC_EN_BIT
])
en
<=
cmd_data
[
CAMSYNC_EN_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_EN_BIT
])
en
<=
cmd_data
[
CAMSYNC_EN_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_SNDEN_BIT
])
ts_snd_en
<=
cmd_data
[
CAMSYNC_SNDEN_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_SNDEN_BIT
])
ts_snd_en
<=
cmd_data
[
CAMSYNC_SNDEN_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_EXTERNAL_BIT
])
ts_external
<=
cmd_data
[
CAMSYNC_EXTERNAL_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_EXTERNAL_BIT
])
ts_external
_m
<=
cmd_data
[
CAMSYNC_EXTERNAL_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_TRIGGERED_BIT
])
triggered_mode_r
<=
cmd_data
[
CAMSYNC_TRIGGERED_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_TRIGGERED_BIT
])
triggered_mode_r
<=
cmd_data
[
CAMSYNC_TRIGGERED_BIT
-
1
]
;
if
(
cmd_data
[
CAMSYNC_MASTER_BIT
])
master_chn
<=
cmd_data
[
CAMSYNC_MASTER_BIT
-
1
-:
2
]
;
if
(
cmd_data
[
CAMSYNC_MASTER_BIT
])
master_chn
<=
cmd_data
[
CAMSYNC_MASTER_BIT
-
1
-:
2
]
;
// if (cmd_data[CAMSYNC_CHN_EN_BIT]) chn_en <= cmd_data[CAMSYNC_CHN_EN_BIT - 1 -: 4];
// if (cmd_data[CAMSYNC_CHN_EN_BIT]) chn_en <= cmd_data[CAMSYNC_CHN_EN_BIT - 1 -: 4];
// Making separate enables for each channel, so channel software will not disturb other channels
// Making separate enables for each channel, so channel software will not disturb other channels
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
3
])
chn_en
[
0
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
7
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
3
])
chn_en
[
0
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
7
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
2
])
chn_en
[
1
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
6
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
2
])
chn_en
[
1
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
6
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
1
])
chn_en
[
2
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
5
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
1
])
chn_en
[
2
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
5
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
0
])
chn_en
[
3
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
4
]
;
if
(
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
0
])
chn_en
[
3
]
<=
cmd_data
[
CAMSYNC_CHN_EN_BIT
-
4
]
;
end
end
// Do not try to use external timestamp in free run or internally triggered mode
ts_external
<=
ts_external_m
&&
!
input_use_intern
&&
triggered_mode_r
;
if
(
mrst
)
input_use
<=
0
;
if
(
mrst
)
input_use
<=
0
;
if
(
!
en
)
begin
if
(
!
en
)
begin
input_use
<=
0
;
input_use
<=
0
;
...
...
x393_parallel.bit
View file @
8555ff12
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