实验六VHDL有限状态机设计ADC0809.docx
- 文档编号:4951395
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:11
- 大小:350.37KB
实验六VHDL有限状态机设计ADC0809.docx
《实验六VHDL有限状态机设计ADC0809.docx》由会员分享,可在线阅读,更多相关《实验六VHDL有限状态机设计ADC0809.docx(11页珍藏版)》请在冰豆网上搜索。
实验六VHDL有限状态机设计ADC0809
本科学生综合性实验报告
学号*********姓名李开斌
学院物电学院专业、班级11电子
实验课程名称电子设计自动化(EDA实验)
教师及职称罗永道副教授
开课学期2013至2014学年下学期
填报时间2014年5月30日
云南师范大学教务处编印
实验序号
6
实验名称
VHDL有限状态机设计
实验时间
2014年5月30日
实验室
同析楼114
一.实验预习
1.实验目的:
学习用状态机对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实验箱
4.实验方法步骤及注意事项
用VHDL 设计的状态机的一般结构有以下几部分组成:
1. 说明部分
说明部分中有新数据类型TYPE 的定义及其状态类型(状态名)和在此新数据类型下定义的状态变量。
状态类型一般用枚举类型,其中每一个状态名可任意选取。
但为了便于辨认和含义明确,状态名最好有明显的解释性意义。
状态变量应定义为信号,便于信息传递。
说明部分一般放在ARCHITECTURE 和BEGIN之间。
2. 主控时序进程:
状态机是随外部时钟信号以同步时序方式工作的,因此状态机中必须包含一个对工作时钟信号敏感的进程作为状态机的“驱动泵”。
当时钟发生有效跳变时,状态机的状态才发生变化。
状态机的下一状态(包括再次进入本状态)仅仅取决于时钟信号的到来。
一般地,主控时序进程不负责进入的下一状态的具体状态取值。
当时钟的有效跳变到来时,时序进程只是机械地将代表下一状态的信号next_state 中的内容送入代表本状态的信current_state 中,而信号next_state 中的内容完全由其它的进程根据实际情况来决定。
当然此进程中也可以放置一些同步或异步清零、置位方面的控制信号。
总体来说,主控时序进程的设计比较固定、单一和简单。
3. 主控组合进程:
主控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。
4. 普通组合进程
用于配合状态机工作的其它组合进程,如为了完成某种算法的进程。
5. 普通时序进程
用于配合状态机工作的其它时序进程,如为了稳定输出设置的数据锁存器等。
一个状态机的最简结构应至少由两个进程构成(也有单进程状态机,但并不常用)即一个主控时序进程和一个主控组合进程,一个进程作“驱动泵”,描述时序逻辑,包括状态寄存器的工作和寄存器状态的输出;另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转换值的输出。
当然必要时还可以引入第3 个和第4 个进程,以完成其它的逻辑功能。
图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采样状态图
图5 控制ADC0809采样时序图
二.实验内容
1.实验现象与结果
(1)ADC0809VHDL语言程序如下:
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYadcIS
PORT(
CLK:
INSTD_LOGIC;
RESET:
INSTD_LOGIC:
='0';
EOC:
INSTD_LOGIC:
='0';
DATA:
INSTD_LOGIC_VECTOR(7DOWNTO0):
="00000000";
ALE:
OUTSTD_LOGIC;
START:
OUTSTD_LOGIC;
OE:
OUTSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDadc;
ARCHITECTUREBEHAVIOROFadcIS
TYPEtype_fstateIS(S0,S1,S2,S3,S4);
SIGNALfstate:
type_fstate;
SIGNALreg_fstate:
type_fstate;
SIGNALreg_ALE:
STD_LOGIC:
='0';
SIGNALreg_START:
STD_LOGIC:
='0';
SIGNALreg_OE:
STD_LOGIC:
='0';
SIGNALreg_Q:
STD_LOGIC_VECTOR(7DOWNTO0):
="00000000";
BEGIN
PROCESS(CLK,reg_fstate,reg_START,reg_OE,reg_Q)
BEGIN
IF(CLK='1'ANDCLK'event)THEN
fstate<=reg_fstate;
START<=reg_START;
OE<=reg_OE;
Q<=reg_Q;
ENDIF;
ENDPROCESS;
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';
CASEfstateIS
WHENS0=>
reg_fstate<=S1;
WHENS1=>
reg_fstate<=S2;
reg_ALE<='1';
reg_START<='1';
WHENS2=>
IF((EOC='1'))THEN
reg_fstate<=S3;
ELSE
reg_fstate<=S2;
ENDIF;
WHENS3=>
reg_fstate<=S4;
reg_OE<='1';
WHENS4=>
reg_fstate<=S0;
reg_Q<=DATA(7DOWNTO0);
WHENOTHERS=>
reg_ALE<='X';
reg_START<='X';
reg_OE<='X';
reg_Q<="XXXXXXXX";
report"Reachundefinedstate";
ENDCASE;
ALE<=reg_ALE;
ENDIF;
ENDPROCESS;
ENDBEHAVIOR;
2. 仿真分析
图8-5 仿真波形图
2.对实验现象、实验结果的分析及其结论
通过联系教材有关章节,学习用用状态机对A/D转换器ADC0809的采样控制电路的实现。
实验中,对VHDL软件进行探索、学习,逐步熟悉软件的使用。
并学习完成了用状态机对ADC0809的采样控制电路的实现。
通过这次实验,初步学会了用电路的原理与电路设计,对实验软件VHDL也有一定的认识,更进一步掌握了课本的相关知识。
教师评语及评分:
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 VHDL 有限状态机 设计 ADC0809
![提示](https://static.bdocx.com/images/bang_tan.gif)