基于FPGA的多道脉冲幅度分析器设计终稿(7)

2018-12-14 23:00

河南科技大学本科毕业设计(论文)

慢放电。如果电容的电压大于慢放基准电压则快放,反之慢放。放电的总时间为:T=T1+T0, FPGA以一定频率时钟对T计数,计数即为道址。系统将该道址的地址加一,存储到FPGA,最后通过USB或RS-232发送数据。

为了提高FPGA的利用率,同时减少软件在系统综合时的综合时间,在程序编译时,我们采用自上向下的模式编译,即采用将系统的功能划分成几个程序子模块,而在最后使用将这些子模块通过顶层程序综合的方法。

图5-2为FPGA功能模块的划分和各模块的控制关系。虚线内是FPGA芯片,COMP1到COMP5是模拟电路发出的信号,BCD码数据是BCD转换器的输出信号,功能选择是组合开关输出,CLR是系统复位信号,它们都是FPGA的输入信号。XX是控制线性门开/关信号;KF是控制快放开/关信号;ZF是控制自放开/关信号;charge是控制恒流源放电的开/关信号;SY是上阈值PWM调制信号,XY是下阈值PWN调制信号,它们是FPGA根据输入信号状态控制模拟电路的输出信号。最后FPGA将转换的状态输出给数码管显示,将转换后的幅度数据输出给PC进行数据处理,绘出幅度谱。在FPGA内部,分成了三个功能模块,主控制功能模块,数据存储功能模块,数据传输功能模块。

图5-2 FGPA功能模块结构图

主控模块的功能包括输出模拟电路的控制信号,控制存储器的读、写,还有控制数据的传输,同时还有控制数码管的数据显示。数据存储模块的功

27

河南科技大学本科毕业设计(论文)

能包括存储系统转换后的道址和存储运算后的道址中的数据。数据传输模块的功能主要是在控制器的控制下发送数据。

§5.3 功能模块设计

§5.3.1 分频功能模块设计 (1)功能简介

该模块对系统内所用到时钟进行预分频。该模块的RTL级电路图如下所示。

Equal1A[11..0]12' h9C4 --B[11..0]OUTcounter_clk_400Hz~[11..0]SELAdd1PREcounter_clk_400Hz[11..0]OUT0DQ12' h001 --ENAA[11..0]B[11..0]OUT[11..0]12' h4E2 --LessThan0clk_400Hz~reg0OUT001PREDQEQUALDATAA12' h000 --DATABEqual0A[11..0]B[11..0]clk_400HzA[5..0]6' h32 --B[5..0]MUX21OUTCLRADDERcounter_clk_1MHz~[5..0]SELLESS_THANclk_400Hz~0ENACLRAdd0PREcounter_clk_1MHz[5..0]OUT0DQ6' h01 --ENAA[5..0]B[5..0]OUT[5..0]6' h19 --LessThan1clk_1MHz~reg0A[5..0]B[5..0]OUT001PREDQEQUAL6' h00 --DATAADATABclk_1MHzMUX21CLRcounter_9600bit~[12..0]SELDATAA13' h0000 --DATABOUT0ADDERclk_1MHz~0LESS_THANENACLRcounter_9600bit~[25..13]SELDATAADATABOUT0Add2PREDQ13' h0001 --ENAA[12..0]B[12..0]OUT[12..0]13' h1458 --counter_9600bit[12..0]Equal2bclk~reg0A[12..0]B[12..0]0OUT01PREDQbclkMUX21MUX21bclk~0ADDEREQUALENACLRCLRLessThan2A[12..0]13' h0A2C --B[12..0]OUTLESS_THANclk_50MHzassignstop 图5-3 RTL级电路图

(2)时序仿真

图5-4分频模块时序仿真图

这是一个十分频计数器的时序仿真图,如图所示,当清零信号为高电平

28

河南科技大学本科毕业设计(论文)

时ai清零,否则计数器开始计数,当计数计到六时高电平送给do,计到0后又将低电平送给do,从而实现占空比为50%的方波信号。

§5.3.2 主控功能模块设计 (1)功能简介

该模块主要是通过接收外部比较信号(comp),发出相应的外部控制信号,将采样进来的模拟信号数字量化。 状态简介:

START=’1'STATE 0COMP3= ‘1’STATE 1COMP5= ‘1’STOP=’0'COMP3= ‘0’有效信号STATE 4STOP=’1'STATE 2COMP5= ‘0’无效信号STATE 5STATE 3COMP5 = ‘1’

图5-5 主控模块状态流程图

(2)功能简介时序仿真

图5-6 模数转换时序仿真图

图中当start=‘1’时:开始测量转换,xx=‘0’线性门打开;当comp3=‘0’时:信号过峰,xx=‘1’,线性门关闭。由于此时comp1=‘0’,comp2=

29

河南科技大学本科毕业设计(论文)

‘1’(无效信号),经过两个时钟周期后,放电门打开,k f=‘0’(慢放),z f=‘1’开始自放,直到将电容中的电荷放完为止(既comp5=‘0’为止);当xx=‘0’时:线性门再次打开,系统开始第二次测量转换。当comp1=‘1’,comp2=‘0’时:即该信号为有效信号,经过两个时钟周期后,charge=‘0’,k f=‘0’,开始慢放电,与此同时启动内部计数器计数;当comp5=‘0’,save=‘1’时:该数据可存储,数据由data输出。经过两个周期后启动下一次有效测量。在启动第二次有效测量之后,stop=‘1’,但是该模块并不立即停止工作,而是当这次模数转换完之后再送出ready信号,停止该模块动作。 (3)RTL级电路图

zf~reg0comp5current_statecomp1comp2stopcomp3startclkcomp1comp2stopcomp3comp5startclkst0st1st2st3st4st5PREDQ0ENASELCLRdat~[25..13]zkfSelector2WideOr1SEL[2..0]OUTDATA[2..0]dat~[12..0]cnt_dao[12..0]PRE1' h0 --DQDATAASELDATAAOUT0dat[12]~reg0PREDQdat[0]~reg0PREDQENACLRENACLRSELECTORSelector3DATABOUT0DATABdat[12..0]dat[1]~reg0PREDQSEL[2..0]OUTDATA[2..0]ENAMUX21ENACLR1' h0 --dat[2]~reg0PREDQSELECTORCLRMUX21Selector4ENACLRSEL[2..0]dat[3]~reg0PREDQ1' h0 --DATA[2..0]OUTENACLRSELECTORdat[4]~reg0PREDQSelector5ENACLR1' h0 --SEL[2..0]OUTDATA[2..0]dat[5]~reg0PREDQENACLRSELECTORSelector6dat[6]~reg0PREDQ1' h0 --ENACLRDATA[2..0]SEL[2..0]OUTdat[7]~reg0PREDQSELECTORSelector7ENACLRSEL[2..0]dat[8]~reg0PREDQ1' h0 --DATA[2..0]OUTENACLRSELECTORdat[9]~reg0PREDQSelector8ENACLR1' h0 --SEL[2..0]OUTDATA[2..0]dat[10]~reg0PREDQSELECTORENACLRSelector9dat[11]~reg0PREDQ1' h0 --ENACLRSEL[2..0]OUTDATA[2..0]Add0cnt_dao~[12..0]SELECTORSELSelector10OUT0A[12..0]13' h0001 --B[12..0]DATAAOUT[12..0]DATABADDERMUX21SEL[2..0]OUTDATA[2..0]ready~reg0011PREDQ1' h0 --ready~0ENACLRSELECTORSelector11SEL[2..0]OUTDATA[2..0]1' h0 --SELECTORSelector12SEL[2..0]OUTDATA[2..0]1' h0 --SELECTORSelector13SEL[2..0]OUTDATA[2..0]1' h0 --SELECTORSelector14SEL[2..0]OUTDATA[2..0]1' h0 --SELECTORSelector0WideOr01' h0 --011SEL[2..0]OUTDATA[2..0]xx~reg0PREDQxxENACLRxx~0SELECTORSelector1SEL[2..0]OUTDATA[2..0]save~reg0PREDQ1' h0 --101saveENACLRsave~0SELECTORSelector19WideOr5SEL[1..0]OUTDATA[1..0]ENACLRSELECTORcharge~reg0PREDQchargeready 图5-7 RTL级电路图

30

河南科技大学本科毕业设计(论文)

§5.3.3 存储功能模块设计 (1)模块简介

本模块通过调用Cyclone内端口Blockram程序,从而调用专用存储块,实现Ram功能。下图为RTL级电路图。

RAMPORTBDATAOUT[0]PORTBDATAOUT[1]weclk0WECLK0CLK1PORTBWEPORTBCLK0PORTBCLK1DATAIN[15..0]WADDR[9..0]RADDR[9..0]16' h0000 --ENACLR10' h000 --PORTBDATAIN[15..0]PORTBWADDR[9..0]PORTBRADDR[9..0]PORTBDATAOUT[2]PORTBDATAOUT[3]PORTBDATAOUT[4]PORTBDATAOUT[5]PORTBDATAOUT[6]PORTBDATAOUT[7]PORTBDATAOUT[8]PORTBDATAOUT[9]PORTBDATAOUT[10]PORTBDATAOUT[11]PORTBDATAOUT[12]PORTBDATAOUT[13]PORTBDATAOUT[14]PORTBDATAOUT[15]di[15..0]000dpo[15..0]read_a[9..0]a[9..0]PREDQread_dpra[9..0]dpra[9..0]PREDQSYNC_RAMDATAOUT[15..0]spo[15..0]ENACLR 图5-8 RTL级电路图

(2)时序仿真

图5-9 存储模块时序仿真图

当we=―1‖时将数据写入a地址端,同时经过一段延时数据由dpo端读出。而dpra端仅仅负责读取输入地址,dpo则是读取该地址的数据。

§5.3.4 RS232通讯功能模块设计 (1)功能简介

采用RS232通讯协议发送数据 状态简介

31


基于FPGA的多道脉冲幅度分析器设计终稿(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:吉大18秋学期《新视野英语(一)》在线作业一(满分)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: