logo资料库

用状态机实现ADC0809的采样控制电路.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
实验六 用状态机实现ADC0809的采样控制电路
1、用Verilog HDL语言实现编写实现ADC0809采样电路的程序。
2、编程下载并在实验箱上进行验证
电子设计自动化实验报告 实验六 用状态机实现 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 采样的状态 机电路是必不可少的。通过本次实验,我了解到状态机的一般设计结构,即说明部 分,主控时序部分,主控组合过程,辅助过程。本次实验相当顺利,我基本上掌握 了状态机设计的基本要领。
分享到:
收藏