基于FPGA数字电压表的设计.doc

上传人:知****量 文档编号:69952722 上传时间:2023-01-12 格式:DOC 页数:8 大小:190.04KB
返回 下载 相关 举报
基于FPGA数字电压表的设计.doc_第1页
第1页 / 共8页
基于FPGA数字电压表的设计.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《基于FPGA数字电压表的设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA数字电压表的设计.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于FPGA数字电压表的设计湖南科技学院课程设计任务书课 题 名 称 数字电压表设计系别电子工程系专 业电子科学与技术班级电科1001班学号8姓名安启祥指 导 老 师梁晓琳2012年12月9日基于FPGA数字电压表的设计一、前言EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、

2、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。本电压表的电路设计正是用VHDL语言完成的 .此次设计采用的是Altera公司 的Quartus II 7.0软件.本次设计的参考电压为2。5V,精度为0。01V。此电压表的设计特点为通过软件编程下载到硬件实现,设计周期短,开发效率高。二、设计要求设计一个数字电压表,利用8位A/D转换器,将连续的模拟电信号转换成离散的数字电信号,并加以显示,要求其量程为02。5V,分辨率约为0.01V,三位数码管显示。其中一位为整数,两位为小数能正确显示小数点。三、 整体设计1. 数字电压表的基本原理数字电压表整体设计框图

3、,如下图所示,数字电压表系统由A/D(TLC549)转换模块、FPGA控制模块、数码显示模块三部分构成。FPGA控制模块控制外部A/D转换器自动采样模拟信号,通过A/D芯片转换为数字信号,再由FPGA控制模块控制数码管动态扫描向外部数码管显示电路输出数据. 数码显示TLC549 FPGA 控制 控制A/D转换器负责采集模拟电压,转换成8位数字信号送入FPGA转换控制模块,FPGA转换控制模块负责A/D转换的启动、地址锁存、输入通道选择、数据读取、转换等工作,数码显示模块负责显示当前的电压值.2. A/D(TLC549)转换模块TLC549是 TI公司生产的一种低价位、高性能的8位 A/D转换器

4、,它以8位开关电容逐次逼近的方法实现 A/D转换,其转换速度小于 17us,最大转换速率为 40000HZ,4MHZ典型内部系统时钟,电源为 3V至 6V。它能方便地采用三线串行接口方式与各种微处理器连接,构成各种廉价的测控应用系统。 TLC549各引脚功能REF+:正基准电压输入 2.5VREF+Vcc+0。1。 REF:负基准电压输入端,-0。1VREF2。5V。且要求:(R EF+)(REF-)1V。 VCC:系统电源3VVcc6V.GND:接地端./CS:芯片选择输入端,要求输入高电平 VIN2V,输入低电平 VIN0.8V。DATA OUT:转换结果数据串行输出端,与 TTL 电平兼

5、容,输出时高位在前,低位在后。ANALOGIN:模拟信号输入端,0ANALOGINVcc,当 ANALOGINREF+电压时,转换结果为全“1”(0FFH),ANALOGINREF-电压时,转换结果为全“0(00H)。I/O CLOCK:外接输入/输出时钟输入端,同于同步芯片的输入输出操作,无需与芯片内部系统时钟同步。 四、模块设计1、 部分设计程序TLC549模块:module TLC549(clk,reset,sdata,cs,dataout,clk_ad);input clk;input reset,sdata;output 7:0dataout;output clk_ad,cs;reg

6、 7:0dataout,dataout_r;reg cs;reg clk_ad_r,clk_r;reg 7:0count;reg 2:0temp;reg 3:0cnt;reg mark;reg flag;parameter2:0s0=0,s1=1,s2=2;reg 2:0c_st;/内部逻辑功能描述always(posedge clk) /分频电路begin if(count119) count=count+1;else begin count=0;clk_r=clk_r;endendalways(posedge clk) /时钟信号begin clk_ad_r=clk_r;endalways

7、(posedge clk_r or negedge reset) /状态机begin if(!reset) c_st=s0;else case(c_st)s0:begin cs=1;mark=0;if(temp=3)begin temp=0; c_st=s1;endelse begin temp=temp+1;c_st=s0;endends1:begin cs=0;mark=1;c_st=s2;ends2:begin cs=0;mark=1;if(flag=1)c_st=s0;else c_st=s2;enddefault:c_st=s0;endcaseendA/D转换模块:module lo

8、okup(V,q);input 7:0V;output 11:0q; reg 11:0q;reg 11:0HB,LB;wire d1,d2,d3;always(V)begin case(V7:4) /-A/D值的高4位转换成3位BCD码 4b1111: HB=12b0; /2.40 4b1110: HB=12b0;/-2.24 4b1101: HB=12b0;/-2.08 4b1100: HB=12b0;/-1。92 4b1011: HB=12b0;/-1。76 4b1010: HB=12b0;/-1.60 4b1001: HB=12b0;/1。44 4b1000: HB=12b0; /1。2

9、8 4b0111: HB=12b0;/-1.12 4b0110: HB=12b0; / -0。96 4b0101: HB=12b0; / -0。80 4b0100: HB=12b0;/-0.64 4b0011: HB=12b0;/-0。48 4b0010: HB=12b0;/-0。32 4b0001: HB=12b0;/-0。16 4b0000: HB=12b0; / -0.00 default: HB=12b1;Endcase数码显示模块:module scan_led(clk_1k,d,dig,seg);/模块名scan_ledinput clk_1k;/输入时钟input11:0 d;/

10、输入要显示的数据output7:0dig;/数码管选择输出引脚output7:0 seg;/数码管段输出引脚reg7:0 seg_r;/定义数码管输出寄存器reg7:0 dig_r;/定义数码管选择输出寄存器reg3:0 disp_dat;/定义显示数据寄存器reg2:0count;/定义计数寄存器assign dig = dig_r;/输出数码管选择assign seg = seg_r;/输出数码管译码结果always (posedge clk_1k) /定义上升沿触发进程begin if(count2)count = count + 1b1; else count=0;endalways

11、(posedge clk_1k) begincase(count)/选择扫描显示数据3d0:disp_dat = d11:8; /第一个数码管3d1:disp_dat = d7:4;/第二个数码管3d2:disp_dat = d3:0;/第三个数码管endcasecase(count)/选择数码管显示位3d0:dig_r = 8b;/选择第一个数码管显示3d1:dig_r = 8b;/选择第二个数码管显示3d2:dig_r = 8b;/选择第三个数码管显示endcase case(count) 3d0:seg_r7=0; 3d1:seg_r7=1; 3d2:seg_r7=1; endcasee

12、ndalways (disp_dat)begincase(disp_dat)/七段译码4h0:seg_r6:0 = 7b;/显示04h1:seg_r6:0 = 7b;/显示14h2:seg_r6:0 = 7b;/显示24h3:seg_r6:0 = 7b;/显示34h4:seg_r6:0 = 7b;/显示44h5:seg_r6:0 = 7b;/显示54h6:seg_r6:0 = 7b;/显示64h7:seg_r6:0 = 7b;/显示74h8:seg_r6:0 = 7b;/显示84h9:seg_r6:0 = 7b;/显示9 default:seg_r6:0 = 7b;endcaseendEndm

13、odule2、 仿真波形CLK为TLC549的时钟输入信号,sdata为TLC549的数据输入信号,将其置为高电平,reset为复位信号,也置为高电平.Clk_ad为TLC549的输出时钟信号,cs为TLC549的片选信号,低电平有效;data_out为TLC549的8位数据输出端;c_st为状态机的状态。五、 结论1. 实验数据数码管显示电压值2.51V1。26V0.33V万用表测得电压值2。447V1。221V0。320V2.总结通过对芯片进行语言编程,控制TLC549A/D转换芯片,来实现数字电压表的功能。通过设计表明,具有很强的电路描述和建模能力能从多个层次对数字系统进行建模和描述,从

14、而大大简化了硬件设计任务,提高了设计效率和可靠性.这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。六、心得体会经过这次设计,让我对FPGA人设计流程又有了一个全新的认识。FPGA需要由软件去设计,再由硬件来验证,这种模式正是我们所喜欢的。比如你去设计一个东西,如果只在软件上面仿真成功,而不拿去又硬件验证的话,那学起来兴趣也不大,当你一步一步去调试,使其实际效果与自己的设想完全吻合时,你便会有一种无比的成就感,这也会成为你不断去学习的源泉.还认真开展了6次全国统一行动,遏制了因三超一疲劳而引发的交通事故;在三、四、五月份,我队还按照州政府、州安委会、州支队要求,开展了道路交通集中整治专项行动、治理酒后驾驶、摩托车、电动车专项治理行动,均取得了一定的成效。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁