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