README.md 2.03 KB
Newer Older
apgrebenkin's avatar
apgrebenkin committed
1 2
# x393_sata
SATA controller for x393 camera
Alexey Grebenkin's avatar
Alexey Grebenkin committed
3 4
Board: Zynq 7z30
FPGA: Kintex-7
Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
5 6 7 8 9 10 11 12 13 14 15

# Clone

git clone https://github.com/Elphel/x393_sata **--recursive**

# Working on remote PC

1. sudo apt-get install ssh-askpass  
2. ssh-copy-id user@ip  

# Swtich between synthesis & simulation
16
See update below
17

Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
18 19 20 21 22 23 24 25 26 27 28 29
Edit *.editor_defines*:
* simulation:
  `define SIMULATION 1
  `define CHECKERS_ENABLED 1
  `define OPEN_SOURCE_ONLY 1
  `define PRELOAD_BRAMS
* synthesis:
  //`define SIMULATION 1
  //`define CHECKERS_ENABLED 1
  //`define OPEN_SOURCE_ONLY 1
  `define PRELOAD_BRAMS

Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
30
Refresh the project and update hierarchy (or rescan)
31 32 33

**Update:** Not needed anymore with updated VDT plugin - it now calculates closure per-tool and per-top file defines,
so *.editor_defines* is now just for the editor (which branches to parse). No refresh/rescan is required.
Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
34 35 36 37 38 39
  
# Simulation
* Get unisims library - refresh project files otherwise nothing will work  

# Synthesis
* Add constraints file through Synthesis parameters
Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
40
* Bitstream Tool parameters - check *Force(overwrite)*
Oleg Dzhimiev's avatar
Oleg Dzhimiev committed
41
  
42 43
# Current step in try2 branch:
Not yet tested in hardware, started AHCI implementation (currently coded registers and DMA engine, that processes command table/PRD list,
44
Transfers data between clock domains, re-aligns between WORD size granularity, HBA 32-bit data and 64-bit AXI accesses.
45
# Current step in main branch:
Alexey Grebenkin's avatar
Alexey Grebenkin committed
46 47 48 49
Testing basic functionallity of a host.  
Trying out pio access.  
Fullfilling device-side drivers and monitors via tasks.  
Tests are mostly manual, relied on a common sense and waveforms instpection. Still, complatible both with gtx-gpl and unisims/gtx
50
# Going to do afterwards:
Alexey Grebenkin's avatar
Alexey Grebenkin committed
51 52 53 54 55
Test dma functionallity of the host.  
Make cocotb testbench - gtx-gpl only - random payload high-level verification testing purposes.  
Create a base of regression tests, containing lower-level tests - both gtx-gpl and unisims/gtx.  
Improve an implementation of DMA control module.  
Finally decide what to do with a driver and modify application level (actally, write it from scrap) correspodning to driver's interfaces.