FPGA读写DS1302 RTC实验Verilog逻辑源码Quartus工程文件+文档资料, FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。
module DS1302(
input sys_clk ,
input sys_rst_n ,
output DS1302_CE ,
output DS1302_CLK ,
inout DS1302_IO ,
output wire seg_c1 ,
output wire seg_c2 ,
output wire seg_c3 ,
output wire seg_c4 ,
output wire seg_a ,
output wire seg_b ,
output wire seg_c ,
output wire seg_e ,
output wire seg_d ,
output wire seg_f ,
output wire seg_g ,
output wire seg_h
);
/************************************/
reg [3:0] i ;//ִ�в���
reg [4:0] rc1_data ;//������1������
reg [4:0] rc2_data ;//������2������
reg [4:0] rc3_data ;//������3������
reg [4:0] rc4_data ;//������4������
reg [7:0] isStart ;//��ʼ��־
reg [7:0] rData ;//�����ݴ���
reg [7:0] sec_data ;//������
reg [7:0] min_data ;//������
/************************************/
wire Done_Sig ; //�����ź�
wire [7:0] Time_Read_Data ; //�����ʱ������
/************************************/
always @ ( posedge sys_clk or negedge sys_rst_n ) begin
if ( !sys_rst_n ) begin
i <= 4'd0; //ִ�в�������
isStart <= 8'd0; //��ʼ��־����
rData <= 8'd0; //�����ݴ�������
end
else
case( i )
0:
if ( Done_Sig ) begin
isStart <= 8'd0;
i <= i + 1'b1;
end
else begin
isStart <= 8'b1000_0000;
rData <= 8'h00; //���ݼĴ���д��00h
end
1:
if ( Done_Sig ) begin
isStart <= 8'd0;
i <= i + 1'b1;
end