
Uses an LFSR to generate two 8-bit pseudonrandom numbers that are used to decide the transitions on two Markov Chains, one for the duration of the note and the other one for the note itself, then the logic control module uses two FSM to model the Markov Chains and indicate to the final module, a PWM generator, the target note.
You have 6 inputs you can change however you want, four are for the last 4 bits of the seed of the LFSR, so you have up to 16 different melodies, and two other inputs that change The dynamic of the melody, making it go faster (60 or 120 BPM), and the other affects the duration of the notes.
A PMOD of a buzzer is required.
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | seed_0 | pwm_out | none |
| 1 | seed_1 | none | none |
| 2 | seed_2 | none | none |
| 3 | seed_3 | none | none |
| 4 | bpm_sel | none | none |
| 5 | dur_matrix_sel | none | none |
| 6 | none | none | none |
| 7 | none | none | none |