FLASH(M25P16)-READ指令时序代码及仿真波形(内含M25P16仿真模型文件)

READ

本文代码实现读取仿真模型文件初始化文本中第一个地址的数据,可以看到仿真模型中初始化文件是initM25P16.txt,

将其一个地址数据改为12

READ时序图

READ指令代码

module flash_read (
	input		wire		clk,
	input		wire		rst_n,
	
	output	reg		flash_cs_n,
	output	reg		flash_scl,
	output	reg		flash_d,
	
	input		wire		flash_q,
	
	output	reg		q
);

	localparam		READ		=	8'h03;
	localparam		T_half	=	5;
	localparam 		ADDR		=  24'h000000;
	
	always @ (posedge clk) q <= flash_q;
	
	reg	[8:0]		cnt;
	
	always @ (posedge clk) begin
		if (rst_n == 0)
			cnt <= 0;
		else if (cnt == 406)
					cnt <= cnt;
			  else
					cnt <= cnt + 1'b1;
	end 
	
	always @ (*) begin
		if (rst_n == 0) begin flash_cs_n = 1; flash_d = 0; flash_scl = 0; end
		else	case (cnt)
						0					    :	 begin flash_cs_n = 1; flash_d = 0; flash_scl = 0; end
						1					    :  begin flash_cs_n = 0; flash_d = READ[7];end
						1 + T_half * 1	    :	 begin flash_scl = 1;end
						1 + T_half * 2     :  begin flash_scl = 0; flash_d = READ[6];end
						1 + T_half * 3	    :	 begin flash_scl = 1;end
						1 + T_half * 4     :  begin flash_scl = 0; flash_d &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值