当前位置:首页 >> 信息与通信 >>

实验六VHDL有限状态机设计(ADC0809)


本科学生综合性实验报告

学号 学院

114090315 物电学院

姓名 专业、班级

李开斌 11 电子

实验课程名称 教师及职称

电子设计自动化(EDA 实验) 罗永道 2014 年 5 副教授 学年 下 月 学期 30 日

开课学期 2013 至 填报时间 2014

云南师范大学教务处编印

实验序号 实验时间 一.实验预习 1.实验目的:

6

实验名称 实验室

VHDL 有限状态机设计 同析楼 114

2014 年 5 月 30 日

学习用状态机对 A/D 转换器 ADC0809 的采样控制电路的实现。

2.实验原理、实验流程或装置示意图: ADC0809 是 CMOS 的 8 位 A/D 转换器,片内有 8 路模拟开关,可控制 8 个模拟量 中的一个进入转换器中。ADC0809 的分辨率为 8 位,转换时间约 100us,含锁存控 制的 8 路多路开关,输出有三态缓冲器控制,单 5V 电源供电。 主要控制信号说明:如图 1 所示,START 是转换启动信号,高电平有效;ALE 是 3 位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。当模拟量送至某一输 入端(如 IN1 或 IN2 等) ,由 3 位地址信号选择,而地址信号由 ALE 锁存;EOC 是转 换情况状态信号(类似于 AD574 的 STATUS) ,当启动转换约 100us 后,EOC 产生一 个负脉冲,以示转换结束;在 EOC 的上升沿后,若使输出使能信号 OE 为高电平, 则控制打开三态缓冲器,把转换好的 8 位数据结果输至数据总线。至此 ADC0809 的 一次转换结束了。

图1

3.实验设备及材料 电脑一台,QuartusII 实验平台,EDA 实验箱

1

4.实验方法步骤及注意事项 用 VHDL 设计的状态机的一般结构有以下几部分组成: 1. 说明部分 说明部分中有新数据类型 TYPE 的定义及其状态类型(状态名)和在此新数据 类型下定义的状态变量。 状态类型一般用枚举类型, 其中每一个状态名可任意选取。 但为了便于辨认和含义明确,状态名最好有明显的解释性意义。状态变量应定义为 信号,便于信息传递。说明部分一般放在 ARCHITECTURE 和 BEGIN 之间。 2. 主控时序进程: 状态机是随外部时钟信号以同步时序方式工作的, 因此状态机中必须包含一个 对工作时钟信号敏感的进程作为状态机的“驱动泵”。当时钟发生有效跳变时,状 态机的状态才发生变化。状态机的下一状态(包括再次进入本状态)仅仅取决于时 钟信号的到来。一般地,主控时序进程不负责进入的下一状态的具体状态取值。当 时钟的有效跳变到来时,时序进程只是机械地将代表下一状态的信号 next_state 中 的内容送入代表本状态的信 current_state 中, 而信号 next_state 中的内容完全由其它 的进程根据实际情况来决定。当然此进程中也可以放置一些同步或异步清零、置位 方面的控制信号。总体来说,主控时序进程的设计比较固定、单一和简单。 3. 主控组合进程: 主控组合进程的任务是根据外部输入的控制信号 (包括来自状态机外部的信号 和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状 态值确定下一状态(next_state)的取向,即 next_state 的取值内容,以及确定对外 输出或对内部其它组合或时序进程输出控制信号的内容。 4. 普通组合进程 用于配合状态机工作的其它组合进程,如为了完成某种算法的进程。 5. 普通时序进程 用于配合状态机工作的其它时序进程,如为了稳定输出设置的数据锁存器等。 一个状态机的最简结构应至少由两个进程构成(也有单进程状态机,但并不常用) 即一个主控时序进程和一个主控组合进程,一个进程作“驱动泵”,描述时序逻辑, 包括状态寄存器的工作和寄存器状态的输出;另一个进程描述组合逻辑,包括进程 间状态值的传递逻辑以及状态转换值的输出。当然必要时还可以引入第 3 个和第 4 个进程,以完成其它的逻辑功能。图 2 为一般状态机结构图。

图 2 一般状态机结构框图工作示意图

2

图 3 和图 4 为控制 ADC0809 采样状态机结构图和状态转换图

图 3 采样状态机结构框图 设计提示: 设目标器件是 EP1C6Q240C8,建议选择实验电路结构图 No.5(即结构图 No.5A,附图 1-14,由该图可见,ADC0809 的转换时钟 CLK 已经事先接有 750KHz 的频率),将实验系统左下角选择插针处的“转换结束”和“A/D 使能”用跳线帽 短接。 下载目标文件后, 可用螺丝刀旋转实验系统左下角的电位器, 以便为 ADC0809 提供变化的待测模拟信号,这时数码管 8 和 7 将显示 ADC0809 采样输出并被锁存 的数字值(16 进制)。

图 4 控制 ADC0809 采样状态图

3

图 5 控制 ADC0809 采样时序图

二.实验内容
4

1.实验现象与结果 (1)ADC0809 VHDL 语言程序如下: LIBRARY ieee; USE ieee.std_logic_1164.all;

ENTITY adc IS PORT ( CLK : IN STD_LOGIC; RESET : IN STD_LOGIC := '0'; EOC : IN STD_LOGIC := '0'; DATA : IN STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; ALE : OUT STD_LOGIC; START : OUT STD_LOGIC; OE : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END adc;

ARCHITECTURE BEHAVIOR OF adc IS TYPE type_fstate IS (S0,S1,S2,S3,S4); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; SIGNAL reg_ALE : STD_LOGIC := '0'; SIGNAL reg_START : STD_LOGIC := '0'; SIGNAL reg_OE : STD_LOGIC := '0'; SIGNAL reg_Q : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000"; BEGIN PROCESS (CLK,reg_fstate,reg_START,reg_OE,reg_Q) BEGIN IF (CLK='1' AND CLK'event) THEN
5

fstate <= reg_fstate; START <= reg_START; OE <= reg_OE; Q <= reg_Q; END IF; END PROCESS;

PROCESS (fstate,RESET,EOC,DATA,reg_ALE) BEGIN IF (RESET='1') THEN reg_fstate <= S0; reg_ALE <= '0'; reg_START <= '0'; reg_OE <= '0'; reg_Q <= "00000000"; ALE <= '0'; ELSE reg_ALE <= '0'; reg_START <= '0'; reg_OE <= '0'; reg_Q <= "00000000"; ALE <= '0'; CASE fstate IS WHEN S0 => reg_fstate <= S1; WHEN S1 => reg_fstate <= S2;

6

reg_ALE <= '1';

reg_START <= '1'; WHEN S2 => IF ((EOC = '1')) THEN reg_fstate <= S3; ELSE reg_fstate <= S2; END IF; WHEN S3 => reg_fstate <= S4;

reg_OE <= '1'; WHEN S4 => reg_fstate <= S0;

reg_Q <= DATA(7 DOWNTO 0); WHEN OTHERS => reg_ALE <= 'X'; reg_START <= 'X'; reg_OE <= 'X'; reg_Q <= "XXXXXXXX"; report "Reach undefined state"; END CASE; ALE <= reg_ALE; END IF; END PROCESS; END BEHAVIOR;

7

2.

仿真分析

图 8-5 仿真波形图

8

2.对实验现象、实验结果的分析及其结论 通过联系教材有关章节,学习用用状态机对 A/D 转换器 ADC0809 的采样控 制电路的实现。实验中,对 VHDL 软件进行探索、学习,逐步熟悉软件的使用。并 学习完成了用状态机对 ADC0809 的采样控制电路的实现。通过这次实验,初步学会 了用电路的原理与电路设计,对实验软件 VHDL 也有一定的认识,更进一步掌握了 课本的相关知识。

教师评语及评分:

签名:







9


相关文章:
实验六 用状态机实现ADC0809的采样电路设计(1)
实验六状态机实现ADC0809的采样电路设计(1) - 《EDA 与数字系统设计》实验报告 2012~2013 学年 班级:2009122 第一 学期 2009 级 通信工程 专...
EDA实验报告:实验六 用状态机实现ADC0809的采样电路设...
《 《电子设计自动化》实验报告 2013~2014 学年班级: 第二 学期 2011 级 电子信息工程姓名: 专业 学号: 实验六【实验目的】 用状态机实现 ADC0809 的采样...
实验6.ADC0809并行AD转换实验
模数转换ADC0809实验 7页 1下载券 ADC0809做AD转换的C程序 4页 免费实​验​6​.​A​D​C​0​8​0​9​并​行​A​D​转​...
实验六 ADC0809
实验6(ADC0809) 暂无评价 9页 2财富值 实验六状态机实现ADC0... 3页 ...由于 ADC0809 A/D 转换器转换结束后会自动产生 EOC 信号(高电平有效) ,取反...
单片机实验六 ADC
实验六:ADC 0809 采用中断方式实验 一、实验要求...ADC 0809 与 MCS-51 单片机的接 口电路设计、三种...6/9 D8 的值,观察电路中数码管的状态如下: (...
试验六AD转换实验和DA转换实验_图文
试验六、A/D转换实验和D/A转换实验一、实验目的 1. 学习理解模/数信号转换的基本原理。 2. 掌握模/数转换芯片 ADC0809 的使用方法。 二、实验设备 PC 机一...
实验六AD实验
实验六 并行A/D转换实验 下面是我们第六次实验的实验内容: 本次实验有以下...一、实验目的 掌握A/D芯片ADC0809与单片机的接口方法及ADC0809芯片性能;了解...
实验六AD实验
实验六 并行A/D转换实验 下面是我们第六次实验的实验内容: 本次实验有以下...一、实验目的 掌握A/D芯片ADC0809与单片机的接口方法及ADC0809芯片性能;了解...
实验6 AD转换实验
实验6 一、实验目的: 实验目的: A/D 转换实验 1. 掌握 A/D 转换与单片机的接口方法。 2. 了解 A/D 芯片 ADC0809 转换性能及编程方法。 3. 通过实验了解...
更多相关标签: