// Author: Mehdi SEBBANE
|
// Author: Mehdi SEBBANE
|
// May 2002
|
// May 2002
|
// Verilog model
|
// Verilog model
|
// project: M25P20 25 MHz,
|
// project: M25P20 25 MHz,
|
// release: 1.4.1
|
// release: 1.4.1
|
|
|
|
|
|
|
// These Verilog HDL models are provided "as is" without warranty
|
// These Verilog HDL models are provided "as is" without warranty
|
// of any kind, included but not limited to, implied warranty
|
// of any kind, included but not limited to, implied warranty
|
// of merchantability and fitness for a particular purpose.
|
// of merchantability and fitness for a particular purpose.
|
|
|
|
|
|
|
|
|
|
|
`timescale 1ns/1ns
|
|
`ifdef SFLASH_SPDUP
|
`ifdef SFLASH_SPDUP
|
`include "parameter_fast.v"
|
`include "parameter_fast.v"
|
`else
|
`else
|
`include "parameter.v"
|
`include "parameter.v"
|
`endif
|
`endif
|
|
|
module m25p20(c,data_in,s,w,hold,data_out);
|
module m25p20(c,data_in,s,w,hold,data_out);
|
input c;
|
input c;
|
input data_in;
|
input data_in;
|
input s;
|
input s;
|
input w;
|
input w;
|
input hold;
|
input hold;
|
|
|
output data_out;
|
output data_out;
|
///reg data_out;
|
///reg data_out;
|
|
|
wire [(`NB_BIT_ADD_MEM-1):0] adresse;
|
wire [(`NB_BIT_ADD_MEM-1):0] adresse;
|
wire [(`NB_BIT_DATA-1):0] dtr;
|
wire [(`NB_BIT_DATA-1):0] dtr;
|
wire [(`NB_BIT_DATA-1):0] data_to_write;
|
wire [(`NB_BIT_DATA-1):0] data_to_write;
|
wire [(`LSB_TO_CODE_PAGE-1):0] page_index;
|
wire [(`LSB_TO_CODE_PAGE-1):0] page_index;
|
|
|
wire wr_op;
|
wire wr_op;
|
wire rd_op;
|
wire rd_op;
|
wire s_en;
|
wire s_en;
|
wire b_en;
|
wire b_en;
|
wire add_pp_en;
|
wire add_pp_en;
|
wire pp_en;
|
wire pp_en;
|
wire r_en;
|
wire r_en;
|
wire d_req;
|
wire d_req;
|
wire clck;
|
wire clck;
|
|
|
assign clck = c ;
|
assign clck = c ;
|
|
|
|
|
memory_access mem_access(adresse, b_en, s_en, add_pp_en, pp_en, r_en, d_req, data_to_write, page_index, dtr);
|
memory_access mem_access(adresse, b_en, s_en, add_pp_en, pp_en, r_en, d_req, data_to_write, page_index, dtr);
|
|
|
acdc_check acdc_watch(clck, data_in, s, hold, wr_op, rd_op);
|
acdc_check acdc_watch(clck, data_in, s, hold, wr_op, rd_op);
|
|
|
internal_logic spi_decoder(clck, data_in, w, s, hold, dtr, data_out, data_to_write, page_index, adresse, wr_op, rd_op, b_en, s_en, add_pp_en, pp_en, r_en, d_req);
|
internal_logic spi_decoder(clck, data_in, w, s, hold, dtr, data_out, data_to_write, page_index, adresse, wr_op, rd_op, b_en, s_en, add_pp_en, pp_en, r_en, d_req);
|
|
|
endmodule
|
endmodule
|
|
|