文档详情

用状态机实现对ADC0809采样控制 EDA技术与Verilog HDL实验报告.docx

发布:2021-04-02约1.55千字共7页下载文档
文本预览下载声明
用状态机实现对ADC0809采样控制 一.实验目的 熟悉在QuartusII下用状态机实现对ADC0809采样控制。 二.实验内容 在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。 三.实验原理 四、实验程序清单 module ADC0809(D,CLK,EOC,RST,ALE,START,OE,ADDA,Q,LOCK_T); input [7:0]D; input CLK,RST; input EOC; output ALE; output START,OE; output ADDA,LOCK_T; output [7:0]Q; reg ALE,START,OE; parameter s0=0, s1=1, s2=2, s3=3, s4=4; reg [4:0] cs,next_state; reg [7:0] REGL; reg LOCK; always @(cs or EOC) begin case(cs) s0:next_state=s1; s1:next_state=s2; s2:if (EOC==1b1) next_state=s3; else next_state=s2; s3:next_state=s4; s4:next_state=s0; default:next_state=s0; endcase end always @(cs ) begin case(cs) s0:begin ALE=0;START=0;OE=0;LOCK=0;end s1:begin ALE=1;START=1;OE=0;LOCK=0;end s2:begin ALE=0;START=0;OE=0;LOCK=0;end s3:begin ALE=0;START=0;OE=1;LOCK=0;end s4:begin ALE=0;START=0;OE=1;LOCK=1;end default:begin ALE=0;START=0;OE=0;LOCK=0;end endcase end always @(posedge CLK or posedge RST) begin if (RST) cs= s0; else cs=next_state; end always @(posedge LOCK) if (LOCK) REGL=D; assign ADDA=0; assign Q=REGL; assign LOCK_T=LOCK; endmodule 五.实验步骤 1.新建一个名称为ADC0809的工程,并在该文件夹中新建一个ADC0809.v的文件。 2.编译工程,编译成功后进行下一步,若不成功则查改错误。 3.在工程文件夹中新建一个ADC0809.vwf的波形文件,导入工程端口,设置输入波形,仿真得出输出端口波形。 验证输出端口波形是否实现用状态机实现对ADC0809采样控制 仿真波形如下图所示: 状态转换图: 六、实验小结 通过此次实验熟悉在QuartusII下用状态机实现对ADC0809采样控制,并编译、仿真验证其功能。
显示全部
相似文档