实验六 用状态机实现ADC0809的采样控制电路

1970-01-01 08:00

电子设计自动化实验报告

实验六 用状态机实现ADC0809的采样控制电路

一、实验目的

1. 熟悉QuartusⅡ软件应用环境,了解实验流程。

2. 编写简单的Verilog代码,并在QuartusⅡ中进行调试和验证,并在EDA6000中

下载代码和验证。 3. 掌握状态机的Verilog设计方法,并用状态机实现ADC0809的采样控制电路。

二、实验原理

本实验要实现用状态机实现ADC0809的采样控制电路。ADC0809是CMOS的8位A/D转换器,片内有8路模拟,可控制8个模拟量中的一个进入转换器中。ADC0809的分辨率为8位。主要控制信号说明:START是转换开启信号,高电平有效;ALE为模拟信号输入选通端口地址锁存信号,上升沿有效;一旦START有效后,状态信号EOC即变为低电平,表示转换状态,转换时间约为100us,转换结束后,EOC变为高电平。此后外部控制可以使OE由低电平变为高电平,则控制打开三态缓冲器,0809的输出数据总线D[7:0]从原来的高阻态变为输出数据有效。

三、实验内容

1、 用Verilog HDL语言实现编写实现ADC0809采样电路的程序。 2、 编程下载并在实验箱上进行验证

四、实验步骤与结果

1、新建Verilog工程项目,编写代码并保存至与模块名对应的项目文件夹。 2、编译程序,编译无误后,在【tools】里面选择RTL视图,观察电路结构。在【tools】>【netlist viewers】里面选择State Machine Viewer,查看状态机转换图。 3、将实验箱和PC合理连接起来。打开EDA6000软件,设置好芯片类型为ACEX1K(EP1K30TC144-3),载入模式14。

4、根据EDA6000界面内管脚对应芯片的实际管脚在QUARTUSⅡ里面设定管脚号并检查无误。

5、将程序下载至FPGA试验箱内,并在EDA6000软件界面内进行验证测试。

程序源代码:

module ADC0809(clk,din,eoc,q,clock,start,oe); input clk,eoc; input [7:0] din;

output clock,start,oe; output [7:0] q;

reg start,oe; reg [7:0] q1; reg lock;

parameter s0=0,s1=1,s2=2,s3=3,s4=4; reg [4:0] cs,next_state;

always @ (posedge clk) begin

cs <= next_state; end

always @ (cs or eoc) begin

case (cs)

s0: begin start <= 0;oe <= 0;lock<=0;next_state <= s1 ;end

s1: begin start <= 1;oe <= 0;lock<=0;next_state <= s2 ;end s2: begin start <= 0;oe <= 0;lock<=0; if (eoc==1'b1) next_state <= s3; else next_state <= s2; end

s3:begin start <= 0;oe <= 1;lock<=0; next_state <= s4;end s4:begin start <= 0;oe <= 1;lock<=1;next_state <= s0;end

default: begin start <= 0;oe <= 0;lock<=0;next_state <= s0;end endcase end

always @ (posedge lock) begin

if (lock) q1 <=din; end

assign q=q1; assign clock=clk; endmodule

编译:选择processing---start compilation命令,开始编译。也可直接点击面板上编译按钮。结果如图:

RTL视图:选择Tools---netlist viewers---RTL viewer命令,查看寄存器电路结构图,结果如图:

State Machine Viewer:选择Tools---netlist viewers--- State Machine Viewer,

查看状态机转换图。

仿真结果:

设置引脚:启动EDA6000,连接试验箱。装入模式14。根据右侧管脚提示进行管

脚锁定。在QuartusⅡ界面中选择assignment—pins命令。可以用拖放的方式指定管脚,也可以在location中输入管脚号。 最终结果如图所示:

试验箱测试:在QuartusⅡ界面中选择tools--- programmer命令。在弹出的界面中Mode选为passive serial。点击add hardware,选择byteblasterMV,添加驱动成功后,勾选program/configure,点击start,下载文件到试验箱。点击EDA6000start,开始测试。,完成测试后,还可用EDA6000上的逻辑分析仪对oe、eoc、start、clock四个管脚进行逻辑分析。

五、实验总结

通过本次实验掌握了如何用Verilog HDL语言实现用状态机实现ADC0809的采样控制电路的原理。进一步掌握了课堂上所学到的知识。有限状态机及其设计技术是实用数字系统中的重要组成部分,也是实现高效率,高可靠和高速控制逻辑系统的重要途径。因此,学习和掌握状态机的Verilog设计方法,实现ADC0809采样的状态机电路是必不可少的。通过本次实验,我了解到状态机的一般设计结构,即说明部分,主控时序部分,主控组合过程,辅助过程。本次实验相当顺利,我基本上掌握了状态机设计的基本要领。


实验六 用状态机实现ADC0809的采样控制电路.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:17—18学年上学期高一期末考试语文试题(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: