picoblaze vga controller
I have not used picoblaze but a quick look as its user guide reveals that it uses three ports for I/O communication, IN_PORT, OUT_PORT and PORT_ID which are 8-bit wide. If you have previous microcontroller programming experience then it can't get any simpler.
Basically you map your peripherals on PORT_ID address range. Say if you PS/2 controller is mapped at port address 0x10 then you can use simple combinational logic to talk to your PS/2 controller by writing/reading to port 0x10. You can extend this to a larger address space for your VGA controller like 0x11-0xff or something.
After you have mapped your peripherals, you basically set the PORT_ID and then issue input or output instructions that gets your data into the picoblaze processor.
For further reference see pg.51 of UG129(Picoblaze User Guide)
One quick suggestion though, if you have the time and resources then do implement it in full hardware as you'll learn quite a lot in doing so. Soft IP is rather easy to use compared to custom implementation. So depending on your interests and other factors. Make a decision early in the design.