实验四DMA方式A/D采样控制电路设计一、实验目的:进一步加强状态机设计电路的能力,学习用状态机对A/D转换器0809的采样控制电路的实现。同时加强对RAM读写时序的控制,掌握RAM读写操作。二、实验要求:1、用verilogHDL语言设计控制电路模块,控制ADC0809工作,要求采用状态机原理进行程序设计。2、将ADC0809转换的数据送入RAM存储,在采样完后,可用EDA6000/EDA2000软件中的调入存储器功能将采样到的数据调入存储器窗口观察。3、用EDA6000实验仪进行实验结果的验证。三、实验原理:ADC0809的采样控制原理请查找相关芯片资料了解。主要信号如下:启动信号START高电平,开始AD转换,当EOC由低变高,表示转换结束,此时可以置OE为1,ADC0809输出转换结果,具体如下图所示。采样后的数据用DMA方式写入RAM中。存储器的地址由15位计数器产生,每次采样写入存储器后地址加一,当存储器满后(A14由高转低时)停止采样。四、实验步骤:1、用verilogHDL语言利用状态机原理编写DAC0809控制程序,对RAM进行读写,通过QuartusⅡ进行编译仿真测试,给出转换后的仿真波形。2、按实验要求锁定管脚,重新综合。3、在EDA6000软件中建立实验模式。4、下载设计文件,硬件验证DAC0809的工作性能。按复位(由软件编写的复位信号)后,电路开始采样,每采样一次,地址加一,直至32K存满,电路停止采样.此时,可以用EDA6000/EDA2000上位机软件来读取/观察RAM的内容.代码:moduleAD0809(CLK,CLK1,D,EOC,RST,ALE,START,OE,ADDA,Q,LOCKT);input[7:0]D;inputCLK,RST;inputEOC;outputALE,CLK1;outputSTART,OE;outputADDA,LOCKT;output[7:0]Q;regALE,START,OE,CLK1;parameters0=0,s1=1,s2=2,s3=3,s4=4;reg[4:0]CS,ns;reg[7:0]REGL;regLOCK;always@(CSorEOC)begincase(CS)s0:ns=s1;s1:ns=s2;s2:if(EOC==1)ns=s3;elsens=s2;s3:ns=s4;s4:ns=s0;default:ns=s0;endcaseendalways@(CS)begincase(CS)s0:beginSTART=0;ALE=0;OE=0;LOCK=0;ends1:beginSTART=1;ALE=1;OE=0;LOCK=0;ends2:beginSTART=0;ALE=0;OE=0;LOCK=0;ends3:beginSTART=0;ALE=0;OE=1;LOCK=0;ends4:beginSTART=0;ALE=0;OE=1;LOCK=1;enddefault:beginSTART=0;ALE=0;OE=0;LOCK=0;endendcaseendalways@(posedgeCLKorposedgeRST)beginif(RST)CS=s0;elseCS=ns;endalways@(posedgeLOCK)if(LOCK)REGL=D;assignCLK1=CLK;assignADDA=0;assignQ=REGL;assignLOCKT=LOCK;endmodule