One of the ways to demodulate an FM signal is the Pulse Counting FM Demodulator.
A fairly good video describing the general theory
In essence the demodulator resolves the carrier frequency by measuring the time between zero-crossings.
I tried the same idea in the digital domain with a Pico2.
I down converted an RF signal to 15 kHz IF frequency and turned the gain up to 11 on an PGA IF amplifier.
I applied the following "squared up" IF signal to a GPIO input on the PIco2

If you watched the o-scope in real-time you would see the period of pulse wobble around as the carrier frequency changes.
I used a PIO to count the number of sysclk/2 cycles in each half cycle.
Then inverted and normalized such that
20 kHz : +1
15 kHz : 0
10 kHz : -1
(The FM signal I am using only has 5 kHz deviation)
Then pipe the samples out onto an i2s DAC.
Not too bad considering there is no ADC involved, but the zero crossing is very sensitive to broad band noise.
You could just as easily use a logic analyzer to demonstrate the idea, just count the number of samples between logic transitions.