版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
07级信通院数电综合实验——结题报告 简易函数发生器PAGEPAGE3数电综合实验—简易函数发生器实验报告班级:07118班姓名:杨帆学号:070547班内序号:262009年1月10日星期六
目录一、 实验目的 3二、 任务要求 3基本任务: 3提高要求: 3三、 系统设计 31. 设计思路 32. 总体设计框图 33. 分块设计 4a) 分频模块: 4b) 三角波产生模块: 4c) 方波产生模块: 4d) 选波模块: 4e) 正弦波产生模块: 5f) 并串转换模块: 5四、 程序框图 6五、 总体电路图及管脚信息 6六、 源程序 7七、 功能说明及操作步骤 91. 功能 92. 操作步骤 9八、 资源利用率 10九、 仿真波形 11十、 元件清单 12十一、 关键技术、遇到的问题及解决方案的详述 121.正弦波输出问题 122.DA转换问题 12十二、 实验结论及总结 12
实验目的1.熟练掌握VHDL语言和QuartusII软件的使用;2.理解状态机的工作原理和设计方法;3.掌握利用EDA工具进行自顶向下的电子系统设计方法;4.熟悉D/A变换电路的设计;任务要求基本任务:设计制作一个简易函数发生器。1.输出波形为方波和三角波,频率范围为1kHZ-2kHZ;2.频率可进行调节并用数码管显示,加、减步进均为100HZ;3.输出三角波的峰峰值为4-5V,方波幅度为TTL电平的大小;提高要求:1.产生频率范围为1kHZ-2kHZ、峰峰值为4-5V的正弦波信号;2.产生占空比可调的矩形波或其它波形;3.自拟其它功能。系统设计设计思路用VHDL语言结合原理图编辑方式设计实现一个函数信号发生器,输出频率可调方波和三角波,正弦波三种波形。将波形选择、频率控制与分频、三角波、正弦波、方波发生各个模块分别用VHDL语言编程为一个子程序,并把每一个模块转换成图形文件,然后在原理图编辑框调用这些图形模块。由于考虑到按键开关工作的不确定性,通过拨码开关模块的SW0到SW3控制频率调节f〔3...0〕,用SW4、SW5控制DELTA、SINE、SQUARE波形选通,最后把八位输出经过并串转换,接到开发板上的DA模块(TLV5638),通过D/A转换,从示波器上就能看到波形输出。总体设计框图(图一:系统设计框图)分块设计本设计共使用了六个模块,分别解释如下:分频模块:本模块主要功能是输出两个分频时钟clk_m和clk_p,前者用于波形的每一点的并行值输出频率,后者是前者的32倍频,用于并串转换(16bit并行输入转串行输出,并且要输出一个二分频时钟)。经过多方考虑(受制于DA芯片的最高工作频率),选择波形分辨率为64点(即一个周期取样64次)。这里输出的1KHz到2KHz的频率(步进100Hz)都是近似的。frq.vhd文件还包含了数码管输出的功能。采用高频时钟(50M)扫描cat,输出当前的频率值。这里不再分析。三角波产生模块:这个模块输出三角波波形。每次clk_m上升沿输出一个8bit的数据。周期分辨率为64点。方波产生模块:本模块输出占空比可调的方波。默认占空比为50%。周期分辨率为64点。按键调节占空比,步进增/减幅度为12.5%。选波模块:本模块根据用户操作拨码开关来选择输出的波形。默认输出低电平。正弦波产生模块:本模块输出周期分辨率为64点的正弦波。用Excel或者Matlab算出二进制8bit的正弦波的取样值,然后采用在程序里查表的方式输出数据。这要比用程序直接计算正弦波的值快捷和简便得多,虽然损失一定精度,但换回的是程序执行的时间和空间资源。并串转换模块:本模块将上级输入的8bit并行数据信号转换为串行输出,以供TLV5638进行DA转换。每次系统重置后(reset按键被按下),系统经过两次状态转换。state0是一个等待状态,系统等待4个并行周期之后进入state1,这个状态主要用来写TLV5638的控制寄存器。这里我们将它的参考电平设为2.048V。接着,系统将把TLV5638的触发信号置成有效电平。接着系统进入state2,这个状态是系统真正进行并串转换的状态。在TLV5638自身允许输入的状态下,此进程将设置TLV5638,使其依次使用DAC_A和DAC_B输出数据。在它自身禁止输入的状态下,进程将TLV5638的触发信号置成无效电平,并不输出。本模块使用例化TLV5638这一器件,具体并串转换的过程将在TLV5638.vhd中实现。具体流程如下: 每次外部复位信号(reset_i)或者内部复位信号(reset_int)有效时,系统进行各信号清零复位的工作。cs_o信号作用是对TLV5638的片选,cs_o的下降沿触发TLV5638的数据写入,cs_o上升沿时TLV5638停止数据写入(数据锁存)。系统默认状态为IDLE(空闲),不进行任何操作。当DA工作触发信号(start_i)有效时,系统被触发,进入BUSY(工作)状态。系统状态为BUSY时,进行一次16bit输入数据的并串转换,使用输入并行数据频率的32倍频,将其二分频后输出给TLV5638作为时钟信号。输出16bit数据后,系统将cs_o复位(停止数据写入芯片),并且将eoc置位(进行一次各信号清零复位的工作)。系统输出串行数据时首先输出并行输入数据的高位。程序框图(图二:系统操作流程图)总体电路图及管脚信息(图三:系统电路图)(图四:管脚连接信息)源程序adjust.vhd:choose_wave.vhd:dlt_gen.vhd:frq:sin_gen.vhd:sqr_gen.vhd:tlv5638.vhd:功能说明及操作步骤功能该工程实现一个简易函数信号发生器的功能。系统上电后,默认输出低电平(无波形),默认初始频率为1KHz。波形输出频率可由开发板上的拨码开关SW0~SW3调节,可调范围为1KHz到2KHz,步进量为100Hz。波形由开发板上的DAC_A口输出。共有方波和三角波,正弦波三种波形可供选择,用户只需将开发板上的拨码开关SW6~SW7置成不同取值组合,就可以输出不同波形。其中方波的占空比可以用开发板上的按键开关BTN0~BTN1调节。系统重置按键为开发板上的按键开关BT7。另外,实验验收后我继续加入了锯齿波输出的功能。用户可以在示波器上看到波形输出。操作步骤上电后用户首先选择波形,使用SW6~SW7选择,具体对应关系如下:SW7SW6输出波形00无波形(低电平)01占空比可调的方波10三角波11正弦波波形选择好后,将示波器探头接入开发板的DAC_A与GND之间,即可在示波器上看到相应的波形。用户可以通过改变SW0~SW3来改变输出波形的频率,具体对应关系如下:SW3..SW0输出频率00001.0KHz00011.1KHz00101.2KHz……依次递增10102.0KHz10111.0KHz11001.0KHz……不变11111.0KHz 其中,特别的,在输出方波波形时,用户可以按下BT0/BT1来增/减方波的占空比。 系统重置按键为BTN7。(图五:实际波形图以及系统连接示意图)资源利用率(图六:宏单元占用情况)(图七:系统资源利用情况)仿真波形1.三角波输出仿真情况(状态不全)2.方波输出仿真情况3.正弦波输出仿真情况(状态不全)4.选波模块输出仿真情况5.并串转换输出仿真情况6.分频输出仿真情况(以输出方波为例)元件清单1.计算机;2.示波器;3.直流稳压电源;4.万用表;5.EDA开发板及相应元器件。关键技术、遇到的问题及解决方案的详述1.正弦波输出问题解决方案:采用查数据表的模式,既保证了一定数据的精度,同时也替系统节约了大量资源。这样输出时不必花费时间计算每点不同的sinx值,只需读取ROM里的数据,节省时间,可以达到实时输出。2.DA转换问题解决方案: 加入并串转换模块,该模块使用产生并行数据的时钟频率的32倍频,将每一clk_m周期输入的8bit并行数据经32个clk_p时钟周期输出,一共串行输出16bit数据(包括控制位),同时产生16个clko的脉冲供DA芯片使用。实验结论及总结今天写这个结题报告的时候回想起来,自己在最开始学习这门课程时,对VHDL语言的理解就完全错误了。仅仅认为这是一门计算机语言,而忽视了VHDL的定义:硬件描述语言。它讲求的是描述某个硬件功能的准确性和规范性,而我却认为只要程序写出来以后逻辑正确就OK了。譬如,若是纯粹从逻辑上理解,一个触发器完全可以由一个取值有限的信号循环自加来实现。但是触发器是一个时序逻辑电路,这样描述的器件只是一个累加器。要在其外部加入触发条件(clk’eventandclk=’1’),累加器才能够行使触发器的功能。终于认识到这一点,我对VHDL的许多其他误解也消除了。在仅仅考虑逻辑的前提下,我很迷惑为什么编程过程中有时会出现这样的情况:一句语句放在进程前面或者进程后面会有完全不同的效果;两个进程合并成一个也会使功能改变等等。这些错误都是由于对硬件电路不敏感、不理解状态机概念造成的。我也更加赞同那句话:“不学好模拟电路,无法在数字电路领域有深的理解”。今后的VHDL编程过程中,我将更加注重描述准确这一要点,要时时留意语句实现的硬件电路的性质,编程时多多结合RTL电路,分析排错。另外一个很深的感触就是VHDL语言编写实时控制程序很有用。简易函数发生器这个工程触及到时序控制的地方就是并串转换模块。比较遗憾的是,自己并没有独
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年分包合同结算样本3篇
- 2024年专业投资代客理财合作协议3篇
- 2024年云计算服务软件购买与托管支持协议3篇
- 2024年实木家具定制销售与消费者权益保护协议3篇
- 2024年度影视作品美术设计与制作合同2篇
- 2024版建筑木材采购环保认证合同2篇
- 2024年度文化创意产业项目投资与版权保护合同3篇
- 2024年标准混凝土施工承包协议样本版B版
- 2024年度车辆抵押贷款委托还款协议书3篇
- 2024年度公益庆典活动组织与志愿者招募服务合同3篇
- 私人影院管理制度
- 人机工程评价表
- 初三英语阅读理解专项训练100(附答案)
- CT球管标准规定
- 小学信息技术全册教案(苏教版)
- 自行车和自行车制造行业研究报告
- 2023基因行业蓝皮书-基因慧
- 多选题数据的SPSS多重对应分析操作方法
- 企业安全风险分级管控21类表格、标牌
- 设计总体服务方案
- 医院护理培训课件:《大肠息肉(结肠息肉)中医护理方案》
评论
0/150
提交评论