波形发生器课设报告_第1页
波形发生器课设报告_第2页
波形发生器课设报告_第3页
波形发生器课设报告_第4页
波形发生器课设报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西北工业大学课程设计报告题目:波形发生器学院自动化学院专业自动化班级09031201日期2015年1月15日摘要1题目本次实验主要是以FPGA作为根底,制作一个简易波形发生器,不仅可以显示学号,同时可以通过按键输入产生波形,并且可以根据需要按键修改波形以及频率。2要求〔1〕采用数码管显示。〔2〕循环显示两个人的学号后四位。〔1〕根据标准键盘输入不同,分别输出正弦波、方波、三角波〔频率=1KHz〕。〔2〕根据标准键盘改变频率〔频率变化范围:1KHz-10KHz,每次频率变化1KHz〕。〔3〕输出频率在数码管上显示〔用模块PCF8591进行D/A转化〕。3设计平台与根底3.1设计平台与仿真工具QuartusII是一种强有力的提供了EDA工具,是美国altera公司推出的,它完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片〔电路〕平面布局连线编辑;LogicLock增量设计方法,可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创立,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方SOPC软件使用的VHDL网表文件和Verilog网表文件。测试采用了QuartusII的内嵌式逻辑分析仪内嵌式逻辑分析仪三项主要优点:1.它们的使用不增加引脚。可通过FPGA上已有的专门JTAG引脚访问,即使没有其它可用引脚,这种调试方法也能得到内部可视能力。2.简单的探测。探测包括把结点路由到内部逻辑分析仪的输入,不需要担忧为得到有效信息,应如何连接到电路板上,也不存在信号完整性问题。3.内核是廉价的。FPGA厂商把他们的业务模型建立于用芯片所获取价值的根底上,所以所用的调试IP通常能以低于$1,000美元的价格获得。3.2.1FPGA器件的选择由于Altera大学方案较为普及,设计并平台搭建方便,故采用AlteraFPGA。Altera的主流FPGA分为两大类,一种侧重低本钱应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone,CycloneII;还有一种侧重于高性能应用,容量大,性能满足各类高端应用,如Startix,StratixII等,用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低本钱器件。Cyclone〔飓风〕:Altera中等规模FPGA,2003年推出,0.13um工艺,1.5v内核供电,与Stratix结构类似,是一种低本钱FPGA系列,是目前主流产品,其配置芯片也改用全新的产品。CycloneII:2005年开始推出,90nm工艺,1.2v内核供电,属于低本钱FPGA,性能和Cyclone相当,提供了硬件乘法器单元。CycloneIII:CycloneIIIFPGA提供丰富的逻辑存储器和DSP功能功耗更低。Cyclone即可以满足本次课题的设计需求,所以本课题选用CycloneIII。3.2.2D/A芯片选型PCF8591是一个单片集成、单独供电、低功耗、8-bitCMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0,A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。功能:【1】PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。【2】PCF8591的最大转化速率由I2C总线的最大速率决定。特性:【1】单独供电【3】低待机电流【4】通过I2C总线串行输入/输出【5】PCF8591通过3个硬件地址引脚寻址【6】PCF8591的采样率由I2C总线速率决定【7】4个模拟输入可编程为单端型或差分输入【8】自动增量频道选择【9】PCF8591的模拟电压范围从VSS到VDD【10】PCF8591内置跟踪保持电路【11】8-bit逐次逼近A/D转换器【12】通过1路模拟输出实现DAC增益4方案设计4.1系统介绍利用FPGA技术的强大功能,实现A/D转换,信号采集并显示采集信号的幅度、频率。并利用D/A转换产生幅度、频率可调的方波、正弦波、三角波。工作原理系统框图:信号产生局部:信号发生器采用D/A设计方案。首先在FPGA中设计预先定制好的波形发生ROM表,然后键盘控制FPGA读取ROM表中写好的数据,送至D/A转换芯片后输出波形。同时,由键盘输入控制,转换读取数据的ROM表格,来转换输出波形的种类;改变FPGA读取ROM表的读数间隔来改变输出信号的频率。信号测量局部:将被测信号经过放大器放大到可以被比拟器识别的幅度值,经过比拟器过零比拟,产生同频率的方波信号,可以被FPGA直接识别,进行计数,经过FPGA内部数据处理,计算出被测信号的频率值,再由液晶显示。4.3.1输入设计输入设计采用PS2键盘输入,即通过按键选择输出波形是正弦波、三角波还是方波,同时也通过键盘输入来改变波形的频率。4.3.2波形发生模块由于波形发生控制器和波形数据ROM都是利用硬件描述语言编程实现的,所以统称为波形发生模块。波形发生控制器的作用是利用FPGA选择产生正弦波或者三角波,然后再发出地址信号,取ROM中存好的正弦波或三角波的采样数据。波形发生模块包括波形切换和频率设置两个进程。切换进程的作用是完成通过按键来选择输出三角波或者三角波。频率设置进程主要是对输出的频率进行设置,只要适宜的改变采样点的时间间隔就可完成频率设置。ROM数据存储模块主要是用来存储正弦波或者三角波的数据。当接收来自FPGA的地址信号后,将从数据线输出相应的波形数据,这样便得到数字化的波形。4.3.3D/A转换D/A选用PCF8591作为主要波形发生芯片。引脚图如图1所示,结构图如图2示。各引脚说明如下:D/A与FPGA扩展接口相连接,搭成硬件连接系统,在此根底之上,设计软件代码,用FPGA控制D/A的工作,和两者之间互相配合。如下图。系统原理图(1)用示波器观察产生波形;(2)在液晶屏上读取信号频率值;FPGA控制AD控制状态机P1:process(present_state,next_state,AD_INT)begincasepresent_stateiswhenAD_IDLE=> AD_CS<='0'; AD_WR<='1'; AD_RD<='0'; next_state<=AD_STATE_1; whenAD_STATE_1=> AD_WR<='0'; AD_CS<='0'; AD_RD<='0'; next_state<=AD_STATE_2; whenAD_STATE_2=> AD_WR<='1'; AD_CS<='0'; AD_RD<='0'; ifAD_INT='1'THEN next_state<=AD_WAIT; ELSE next_state<=AD_STATE_1; ENDIF;whenAD_WAIT=> AD_CS<='0'; AD_WR<='0'; AD_RD<='0';next_state<=AD_READ;whenAD_READ=> AD_CS<='0'; AD_WR<='1'; AD_RD<='0';next_state<=AD_STOP; whenAD_STOP=> next_state<=AD_IDLE;endcase;endprocessP1;FPGA控制D/A控制状态机p2:process(clk1,da_state)beginifrising_edge(clk1)thencaseda_stateiswhenaidle=>da_cs<='1';da_wr<='1';da_state<=astart;whenastart=>da_cs<='0';da_wr<='1';da_state<=awrite;whenawrite=>da_cs<='0';da_wr<='0';da_state<=ahold;whenahold=>da_out<=dadatain;da_state<=astop;whenastop=>da_state<=aidle;whenothers=>null;endcase;endif;endprocessp2;FPGA控制频率采集程序p3:process(clkin,temp1,temp2,temp3,temp4,temp5,temp6)beginifclr='0'thentemp1<="0000";temp2<="0000";temp3<="0000";temp4<="0000";temp5<="0000";temp6<="0000";temp7<="0000";temp8<="0000";elsifrising_edge(clkin)thenifsysclk='1'theniftemp1="1001"thentemp1<="0000";iftemp2="1001"thentemp2<="0000";iftemp3="1001"thentemp3<="0000";iftemp4="1001"thentemp4<="0000";iftemp5="1001"thentemp5<="0000";iftemp6="1001"thentemp6<="0000";iftemp7="1001"thentemp7<="0000";iftemp8="1001"thentemp8<="0000";elsetemp8<=temp8+1;endif;elsetemp7<=temp7+1;endif;elsetemp6<=temp6+1;endif;elsetemp5<=temp5+1;endif;elsetemp4<=temp4+1;endif;elsetemp3<=temp3+1;endif;elsetemp2<=temp2+1;endif;elsetemp1<=temp1+1;endif;elseiftemp1/="0000"ortemp2/="0000"ortemp3/="0000"ortemp4/="0000"ortemp5/="0000"ortemp6/="0000"ortemp7/="0000"ortemp8/="0000"thendat1<=temp1;dat2<=temp2;dat3<=temp3;dat4<=temp4;dat5<=temp5;dat6<=temp6;dat7<=temp7;dat8<=temp8;temp1<="0000";temp2<="0000";temp3<="0000";temp4<="0000";temp5<="0000";temp6<="0000";temp7<="0000";temp8<="0000";endif;endif;endif;endprocessp3;建立ROM表:always@(posedgesin_clk)begin//sincase(count_4) 8'd001:data_sin<=8'd128; 8'd002:data_sin<=8'd134; 8'd003:data_sin<=8'd140; 8'd004:data_sin<=8'd146; 8'd005:data_sin<=8'd152; 8'd006:data_sin<=8'd158; 8'd007:data_sin<= 8'd165; 8'd008:data_sin<= 8'd170; 8'd009:data_sin<= 8'd176; 8'd010:data_sin<= 8'd182; 8'd011:data_sin<= 8'd188; 8'd012:data_sin<= 8'd193; 8'd013:data_sin<= 8'd198; 8'd014:data_sin<= 8'd203; 8'd015:data_sin<= 8'd208; 8'd016:data_sin<= 8'd213; 8'd017:data_sin<= 8'd218; 8'd018:data_sin<= 8'd222; 8'd019:data_sin<= 8'd226; 8'd020:data_sin<= 8'd230; 8'd021:data_sin<= 8'd234; 8'd022:data_sin<= 8'd237; 8'd023:data_sin<= 8'd240; 8'd024:data_sin<= 8'd243; 8'd025:data_sin<= 8'd245; 8'd026:data_sin<= 8'd248; 8'd027:data_sin<= 8'd250; 8'd028:data_sin<= 8'd251; 8'd029:data_sin<= 8'd253; 8'd030:data_sin<= 8'd254; 8'd031:data_sin<= 8'd254; 8'd032:data_sin<= 8'd255; 8'd033:data_sin<= 8'd255; 8'd034:data_sin<= 8'd255; 8'd035:data_sin<= 8'd254; 8'd036:data_sin<= 8'd254; 8'd037:data_sin<= 8'd253; 8'd038:data_sin<= 8'd251; 8'd039:data_sin<= 8'd250; 8'd040:data_sin<= 8'd248; 8'd041:data_sin<= 8'd245; 8'd042:data_sin<= 8'd243; 8'd043:data_sin<= 8'd240; 8'd044:data_sin<= 8'd237; 8'd045:data_sin<= 8'd234; 8'd046:data_sin<= 8'd230; 8'd047:data_sin<= 8'd226; 8'd048:data_sin<= 8'd222; 8'd049:data_sin<= 8'd218; 8'd050:data_sin<= 8'd213; 8'd051:data_sin<= 8'd208; 8'd052:data_sin<= 8'd203; 8'd053:data_sin<= 8'd198; 8'd054:data_sin<= 8'd193; 8'd055:data_sin<= 8'd188; 8'd056:data_sin<= 8'd182; 8'd057:data_sin<= 8'd176; 8'd058:data_sin<= 8'd170; 8'd059:data_sin<= 8'd165; 8'd060:data_sin<= 8'd158; 8'd061:data_sin<= 8'd152; 8'd062:data_sin<= 8'd146; 8'd063:data_sin<= 8'd140; 8'd064:data_sin<= 8'd134; 8'd065:data_sin<= 8'd128; 8'd066:data_sin<= 8'd121; 8'd067:data_sin<= 8'd115; 8'd068:data_sin<= 8'd109; 8'd069:data_sin<= 8'd103; 8'd070:data_sin<= 8'd97; 8'd071:data_sin<= 8'd90; 8'd072:data_sin<= 8'd85; 8'd073:data_sin<= 8'd79; 8'd074:data_sin<= 8'd73; 8'd075:data_sin<= 8'd67; 8'd076:data_sin<= 8'd62; 8'd077:data_sin<= 8'd57; 8'd078:data_sin<= 8'd52; 8'd079:data_sin<= 8'd47; 8'd080:data_sin<= 8'd42; 8'd081:data_sin<= 8'd37; 8'd082:data_sin<= 8'd33; 8'd083:data_sin<= 8'd29; 8'd084:data_sin<= 8'd25; 8'd085:data_sin<= 8'd21; 8'd086:data_sin<= 8'd18; 8'd087:data_sin<= 8'd15; 8'd088:data_sin<= 8'd12; 8'd089:data_sin<= 8'd10; 8'd090:data_sin<= 8'd7; 8'd091:data_sin<= 8'd5; 8'd092:data_sin<= 8'd4; 8'd093:data_sin<= 8'd2; 8'd094:data_sin<= 8'd1; 8'd095:data_sin<= 8'd1; 8'd096:data_sin<= 8'd0; 8'd097:data_sin<= 8'd0; 8'd098:data_sin<= 8'd0; 8'd099:data_sin<= 8'd1; 8'd100:data_sin<= 8'd1; 8'd101:data_sin<= 8'd2; 8'd102:data_sin<= 8'd4; 8'd103:data_sin<= 8'd5; 8'd104:data_sin<= 8'd7; 8'd105:data_sin<= 8'd10; 8'd106:data_sin<= 8'd12; 8'd107:data_sin<= 8'd15; 8'd108:data_sin<= 8'd18; 8'd109:data_sin<= 8'd21; 8'd110:data_sin<= 8'd25; 8'd111:data_sin<= 8'd29; 8'd112:data_sin<= 8'd33; 8'd113:data_sin<= 8'd37; 8'd114:data_sin<= 8'd42; 8'd115:data_sin<= 8'd47; 8'd116:data_sin<= 8'd52; 8'd117:data_sin<= 8'd57; 8'd118:data_sin<= 8'd62; 8'd119:data_sin<= 8'd67; 8'd120:data_sin<= 8'd73; 8'd121:data_sin<= 8'd79; 8'd122:data_sin<= 8'd85; 8'd123:data_sin<= 8'd90; 8'd124:data_sin<= 8'd97; 8'd125:data_sin<= 8'd103; 8'd126:data_sin<= 8'd109; 8'd127:data_sin<= 8'd115; 8'd128:begin data_sin<= 8'd121; count_4<=25'd0; end endcaseendalways@(posedgediv_clk)begin//iicforsjbnumb<=numb+8'b0000001;case(numb)8'h01:scl<=1;//s8'h02:sda<=0;8'h03:scl<=0;//address8'h04:sda<=1;8'h05:scl<=1;8'h06:scl<=0;8'h07:sda<=0;8'h08:scl<=1;8'h09:scl<=0;8'h0a:sda<=0;8'h0b:scl<=1;8'h0c:scl<=0;8'h0d:sda<=1;8'h0e:scl<=1;8'h0f:scl<=0;8'h10:sda<=0;8'h11:scl<=1;8'h12:scl<=0;8'h13:sda<=0;8'h14:scl<=1;8'h15:scl<=0;8'h16:scl<=1;8'h17:scl<=0;8'h18:scl<=1;8'h19:scl<=0;8'h1a:scl<=1;//ack8'h1b:scl<=0;8'h1c:sda<=1;//48'h1d:scl<=1;8'h1e:scl<=0;8'h1f:sda<=1;8'h20:scl<=1;8'h21:scl<=0;8'h22:sda<=0;8'h23:scl<=1;8'h24:scl<=0;8'h25:scl<=1;8'h26:scl<=0;8'h27:scl<=1;8'h28:scl<=0;8'h29:scl<=1;8'h2a:scl<=0;8'h2b:scl<=1;8'h2c:scl<=0;8'h2d:scl<=1;8'h2e:scl<=0;8'h2f:scl<=1;8'h30:scl<=0;//ack8'h31:sda<=data[7];8'h32:scl<=1;8'h33:scl<=0;8'h34:sda<=data[6];8'h35:scl<=1;8'h36:scl<=0;8'h37:sda<=data[5];8'h38:scl<=1;8'h39:scl<=0;8'h3a:sda<=data[4];8'h3b:scl<=1;8'h3c:scl<=0;8'h3d:sda<=data[3];8'h3e:scl<=1;8'h3f:scl<=0;8'h40:sda<=data[2];8'h41:scl<=1;8'h42:scl<=0;8'h43:sda<=data[1];8'h44:scl<=1;8'h45:scl<=0;8'h46:sda<=data[0];8'h47:scl<=1;8'h48:scl<=0;8'h49:sda<=0;//ack8'h4a:scl<=1;8'h4b:scl<=0;8'h4c:scl<=1;//stop8'h4d:sda<=1;endcaseendalways@(posedgeplxs_clk)begin//sjbxianshicase(count_jc)16'd50000:scpl<=8'b11111001;16'd25000:scpl<=8'b10100100;16'd16666:scpl<=8'b10110000;16'd12500:scpl<=8'b10011001;16'd10000:scpl<=8'b10010010;16'd08333:scpl<=8'b10000010;16'd07142:scpl<=8'b11111000;16'd06250:scpl<=8'b10000000;16'd05555:scpl<=8'b10010000;16'd05000:scpl<=8'b10001000;endcaseendalways@(posedgediv_clk)begin//iicforfbnumb_fb<=numb_fb+8'b0000001;case(numb_fb)8'h01:scl1<=1;//s8'h02:sda1<=0;8'h03:scl1<=0;//address8'h04:sda1<=1;8'h05:scl1<=1;8'h06:scl1<=0;8'h07:sda1<=0;8'h08:scl1<=1;8'h09:scl1<=0;8'h0a:sda1<=0;8'h0b:scl1<=1;8'h0c:scl1<=0;8'h0d:sda1<=1;8'h0e:scl1<=1;8'h0f:scl1<=0;8'h10:sda1<=0;8'h11:scl1<=1;8'h12:scl1<=0;8'h13:sda1<=0;8'h14:scl1<=1;8'h15:scl1<=0;8'h16:scl1<=1;8'h17:scl1<=0;8'h18:scl1<=1;8'h19:scl1<=0;8'h1a:scl1<=1;//ack8'h1b:scl1<=0;8'h1c:sda1<=1;//48'h1d:scl1<=1;8'h1e:scl1<=0;8'h1f:sda1<=1;8'h20:scl1<=1;8'h21:scl1<=0;8'h22:sda1<=0;8'h23:scl1<=1;8'h24:scl1<=0;8'h25:scl1<=1;8'h26:scl1<=0;8'h27:scl1<=1;8'h28:scl1<=0;8'h29:scl1<=1;8'h2a:scl1<=0;8'h2b:scl1<=1;8'h2c:scl1<=0;8'h2d:scl1<=1;8'h2e:scl1<=0;8'h2f:scl1<=1;8'h30:scl1<=0;//ack8'h31:sda1<=data_fb[7];8'h32:scl1<=1;8'h33:scl1<=0;8'h34:sda1<=data_fb[6];8'h35:scl1<=1;8'h36:scl1<=0;8'h37:sda1<=data_fb[5];8'h38:scl1<=1;8'h39:scl1<=0;8'h3a:sda1<=data_fb[4];8'h3b:scl1<=1;8'h3c:scl1<=0;8'h3d:sda1<=data_fb[3];8'h3e:scl1<=1;8'h3f:scl1<=0;8'h40:sda1<=data_fb[2];8'h41:scl1<=1;8'h42:scl1<=0;8'h43:sda1<=data_fb[1];8'h44:scl1<=1;8'h45:scl1<=0;8'h46:sda1<=data_fb[0];8'h47:scl1<=1;8'h48:scl1<=0;8'h49:sda1<=0;//ack8'h4a:scl1<=1;8'h4b:scl1<=0;8'h4c:scl1<=1;//stop8'h4d:sda1<=1;endcaseendalways@(posedgeplxs_clk)begin//fbxianshicase(count_jcfb)16'd50000:scpl_fb<=8'b11111001;16'd25000:scpl_fb<=8'b10100100;16'd16666:scpl_fb<=8'b10110000;16'd12500:scpl_fb<=8'b10011001;16'd10000:scpl_fb<=8'b10010010;16'd08333:scpl_fb<=8'b10000010;16'd07142:scpl_fb<=8'b11111000;16'd06250:scpl_fb<=8'b10000000;16'd05555:scpl_fb<=8'b10010000;16'd05000:scpl_fb<=8'b10001000;endcaseendalways@(posedgediv_clk)begin//iicforsinnumb_sin<=numb_sin+8'b0000001;case(numb_sin)8'h01:scl2<=1;//s8'h02:sda2<=0;8'h03:scl2<=0;//address8'h04:sda2<=1;8'h05:scl2<=1;8'h06:scl2<=0;8'h07:sda2<=0;8'h08:scl2<=1;8'h09:scl2<=0;8'h0a:sda2<=0;8'h0b:scl2<=1;8'h0c:scl2<=0;8'h0d:sda2<=1;8'h0e:scl2<=1;8'h0f:scl2<=0;8'h10:sda2<=0;8'h11:scl2<=1;8'h12:scl2<=0;8'h13:sda2<=0;8'h14:scl2<=1;8'h15:scl2<=0;8'h16:scl2<=1;8'h17:scl2<=0;8'h18:scl2<=1;8'h19:scl2<=0;8'h1a:scl2<=1;//ack8'h1b:scl2<=0;8'h1c:sda2<=1;//48'h1d:scl2<=1;8'h1e:scl2<=0;8'h1f:sda2<=1;8'h20:scl2<=1;8'h21:scl2<=0;8'h22:sda2<=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论