diff options
Diffstat (limited to 'recipes-demo/de10-nano-fftsw-apps/files')
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 |