I happened to do something like this in my CPU design class too. In my case I knew that writing a simulator of our design in C would be trivial compared to actually making the CPU itself + it could be used to test code much more easily (we had to write a GCD routine to "prove" it works).
You're right that it helps a LOT when it comes to implementing the actual hardware.
(I also put it through Vivado HLS, but I wasn't able to sneak that past the professor, rats! :)
I wish I had known about verilator back then, I could have compiled the verilog into c++ and ran my simulator test suite against it!