Ok, next, we will start our ''gpu_dual_port_ram_INTEL.v'' module.
In that module, you should have an input wire read port with address in , aux in, and pc_ena_in[2:0], data out, address out, aux out, pc_ena out[] and host port wires and bidir.
Now, the altsyncram is obsolete, so, what you should do is within quartus, block diagram editor, double click on a blank area and insert a megafunction from the LPM_Ram_dp section. Make sure launch wizard is selected on.
Next configure the memory for 1 read/write port and 1 read only port. Clock/register the addresses going in and register the data coming out. Before completing the function, sen me a snapshot of you screen example block diagram.
If it looks good, when finishing the wizard, select 'generate verilog source code/source files'. Quartus will generate an example verilog.v file where you will copy and paste the LPM_Ram_dp/altsyncram into your ''gpu_dual_port_ram_INTEL.v'' source file where you will wire through the memories ports.
In that ''gpu_dual_port_ram_INTEL.v'', you will also pipe through the read address and aux input to the address output as well as pipe through the pc_ena_in[2:0] to an output pc_ena_out[2:0].
Don't forget about also having a MAX_RAM_ADDRESS parameter in this sub module as well.