aboutsummaryrefslogtreecommitdiffstats
path: root/dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v
diff options
context:
space:
mode:
Diffstat (limited to 'dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v')
-rw-r--r--dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v240
1 files changed, 0 insertions, 240 deletions
diff --git a/dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v b/dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v
deleted file mode 100644
index d7930e2..0000000
--- a/dot_product/student_files_2015/student_files_2015/prj2/quartus_proj/DE0_CAMERA/Sdram_Control_4Port/control_interface.v
+++ /dev/null
@@ -1,240 +0,0 @@
-// --------------------------------------------------------------------
-// Copyright (c) 2008 by Terasic Technologies Inc.
-// --------------------------------------------------------------------
-//
-// Permission:
-//
-// Terasic grants permission to use and modify this code for use
-// in synthesis for all Terasic Development Boards and Altera Development
-// Kits made by Terasic. Other use of this code, including the selling
-// ,duplication, or modification of any portion is strictly prohibited.
-//
-// Disclaimer:
-//
-// This VHDL/Verilog or C/C++ source code is intended as a design reference
-// which illustrates how these types of functions can be implemented.
-// It is the user's responsibility to verify their design for
-// consistency and functionality through the use of formal
-// verification methods. Terasic provides no warranty regarding the use
-// or functionality of this code.
-//
-// --------------------------------------------------------------------
-//
-// Terasic Technologies Inc
-// 356 Fu-Shin E. Rd Sec. 1. JhuBei City,
-// HsinChu County, Taiwan
-// 302
-//
-// web: http://www.terasic.com/
-// email: support@terasic.com
-//
-// --------------------------------------------------------------------
-//
-// Major Functions: control_interface
-//
-// --------------------------------------------------------------------
-//
-// Revision History :
-// --------------------------------------------------------------------
-// Ver :| Author :| Mod. Date :| Changes Made:
-// V1.0 :| Johnny Fan :| 08/04/22 :| Initial Revision
-// --------------------------------------------------------------------
-
-module control_interface(
- CLK,
- RESET_N,
- CMD,
- ADDR,
- REF_ACK,
- INIT_ACK,
- CM_ACK,
- NOP,
- READA,
- WRITEA,
- REFRESH,
- PRECHARGE,
- LOAD_MODE,
- SADDR,
- REF_REQ,
- INIT_REQ,
- CMD_ACK
- );
-
-`include "Sdram_Params.h"
-
-input CLK; // System Clock
-input RESET_N; // System Reset
-input [2:0] CMD; // Command input
-input [`ASIZE-1:0] ADDR; // Address
-input REF_ACK; // Refresh request acknowledge
-input INIT_ACK; // Initial request acknowledge
-input CM_ACK; // Command acknowledge
-output NOP; // Decoded NOP command
-output READA; // Decoded READA command
-output WRITEA; // Decoded WRITEA command
-output REFRESH; // Decoded REFRESH command
-output PRECHARGE; // Decoded PRECHARGE command
-output LOAD_MODE; // Decoded LOAD_MODE command
-output [`ASIZE-1:0] SADDR; // Registered version of ADDR
-output REF_REQ; // Hidden refresh request
-output INIT_REQ; // Hidden initial request
-output CMD_ACK; // Command acknowledge
-
-
-
-reg NOP;
-reg READA;
-reg WRITEA;
-reg REFRESH;
-reg PRECHARGE;
-reg LOAD_MODE;
-reg [`ASIZE-1:0] SADDR;
-reg REF_REQ;
-reg INIT_REQ;
-reg CMD_ACK;
-
-// Internal signals
-reg [15:0] timer;
-reg [15:0] init_timer;
-
-
-
-// Command decode and ADDR register
-always @(posedge CLK or negedge RESET_N)
-begin
- if (RESET_N == 0)
- begin
- NOP <= 0;
- READA <= 0;
- WRITEA <= 0;
- SADDR <= 0;
- end
-
- else
- begin
-
- SADDR <= ADDR; // register the address to keep proper
- // alignment with the command
-
- if (CMD == 3'b000) // NOP command
- NOP <= 1;
- else
- NOP <= 0;
-
- if (CMD == 3'b001) // READA command
- READA <= 1;
- else
- READA <= 0;
-
- if (CMD == 3'b010) // WRITEA command
- WRITEA <= 1;
- else
- WRITEA <= 0;
-
- end
-end
-
-
-// Generate CMD_ACK
-always @(posedge CLK or negedge RESET_N)
-begin
- if (RESET_N == 0)
- CMD_ACK <= 0;
- else
- if ((CM_ACK == 1) & (CMD_ACK == 0))
- CMD_ACK <= 1;
- else
- CMD_ACK <= 0;
-end
-
-
-// refresh timer
-always @(posedge CLK or negedge RESET_N) begin
- if (RESET_N == 0)
- begin
- timer <= 0;
- REF_REQ <= 0;
- end
- else
- begin
- if (REF_ACK == 1)
- begin
- timer <= REF_PER;
- REF_REQ <=0;
- end
- else if (INIT_REQ == 1)
- begin
- timer <= REF_PER+200;
- REF_REQ <=0;
- end
- else
- timer <= timer - 1'b1;
-
- if (timer==0)
- REF_REQ <= 1;
-
- end
-end
-
-// initial timer
-always @(posedge CLK or negedge RESET_N) begin
- if (RESET_N == 0)
- begin
- init_timer <= 0;
- REFRESH <= 0;
- PRECHARGE <= 0;
- LOAD_MODE <= 0;
- INIT_REQ <= 0;
- end
- else
- begin
- if (init_timer < (INIT_PER+201))
- init_timer <= init_timer+1;
-
- if (init_timer < INIT_PER)
- begin
- REFRESH <=0;
- PRECHARGE <=0;
- LOAD_MODE <=0;
- INIT_REQ <=1;
- end
- else if(init_timer == (INIT_PER+20))
- begin
- REFRESH <=0;
- PRECHARGE <=1;
- LOAD_MODE <=0;
- INIT_REQ <=0;
- end
- else if( (init_timer == (INIT_PER+40)) ||
- (init_timer == (INIT_PER+60)) ||
- (init_timer == (INIT_PER+80)) ||
- (init_timer == (INIT_PER+100)) ||
- (init_timer == (INIT_PER+120)) ||
- (init_timer == (INIT_PER+140)) ||
- (init_timer == (INIT_PER+160)) ||
- (init_timer == (INIT_PER+180)) )
- begin
- REFRESH <=1;
- PRECHARGE <=0;
- LOAD_MODE <=0;
- INIT_REQ <=0;
- end
- else if(init_timer == (INIT_PER+200))
- begin
- REFRESH <=0;
- PRECHARGE <=0;
- LOAD_MODE <=1;
- INIT_REQ <=0;
- end
- else
- begin
- REFRESH <=0;
- PRECHARGE <=0;
- LOAD_MODE <=0;
- INIT_REQ <=0;
- end
- end
-end
-
-endmodule
-