触发电路
触发电路的作用是判断采样信号是否满足触发条件,并分别产生触发动作。当采集的信号满足用户设置的触发条件时,系统记录触发位置并产生触发信号通知上位机读取、显示采样数据。本次设计的触发电路具有三种可选的触发模式:立即触发、顺序触发和并行触发。
立即触发
当上位机向FPGA发出立即触发触发字和开始采样指令后,FPGA开始采样并立即产生触发信号。采样电路将采集到的信号存入外部的SRAM中,直至采集到规定的点数后停止采样,向上位机发出采样结束信号,通知其读取采样数据。此方式下读回的触发点位置为0。
顺序触发
该方式设置了一个8位的序列触发,只有当被测通道的信号按依次满足触发字所设定的8位序列时,才产生触发信号。同时,为了操作的灵活性,还加入了屏蔽位。若对某一位的数据不敏感,可以将其对应的屏蔽位设置为0,在判断触发条件时不对该位进行检测。
使用顺序触发方式,可以对任意一个通道选择最多8位长度的序列进行触发。在进行触发设置时,除设置触发方式(选择顺序触发)和进行采样频率选择以外,还需要进行通道选择、触发字和屏蔽位设置。其Verilog HDL算法源程序如下:
if(((dbuf^{TrigWord[1],TrigWord[ 0]})&{enbit[1],enbit[0]}) == 8'h00)
begin
TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0];
end
其中:dbuf为所测采样通道的数据缓存;TrigWord[0]、TrigWord[1]为触发字;enbit[0]、enbit[1]为屏蔽字;Trigpoint为触发位置寄存器。
并行触发
该方式设置了一个八级深度的并行触发,将每次采样得到的4个通道的数据组合为一个十六进制数,对应于一个4位的触发字,当4个通道的数据在时间上依次满足8个4位的触发字时(并非要求连续),产生触发信号。同样,可以使用屏蔽位对某一通道的数据进行屏蔽,即在进行并行触发检测时,不对该路通道进行检测。