Whow, you've got yourself into a lot of work I suppose (It sounds like a many-year-project if you ask me). You're not actually going to do all that, right?
Yes, the next step would be to write (or better: port) some sort of compiler (I guess first you want to use a cross-compiler from your current PC).
I' guess that porting an existing compiler (as gcc) might be the easier task (it supports many architectures already, however I've never done something like that, maybe the GCC internals docs will help you).
After you've got your compiler up and running I'd go with trying out some basic microcontroller-like programs (e.g. letting a led on one of the data ports flash, etc.) and some testing programs just to see if everything's working as expected.
The next step could be implementing a boot loader that will ultimately load your kernel. I don't know if your architecture is going to use a BIOS/EFI or something similar, but that's another thing to consider when designing a boot loader.
After that, it's time to get to the kernel. Start with a minimal kernel config and try to get it up and running. You'll need to port the kernel to your architecture (which includes configuring all the arch-dependent header files, writing modules to access your hardware, a serial driver so that you can access the shell, etc.), again a rather extensive process.
Btw.: I hope your architecture has a memory mapping unit or you'll run into some serious trouble later (if it hasn't look into µClinux which is able to run a mmu-less kernel but I seriously doubt that you'd be able to run a full desktop-OS).
You might want to have a look at the android or OpenWRT kernel which both are running on embedded devices.
Once the kernel is ported (many years from now if you're trying to do that on your own), you'll continue with the userland. I'd start with porting busybox, the compiler and then some basic unix tools like openssh, cron, etc.
After that (assuming you've already got a working GPU attached to your system) you'd have to write a GPU driver and try to get the X server (or its replacement wayland). Keep in mind that you will need to implement 2D/3D acceleration to get the Ubuntu desktop up and running.
Finally, the task is to port as many ubuntu packages as possible to your platform.
So to conclude: You've just spent a lot of your time developing your own CPU architecture, but you're just right at the start of getting a full-blown linux distribution to run on it. I hope you're just writing a book about the process and are not going to actually do it, because you're getting yourself into a serious load of work for the next years.
However, I hope I could give you a brief look into the process (and I hope I didn't miss anything important). Good luck.