一、实验目的
(1)了解一般状态机的设计与应用
(2)学习并掌握Quartus II的使用方法
(3)学习简单时序电路的设计和硬件测试。
(3)学习使用VHDL 语言方法进行逻辑设计输入
(3)掌握利用有限状态机实现一般时序逻辑的分析方法
(5)学习用状态机对A/D转换器 ADC0809的采样控制电路
(6)学习设计A/D采样控制电路,学习较复杂的数字系统设计方法,并在实验开发系统上熟悉运行输入及仿真步骤原理
二、实验仪器设备
(1) PC机一台。
(2)Quartus Ⅱ开发软件一套
(3)EDA实验开发系统一套(EP1C12Q240C8)
三、实验原理
ADCO809是 CMOS的8的A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。转换时间约为100us,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。
主要控制信号如图所示,START是转换启动信号,高电平有效:ALE是3位通道选择地址(ADDC、ADDB、 ADDA)信号的锁存信号。当模拟量送至某一输入端(如 IN1或IN2等),由3位地址信号选择,而地址信号由 ALE锁存;EOC是转换情况状态信号,当启动转换约100us后,EOC产生一个负脉冲,以表示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的位数据结果输至数据总线,至此ADC0809的一次转换结束控制 ADC0809采样的状态图如图所示。参考程序的采样状态机结构图如图所示。
四、实验内容
利用Ouartus Il对参考程序进行文本编辑输入和仿真测试,给出仿真波形。最后进行引脚锁定并进行测试,硬件验证参考程序电路对 ADC0809的控制功能。测试步骤:建议选择电路模式5,ADC0809的转换时钟 CLK已经事先接有750kHz的频Z率,引脚锁定为 START接PIO34,OE (ENABLE)接PIO35,EOC接PIO8, ALE接PIO33,状态机时钟 CLK接clock0,ADDA 接PIO32(ADDB和 ADDC(都接GND),ADCO809的8位输出数据线接PI023~PIO16,。锁存输出Q显示于数码8/数码7(PIO47~PIO40)。
五、实验步骤
将GW48 EDA系统左下角的拨码开关4、6、7向下拨,其余向上,即使0809工作使能,使FPGA能接收来自0809转换结束的信号(对于GW48-CK系统,左下角选择插针处的“转换结束”和“A/D使能”用二短路帽短接)。下载ADC0809中的ADCINT.sof到实验板的FPGA中; clock0 的短路帽接可选12MHz6MHz、65536Hz等频率;按动一次右侧的复位键;用螺丝刀旋转GW48系统左下角的精密电位器,以便为ADC0809提供变化的待测模拟信号(注意,这时必须在程序中赋值: ADDA<=‘1’,这样就能通过实验系统左下的AIN1输入端与电位器相接,并将信号输入0809的IN1端)。这时数码管8和7将显示ADC0809采样的数字值(16进制),数据来自FPGA的输出。数码管2和1也将显示同样数据,此数据直接来自0809的数据口。实验结束后注意将拨码开关拨向默认:仅“4”向下。
代码示例:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ADCINT IS
PORT (