Yes, it is necessary to write the d_c line in every write cycle. Each write cycle (WRX high low high sequence) consists of 3 control signals (DCX, RDX, WRX) and data signals (DB[17:0]). DCX bit is a control signal, which tells if the data is a command o r a data. The data signals are the command if the control signal is low (=’0’) and vice versa it is data (=’1’).
If you have a display wherein they mention the write cycle sequence to not need the d_c line to be used in each write, you can add the the code outside the for loop. Hope this makes sense.
To operate your application at 150MHz, you can make use of the PLL. In the Design Wide Resources Tab, click Clocks > Edit Clocks. Under FLL/PLL tab, enable the PLL and set the frequency to 150MHz as shown below:
Now go to the High Frequency Clocks tab and change Clk_HF0 to use Path1 (PLL output). You will need to change the divider to 2 for Clk_Peri since it has a legal maximum of 100Mhz. Set the divider for Clk_Fast to 1 to get 150MHz. Clk_Fast is used by the CM4 as you require.
Hope this helps!