kunchi发帖:36
发送消息  该帖被浏览 444 次,回复 0 次
发表于:2016-03-31 09:52
楼主

一、 主要功能

中子测试项目逻辑设计概述如下:

(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逻辑部分方案框图

三、 上升沿计数逻辑

 

上升沿计数逻辑主要由 14 bit 计数器和 14 bit Shift-Register组成。CLK250M为系统时钟(250Mhz/4ns),Rstn为系统复位信号,低电平有效。DI信号为前级上升沿检测逻辑的输出信号,为脉冲信号。输入信号每有一个上升沿脉冲,上升沿检测逻辑就输出一个脉冲信号,脉冲信号的脉宽为一个系统时钟周期。DI信号同时输入到 14 bit计数器、移入 16250 bit Shift-Register。16250 bit Shift-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时间段内输入随机序列上升沿个数。

四、 控制逻辑

控制逻辑包括统计计数逻辑部分和统计数据传送逻辑部分。

 

信号端口说明:

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拉高,使能串口发送模块。

五、 总结

上述论述了逻辑设计部分的主要逻辑模块,其他逻辑模块不再论述。



 
       
     
您需要登录后才可以回复 登录 | 立即注册

 
发帖说明:如果不能直接拷贝粘贴到编辑框中,请在编辑框中点击右键选粘贴也可粘贴拷贝内容!