/功能:采集10个数据,找出最大的和最小的数据
//McuStart 单片机输入信号,要求FPGA开始工作 //McuReset 复位AD0809 //Write 开始AD0809转换 //Read 读取AD0809转换结果 //EOC AD0809是否转换完成标志 //Data 0809数据口
//我省略了0809de的ALE 和时钟输入 引脚 //只要不断有McuStart脉冲,就可以不断进行AD转换 ,不过脉冲周期长度要考虑 module AD0809(Start, Reset, Write, Read, EOC, Data);
input[7:0] Data; input McuStart, McuReset, ;
output Write, Read, EOC;
reg TempA[7:0], TempB[7:0];
always @(negedge McuReset) //复位 begin if(McuReset == 1'b0) begin Write = 0; Read = 0; // ALE = 0; TempA = 8b'00000000; TempB = 8b'00000000; end // else 这里不加else,不知是否有问题? end
always @(negedge Start) begin if((Start == 1'b0) && (McuReset == 1'b0))// begin Write = 1; // Read = 0; Write = 0; //产生一个写脉冲,0809开始转换 // 但是我想不出如何延时,以加宽脉冲 !! end end
always @(posedge EOC) begin if(EOC == 1'b1) begin Read = 1; Write = 0; Read = 0;// 产生一个读脉冲 TempA = Data; if(TempA > TempB) begin TempB = TempA; end end end
endmodule
|