用状态机实现对ADC0809采样控制 EDA技术与Verilog HDL实验报告.docx
文本预览下载声明
用状态机实现对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采样控制,并编译、仿真验证其功能。
显示全部