There are many ways. I would use:
`timescale 1ns/1ps
...
assign #1.2 wr_out = wr; // (wr_out is a wire)
or
always @(wr)
wr_out <= #1.2 wr; // (wr_out is a reg)
The 1.2 is to have 200ps slack.
The first one is an inertial delay, which is more in line with how most real logic behaves. (If the signal change is faster then 1.2ns it is not seen. Like a signal that gets filtered out by a capacitor)
The two second one gives a 1.2ns transport delay no matter what the waveform of wr is. (Like a chain of gates delay where the pulse travels through)
I come from a world where we do NOT change the resulting gates but if you want to add delay to a gate it is very similar:
buf #(1.2,1.2) delaybuf (out,in);
You can add such a buffer with delay, alternative you have to find the last gate in the design which outputs the signal and add a delay there.