` 一、主要功能 中子测试项目逻辑设计概述如下: (1) FPGA检测(根据上位机的“开始检测”指令 (通过串口传送))外部输入的随机序列,随机序列的低电平最短时间为10ns。 (2) FPGA通过RS232串口与计算机通讯。当接到计算机的“开始检测”指令之后,开始检测输入的随机序列,并将检测结果以直方图统计数据(见备注)的方式通过RS232传送给计算机。 (3) (在接到计算机的“开始检测”指令后)当随机输入序列的上升沿到来时,FPGA要给出在以该上升沿为时间点的前65us时间内随机输入序列的上升沿个数。当随机输入序列的下一个上升沿到来时,以该上升沿到来时刻为时间点的前65us时间内FPGA给出随机输入序列的上升沿个数。 (4) (在接到计算机的“开始检测”指令后)以随机输入序列的上升沿延时1ms处为时间点,FPGA给出在该时间点之前的65us时间内随机输入序列的上升沿个数。 (5) 对两组检测结果(随机输入序列的上升沿和随机输入序列上升沿之后的1ms延时)进行统计,统计出某个检测结果(65us时间内的随机序列的上升沿个数)的次数。 (6) 当上位机发送“停止检测”指令或是要求发送统计结果时,FPGA见统计结果通过RS232串口发送到计算机。
备注: 关于检测结果统计数据的解释: FPGA对输入随机序列的检测结果为序列上升沿前65us时间内序列的上升沿个数,为一个数值。结果的数据统计就是统计同一技术结果出现的次数。(入检测结果分别为 3,3,2,2,1,1 则统计结果为:出现1的次数为2,出现2的次数为2,出现3的次数为2)。 图 1所示。
逻辑部分主要由上升沿检测逻辑、上升沿计数逻辑、PC指令解析逻辑、统计计数逻辑、数据传送逻辑、控制逻辑逻辑六部分组成。随机序列经过上升沿检测逻辑,输出脉冲信号。每有一个上升沿输入,上升沿检测逻辑就输出一个脉冲信号。上升沿检测逻辑输出的脉冲信号经过上升沿计数逻辑对上升沿计数,计数结果为当前时刻前65us时间段内上升沿个数。PC指令解析逻辑对PC机的串口指令进行解析,将解析的指令送到控制逻辑,控制逻辑控制统计计数和数据传送。当解析出开始检测指令时,控制逻辑根据两个检测点时刻(一个检测点为随机输入序列的上升沿,另一个检测点为上升沿延时1ms)使能锁存器对上升沿计数器的计数结果进行锁存,并以该计数值为地址将对应的统计计数器加1。当解析停止检测指令时控制逻辑禁能 14 bit锁存器和统计计数器。当解析清除指令时,控制逻辑将统计计数器清零。当解析传送数据指令时,控制逻辑将两统计计数器的值分别传送,通过多路选择器分别锁存统计计数器结果,然后启动串口发送逻辑发送锁存器中的数值。 后续将对上升沿计数逻辑、控制逻辑进行概述。
图 1逻辑部分方案框图 图 2所示。
图 2上升沿计数逻辑
上升沿计数逻辑主要由 14 bit 计数器和 14 bit Shift-Register组成。CLK250M为系统时钟(250Mhz/4ns),Rstn为系统复位信号,低电平有效。DI信号为前级上升沿检测逻辑的输出信号,为脉冲信号。输入信号每有一个上升沿脉冲,上升沿检测逻辑就输出一个脉冲信号,脉冲信号的脉宽为一个系统时钟周期。DI信号同时输入到 14 bit计数器、移入 16250 bit Shift-Register。16250 bitShift-Register在系统复位时赋值为0。移位寄存器的输出也输入到 14 bit计数器。计数器根据移位寄存器的移入和移出位来决定计数器是加1、减1、保持原值不变。计数器操作情况如下:(Shift_In 为寄存器的移入数据位,Shift_Out为寄存器的移出数据位) 当Shift_In= Shift_Out时计数器保持原值不变。 当Shift_In= 1,Shift_Out = 0时,计数器加1。 当Shift_In= 0,Shift_Out = 1时,计数器减1。 上升沿计数逻辑中计数器的计数值为当前时刻以前65us时间段内输入随机序列上升沿个数。 图 3所示。
图 3统计计数逻辑框图 信号端口说明:
CLK250M为系统时钟信号
Rstn为系统复位信号。低电平有效
Shift_In为上升沿检测逻辑的输出,脉冲信号,高电平有效。
Is_Test信号为PC指令解析逻辑根据PC串口指令解析出来的开始/停止检测信号。当Is_Test信号为高电平时开始检测,当Is_Test信号为低电平时停止检测。
Clear_Result信号为PC指令解析逻辑根据PC串口指令解析出来的清空统计结果信号线,为脉冲信号,高电平有效。
Count_En信号为1ms延时逻辑的计数使能信号
Count信号为1ms延时逻辑的计数单元
Latch1_En信号为上升沿延时1ms检测对应的上升沿计数锁存器使能够信号,高电平有效。
Count1_En信号为上升沿延时1ms检测对应的统计计数器的使能信号。
Latch2_En信号为上升沿检测对应的上升沿计数器锁存器的使能信号
Count2_En为上升沿检测对应的统计计数器的使能信号
Clrn为统计计数器的清零信号
当检测逻辑(上升沿检测和上升沿延时1ms检测)检测到Is_Test信号为高电平时,开始检测。检测逻辑等待检测点(输入随机序列的上升沿或输入随机序列上升沿延时1ms)到来,使能锁存器,将上升沿计数器的计数值锁存,然后使能统计计数器,统计计数器以锁存器锁存的值位地址找到对应的统计计数器,将该统计计数器加1。
当检测逻辑(上升沿检测和上升沿延时1ms检测)检测到Is_Test信号为低电平时,停止检测。控制逻辑通过将Latch_En和Count_En信号拉低来禁能锁存器和统计计数器,停止检测。
当检测到Clear_Result信号为高电平时清空统计结果逻辑在Clrn上输出一个时钟周期的低电平信号,Clrn信号将统计计数器清零。
发送统计逻辑框图如图 4所示。
图 4发送控制逻辑框图 信号说明: Tx_Test信号为PC指令解析逻辑解析的传送数据指令,脉冲信号,高电平有效。 Complete_Tx信号为串口发送逻辑返回的发送数据完成信号。 当检测到Tx_Test为高电平时,发送控制逻辑通过改变MUX_SEL的电平来分别将两组统计计数器的结果锁存,然后将发送逻辑的使能信号Tx_En拉高,使能串口发送模块。 四、 总结
上述论述了逻辑设计部分的主要逻辑模块,其他逻辑模块不再论述。
`
|