HierarchyFilesModulesSignalsTasksFunctionsHelp
Prev1234
			fork
				rd_dat = # ( access_time_from_cas_85_100 * `CYCLETIME) rd_dat_tmp ;
				rd_par = # ( access_time_from_cas_85_100 * `CYCLETIME) rd_par_tmp ;
			join
		`SPEED125:
			fork
				rd_dat = # ( access_time_from_cas_125 * `CYCLETIME) rd_dat_tmp ;
				rd_par = # ( access_time_from_cas_125 * `CYCLETIME) rd_par_tmp ;
			join
		`SPEED150:
			fork
				rd_dat = # ( access_time_from_cas_150 * `CYCLETIME) rd_dat_tmp ;
				rd_par = # ( access_time_from_cas_150 * `CYCLETIME) rd_par_tmp ;
			join
		`SPEED175:
			fork
				rd_dat = # ( access_time_from_cas_175 * `CYCLETIME) rd_dat_tmp ;
				rd_par = # ( access_time_from_cas_175 * `CYCLETIME) rd_par_tmp ;
			join
		`SPEED200:
			fork
				rd_dat = # ( access_time_from_cas_200 * `CYCLETIME) rd_dat_tmp ;
				rd_par = # ( access_time_from_cas_200 * `CYCLETIME) rd_par_tmp ;
			join
		endcase

/* If we use DRAM spec value directly, we don't need to have different speed cases, just use the following for all */
/*******************************************************************************************************************
		fork
			rd_dat = # ( access_time_from_cas) rd_dat_tmp ;
                        rd_par = # ( access_time_from_cas) rd_par_tmp ;
                join
********************************************************************************************************************/


//             $display("Cycle: %g read_cyc: Index: %h rd_dat: %h rd_par: %h", $stime, Index, rd_dat, rd_par);
		ParUpdateFlag_FPM = `NEGATED;
		if (rd_par[1] == 1'b0) begin
			//$display("par1_valid = 0");
			rd_par[1] = 1'b1; 
			rd_par[0] = ^rd_dat[31:0];
			ParUpdateFlag_FPM = `ASSERTED;
			end
		if (rd_par[9] == 1'b0) begin
			//$display("par0_valid = 0");
			rd_par[9] = 1'b1;
			rd_par[8] = ^rd_dat[63:32];
			ParUpdateFlag_FPM = `ASSERTED;
			end
		if (ParUpdateFlag_FPM == `ASSERTED) begin
			//$display("parity ram being updated");
			$mem_write(Msystem.TheRam.parHandle, Index, 8'b00000011, rd_par);
			//$display("par_write, rd_dat: %h  rd_par: %h", rd_dat, rd_par);
			end


		// Until we model the parity RAMs, just generate
		//     even parity over the data we've just read.
		// {rd_par[8], rd_par[0]} = {^rd_dat[63:32], ^rd_dat[31:0]} ;

                end /* else */
                wait  ( CasFlag == `NEGATED )  ;
            end /* of  wait ( CasFlag == `ASSERTED.... */
end // of always.

/*
always @(negedge FPM_cas_l[3] or negedge FPM_cas_l[2] or negedge FPM_cas_l[1] or negedge FPM_cas_l[0]) begin
	if ((FPM_ras_l != 8'hff) && FPM_mwe_l) begin
		FPM_ram_output = 1'b1;
	end
end

always @(posedge FPM_cas_l[3] or posedge FPM_cas_l[2] or posedge FPM_cas_l[1] or posedge FPM_cas_l[0]) begin
	if (FPM_ram_output) begin
		FPM_ram_output = # RAM_DELAY_FPM 1'b0 ;
	end
end
*/
// Changed as follows YS.
always @(negedge FPM_moe_l) begin
        if (FPM_ras_l != 8'hff) begin
                FPM_ram_output = 1'b1;
        end
end

always @(posedge FPM_moe_l) begin
        if (FPM_ram_output) begin
                FPM_ram_output = # RAM_DELAY_FPM 1'b0 ;
        end
end


task mem_dump;
	input [27:3] addr;
	input [31:0] data;
	input	odd_word;
	begin
		if (~mem_trace) begin
			if (mem_mcd != 0) begin
				$fclose(mem_mcd);
				mem_mcd = 0;
			end
		end
		else begin
			if (mem_mcd == 0)
				mem_mcd = $fopen({Mclocks.working_dir,"/mem_trace.v"});
			if (mem_mcd != 0) begin
				if (odd_word) 
					$fdisplay(mem_mcd, "0x%h	0x%h	%g",{4'b0, addr[27:03],3'b100},data,Mclocks.cycle_count);
				else
					$fdisplay(mem_mcd, "0x%h	0x%h	%g",{4'b0, addr[27:03],3'b000},data,Mclocks.cycle_count);
			end 
			else $display( "dram: unable to open 'mem_trace.v'") ;
         	end
	end
endtask
endmodule
1234
HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:01:43 1999
From: ../../../sparc_v8/system/rtl/dram.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help