aboutsummaryrefslogtreecommitdiff
path: root/recipes-demo/de10-nano-fftsw-apps/files
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-demo/de10-nano-fftsw-apps/files')
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/LICENSE22
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/README_HOST.TXT154
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/README_SANDBOX.TXT139
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/README_SANDBOX_BUILD.TXT59
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/README_TARGET.TXT114
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/README_TARGET_BUILD.TXT151
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/archive_for_target.sh68
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/archive_src_for_sandbox.sh33
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/archive_src_for_target.sh96
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/build_all.sh85
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/build_app.sh104
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/build_lib.sh90
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c16_256.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c16_256x32.c109
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c16_256x32x128.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c16_4096.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c32_256.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c32_256x32.c109
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c32_256x32x128.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/c32_4096.c104
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/clean_all.sh91
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/copy_to_target.sh23
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/create_input_waveforms.sh60
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/create_real_short_sine32.c38
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/create_real_short_square32.c35
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/create_real_short_triangle32.c40
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/de10-nano-fftsw-init.service10
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/duplicate_x128.sh23
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/duplicate_x32.sh23
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/duplicate_x8.sh23
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fft_256.c111
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fft_256x32.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fft_256x32x128.c117
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fft_4096.c111
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fftdma_256.c111
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fftdma_256x32.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fftdma_256x32x128.c117
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/fftdma_4096.c111
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/images/README_IMAGES.TXT100
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_sine_256.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_sine_256x32.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_sine_4096.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_squares_256.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_squares_256x32.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_squares_4096.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_triangle_256.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_triangle_256x32.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_gnuplot_triangle_4096.gnu28
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_sine_256.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_sine_256x32.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_sine_4096.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_squares_256.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_squares_256x32.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_squares_4096.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_triangle_256.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_triangle_256x32.sh15
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/images/create_montage_triangle_4096.sh15
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/ne10cpx_long_to_text.c48
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/ne10cpx_short_to_text.c48
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon16_256.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon16_256x32.c109
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon16_256x32x128.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon16_4096.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon32_256.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon32_256x32.c109
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon32_256x32x128.c113
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/neon32_4096.c104
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/overhead.c219
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/real_short_to_ne10cpx_long.c58
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/real_short_to_ne10cpx_short.c58
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_all.sh24
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_fft_256.sh48
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_fft_256x32.sh48
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_fft_256x32x128.sh49
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_fft_4096.sh48
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_stream_256x16x1.sh31
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_stream_256x1x1.sh31
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/run_stream_256x32x128.sh31
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/sandbox_build_all.sh52
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/sandbox_create_input_waveforms.sh49
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/setup_env.src8
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/setup_target_fft_env.sh167
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_fpga_256x16x1.c118
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_fpga_256x1x1.c118
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_fpga_256x32x128.c118
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_neon32_256x16x1.c133
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_neon32_256x1x1.c133
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_neon32_256x32x128.c133
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_raw_256x16x1.c114
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_raw_256x1x1.c114
-rw-r--r--recipes-demo/de10-nano-fftsw-apps/files/stream_raw_256x32x128.c114
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/target_build_all.sh84
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/target_build_app.sh95
-rwxr-xr-xrecipes-demo/de10-nano-fftsw-apps/files/target_build_lib.sh85
94 files changed, 6968 insertions, 0 deletions
diff --git a/recipes-demo/de10-nano-fftsw-apps/files/LICENSE b/recipes-demo/de10-nano-fftsw-apps/files/LICENSE
new file mode 100644
index 0000000..ab84792
--- /dev/null
+++ b/recipes-demo/de10-nano-fftsw-apps/files/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+Copyright (c) 2016 Intel Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
diff --git a/recipes-demo/de10-nano-fftsw-apps/files/README_HOST.TXT b/recipes-demo/de10-nano-fftsw-apps/files/README_HOST.TXT
new file mode 100644
index 0000000..c068ccb
--- /dev/null
+++ b/recipes-demo/de10-nano-fftsw-apps/files/README_HOST.TXT
@@ -0,0 +1,154 @@
+To build the applications in this directory, you should be able to run these
+host scripts in this order:
+
+source ./setup_env.src
+ this will put the cross compiler tools into the PATH
+./build_ne10.sh
+ this will build the ne10 library into a directory 'ne10'
+./build_all.sh
+ this will build all the applications
+./archive_for_target.sh
+ this will archive all applications and target scripts into fft.tgz for
+ installation on the target
+./copy_to_target.sh
+ this will copy the fft.tgz archive and setup_target_fft_env.sh over to
+ the target
+
+Description of directory contents:
+
+build_ne10.sh
+ host script to build the ne10 library
+
+build_all.sh
+ host script to build all applications and libraries, except ne10 library
+
+build_app.sh
+ host script to build one application
+
+build_lib.sh
+ host script to build one library
+
+clean_all.sh
+ host script to clean all build objects
+
+archive_for_target.sh
+ host script to archive all applications and scripts for target
+ installation
+
+copy_to_target.sh
+ host script that copies fft.tgz archive and setup_target_fft_env.sh
+ script over to the target
+
+create_input_waveforms.sh
+ target script that executes waveform creation applications and
+ duplication scripts to create all input waveforms for the applications
+ to consume
+
+duplicate_x128.sh
+duplicate_x32.sh
+duplicate_x8.sh
+ these target scripts duplicate a file x8, x32 or x128 times. These are
+ used to replicate the fundamental waveforms into longer patterns
+
+images/
+ this directory contains host scripts to create PNG images of waveform
+ data text files using gnu plot and montage from imagemagick
+
+run_all.sh
+run_fft_256.sh
+run_fft_256x32.sh
+run_fft_256x32x128.sh
+run_fft_4096.sh
+run_stream_256x32x128.sh
+run_stream_256x16x1.sh
+run_stream_256x1x1.sh
+ these target scripts execute all of the various permutations of the demo
+ applications mentioned below
+
+setup_target_fft_env.sh
+ this target script is used to extract the fft.tgz archive onto the ram
+ disk mounted at /mnt/ram
+
+overhead.c
+ this is the source for the overhead library that all of the applications
+ are linked against
+
+c16_256.c
+c16_256x32.c
+c16_256x32x128.c
+c16_4096.c
+ these applications use the NE10 C functions to implement the FFT
+ algorithm for a variety of input sample sizes with 16-bit resolution
+
+c32_256.c
+c32_256x32.c
+c32_256x32x128.c
+c32_4096.c
+ these applications use the NE10 C functions to implement the FFT
+ algorithm for a variety of input sample sizes with 32-bit resolution
+
+fft_256.c
+fft_256x32.c
+fft_256x32x128.c
+fft_4096.c
+ these applications use the FPGA logic to implement the FFT
+ algorithm for a variety of input sample sizes. This variant pushes
+ the input samples into the FPGA and pulls the results back out using
+ programmed I/O from the HPS Cortex A9 processor
+
+fftdma_256.c
+fftdma_256x32.c
+fftdma_256x32x128.c
+fftdma_4096.c
+ these applications use the FPGA logic to implement the FFT
+ algorithm for a variety of input sample sizes. This variant moves
+ the input samples into the FPGA and the results back out using DMA
+ through the ACP port of the Cortex A9 processor
+
+neon16_256.c
+neon16_256x32.c
+neon16_256x32x128.c
+neon16_4096.c
+ these applications use the NE10 NEON functions to implement the FFT
+ algorithm for a variety of input sample sizes with 16-bit resolution
+
+neon32_256.c
+neon32_256x32.c
+neon32_256x32x128.c
+neon32_4096.c
+ these applications use the NE10 NEON functions to implement the FFT
+ algorithm for a variety of input sample sizes with 32-bit resolution
+
+stream_fpga_256x32x128.c
+stream_fpga_256x16x1.c
+stream_fpga_256x1x1.c
+stream_neon32_256x32x128.c
+stream_neon32_256x16x1.c
+stream_neon32_256x1x1.c
+stream_raw_256x32x128.c
+stream_raw_256x16x1.c
+stream_raw_256x1x1.c
+ these applications stream data from the FPGA into ramdisk files, the
+ fpga variant DMAs the input stream thru the FPGA FFT logic before it
+ is DMAed through the ACP port of the Cortex A9, the neon variant DMAs
+ the raw input data stream through the ACP port and then computes the FFT
+ algorithm on it before saving to the ram disk, the raw variant DMAs the
+ raw input data stream through the ACP port and then directly into the
+ ram disk
+
+create_real_short_sine32.c
+create_real_short_square32.c
+create_real_short_triangle32.c
+ these applications create the initial 32 samples of their respective
+ waveform, sine, square and triangle
+
+real_short_to_ne10cpx_long.c
+real_short_to_ne10cpx_short.c
+ these applications translate the real short data format into ne10cpx
+ long and short format which is consumed by the demo applications
+
+ne10cpx_long_to_text.c
+ne10cpx_short_to_text.c
+ these applications translate the ne10cpx long and short format binary
+ data into text format output which may be read by gnu plot for example
+
diff --git a/recipes-demo/de10-nano-fftsw-apps/files/README_SANDBOX.TXT b/recipes-demo/de10-nano-fftsw-apps/files/README_SANDBOX.TXT
new file mode 100644
index 0000000..5969cbf
--- /dev/null
+++ b/recipes-demo/de10-nano-fftsw-apps/files/README_SANDBOX.TXT
@@ -0,0 +1,139 @@
+To build the applications in this directory, please follow the guidance provided
+at the top of the README_SANDBOX_BUILD.TXT file.
+
+Once you have built the applications in this directory you can follow these
+directions to make use of them.
+
+We want to run the 'fftdma_256' program and the 'neon32_256' program that we
+just built. These programs require some input waveform data to feed into the
+FFT algorithm and they output the real and imaginary FFT results. To create the
+input waveform data we can run this script:
+
+sandbox# ./sandbox_create_input_waveforms.sh
+
+The 'sandbox_create_input_waveforms.sh' script runs a few of the utiltiy
+programs that we just build along with some of the utility scripts to create
+some input waveform patterns that we can feed into the 'fftdma_256' and
+'neon32_256' programs. After we run this script we should see the following
+output that it created:
+
+sandbox# ls input_waveforms/ output_waveforms/
+input_waveforms/:
+ne10cpx_long_sine256.bin ne10cpx_short_sine256.bin
+ne10cpx_long_square256.bin ne10cpx_short_square256.bin
+ne10cpx_long_triangle256.bin ne10cpx_short_triangle256.bin
+
+output_waveforms/:
+
+The 'fftdma_256' program consumes 16-bit sample inputs which is what the
+'ne10cpx_short_*.bin' files contain, and the 'neon32_256' program consumes
+32-bit sample inputs which is what the 'ne10cpx_long_*.bin' files contain.
+
+Now we're ready to run the programs. Execute each program like this:
+
+sandbox# ./fftdma_256 \
+ --input=input_waveforms/ne10cpx_short_sine256.bin \
+ --output=output_waveforms/fftdma_256_sine.bin
+
+sandbox# ./neon32_256 \
+ --input=input_waveforms/ne10cpx_long_sine256.bin \
+ --output=output_waveforms/neon32_256_sine.bin
+
+And now we should see the raw binary output from the two program executions,
+like this:
+
+sandbox# ls output_waveforms/
+fftdma_256_sine.bin neon32_256_sine.bin
+
+You can see the raw data by dumping it with 'hexdump -Cv', but if we really want
+to "see" the data, we could also convert it into a PNG image file that w