基于Microblaze软核FSL总线的门光子计数器设计与实现
0 引言
光学领域尤其是量子光学领域的实验常常需要进行单个相干光子的探测用于实现实验数据的采集。一般常用的配置是一个单光子探测器加上一个门光子计数器,其前端的单光子探测器用来收集光子信号,每探测到一个光子产生一个TTL脉冲,后端的门光子计数器用来记录该TTL上升沿数目并且与PC等其他器件通信或者同步。APD的工作方式相对简单,而门光子计数器则由于具体实验需求不同而要求不同的工作方式,很难有一种通用的计数模式能够满足各种情况的需求。由于成本限制,功能固定的计数器往往因为没有广阔的市场而造成价格很高。另一方面,工业和科研界购买的商用计数器往往无法满足自己的具体需求而导致工作效率低下,甚至无法满足要求。
所谓门光子计数器就是针对单自旋量子调控实验研究中对单个光子探测的需求所研制的。单自旋量子调控是对晶体中的缺陷,如量子点和金刚石色心进行控制,其信号读出一般是通过自旋发生的单个光子进行探测实现的。在此类实验中常用的技术有三种:门光子计数、定时计数和相关函数测量。文中所述的系统建立了一种可扩展的通信和控制架构能够添加不同方式的计数功能。
1 系统结构设计
整体系统结构示意图如图1所示,通过PC机的以太网口实现与计数系统的数据通讯与命令传输,PC机将工作模式选择等命令通过网口向系统发送,而系统将在不同模式下的计数值及计数状态等数据通过网口发送到PC机,交由PC机对数据进行处理。系统的主芯片采用Xilinx的SPARTAN 3E系列的XC3S500E。系统的光子计数输入由两个BNC接口引入,这两个接口可以由FPGA进行配置,使光子计数器以不同的模式进行工作。系统的固件烧写在FLASH芯片内,SDRAM提供了大容量存储空间,用于运行时装载Microblaze软核代码、计数应用代码以及存储计数的数据。
系统以FPGA为处理中心,实现各种工作模式,其功能框图如图2所示。功能模块主要包括软核Microblaze、对外部存储器的接口MPMC、以及需要设计实现的Counterpulse IP核。在Counterpulse IP核与处理器软核之间,采用了FSL总线进行连接,实现由Microbalze对Counterpu-lse核的配置,以及由Counterpulse核到Microblaze的数据传输。
系统工作时,由Microblaze软核通过网口接收由PC机发送来的命令,根据命令,通过一路FSL总线对光子计数IP核进行工作模式的选择和配置。计数IP核对外部计数源进行计数,计数的结果和状态数据通过另一路FSL总线发送到Microblaze软核,由Microblaze软核将该数据在DDRRAM内进行缓冲,并通过网口将这些数据最终发送给PC机,由PC机进行分析处理。
系统有三种工作模式:模式一:使能计数,使能信号有效时(高电平有效),对光子计数输入的计数脉冲信号进行计数;模式二:定周期计数,根据设定的计数周期,对光子计数输入的计数脉冲信号进行计数;模式三:启动和停止信号分开的计时,根据输入的计数启动信号和计数停止信号(均为上升沿有效),进行以系统基频为基准的计时,以实现函数测量。
2 系统设计实现
2.1 系统硬件框图
计数系统硬件结构如图3所示,由FPGA、64MB的DDR存储器、16MB的FLASH存储器和10M/100M以太物理层(PHY)等组成。系统工作时,由PC机通过网口发送命令到FPGA,FPGA内部的Microblaze软核配置计数IP核的工作模式,由FPGA通过两路BNC接口对外部计数源进行计数,并将数据在DDRRAM内进行缓冲,最终将这些数据通过网口发送到PC机。
2.2 主要元器件介绍
2.2.1 FPGA芯片及其配置芯片选用
FPGA选用Xilinx公司的Spartan-3E系列XC3S500E,采用先进的90nm制造工艺生产,其器件密度为50万门。Spartan3系列的FPGA是Xilinx公司专门针对大容量、低成本需求的电子设计而开发的,可支持多种电平的I/O标准;含有丰富的逻辑资源。XC3S500E具有360kbits的块RAM、73kbits的分布式RAM、10476个逻辑单元、20个18×18的乘法器和4个DCM时钟管理模块。
FPGA的配置芯片选用的是Xilinx公司的在系统可编程配置芯片XCF04S,该芯片可为XC3S500E提供易于使用、成本低且可重复编程的配置数据存贮方法,该芯片支持IEEE1149.1标准的JTAG边界扫描测试和编程。在本系统设计中,XCF04S主要存放用于引导Microblaze软核及应用程序的引导代码。
2.2.2 存储芯片
系统使用的RAM是Micron Technology公司的DDRSDRAM(MT46V32M16),是一片容量为512Mbit(32Mx16)的16位总线宽度存储芯片,用于上电后加载Microblaze软核代码和应用程序代码,以及对计数数据进行缓冲。FLASH芯片是Intel StrataFlash parallel NORFlash,型号为28F256J3,存储密度为256Mbit,在本系统中用于保存Microblaze软核代码和应用程序代码。
门光子计数器 量子光学实验 MicroBlaze 相关文章:
- 双MicroBlaze软核处理器的SOPC系统设计(01-27)
- MicroBlaze在硬件加速中的应用技术(06-05)
- 全新EDK8.1简化嵌入式设计(06-04)
- 符合ISO/IEC18000-6C标准的RFID读写器数字基带系统设计(06-04)
- 基于MicroBlaze的AXI总线实时时钟IP核设计(12-13)
- 基于SOPC的红外视频网络传输系统(06-24)