文档详情

EDA实验报告实验六用状态机实现ADC0809的采样电路设计.doc

发布:2016-06-25约字共5页下载文档
文本预览下载声明
实验六 用状态机实现ADC0809的采样电路设计(1) 【实验目的】 设计实现ADC0809采样的状态机电路; 掌握状态机的Verilog设计方法; 学习设计仿真工具的使用方法; 【实验内容】 设计实现ADC0809采样电路,启动信号START高电平开始AD转换,此时转换结束标志变为0,当EOC由低变为高,表示转会结束,此时可以置OE为1,ADC输出转换结果。ADC0809控制时序如下: 【实验原理】 状态图和波形仿真 【程序源代码】(加注释) module ADC0809C(CLK,RST,EOC,D,Start,ALE,OE,Lock,ADDA,Q); input CLK,RST,EOC;input[7:0]D; //来自0809转换好的8位数据 output Start,ALE,OE,Lock,ADDA; //转换启动信号、8个模拟信号通道地址锁存信号、数据输出三态控制信号、锁存测试信号和信号通道控制信号。 output[7:0]Q; reg Start,ALE,OE,Lock; reg[7:0]Q; parameter s0=0,s1=1,s2=2,s3=3,s4=4; //定义各状态子类型 reg[2:0] c_s,n_s; // always@(posedge CLK or posedge RST) //时序过程 if(RST) c_s=s0; else c_s=n_s; //有现态变量c_s将当前状态值带出过程 always@(c_s or EOC) //组合过程,规定各状态装换方式 case(c_s) s0:begin Start =0; //0809初始化 OE =0; ALE =0; Lock =0; n_s =s1; end s1:begin Start =1; //启动采样信号Start OE =0; ALE =1; Lock =0; n_s =s2; end s2:begin Start =0; ALE =0; OE=0; Lock =0; if(EOC) n_s =s3; //Eoc表明转换结束 else n_s =s2; //转换未结束,继续等待 end s3:begin Start =0; //开启OE,打开AD数据口 ALE =0; OE =1; Lock =0; n_s =s4; //下一状态无条件转向s4 end s4:begin Start =0; //开启数据锁存信号 ALE =0; OE =1; Lock =1; n_s =s0; end default: begin// ALE =0;Start =0;OE =0; Lock =0; n_s =s0; end endcase always@(Lock) //寄存器过程 if(Lock) //此过程中,在Lock的上升沿将转换好的数据锁入 Q =D; assign ADDA=0; endmodule 【元件符号与总框图】 1:元件符号 2:总框图 【实验心得和体会】 这次是状态机实验,主要应用是电路控制,这次实验的主要内容是状态图输出和波形仿真。我在这次实验出现的问题是波形中OE和LOCK有延迟,经过反复检查时时钟信号设置的问题,在这里谢谢段老师的指导。 《《电子设计自动化》实验报告 2013~2014学年 第 二 学期 2011级 电子信息工程 专业 班级: 学号: 姓名: 第 - 1 - 页 共 3 页
显示全部
相似文档