有效
一种基于FPGA的波形发生电路及波形发生方法
罗秋明、雷焰明、吴坤忠、钟毅文、魏轩
深圳大学
摘要
本申请公开了一种基于FPGA的波形发生电路及波形发生方法,涉及波形生成技术领域,该波形发生电路中包括现场可编程门阵列和数模转换芯片;在现场可编程门阵列中,通过内存访问模块访问内存以获取自定义波形对应的配置信息和数据信息;通过选择模块和控制模块依次根据配置信息和数据信息,生成选择信号和控制信号,以控制波形生成模块的输出,再通过波形生成模块根据数据信息输出自定义波形数字信号,最后通过数模转换芯片根据自定义波形数字信号,输出自定义波形;本申请使用FPGA替代专用硬件电路,降低了生产和开发成本,还可以通过修改内存中的配置信息,实现不同类型打印头波形的生成,更新换代简单。
1.一种基于FPGA的波形发生电路,其特征在于,包括:现场可编程门阵列和数模转换芯片;所述现场可编程门阵列中包括内存访问模块、选择模块、控制模块和波形生成模块;所述内存访问模块,用于访问内存以获取自定义波形对应的配置信息和数据信息,并将所述配置信息和所述数据信息发送给所述选择模块、所述控制模块和所述波形生成模块;内存访问模块负责从内存中读入数据,先将数据存入块随机存取器,然后从块随机存取器中取出数据分配给其它模块使用;读块随机存取器的功能以状态机的形式描述,在状态机中,使用IDLE、READF、READD和WAIT分别表示空状态、读配置信息、读数据信息和等待状态;当读内存结束时,状态机由IDLE状态转移到READF状态;当读配置信息结束后,状态机由READF状态转移到READD状态;当读BRAM数据结束后,状态机由READD状态转移到WAIT状态;在WAIT状态下,若未读完所有的数据信息且通过mend信号判断一次波形生成结束,则状态转移到READD,继续下一次的打印;若读完所有的数据信息并且通过gen_end信号判断波形生成结束,状态转移到IDEL并通过将bend置为1,标志读BRAM结束;所述配置信息包括:时钟脉冲个数、波形输出次数和等待时间;所述数据信息包括选择模块数据信号、控制模块数据信号、描述当前需要生成的波形的波形数组、描述下降或上升沿端部的电压数组和描述下降沿、上升沿或水平波形持续时间的时间数组;其中,波形包括下降沿/上升沿/水平波形;所述选择模块,用于根据所述内存访问模块的读内存结束信号、所述配置信息和所述数据信息,生成选择信号,以选择所述控制模块生成的控制信号;所述控制模块,用于根据所述选择模块的选择信号、所述配置信息和所述数据信息,生成控制信号,以控制所述波形生成模块的输出;所述波形生成模块,用于根据所述控制模块的控制信号和所述数据信息,输出自定义波形数字信号;所述数模转换芯片,用于根据所述自定义波形数字信号,输出自定义波形;开始工作时,所述内存访问模块将打印的数据从内存中读出并存入BRAM中,然后从BRAM中读出数据分别传输给所述选择模块、所述控制模块和所述波形生成模块;所述内存访问模块每读完一次打印的数据,就通知所述选择模块产生波形,选择模块产生一次基础波形就会通知控制模块产生波形;当所述选择模块产生了配置信息中设置的LOOP次波形后,通知内存访问模块波形生成结束;所述控制模块产生一次基础波形后就会通知所述波形生成模块产生波形,当所述控制模块产生了配置信息中设置的LOOP次后,通知所述内存访问模块继续读取下一次波形生成需要的数据;其中,控制模块产生的LOOP次波形需要在选择模块的等待时间结束前完成;波形生成模块接收到控制模块的通知后开始生成DAC需要的波形,但该波形需要在控制模块的等待时间结束前生成完成。
2.根据权利要求1所述的基于FPGA的波形发生电路,其特征在于,所述选择信号包括:选择模块时钟信号、选择模块锁存信号和选择模块数据信号;所述控制信号包括:控制模块时钟信号、控制模块锁存信号和控制模块数据信号。
3.根据权利要求2所述的基于FPGA的波形发生电路,其特征在于,根据所述内存访问模块的读内存结束信号、所述配置信息和所述数据信息,生成选择信号,具体包括:以所述内存访问模块的读内存结束信号作为所述选择模块的启动信号;通过所述选择模块,根据所述时钟脉冲个数、所述波形输出次数、所述等待时间和所述选择模块数据信号,生成选择信号。
4.根据权利要求3所述的基于FPGA的波形发生电路,其特征在于,根据所述选择模块的选择信号、所述配置信息和所述数据信息,生成控制信号,具体包括:以所述选择信号中的选择模块锁存信号的取反值,作为所述控制模块的启动信号;通过所述控制模块,根据所述时钟脉冲个数、所述波形输出次数、所述等待时间和所述控制模块数据信号,生成控制信号。
5.根据权利要求4所述的基于FPGA的波形发生电路,其特征在于,根据所述控制模块的控制信号和所述数据信息,输出自定义波形数字信号,具体包括:以所述控制信号中的控制模块锁存信号的取反值,作为所述波形生成模块的启动信号;通过所述波形生成模块,根据所述波形数组、所述电压数组和所述时间数组,输出自定义波形数字信号。
6.一种基于FPGA的波形发生方法,其特征在于,包括:通过内存访问模块访问内存以获取自定义波形对应的配置信息和数据信息,并将所述配置信息和所述数据信息发送给选择模块、控制模块和波形生成模块;内存访问模块负责从内存中读入数据,先将数据存入块随机存取器,然后从块随机存取器中取出数据分配给其它模块使用;读块随机存取器的功能以状态机的形式描述,在状态机中,使用IDLE、READF、READD和WAIT分别表示空状态、读配置信息、读数据信息和等待状态;当读内存结束时,状态机由IDLE状态转移到READF状态;当读配置信息结束后,状态机由READF状态转移到READD状态;当读BRAM数据结束后,状态机由READD状态转移到WAIT状态;在WAIT状态下,若未读完所有的数据信息且通过mend信号判断一次波形生成结束,则状态转移到READD,继续下一次的打印;若读完所有的数据信息并且通过gen_end信号判断波形生成结束,状态转移到IDEL并通过将bend置为1,标志读BRAM结束;所述配置信息包括:时钟脉冲个数、波形输出次数和等待时间;所述数据信息包括选择模块数据信号、控制模块数据信号、描述当前需要生成的波形的波形数组、描述下降或上升沿端部的电压数组和描述下降沿、上升沿或水平波形持续时间的时间数组;其中,波形包括下降沿/上升沿/水平波形;通过选择模块根据所述内存访问模块的读内存结束信号、所述配置信息和所述数据信息,生成选择信号,以选择所述控制模块生成的控制信号;通过控制模块根据所述选择模块的选择信号、所述配置信息和所述数据信息,生成控制信号,以控制所述波形生成模块的输出;通过波形生成模块根据所述控制模块的控制信号和所述数据信息,输出自定义波形数字信号;通过数模转换芯片根据所述自定义波形数字信号,输出自定义波形;开始工作时,所述内存访问模块将打印的数据从内存中读出并存入BRAM中,然后从BRAM中读出数据分别传输给所述选择模块、所述控制模块和所述波形生成模块;所述内存访问模块每读完一次打印的数据,就通知所述选择模块产生波形,选择模块产生一次基础波形就会通知控制模块产生波形;当所述选择模块产生了配置信息中设置的LOOP次波形后,通知内存访问模块波形生成结束;所述控制模块产生一次基础波形后就会通知所述波形生成模块产生波形,当所述控制模块产生了配置信息中设置的LOOP次后,通知所述内存访问模块继续读取下一次波形生成需要的数据;其中,控制模块产生的LOOP次波形需要在选择模块的等待时间结束前完成;波形生成模块接收到控制模块的通知后开始生成DAC需要的波形,但该波形需要在控制模块的等待时间结束前生成完成。
7.根据权利要求6所述的基于FPGA的波形发生方法,其特征在于,通过选择模块根据所述内存访问模块的读内存结束信号、所述配置信息和所述数据信息,生成选择信号,以选择所述控制模块生成的控制信号,具体包括:以所述内存访问模块的读内存结束信号作为所述选择模块的启动信号;通过所述选择模块,根据所述时钟脉冲个数、所述波形输出次数、所述等待时间和所述选择模块数据信号,生成选择信号;所述选择信号包括:选择模块时钟信号、选择模块锁存信号和选择模块数据信号。
8.根据权利要求7所述的基于FPGA的波形发生方法,其特征在于,通过控制模块根据所述选择模块的选择信号、所述配置信息和所述数据信息,生成控制信号,以控制所述波形生成模块的输出,具体包括:以所述选择信号中的选择模块锁存信号的取反值,作为所述控制模块的启动信号;通过所述控制模块,根据所述时钟脉冲个数、所述波形输出次数、所述等待时间和所述控制模块数据信号,生成控制信号;所述控制信号包括:控制模块时钟信号、控制模块锁存信号和控制模块数据信号。
9.根据权利要求8所述的基于FPGA的波形发生方法,其特征在于,通过波形生成模块根据所述控制模块的控制信号和所述数据信息,输出自定义波形数字信号,具体包括:以所述控制信号中的控制模块锁存信号的取反值,作为所述波形生成模块的启动信号;通过所述波形生成模块,根据所述波形数组、所述电压数组和所述时间数组,输出自定义波形数字信号。



