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

实验六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


相关文章:
实验六VHDL有限状态机设计(ADC0809)_图文.doc
实验六VHDL有限状态机设计(ADC0809) - 本科学生综合性实验报告 学号
实验六 用状态机实现ADC0809的采样控制电路.doc
3. 掌握状态机的 Verilog 设计方法,并用状态机实现 ADC0809 的采样控制电路。...实验六VHDL有限状态机设... 暂无评价 10页 4下载券喜欢此文档的还喜欢 ...
实验报告模板:实验六用状态机实现ADC0809的采样电路设计.doc
《EDA 与数字系统设计》实验报告实验六【实验目的】 1. 设计实现 ADC0809 采样的状态机电路; 2. 掌握状态机的 Verilog 设计方法; 3. 学习设计仿真工具的使用...
VHDL实验:用状态机实现ADC0809的采样控制电路.doc
六、心得体会 通过联系教材有关章节,学习用用状态机对 A/D 转换器 ADC0809 ...初步学会了用电路的原理与电路设计,对实验软件 VHDL 也有一定的认识,更 进一步...
EDA实验报告:实验六 用状态机实现ADC0809的采样电路设....doc
EDA实验报告:实验六状态机实现ADC0809的采样电路设计(1) - 《
实验六 用状态机实现ADC0809的采样电路设计(1).doc
实验六状态机实现ADC0809的采样电路设计(1) - 《EDA 与数字系统
实验六:ADC0809的设计.doc
实验六:ADC0809设计_电子/电路_工程科技_专业资料。EDA实验报告,精心写作,很...实验六状态机实现AD... 3页 免费 ADC0809芯片资料+VHDL程... 5页 1...
实验报告模板:实验六 用状态机实现ADC0809的采样电路设....doc
实验报告模板:实验六状态机实现ADC0809的采样电路设计(1) - 与数字
实验6有限状态机设计.doc
实验6有限状态机设计 - 实验六有限状态机设计 一:实验目的 学习用状态机对 A/D 转换器 ADC0809 的采样控制电路的实现。 二:实验原理 ADC0809 是 CMOS 的 ...
实验六用状态机实现ADC的采样电路设计.doc
实验六状态机实现ADC的采样电路设计 - 电子设计自动化实验报告 学号: 20
实验六 ADC0809.doc
实验六 ADC0809_电子/电路_工程科技_专业资料。云南师范大学 电子自动化设计EDA...(2)打开 Quartur II 软件,使用有限状态机设计电路,生成 VHDL 实验代码,然后...
EDA课程设计报告.doc
23 图六 ADC0809 采样状态机 Symbol 实验六、11010011 序列检测一、文本设计输入(VHDL)法 24 图一 序列检测器文本设计输入 图二 程序运行编译结果 二、序列检测...
第6章 VHDL状态机_图文.ppt
第六章 VHDL状态机电子信息科学与技术系 林爱英 ...Company Logo 6.1 有限状态机设计初步 COM:PROCESS...Company Logo 6.2 Moore型有限状态机设计 ADC0809...
FPGA设计-ADC0809.doc
设计任务基于 VHDL 语言,实现对 ADC0809 简单控制。...例如 ADC0809 转换时间为 128μ s,相当于 6MHz ...2.2 软件设计思路采用双进程有限状态机的方法来产生...
第七章 VHDL有限状态机设计_图文.ppt
第七章 VHDL有限状态机设计 状态机在数字电路中应用...6; next_state<=s2; ELSIF state_inputs = "10...(2)状态机对ADC0809进行采用控制的状态图 ?St0:...
10 VHDL有限状态机设计_图文.ppt
EDA技术 第10章 VHDL有限状态机设计 10.1 VHDL...? ADC0809的工作时序 ? ? ? ? ALE:模拟通道地址...【例10-5】所描述的状态机 【例10-6】:减少【...
VHDL状态机_图文.ppt
VHDL状态机 1 2 3 4 5 6 Moore型有限状态机的结构图 7 Mealy型有限状态机...30 31 32 33 34 35 36 37 38 以下以ADC0809为例 ,说明状态机的设计 方法...
第10章 VHDL有限状态机设计.ppt
第10章 VHDL有限状态机设计 10.1 VHDL状态机的一般形式 10.1.1 状态机的...10.6.3 定时方式去毛刺 实验与设计 10-1 序列检测器设计 10-2 并行ADC采样...
eda课程设计-ADC0809控制器-报告.doc
具体过程为:编写 ADC0809 时的 VHDL 代码。 对其...12 3 4 一、 设计任务及性能指标 1.利用实验箱...型有限状态机状态图 六、附录 6.1 程序代码 ...
第十章 VHDL有限状态机设计_图文.ppt
第十章 VHDL有限状态机设计 10.1 VHDL状态机的一般形式 10.1.1 状态机的...型有限状态机的设计 图10-6 控制ADC0809采样状态图 10.2 Moore型有限状态机...
更多相关标签: