For me uart_cfg_div does not get set:

Moreover above vardump diverges from what $display outputs:
rst_i = 0, write_en_w = 0, addr_i = 0, data_i = 15
rst_i = 0, write_en_w = 1, addr_i = 0, data_i = 0
In last output write_en_w becomes 1 only after data_i is already zero.
How can it be possible?