资源描述
word北华大学电子系统工程实习报告基于FPGA的脉冲占空比测量系统设计学 院:电气信息工程学院专 业: 电子信息工程班 级: 姓 名: 学 号: 指导教师: 17 / 19目 录1实习题目12实习目的与要求13实习内容14实习原理24.1Multisim 软件24.2Quartus II 软件2335 系统硬件电路设计与程序流程设计3336 系统调试与仿真5567实验结论与分析68实习心得89参考文献8附录程序代码与电路原理图9附录程序代码9电路原理图14PCB图14实物图151实习题目基于FPGA矩形脉冲占空比测量系统。2实习目的与要求在两周的实习中,需掌握verilog语言的使用,提高模拟电路设计的能力,掌握FPGA器件根本使用方法,掌握波形发生器与示波器等仪器的使用方法,通过方案设计来对测量系统进展逐步实现,最终完成实习。实习要求如下:1.被测信号为矩形波,频率X围为1Hz5MHz; 2.被测信号峰峰值电压X围为50mV1V; 3.被测脉冲信号占空比的X围为10%90%; 4.显示的分辨率为0.1%,测量相对误差的绝对值不大于0.01。系统框图如图2.1所示:模拟电压放大模块占空比测量模块按键启动模块波形发生器数码管显示模块显示占空比t2停止计数,计算占空比完毕判断被测信号是否有下降沿t1停止计数,计算占空比图2.1 系统架构图3实习内容1.在模拟电路局部利用运算放大器对50mV1V电压进展放大,所以需要设计出电压放大电路,仿真完成后,并作出实物;2在数字电路局部利用quartus II 11.0软件进展设计,用verilog语言进展编辑程序,用ModelSim进展时序仿真,直至占空比测量满足误差位置;3在时序仿真完成后,加上按键控制,数码管显示模块,BCD码转换模块,在对管脚进展正确分配后,下到FPGA中对系统进展测试,在实际情况下对系统进展调试。4 实习原理4.1 Multisim 软件Multisim是美国国家仪器NI某某推出的以Windows为根底的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。使用Multisim交互式地搭建电路原理图,并对电路进展仿真。Multisim提炼了SPICE仿真的复杂内容,无需懂得深入的SPICE技术就可以很快地进展捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。4.2 Quartus II 软件Quartus II可以在XP、Linux以与Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统SOPC开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;Quartus II功能如下:芯片电路平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。ModeSim软件Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。芯片UA741单运放是高增益运算放大器,用于军事,工业和商业应用。这类单片硅集成电路器件提供输出短路保护和闭锁自由运作。具有广泛的共同模式,差模信号X围和低失调电压调零能力与使用适当的电位。5 系统硬件电路设计与程序流程设计首先,利用Multisim软件对电压放大电路进展仿真,根据仿真结果对电路进展修改,同相放大电路如图5.1所示,公式如5.1所示:Vi=Vp=Vn=(R1* Vo )/(R1+R2) 5.1然后根据电路图对实物进展制作,再进展测试。系统软件程序流程图如图5.2所示:数据初始化开始否是判断start=1否是判断被测信号是否有下降沿t1开始计数t2开始计数判断被测信号是否有上升沿否t1停止计数,t2开始计数否t2停止计数,t1开始计数判断被测信号是否有下降沿判断被测信号是否有上升沿t2停止计数,算占空比显示占空比是判断被测信号是否有下降沿否否判断被测信号是否有上升沿是是否t1停止计数,算占空比完毕6 系统调试与仿真1打开Quartus II,新建工程选择文件存放位置,工程名设置截图如图6.1.1所示:图6.1.1 工程名设置截图2选择好器件,最好不要默认型号,器件选择截图如图6.1.2所示:图6.1.2 器件选择截图3本次实习需要仿真,所以要关联ModelSim,语言使用VerilogHDL,关联ModelSim截图如图6。1.3所示:图6.1.3 关联ModelSim截图4新建“*.v文件进展程序编写,编译后成功后进展testbench测试文件的编写,保存后进展编译,编译成功后进展仿真。仿真结果如图6.2.1所示。高电平为1500ns,低电平为2260ns ,理论值为39.8%,实际测量值39.8%。图6.2.1 仿真结果7实验结论与分析在基于FPGA矩形脉冲占空比测量系统中,模拟局部能通过50mv1v电压放大到3.3v的放大,放大的电压经过管脚输入FPGA进展测试占空比,通过按键开始启动测试,并将测试结果显示到数码管上,精度为0.1%。序号输入电压V频率实际占空比%测量占空比%频率误差121HZ310HZ4500HZ51KHZ610KHZ7500KHZ81MHZ93MHZ105MHZ当然,在此测量系统中存在误差,误差如下:1波形发生器在产生波形时,产生误差;2波形经过模拟电路到FPGA过程中,存在噪声干扰,此时用示波器显示会出现少许毛刺;3由于FPGA是利用时钟节拍进展对信号的采集,例如,当时钟前一个上升沿采到低电平,后一时钟上升沿采到高电平,就可以判断被测信号有上升沿的到来,就在这一过程就存在误差,误差分析图如图7.1所示:Clk误差被测信号被测信号图7.1 误差分析图为了减小以上存在的误差,可以选用精度更好的波形发生器,适当提高FPGA的主频,提高模拟电路抗干扰能力,是测量系统精度提高。8实习心得在这两周的实习过程中,我觉得对于占空比测量系统的设计,其硬件电路是在模电的根底上设计的,主要是解决电压放大问题,锻炼了模拟电路的分析能力,对芯片手册的阅读能力,也加强对电路焊制与布局的能力。而数字局部设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力。因此在整个设计过程中大局部时间是用在程序上面的。怎样衔接各个模块才是关键的问题所在,这需要对FPGA的结构很熟悉。一个好的设计架构清晰的思路可以决定设计难易程度和实现精度,可以巩固根底知识,提高实际项目实践能力,本次电子系统设计实习全方面的锻炼各种器件的使用能力以与知识运用的灵活性,进一步加强了团队合作的能力。通过这次设计,我懂得了学习的重要性,学会了坚持和努力,在实训过程中我们可以掌握书本中没有的技能,加强自身各方面的能力,为以后工作打下根底。9参考文献1 常本康精细低频信号频率与占空比测量电路的设计与应用医学研究生学报,20028154.2 梁志国脉冲波形占空比的数字测量与不确定度分析航天计测技术,20042:100260613 汪虹,李宏基于FPGA的等占空比任意整数分频器的设计仪器与仪表,2002(1):1004373.4 阎石.数字电子技术根底.第5版:学位论文某某:某某大学,2010.附录程序代码与电路原理图附录程序代码module pinlvji_top(clk,rst_n,clk_in,start,seg_data);input clk;input rst_n;input clk_in;input start;output 31:0 seg_data;wire start_biao;wire clk_1s;wire clkx;wire clk_biao_out;wire start_fsm;wire c0;wire 11:0 zhankongbi_out;my_pll my_pll_u(.inclk0(clk),.c0(c0);zhankongbi zhankongbi_u(.clk(c0),.rst_n(rst_n),.start_fsm(start_fsm),.clk_biao_out(clk_biao_out),.clk_biao_xia(clk_biao_xia),.t_zhan(zhankongbi_out);seg_v seg_v_u(.rst_n(rst_n), .clk(c0), .seg_data(seg_data),.hex(zhankongbi_out);endmodulemodule zhankongbi(clk,rst_n,start_fsm,clk_biao_out,clk_biao_xia,t_zhan);/占空比模块input clk;input rst_n;input start_fsm;/开始标志input clk_biao_out;/上升沿input clk_biao_xia;/下降沿output 11:0 t_zhan;/占空比值输出reg 40:0 t1;reg 40:0 t2;reg 2:0 state;reg 40:0t;reg 41:0thh;reg biao;always (posedge clk)beginif(!rst_n) begint1 = 0;t2 = 0;state = 0; t = 41d0;thh = 42d0;biao = 0;endelse case (state)0:beginif(clk_biao_out & start_fsm)/先上升沿beginstate = 1;t1 = t1 + 41d1;biao = 0;endelse if(clk_biao_xia & start_fsm)/先下降沿beginstate = 4;t2 = t2 + 41d1;biao = 0;endelse beginstate = 0;biao = 0;endend1:beginif(!clk_biao_xia )/下降沿begint1 = t1 + 41d1;state = 1;endelsebegint2 = t2 + 41d1;state = 2;endend2:beginif(clk_biao_out | !start_fsm)/上升沿begin/t_zhan =(t1*10000)/(t1+t2);/计算占空比state = 3;thh = t1*1000;biao = 1;endelsebegint2 = t2 + 41d1;state = 2;endend3:beginstate = 3;/t_zhan =thh;/计算占空比end4:beginif(!clk_biao_out )begint2 = t2 + 41d1;state = 4;endelsebegint1 = t1 + 41d1;state = 5;endend5:begin if(clk_biao_xia | !start_fsm)/上升沿或停止begin/t_zhan =(t1*10000)/(t1+t2);/计算占空比state = 3;thh = t1*1000;biao = 1;endelsebegint1 = t1 + 41d1;state = 5;endendendcaseendassignt_zhan = (biao=1)?(thh/t):0;endmodule电路原理图PCB图实物图500KHZ,电压为2.5V,测量10%占空比时:500KHZ,电压为2.5V,测量50%占空比时:500KHZ,电压为2.5V,测量50%占空比时:
展开阅读全文