To simulate the SoC on your local machine (no HPS hardware needed), run:
./scripts/pyrun -m soc.simulate
The simulator is slow while running but very quick to start, so useful for testing many kinds of code changes.
To build the bitstream and software, then program the device:
./scripts/soc-load --build
Finally, connect a UART and communicate with the running program:
./scripts/term /dev/ttyUSB0
(replace /dev/ttyUSB0
with the appropriate device name)