I would first figure out which ISA you are going to use. I recently made a softcore and in my opinion the ISA design was the most difficult part. This is because the way you encode your instructions effects how efficiently your control can decode the instructions, and this has critical path implications. Additionally I found it difficult to anticipate which instructions would be the most critical for writing simple programs. If you decide to design your own ISA, I suggest you look at different examples for inspiration (I looked at the AVR, MIPS, and 8085 ISAs).
I would 100% recommend that you first design and debug your HDL before putting it on an FPGA. I used Verilog for my design and used Icarus Verilog for simulation, and Scansion for viewing waveforms. You could also do simulation online in EDA Playground. If you don't do simulation, your design will probably not work and you won't have a good way of debugging it.
After you get your softcore working, you will need to write programs for it. It will quickly become a pain to write software in hex, so you will probably want to write an assembler to translate your source to machine code. You could also use an ISA that already exists, and then you'll get assemblers and compilers for free.
One last suggestion, if you are working on a custom softcore microcontroller, I suggest you also think carefully about how you're going to handle interrupts.
This is the softcore I've been working on:
https://github.com/ept221/tinySoC, maybe you can get some ideas about what you want to do or avoid from it.