fast-p2a supports plain and delta encoding for primitives, and delta-len encoding for strings. Many changes were performed only on the oc-accel platform. Should check whether everything still works on the other platform(s).
There are now 2 snappy decompressors available:
- vhsnunzip has a 64 bits wide datapath
- FPGA-Snappy-Decompressor has a 512 bits wide datapath vhsnunzip is a smaller circuit and uses 1 URAM. FPGA-Snappy-Decompressor is larger, and uses 16 BRAMs to achieve the higher performance. It seems to work in simulation, but does not do so on the board. It has some challenges such as needing to clear valid bits in BRAMs after reset and in between pages.
For any testbench:
- Source env.sh in fletcher repo
- vsim
- do /path/to/fletcher.tcl
- add_fletcher (if axi_top is also included don't forget to add_sources on the fletcher axi files)
- compile_sources
- compile
- simulate Many of the testbenches have a corresponding Python script for generating input and validation data
- point ACTION_ROOT to one of the oc-accel platform examples in the snap_env.sh file
- run the oc-accel flow using
./ocaccel_workflow.py
- when the simulation terminal window opens, run the host code (which is automatically compiled in the flow) in the
sw
subdir - To view the simulation waveform after running your tests, close the terminal and your the original terminal run
./display_traces
- Source hdk_setup.sh in aws-fpga repo
- Copy any of the existing projects in platforms/aws-f1
- Change start_build_on_cluster.sh for the correct CL_DIR
- Change build/scripts/encrypt.tcl to include any additional VHDL files
- Change verif/scripts/top_vhdl.vivado.f to include any additional VHDL files
- Run generate_ip.sh
For testbenches in verif/tests:
- Source env.sh in fletcher repo and fast-p2a repo
- source hdk_setup.sh in aws-fpga repo
- In verif/scripts make TEST={name_of_sv_testbench}
- For gui (in verif/sim/vivado/{test_dir}) run xsim tb --gui
- Source start_build_on_cluster.sh (with or withour -foreground switch in script)
- Install aws cli tools
- Run aws s3 cp {design_file} {s3://your_bucket/your_dir} (design_file in build/checkpoints/to_aws (.tar))
- Run aws ec2 create-fpga-image --name "hw_name" --description "hw_desc" --input_storage_location "Bucket=your_bucket,Key=your_dir/your_designfile" --logs-storage-location "Bucket=your_bucket,Key=your_dir"