⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ref_timer.v

📁 一个嵌入式RISC CPU 的Verilog 设计源码
💻 V
字号:
/*********************************************************
 MODULE:		Sub Level Refresh Timer

 FILE NAME:	ref_timer.v
 VERSION:	1.0
 DATE:		April 28th, 2002
 AUTHOR:		Hossein Amidi
 COMPANY:	
 CODE TYPE:	Register Transfer Level

 DESCRIPTION:	This module is the sub level RTL code of SDRAM Controller ASIC verilog
 code. It will generate the internal refresh counter.


 Hossein Amidi
 (C) April 2002

*********************************************************/

// DEFINES
`timescale 1ns / 10ps
module ref_timer(// Input
						reset,
						clk0,
						refresh_count,
						bur_len,
						ref_ack,
						// Output
						ref_req
						);

// Parameter
`include        "parameter.v"

// Input
input reset;
input clk0;
input [15:0]refresh_count;
input [burst_size - 1 : 0]bur_len;
input ref_ack;

// Output
output ref_req;

// Internal wire and reg signals
reg ref_req;

reg [15:0]refresh_timer;			// 16-bit refresh counter Max. 65536
reg rftimer_zero;


// Assignment


// Refresh Timer
always @(posedge reset or posedge clk0)
begin
	if(reset == 1'b1)
	begin
		refresh_timer <= 16'h0000;
		rftimer_zero  <= 1'b0;
		ref_req       <= 1'b0;
	end
	else
	begin
		if(rftimer_zero == 1'b1)
			refresh_timer <= refresh_count;
		else
			if(bur_len != 3'b000)
				refresh_timer <= refresh_timer - 1'b1;
			if((refresh_timer == 0) & (bur_len != 3'b000))
			begin
				rftimer_zero <= 1'b1;
				ref_req <= 1'b1;
			end
			else
				if(ref_ack == 1'b1)
				begin
					rftimer_zero <= 1'b0;
					ref_req <= 1'b0;
				end
	end
end


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -