I have not worked with Vivado to tell if its designer is useful without the processor core. I personally would stay away from graphical drag and drop designers as far as I can.
In terms of creating blocks with VHDL or Verilog (and maybe System Verilog, IDK), nothing is unique about Vivado. Just add a blank file to the system and start typing. Because I want to build very simple things, I don't use any of the Xilinx IP. If I ever get to the point of using DDR memory and don't plan to use Digilent's component, darn right I will use the MIG IP. Nobody in their right mind wants to code that interface. If that drags in some other requirements, I would get over it. Just go with the flow...
Here's some really good news: There is NO schematic editor in Vivado
https://forums.xilinx.com/t5/Design-Entry/Schematic-Design-Entry-Tool-in-Vivado/td-p/278260As to the UART, I think I grabbed it from OpenCores.org. There are 3 files: Receiver, Transmitter and BaudRateGenerator. There's no copyright so I don't know who wrote it. If it seems useful, I can zip up the files. It certainly works ok for my LC3 project but there are many alternatives out in the wild.
The parameters for the divider in the baud rate generator are given at the top level, in my case. Ordinarily, the parameters are given in the generator itself but I didn't want them buried that deep in the tree. Just in case I had to change baud rates.
ETA: OpenCores has some dodgy code and I have read many threads where people don't like OpenCores. Well, I guess you get what you don't pay for! Like all open source, some is good, some is bad. It can't hurt to look and at least see how somebody else approached the problem.