The following single chip might be good approach :
Multiple copies of above components in chip (a component is a chip resource in PSOC language), ability to create
custom logic with schematic capture and or verilog, and users have created libs like DDS, CPLD, CORDIC,
74HC.....
Each component comes with a rich lib of code f() calls so user rarely writes drivers, just codes
at top level.
Compiler and IDE (PSOC Creator, MODBUS) free. Wizards to create state machines, DMA, logic from
gates to LUTs to high functional stuff......routing internal and external wizard......
Very good board to get started CY8CKIT-059, ~ $ 15.
Folks have done oscilloscopes with it, I did bursting programmable f() generator design
with it, and some tests, like 64 bit SR, 64 bit counter, various state machines.....
3 fams, PSOC 4, 5LP, 6 (dual core, but with limited user fabric).
Tons of projects to pull resources from.
There is this series which I just came across, fast, but seems no user design fabric -
32-bit PSOC™ Arm® Cortex® Microcontroller
Regards, Dana.