Name
Last commit
Last update
.settings Loading commit data...
ahci Loading commit data...
ddr3 Loading commit data...
device Loading commit data...
dma Loading commit data...
generated Loading commit data...
helpers Loading commit data...
host Loading commit data...
includes Loading commit data...
input_data Loading commit data...
py393sata Loading commit data...
simcoco Loading commit data...
synt Loading commit data...
tb Loading commit data...
wrapper Loading commit data...
x393 @ 06073f86 Loading commit data...
.editor_defines Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.project Loading commit data...
.pydevproject Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
ahci_timing.xdc Loading commit data...
system_defines.vh Loading commit data...
tb_ahci_01.sav Loading commit data...
tb_top.sav Loading commit data...
top.xdc Loading commit data...
top_timing.xdc Loading commit data...

x393_sata

SATA controller for x393 camera Board: Zynq 7z30 FPGA: Kintex-7

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

See update below

Edit .editor_defines:

  • simulation: define SIMULATION 1define CHECKERS_ENABLED 1 define OPEN_SOURCE_ONLY 1define PRELOAD_BRAMS
  • synthesis: //define SIMULATION 1 //define CHECKERS_ENABLED 1 //define OPEN_SOURCE_ONLY 1define PRELOAD_BRAMS

Refresh the project and update hierarchy (or rescan)

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.

Simulation

  • Get unisims library - refresh project files otherwise nothing will work

Synthesis

  • Add constraints file through Synthesis parameters
  • Bitstream Tool parameters - check Force(overwrite)

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, Transfers data between clock domains, re-aligns between WORD size granularity, HBA 32-bit data and 64-bit AXI accesses.

Current step in main branch:

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

Going to do afterwards:

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.