├── README.md ├── Ultimate_Guide.pdf ├── doc ├── Abstract_LAP_Corentin_Ferry.pdf ├── Abstract_LAP_Juan_Azcarreta.pdf ├── Presentation_Juan_Azcarreta.pdf ├── Report_Corentin_Ferry.pdf ├── Report_Juan_Azcarreta.pdf ├── pyramic.png └── pyramic_layers.png ├── fpga ├── MIC_ARRAY │ ├── .gitignore │ ├── create_hw_headers.sh │ ├── create_linux_system.sh │ ├── hw │ │ ├── hdl │ │ │ ├── Beamformer_Adder.vhd │ │ │ ├── DE1_SoC_top_level.vhd │ │ │ ├── FIFO_Mic.vhd │ │ │ ├── FIFO_Streaming.vhd │ │ │ ├── LEDDriver.vhd │ │ │ ├── Output_Buffer_Driver.vhd │ │ │ ├── SPI_Controller.vhd │ │ │ ├── SPI_DMA.vhd │ │ │ ├── SPI_Slave.vhd │ │ │ ├── SPI_Streaming.vhd │ │ │ └── SPI_System.vhd │ │ ├── modelsim │ │ │ ├── SPI_system_tb.vhd │ │ │ ├── Test_full_system.mpf │ │ │ └── work │ │ │ │ └── _info │ │ └── quartus │ │ │ ├── .gitignore │ │ │ ├── Beamformer_hw.tcl │ │ │ ├── LEDDriver_hw.tcl │ │ │ ├── Output_Switcher_hw.tcl │ │ │ ├── Pyramic_Array.qpf │ │ │ ├── Pyramic_Array.qsf │ │ │ ├── Pyramic_Array.qsys │ │ │ ├── SPI_System_hw.tcl │ │ │ ├── coeff_filter │ │ │ └── pin_assignment_DE1_SoC.tcl │ └── sw │ │ └── hps │ │ ├── .gitignore │ │ ├── application │ │ ├── .gitignore │ │ ├── libpyramicio_test │ │ │ ├── Makefile │ │ │ └── main.c │ │ ├── pyramic_mic2wav │ │ │ ├── Makefile │ │ │ └── main.c │ │ ├── pyramicio │ │ │ ├── Doxyfile │ │ │ ├── Makefile │ │ │ ├── doc_main.md │ │ │ ├── html │ │ │ │ ├── annotated.html │ │ │ │ ├── bc_s.png │ │ │ │ ├── bdwn.png │ │ │ │ ├── classes.html │ │ │ │ ├── closed.png │ │ │ │ ├── doc.png │ │ │ │ ├── doxygen.css │ │ │ │ ├── doxygen.png │ │ │ │ ├── dynsections.js │ │ │ │ ├── files.html │ │ │ │ ├── folderclosed.png │ │ │ │ ├── folderopen.png │ │ │ │ ├── functions.html │ │ │ │ ├── functions_vars.html │ │ │ │ ├── globals.html │ │ │ │ ├── globals_func.html │ │ │ │ ├── index.html │ │ │ │ ├── jquery.js │ │ │ │ ├── menu.js │ │ │ │ ├── menudata.js │ │ │ │ ├── nav_f.png │ │ │ │ ├── nav_g.png │ │ │ │ ├── nav_h.png │ │ │ │ ├── open.png │ │ │ │ ├── pyramicio_8h.html │ │ │ │ ├── pyramicio_8h_source.html │ │ │ │ ├── search │ │ │ │ │ ├── all_0.html │ │ │ │ │ ├── all_0.js │ │ │ │ │ ├── all_1.html │ │ │ │ │ ├── all_1.js │ │ │ │ │ ├── all_2.html │ │ │ │ │ ├── all_2.js │ │ │ │ │ ├── all_3.html │ │ │ │ │ ├── all_3.js │ │ │ │ │ ├── all_4.html │ │ │ │ │ ├── all_4.js │ │ │ │ │ ├── all_5.html │ │ │ │ │ ├── all_5.js │ │ │ │ │ ├── all_6.html │ │ │ │ │ ├── all_6.js │ │ │ │ │ ├── classes_0.html │ │ │ │ │ ├── classes_0.js │ │ │ │ │ ├── classes_1.html │ │ │ │ │ ├── classes_1.js │ │ │ │ │ ├── classes_2.html │ │ │ │ │ ├── classes_2.js │ │ │ │ │ ├── close.png │ │ │ │ │ ├── files_0.html │ │ │ │ │ ├── files_0.js │ │ │ │ │ ├── functions_0.html │ │ │ │ │ ├── functions_0.js │ │ │ │ │ ├── mag_sel.png │ │ │ │ │ ├── nomatches.html │ │ │ │ │ ├── pages_0.html │ │ │ │ │ ├── pages_0.js │ │ │ │ │ ├── search.css │ │ │ │ │ ├── search.js │ │ │ │ │ ├── search_l.png │ │ │ │ │ ├── search_m.png │ │ │ │ │ ├── search_r.png │ │ │ │ │ ├── searchdata.js │ │ │ │ │ ├── variables_0.html │ │ │ │ │ ├── variables_0.js │ │ │ │ │ ├── variables_1.html │ │ │ │ │ ├── variables_1.js │ │ │ │ │ ├── variables_2.html │ │ │ │ │ └── variables_2.js │ │ │ │ ├── splitbar.png │ │ │ │ ├── structinputBuffer-members.html │ │ │ │ ├── structinputBuffer.html │ │ │ │ ├── structoutputBuffer-members.html │ │ │ │ ├── structoutputBuffer.html │ │ │ │ ├── structpyramic-members.html │ │ │ │ ├── structpyramic.html │ │ │ │ ├── sync_off.png │ │ │ │ ├── sync_on.png │ │ │ │ ├── tab_a.png │ │ │ │ ├── tab_b.png │ │ │ │ ├── tab_h.png │ │ │ │ ├── tab_s.png │ │ │ │ └── tabs.css │ │ │ ├── latex │ │ │ │ ├── Makefile │ │ │ │ ├── annotated.tex │ │ │ │ ├── doxygen.sty │ │ │ │ ├── files.tex │ │ │ │ ├── index.tex │ │ │ │ ├── pyramicio_8h.tex │ │ │ │ ├── refman.aux │ │ │ │ ├── refman.idx │ │ │ │ ├── refman.ilg │ │ │ │ ├── refman.ind │ │ │ │ ├── refman.log │ │ │ │ ├── refman.out │ │ │ │ ├── refman.pdf │ │ │ │ ├── refman.tex │ │ │ │ ├── refman.toc │ │ │ │ ├── structinputBuffer.tex │ │ │ │ ├── structoutputBuffer.tex │ │ │ │ └── structpyramic.tex │ │ │ ├── pyramicio.c │ │ │ └── pyramicio.h │ │ └── wav_tools │ │ │ ├── Makefile │ │ │ ├── make_wav.c │ │ │ ├── make_wav.h │ │ │ ├── read_wav.c │ │ │ └── read_wav.h │ │ └── linux │ │ ├── .gitignore │ │ └── rootfs │ │ ├── .gitignore │ │ ├── config_post_install.sh │ │ └── config_system.sh ├── README.md └── README.txt └── pcb ├── Altium_Library └── HEPIA_LSN_RB_V1.SchLib ├── MicArray Project_v3 ├── MicArray.OutJob ├── MicArrayPCBBoard_V3.PcbDoc ├── MicArrayPCB_V3.PrjPcb ├── MicArrayPCB_V3.PrjPcbStructure ├── MicArraySchem_V3.SchDoc └── Project Outputs for MicArrayPCB_V3 │ └── Design Rule Check - MicArrayPCBBoard_V3.html └── README.md /README.md: -------------------------------------------------------------------------------- 1 | Pyramic: An FPGA based compact microphone array 2 | ========================= 3 | 4 | This repository contains the design files and the documentation for the Pyramic compact microphone array. 5 | Pyramic has 48 microphones spread on 6 PCBs, each bearing 8 MEMS microphones and an ADC. This allows for 6 | flexible geometries while keeping calibration simple. The array plugs in a DE1-SoC FPGA that collects 7 | the data from the 6 ADC and can do real-time processing of the signals with output to an audio codec. 8 | Alternatively, the data can be sent to an ARM CPU that is on the same chip for further processing. 9 | 10 |
11 |
12 |
49 |
50 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
CinputBuffer | This structure represents an input buffer, which direction is the microphone array towards the memory |
CoutputBuffer | This structure represents an output buffer, which direction is the memory towards the FPGA CODEC |
Cpyramic | Structure contanining the addresses used by the library internals |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
|
|
| ||||
inputBuffer | outputBuffer | pyramic | ||||
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
pyramicio.h | A library that allows an easy access to the Pyramic array |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
This library is an abstraction layer for the Pyramic array -made at LCAV (EPFL)- input/output functions. It enables the use of the Pyramic array by designing software against an existing hardware design without having to use Altera Quartus Prime tools, or recompiling the application at each change of the design in VHDL.
69 |In order to use the library, one just has to include the <pyramicio.h> file, then initialize a Pyramic object through the pyramicInitializePyramic() function.
72 |All the usable functions are documented in the pyramicio.h file reference in this documentation.
73 |Note that programs that use the Pyramic have to be run as root, because the library is using direct references to memory areas that are reserved for the system.
74 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
This is the complete list of members for inputBuffer, including all inherited members.
68 |microphoneCount | inputBuffer | |
samples | inputBuffer | |
samplesPerMic | inputBuffer | |
totalSampleCount | inputBuffer |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
This is the complete list of members for outputBuffer, including all inherited members.
68 |baseAddress (defined in outputBuffer) | outputBuffer | |
length (defined in outputBuffer) | outputBuffer | |
samples (defined in outputBuffer) | outputBuffer |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
This structure represents an output buffer, which direction is the memory towards the FPGA CODEC. 71 | More...
72 | 73 |#include <pyramicio.h>
76 | Public Attributes | |
78 | uint32_t | baseAddress |
81 | uint32_t | length |
84 | int16_t * | samples |
This structure represents an output buffer, which direction is the memory towards the FPGA CODEC.
89 |This CODEC is configured to work at 48000 Hz, hence the sampling rate of the injected audio has to be 48000 Hz.
90 |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
This is the complete list of members for pyramic, including all inherited members.
68 |captureDuration (defined in pyramic) | pyramic | |
fd_dev_mem (defined in pyramic) | pyramic | |
fpga_Output_Controller (defined in pyramic) | pyramic | |
fpga_SPI_System (defined in pyramic) | pyramic | |
h2f_lw_axi_master (defined in pyramic) | pyramic | |
h2f_lw_axi_master_ofst (defined in pyramic) | pyramic | |
h2f_lw_axi_master_span (defined in pyramic) | pyramic | |
output_memory (defined in pyramic) | pyramic | |
reserved_memory (defined in pyramic) | pyramic |
24 | libpyramicio
25 | 1.0
26 |
27 | |
28 |
Structure contanining the addresses used by the library internals . 71 | More...
72 | 73 |#include <pyramicio.h>
Structure contanining the addresses used by the library internals .
107 |