基于FPGA的数据采集系统电路设计 课程设计.doc

上传人:文库蛋蛋多 文档编号:4148242 上传时间:2023-04-07 格式:DOC 页数:31 大小:534.50KB
返回 下载 相关 举报
基于FPGA的数据采集系统电路设计 课程设计.doc_第1页
第1页 / 共31页
基于FPGA的数据采集系统电路设计 课程设计.doc_第2页
第2页 / 共31页
基于FPGA的数据采集系统电路设计 课程设计.doc_第3页
第3页 / 共31页
基于FPGA的数据采集系统电路设计 课程设计.doc_第4页
第4页 / 共31页
基于FPGA的数据采集系统电路设计 课程设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《基于FPGA的数据采集系统电路设计 课程设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的数据采集系统电路设计 课程设计.doc(31页珍藏版)》请在三一办公上搜索。

1、 信息工程学院2014 / 2015学年第 二 学期课程设计报告题 目:基于FPGA的音乐硬件演奏电路设计 课 程 名 称 FPGA系统开发 班 级 学 号 23/15/16 学 生 姓 名 刘嘉颖/李滢/陈领指 导 教 师 王 栋 2015年7月3日课程设计报告任务书学 号136105011537951361010515119113610108151852姓名刘嘉颖/李滢/陈领专业电子信息工程设计题目基于FPGA的音乐硬件演奏电路设计设计技术要求这是一种运用纯硬件实现乐曲播放的电路,比运用微处理器实现乐曲播放更加复杂。它运用了强大功能的EDA工具FPGA和硬件描述语言VHDL。本设计以歌曲妈

2、妈的吻来实现乐曲播放电路的功能。1顺序播放乐曲功能:当电路开始工作时,如果存储器中有多首乐曲,那么演奏电路将从头到尾顺序播放这些乐曲。2循环播放乐曲功能:当演奏完后一首乐曲时,将自动返回到第一首歌曲开始播放,反复不止,直到关闭电源电路停止工作为止。3乐曲简谱显示功能:当演奏电路播放乐曲时,能够将当前播放的音符通过一列发光二极管以二进制的形式予以显示。4乐曲高音显示功能:如果电路正在播放高音音符,那么将有一个发光二极管点亮来显示。5音量大小可调功能:运用EDA实验箱上的数字功率放大器LM386N,对数控分频器输出的音频信号予以处理,输出大小连续可调的音频信号到扬声器。设计要求1本次设计在EDA开

3、发平台QUARTUS II 9.0上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计音乐硬件演奏电路,并定制LPM-ROM存储音乐数据,以“梁祝”和“月亮代表我的心”两首乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。2认真完成本课程设计报告,确保报告的完整性,按时提交,不得抄袭他人成果。参考文献1 康华光,陈大钦.电子技术基础数字部分(第四版)M.高等教育出版社,1987:45-59.2 潘松.EDA技术实用教程M

4、.北京:科学教育出版社,2006:2-38.3 卢毅编著.VHDL与数字电路设计M.北京.科技大学出版,2001:38-40.4 侯佰亨,顾新编著.VHDL硬件描述语言与实际应用M.西安.西安电子科社,2000:269-280.5 谢自美.电子线路设计(第二版)M.华中科技大学出版社,2000:130-135.6 王金明.数字系统设计与verilog HDL(第四版) M.电子工业出版社,2011:264-270.课程设计报告成绩姓名: 刘嘉颖/李滢/陈领 学号:23/15/16 专业: 电子信息工程 课程设计题目: 基于FPGA音乐硬件演奏系统设计 指导教师评语:成绩:指导教师:年 月 日摘

5、 要数据采集系统是信号与信息处理系统中不可缺少的重要组成部分,同时也是软件无线电系统中的核心模块,在现代雷达系统以及无线基站系统中的应用越来越广泛。其中FPGA作为本系统的控制核心和传输桥梁,发挥了极其重要的作用。通过FPGA不仅完成了系统中全部数字电路部分的设计,并且使系统具有了较高的可适应性、可扩展性和可调试性。FPGA是近年来广泛应用的超大规模、超高速的可编程逻辑器件,由于其具有高集成度、高速、可编程等优点,大大推动了数字系统设计的单片化、自动化,缩短了单片数字系统的设计周期、提高了设计的灵活性和可靠性,在超高速信号处理和实时测控方面有非常广泛的应用。本文对FPGA的数据采集与处理技术进

6、行研究,基于FPGA在数据采样控制和信号处理方面的高性能和单片系统发展的新热点,把FPGA作为整个数据采集与处理系统的控制核心。关键词:FPGA,采集和控制,单片机,电路板,VHDL目 录第一章 绪论11.1引言11.2EDA简介11.3 FPGA简介11.4 VHDL语言简介21.5 Quartus II简介31.6 数据采集技术简介3第二章 总体设计52.1 硬件设计52.1.1 线性电源模块52.1.2 数据采集模块52.1.3 数据输出模块82.1.4 按键控制模块112.2 软件设计122.2.1 ADCINT设计122.2.2 CNT10B设计122.2.3 RAM8设计132.2

7、.4时钟控制设计132.2.5系统顶层设计15第三章 系统软硬件调试16结论18致谢18参考文献19附录20第一章 绪论1.1 引言随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。随着技术的发展,各种各样基于数字化的产品不断推陈出新,给我们的生活带来了极大的好处。数字化之所以能如此得到广泛拓展开来,其主要在于以下两个优点:1、数字处理灵活、方便。在软件无线电领

8、域,正在构建个较通用的平台,通过软件来实现现在许多“僵化”硬件平台的功能。这正是基于数字化带来的灵活性。2、数字系统稳定可靠。在早期,较之模拟系统,数字系统的最优点就在于有良好的稳定性。1.2 EDA简介EDA是电子设计自动化(ElectrONic Design AUTOMATION)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,

9、直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。1.3 FPGA简介 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable L

10、ogic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和IO引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、

11、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FP

12、GA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。1.4 VHDL语言简介VHDL 的英文全名是VHSIC Hardware Description Language(VHSIC硬件描述语言)。VHSIC是Very High Speed Integrated Circuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终导致了VHDL语言的出现。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言

13、。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点1.5 Quartus II简介Quartus II可以在XP、Linux以及Unix上使用,除了可以使用

14、Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,

15、是一种综合性的开发平台。QuartusII图标Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于

16、其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.6数据采集技术简介 数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头,麦克风,都是数据采集工具。 被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,均以不影响被测对象状态和测量

17、环境为前提,以保证数据的正确性。数据采集含义很广,包括对面状连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量(或包括物理量,如灰度)数据。 在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。首先,分布式控制应用场合中的智能数据采集系统在国内外已经取得了长足的发展。其次,总线兼容型数据采集插件的数量不断增大,与个人计算机兼容的数据采集系统的数量也在增加。国内外各种数据采集机先后问世,将数据采集带入了一个全新的时代。第二章 总体设计2.1 硬件设计2.1.1 线性电源模块 根据系统

18、要求,需提供+12V、-12V、+5V的电源。因此我采用了滤波电容、防自激电容、LED灯及固定式三端稳压器LM7905、LM7812和LM7912等器件搭建成能产生精度高、稳定度好的直流输出电压的线性电源电路。系统的线性电源电路部分原理图如图1所示:图1 系统的线性电源模块电路 当电路接通后,如果LED灯亮起,则代表能产生出要求的电压。为了实验的携带方便,我另外再加上电源变压器和整流电桥。2.1.2 数据采集模块 系统采用ADC0809进行数据采集。 ADC0809是逐次逼近式A/D转化器,由8位A/D转换器、8路多路开关以及微处理机兼容组成的控制逻辑的CMOS组件。ADC0809每进行一次比

19、较,即决定数字码中的以为码的去留操作,需要8个时钟的脉冲,而它是8位A/D转换器,所以它完成一次转换需要8*8=64个时钟,这样它的转换时间为t=64*(1/f),f为时钟频率。系统用的时钟为500KHz,所以ADC0809的转换时间为128us6。因为采样时需要满足采样定理,即采样频率需要大于等于输入信号最高频率的2倍,所以ADC0809能采样的最高频率为3906.25Hz。 ADC0809的主要特性: 1.分辨率为8位。 2.具有转换启停控制端。 3.单个+5V电源供电。 4.模拟输入电压范围0+5V,不需要零点和满刻度校准。系统中由可调电位器提供。 5.工作温度范围为-40+85摄氏度。

20、 6.低功耗,约15mW。 它的内部逻辑结构如图2所示:图2ADC0809内部逻辑结构ADC0809引脚排列如图3所示:图3 ADC0809引脚排列ADC0809实物图如图4:图4 ADC0809实物图ADC0809为28引脚双列直插式封装,各引脚含义如下:IN0IN7:8位模拟量输入引脚。D0D7:8位数字输出量引脚。START:A/D转换启动信号输入端。EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端。VCC:+5V工作电压。VREF():参考电压正端。GND:地。VREF():参考电压负端。A

21、LE:地址锁存允许信号输入端。ABC:地址输入线。系统的数据采集模块部分电路原理图如图5所示:图5 系统数据采集模块电路 当ALE高电平有效时,因为ABC接的都是低电平,所以选择的是IN0通道。当START为上跳沿时,所有内部寄存器清零;下跳沿时,开始A/D转换;在转换期间,START需保持低电平不变。而当EOC为高电平时,表明A/D转换结束。当OE=1时,输出转换得来的数据;否则,输出数据线呈高阻态。2.1.3 数据输出模块 系统采用的数据输出为DAC0832。 DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。它因为价格

22、低廉、接口简单、转换控制容易等优点,而得到了广泛的应用7。 DAC0832的主要参数有: 1.分辨率为8位。 2.转换时间为1us。 3.满量程误差为1LSB。 4.参考电压为-10+10V。 5.供电电源为+5+15V。 6.逻辑电平输入与TTL兼容。 它的内部逻辑结构如图6所示:图6 DAC0832内部逻辑结构DAC0832引脚排列如图7所示:图7 DAC0832引脚排列DAC0832实物图如图8:图8 DAC0832实物图 各引脚含义如下: CS:片选信号输入线(选通数据锁存器),低电平有效。 WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。 AGND:模拟信号地。D

23、0D7:8位数据输入线。VREF:基准电压输入线,范围为-10V+10V。Rfb:反馈信号输入线,可通过改变Rfb端外接电阻值来调整转换满量程精度。DGND:数字信号地。IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化。IOUT2:电流输出端2,其值与IOUT1值之和为一常数。XFER:数据传输控制信号输入线,低电平有效。WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。ILE:数据锁存允许控制信号输入线,高电平有效。VCC:电源输入端,范围为+5V+15V。本实验用的是+5V。DAC0832的输出放大和滤波电路采用TL082芯片搭建。TL082是一通用J-FET双

24、运算放大器。它的内部结构和引脚排列如图9所示:图9 TL082内部结构和引脚排列TL082为8引脚双列直插式封装,各引脚含义如下:(1)Output 1输出1;(2)Inverting input 1反向输入1;(3)Non-inverting input 1正向输入1;(4)Vcc-电源-12V;(5)Non-inverting input 2正向输入2;(6)Inverting input 2反向输入2;(7)Output 2输出2;(8)Vcc+电源+12V。系统的数据输出电路部分原理图如图10所示:图10 系统数据输出模块电路2.1.4 按键控制模块 系统采用两个按键开关设计正/负电平

25、输入信号电路,作按键控制模块。一个按键控制CLR,另一个按键控制WREN。两个按键开关电路如图11所示:图11 系统按键控制模块电路2.2 软件设计2.2.1 ADCINT设计ADCINT是控制0809的采样状态机。 由ADC0809驱动程序生成的原理图如图12所示:图12 ADCINTADCINT仿真图如图13所示:图13 ADCINT仿真图2.2.2 CNT10B设计 CNT10B中有一个用于RAM的9位地址计数器,它的工作时钟CLK0由WREN控制: 当WREN=1时,CLK0=LOCK0,LOCK0来自于ADC0809采样控制器,这时处于采样允许阶段,RAM的地址锁存时钟inclock

26、=CLKOUT=LOCK0;这样每当一个LOCK0的脉冲通过ADC0809时采到一个数据,并将它存入RAM中。 当WREN=0时,采样禁止,允许读出RAM中的数据。把示波器接到DAC0832的输出端就能看到波形。 CNT10B原理图如图14所示: 图14 CNT10B2.2.3 RAM8设计 RAM8是LAM_RAM,它有8位数据线和9位地址线。WREN是写时能,高电平有效。 RAM8原理图如图15所示:图15 RAM82.2.4 时钟控制设计 由芯片EP2C8Q208C8N产生的20MHz的时钟做输入,经过分频以后,一路输出与芯片EP2C8Q208C8N的169引脚相连的500KHz的时钟,

27、另一路则输出给ADC0809供电的10KHz的时钟。时钟控制原理图如图16所示:图16 时钟控制2.2.5 系统顶层设计系统顶层原理框图如图17所示,图中D为8位数据输入,CLK为系统时钟输入信号频率,由系统时钟信号输入电路控制。Q为RAM8的8位输出,与DAC083。图17 系统顶层原理框图系统顶层仿真图如图18所示:18 系统顶层仿真图第三章 系统软硬件调试根据系统总体要求,把写好的VHDL程序进行引脚锁定,综合,适配,编程下载,调试。将线性电源模块、数据采集模块、FPGA模块、数据输出模块及按键控制模块连接好,时钟频率由系统时钟信号输入电路提供,然后通过JTAG下载模式在线将生成的配置文

28、件写入芯片中,如图19所示:图19 程序下载通过反复调试、修改、功能验证确认无误后,用示波器探头接DAC0832输出端。测得的实验数据见表1:表1 系统测试数据输入波形的频率输出波形的频率50.050Hz50.031 Hz99.630 Hz99.611 Hz113.77 Hz113.40 Hz150.24 Hz150.29 Hz199.18 Hz199.22 Hz250.61 Hz250.53 Hz300.54 Hz300.59 Hz350.96 Hz351.03 Hz407.50 Hz407.40 Hz测得的数据范围从50.050 Hz到407.50 Hz,平均相对误差为0.0039,具有较

29、高的精度,基本达到了设计要求。结 论本设计从可编程逻辑器件(FPGA)着手,用VHDL语言,结合ADC0809、DAC0832、TL082等芯片实现了数据采集与输出。首先通过对数据采集原理进行分析,总体上提出实现数据采集与输出方案,通过CNT10B和RAM8等模块的设计,用FPGA实现了数据的采集与输出,并完成了软硬件设计和调试。其放大电路和滤波电路用的芯片是TL082,其放大倍数合适,低通滤波性能较好,输出波形较为平滑。同时,设计中还存在一些不足之处,主要表现在以下几个方面。第一,外围电路的数据采集模块不够理想,成为影响波形输出的主要因素,可以用更好的AD芯片。第二,滤波部分可以找到更合适的

30、滤波器件,以提高波形的平滑度。第三,RAM8采用8位,针对输出平坦度不够的问题,可以通过软硬件修正的方法来解决,可以扩充ROM的容量。设计中何帅帅负责程序编写和软件仿真,罗腾利负责编写报告,周彪负责资料查找。致 谢首先要感谢指导老师王栋的严格指导和亲切关怀,从一开始选题方向的指导,以及VHDL程序上的帮助,又提供了实验室这么好的良好的设计环境和条件,最终才使我能够顺利完成项目的设计,老师兢兢业业的工作精神、踏实真诚的处事态度也让我受益匪浅。值此成文之际,我向老师表示衷心的感谢。 同时也感谢同组的同学以及我们专业其他同学,此次设计的顺利完成少不了你们的毫无保留帮助和倾尽全力的支持,在此我衷心感谢

31、你们。 由于自身水平有限,设计中难免存在一些不足之处,敬请老师批评指正。参考文献1 潘松,黄继业.EDA技术实用教程(第三版)M.北京:科学出版社,2006:1-22 赵曙光,郭万有.可编程逻辑器件原理、开发与应用M.西安:电子科技大学出版社,2000:80-853 4 甘历.VHDL应用与开发实践M.北京:科技出版社,2003:50-515 徐志军.大规模可编程逻辑器件及其应用M.成都:电子科技大学出版社,20006 程佩清.数字信号处理教程M.北京:清华大学出版社,20017 王金明.数字系统设计与 Verilog HDLM.北京:电子工业出版社,20018 UweMeyer-Baese.

32、数字信号处理的FPGA实现M.北京:清华大学出版社,2002附 录时钟控制的VHDL源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity clk_b is port(clk: in std_logic; clk500K,clk10K: out std_logic);end entity; architecture behave of clk_b is signal clk1,clk2: std_logic;signa

33、l temp1: integer range 0 to 49; signal temp2: integer range 0 to 2499;begin process(clk)-500kHZbeginif clkevent and clk=1 thentemp1=temp1+1;if temp1=24 thenclk1=not clk1;temp1=0;end if; end if;end process;process(clk)-10kHZbeginif clkevent and clk=1 thentemp2=temp2+1;if temp2=1249 thenclk2=not clk2;

34、temp2=0;end if; end if;end process;clk500K = clk1; clk10K = clk2;end behave;ADCINT的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自0809转换好的8位数据CLK : IN STD_LOGIC; -状态机工作时钟EOC : IN STD_LOGIC; -转换状态指示,低电平表示正在转换ALE : OUT STD_LOGIC; -8个模拟信号通

35、道地址锁存信号START : OUT STD_LOGIC; -转换开始信号OE : OUT STD_LOGIC; -数据输出3态控制信号ADDA : OUT STD_LOGIC; -信号通道最低位控制信号LOCK0 : OUT STD_LOGIC; -观察数据锁存时钟Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位数据输出END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4) ; -定义各状态子类型 SIGNAL current_state, next_

36、state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 转换后数据输出锁存时钟信号 BEGINADDA = 0;-当ADDA=0,模拟信号进入通道IN0;当ADDA=1,则进入通道IN1Q = REGL; LOCK0 ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0;OE=0; IF (EOC=1) THEN next_st

37、ate = st3; -EOC=1表明转换结束 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1; next_state next_state = st0; END CASE ; END PROCESS COM ; REG: PROCESS (CLK) BEGIN IF (CLKEVENT AND CLK=1) THEN current_state=next_state; END IF; END PROCESS REG ; - 由信号current_state将当前状态值带出此进程:R

38、EG LATCH1: PROCESS (LOCK) - 此进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL = D ; END IF; END PROCESS LATCH1 ; END behav;CNT10B的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10B IS PORT (LOCK0,CLR : IN STD_LOGIC; CLK : IN STD_LOGIC; WE :

39、IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(8 DOWNTO 0); CLKOUT : OUT STD_LOGIC ); END CNT10B;ARCHITECTURE behav OF CNT10B IS SIGNAL CQI : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL CLK0 : STD_LOGIC;BEGINCLK0 = LOCK0 WHEN WE=1 ELSE CLK; PROCESS(CLK0,CLR,CQI) BEGIN IF CLR = 1 THEN CQI = 000000000; ELSIF CLK0

40、EVENT AND CLK0 = 1 THEN CQI = CQI + 1; END IF; END PROCESS; DOUT = CQI; CLKOUT = CLK0;END behav;RAM8的VHDL源程序:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY ram8 ISPORT(address: IN STD_LOGIC_VECTOR (8 DOWNTO 0);data: IN STD_LOGIC_VECTOR (7 DOWNTO 0);inclock: IN STD_LOGIC ;we:

41、 IN STD_LOGIC := 1;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END ram8;ARCHITECTURE SYN OF ram8 ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT lpm_ram_dqGENERIC (intended_device_family: STRING;lpm_address_control: STRING;lpm_indata: STRING;lpm_outdata: STRING;lpm_type: STRING;lpm_width: NATUR

42、AL;lpm_widthad: NATURAL);PORT (address: IN STD_LOGIC_VECTOR (8 DOWNTO 0);inclock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);data: IN STD_LOGIC_VECTOR (7 DOWNTO 0);we: IN STD_LOGIC );END COMPONENT;BEGINq ACEX1K,lpm_address_control = REGISTERED,lpm_indata = REGISTERED,lpm_outdata = UNREGISTERED,lpm_type = LPM_RAM_DQ,lpm_width = 8,lpm_widthad = 9)PORT MA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号