Using Xilinx, Vivado flash the board using the following files found in the vhdl folder:
- counter_utils_pkg.vhd
- counter_impulse_generator.vhd
- low_to_high_detector.vhd
- rom_pkg.vhd
- midi.vhd
- uart.vhd
- midi_decoder.vhd
- active_notes_lut.vhd
- phase_accumulator.vhd
- pwm_encoder.vhd
- synth_engine.vhd
- synth_top.vhd
- note_phase_table.txt
- waveform_rom.txt
- Nexys-4-DDR-Master.xdc
The syntheziser can be operated through the serial usb port. Baud rate must be 31250 (like native midi connection), with only one stop bit and no parity bit.
Run the serial_test/serial_test.m script. The serial_port variable at the top
of the script containts the USB serial port name and may have to be modified under your system (e.g. 'COM1' for Windows).
Under UNIX-like systems, make sure that your user is in the dialout group and that gcc is installed.
Compile the set_baud.c in the serial_test folder before running the matlab script:
$ gcc set_baud.c -o set_baudWARNING: a weird interaction between set_baud and MATLAB makes impossible to set the accurate baud rate
when running the serial test, so the windows program will be called out and wine is necessary under linux.
The binary is provided in the same folder and no compilation is needed.