1. FPGA概述

1) 什么是FPGA?

现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)是被设计为可以重新配置编程的集成电路。通过重新配置编程,FPGA可以实现不同的功能,从而实现多样化的功能,减少二次开发成本。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点[1]。

通常FPGA都用硬件描述语言(Verilog或VHDL)来实现对其内部逻辑结构的描述,通过逻辑综合和布局、布线工具软件,可以将所描述的的逻辑电路结构烧录至FPGA上进行验证,从而加速开发进度。FPGA内部包括大量的逻辑结构,设计者可以根据需要,通过可编程的连接,将FPGA内部的逻辑结构连接起来,从而实现特定的功能。

FPGA一般来说比专用集成电路(ASIC)的速度要慢,无法完成更复杂的设计,并且会消耗更多的电能。但是,FPGA具有很多优点,比如可以快速成品,而且其内部逻辑可以被设计者反复修改,从而改正程序中的错误,此外,使用FPGA进行除错的成本较低。厂商也可能会提供便宜、但是编辑能力有限的FPGA产品。因为这些芯片有的可编辑能力较差,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于专用集成电路的芯片上。在一些技术更新比较快的行业,FPGA几乎是电子系统中的必要部件,因为在大批量供货前,必须迅速抢占市场,这时FPGA方便灵活的优势就显得很重要[1]。

2) FPGA的开发流程

通常FPGA需要经过以下步骤来实现FPGA的产品化:

i. 逻辑设计,可以使用硬件描述语言或者电路图方式

ii. 约束编写,包括时序约束、引脚约束等

iii. 综合与布局布线,该步骤由软件工具完成

iv. 烧写调试,调试时的烧写时断电丢失的

v. 固化,将调试完成后的设计固化到FPGA芯片内,这种固化通常存储于FLASH芯片内,断电不丢失

2. 微观磁共振实验概述

1) 什么是微观磁共振?

相对于通常意义上的磁共振,微观磁共振主要研究的对象是微观体系,比如少量的原子分子构成的体系。与磁共振不同的是,微观磁共振探测的样品分子数量极少,常规方法是没有办法探测到信号的。

微观磁共振的通常技术手段是利用多次测量求平均的方式来提高信噪比,从而探测到样品分子的微弱信号。以本人了解的两种体系为例,一种是电子顺磁共振(EPR),另一种是光探测磁共振(ODMR)。前者探测样品的电子系综,样品分子中从未成对的电子受到激励信号后所返回的信号中获取所需要的信息,从而推断出样品分子的有关信息;后者利用单自旋体系对外界环境的敏感性来探测样品的磁矩等相关信息。

2) 电子顺磁共振概述

电子顺磁共振(Electron Paramagnetic Resonance,EPR),又称电子自旋共振(Electron Spin Resonance,ESR),是一种用于研究含未成对电子的物质时使用的谱学手段。其原理类似核磁共振,最主要的区别在于使用电子自旋代替核自旋。由于电子的旋磁比远高于原子核,故在同等外磁场下,电子顺磁共振体系所需要的频率远高于核磁共振体系。[3]

电子的自旋为,自旋投影量子数可以是或。在外加磁场强度为时,电子磁矩会顺向或反向平行于该磁场,两种情形具有的能量不同,与磁场同向的电子能级较低。两个能级的能量相差。这个方程显示两能级的差值与磁场强度呈正比,如下图所示

未成对电子可以在吸收或者放出特定量的电磁波能量后在两能级间移动,由于放出或者吸收的电磁波能量是特定频率的,因此可以得到磁场与频率的关系:。由这个关系式可知,当有一对满足公式的磁场与电磁波频率作用在未成对电子上后,就满足了电子顺磁共振的条件。

而脉冲电子顺磁实验是利用脉冲式的微波信号对电子自旋操控的一种方法,这种方法很适合用于研究自旋的动力学过程,以及量子计算等领域。以脉冲式电子顺磁共振谱仪中与实验控制相关的部分为例,这部分主要包括:方波发生器、频综器、数据采集卡以及高斯计等。其中与具体操控电子自旋手段最为密切的就是方波发生器了。通过采用不同的方波序列来控制PIN通断微波信号,实验者可以使用不同长度,不同组合的脉冲序列去操控电子自旋,以下为简易示意图。

3) 光探测磁共振概述

顾名思义,光探测磁共振(Optically Detected Magnetic Resonance,ODMR)是基于光学探测手段的磁共振技术。实际上,结合了光学测量技术,该方法可认为是一种在电子自旋共振基础上的双共振技术。

这里所说的“光探测”,通常针对荧光及其吸收现象而言,即采用雪崩光电二极管等方法探测样品反射回来的荧光光子计数。以本人实验室为例,主要利用NV色心反正回来的荧光光子信号来判断NV色心所处的量子态,从而得到临近样品的相关属性。

在各种量子体系中,NV色心由于其常温下的稳定性,长退相干时间(室温下可以达到1.8ms),可以通过激光(532nm)进行初始化以及读出以及通过微波对其量子态进行操控等优势,可以方便的实现量子态的制备,传递和测量,因此该体系也在量子调控各项研究中受到一定的重视。

在基于NV色心的光探测磁共振实验中,需要通过激光来极化NV色心至某一初始态,然后通过脉冲式微波操控量子态,最后用激光极化NV色心的同时通过统计荧光光子的计数来判断NV色心当前所处的量子态。实验序列图如下:

将微波脉冲长度与读出时的光子计数率对应起来,我们可以即可得到下图中的Rabi振荡曲线:

3. 基于FPGA的微观磁共振实验设备

1) 需求探讨

在以上对微观磁共振实验的讨论中,可以发现,脉冲式微波是调控量子态的必备“武器”。除此之外,实验中还需要计数器对荧光光子进行计数,TDC测量NV色心的荧光寿命。

通过上面的分析,那么如果想要用FPGA实现以上所提的实验需求,那么实现的设备至少得包含以下几个功能:高精度方波发生功能、计数器功能以及TDC功能。然而在实际应用中,由于项目实际需求,还需要实现任意波形发生器功能(Arbitrary Waveform Generator,AWG),用于产生可被调制的基带信号。基带信号在调制之后,可以用于提供操控量子态的微波信号。

2) 各项功能原理

先分析TDC的实现原理。通常高精度的TDC进行实际测量主要分为两个部分,一个是“粗”时间测量,一个是“细”时间测量。“粗”时间测量的原理很简单,就是使用高速时钟加计数器来实现。“细”时间测量方法有很多种,这里仅仅阐述已完成的工作中所用的方法。如下图所示:

待测信号通过延时链传输。每当时钟上升沿到来,通过D触发器的锁存,FPGA可以记录下待测信号上升沿在延时链中所传输的距离,然后根据事先标定好的每级延时链的传输时间,可以得到“细”时间的具体数值。通常若不采用多次平均测量法等方式,“细”时间测量的时间分辨率一般在数十ps量级。在测量完“细”时间后,结合测量的“粗”时间,就可以获得两次待测信号上升沿之间的时间差了。

接着是方波发生功能的实现原理。方波的产生实际上可以认为是一个“数字时间转换”的过程,而从名字来看,这正好与TDC的功能是相反的。我们已经实现的方波序列发生器的发生器的时间分辨率达到50ps。该项工作已经申请相关专利并发表相应文献,此处不再赘述。

最后是AWG功能的原理。从简单原理上来说,已完成的工作中采用的方法是基于逐点输出的方式来产生任意波形的,即FPGA向DAC输出高速数字码型,然后DAC将其转换为模拟信号。DAC的指标高低直接决定了AWG指标水平的高低。DAC模块由实验室的师兄完成,采用了两块AD9139芯片,可以同时输出两通道的任意波形。由于项目中对AWG的时间分辨率较高,因此FPGA在输出数字码型时需要采用并串转换技术,以避免FPGA直接输出会导致的问题。

至于实验中所需的计数器功能,由于荧光光子计数的要求并不高,实际实现时仅需使用一个200MHz的时钟来驱动计数电路即可。当计数器接收到雪崩光电二极管的信号之后,计数器数值加1。

3) 功能实现与测试

先分别实现各项功能,并进行测试。TDC的码宽测试结果如下:

中间的断层是由于FPGA内部结构导致的,因为延时链穿越了FPGA内部的几个时钟域,因此在时钟域的连接处出现了断层。

方波的延时链延时及非线性测试结果如下:

方波序列发生器的其他效果展示图

根据以上结果,可以知道延时链每级的平均延时约在50ps左右,且微分非线性大致在0.1以内。该项测试采用了拥有40 GS/s 采样率、3.5GHz带宽的 LeCroy WavePro 735 Zi 示波器进行测量。

至于AWG的实现,由于受到了DAC的采样率限制,因此本人的工作中完成的AWG功能的采样率为1 GS/s,可以同时输出两个通道的任意波形,以下为DAC输出的模拟波形:

由以上图可知,在输出高频正弦波时,若不加滤波器,可以看到输出波形有台阶一类的情况,这是由于DAC的采样率的限制所致,在DAC的输出端串联一个合适的滤波器可以解决这种情况。以上的测试基于Keysight DSO-X 3034A 型示波器。

4. 实验结果

1) 用于光探测磁共振实验

该项工作发表于IEEE Magnetics Letters[4]。在展示实验结果之前,这里再简述一下实验原理。下图为实验结构及脉冲序列图:

上图中,(a)为实验装置结构图,(b)为实验序列图,激光通道的通断采用一个方波通道控制,另外两个微波通道也由自制设备的方波来控制。在激光与微波作用结束后,再打开激光同时使能计数器,统计光子数量。

实验中,τ是一个变量;π是通过另一个实验得到的脉冲长度,在此实验中是定值,此处不再详述,有兴趣的读者可以通过阅读相关领域的文献来了解;Counter通道的使能期间的计数值为因变量。实验采用令τ步进的方式来重复,记录下每次τ对应的计数值,可得下图:

该图中,横坐标为τ所对应的时间值,称为自由演化时间;纵坐标为荧光光子计数通过归一化后的值。该实验是为了确定一个自由演化时间,从这个自由演化时间中可以反推出Larmor进动的频率值,进而根据公式精确得到该种类样品的旋磁比。就以上几次实验的数据而言,算出的旋磁比为42.576 MHz/T

大家好,我是【FPGA功夫熊猫】不断推荐好文章。鉴于平台要求,找人不容易,特留下以下内容,可通过威鑫好马找。
【w 】FPGA在安防、工业等领域也有着比较广泛的应用,
【w 】比如安防领域的视频编码解码等协议在前端数据采集和逻辑控制的过程中可用FPGA处理。
【w 】工业领域主要采用规模较小的FPGA,满足灵活性的需求。
【8 】另外,由于 FPGA具有比较高的可靠性,
【9 】因此在军工以及航天领域也有比较广泛的应用。
【2 】未来,随着技术的不断完善,相关工艺将会完成升级改造,在诸多新型行业比如大数据等。
【8 】初期会大量应用FPGA,人工智能等新型的领域也会更多的用到FPGA。
   FPGA将会有更为广泛的应用前景。

大家在日常的项目中遇到关于FPGA问题可【威鑫】。

基于FPGA的微观磁共振实验设备开发相关推荐

  1. 基于FPGA Uart串口通信实验

    基于FPGA Uart串口通信实验 首先需要了解uart串口通信协议,根据个人专业需求不同,了解的层面可以不同. UART简介 通用异步收发传输器(Universal Asynchronous Rec ...

  2. 基于FPGA的cy7c68013a双向通信实验

    基于FPGA的cy7c68013a双向通信实验 本实验是基于FPGA的cy7c68013a的USB双向通信实验,以前折腾过一段时间cy7c68013a,没有入门时感觉好难,入门了就会感觉很简单.本教程 ...

  3. 基于FPGA的CYUSB3014双向通信实验

    文章目录 开发环境 准备工作 驱动 固件 GPIF II Designer 写标志 读标志 CyU3PGpifSocketConfigure设置水印值 测试 下载固件 读测试 写测试 测速 固件固化到 ...

  4. 基于FPGA的VGA显示实验

    VGA驱动原理 信号线 定义 HS 行同步信号(3.3V 电平) VS 场同步信号(3.3V 电平) R 红基色 (0~0.714V 模拟信号) G 绿基色 (0~0.714V 模拟信号) B 蓝基色 ...

  5. 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)

    实验二 基于FPGA的分频器的设计 1. 实验目的: (1) 掌握QuartusⅡ软件的层次型设计方法: (2) 掌握元件封装及调用方法: (3) 熟悉FPGA实验平台,掌握引脚锁定及下载. 2. 实 ...

  6. 计算机组成 vhdl cpu 实验 西安交大,基于FPGA的VHDL计算机组成实验平台的设计与实现...

    摘要: <计算机组成原理>是计算机系的一门核心课程.但是它涉及的知识面非常广,内容包括中央处理器,指令系统,存储系统,总线和输入输出系统等方面,学生在学习该课程时,普遍觉得内容抽象难于理解 ...

  7. 基于FPGA实现的流水灯实验

    版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...

  8. 基于FPGA的两位按键控制LED数码管加减计数实验

    两位按键控制LED数码管加减计数实验 这是一篇拖了一个多月的文章,主要是基于FPGA利用按键消抖原理与动态数码管驱动原理相结合,来实现一个利用两位按键来控制数码管实现0-99的加法计数或者减法计数功能 ...

  9. 基于FPGA开发板使用Verilog设计PWM呼吸灯实验

    基于FPGA开发板使用Verilog设计PWM呼吸灯实验 1,实验原理 2,实验模块设计 2.1 RTL设计,呼吸灯模块设计 2.2,测试数据,下载到FPGA开发板板级的数据 2.3,两个模块综合的n ...

  10. 实验三 基于FPGA的数码管动态扫描电路设计 quartus/数码管/电路模块设计

    实验三 基于FPGA的数码管动态扫描电路设计 源文件的链接放在最后啦 实验目的: (1) 熟悉7段数码管显示译码电路的设计. (2) 掌握数码管显示原理及静态.动态扫描电路的设计. 实验任务: (1) ...

最新文章

  1. 光流 Motion Estimation
  2. java中用于选择按钮的语句_java程序员考试套题1
  3. php获取当月开始和结束的时间戳,PHP获取今天开始和结束的时间戳
  4. 期待着DELPHI的浴火重生
  5. 如何写一个好的方法-读Clean Code 有感
  6. PHP笔记 ---关于web应用的安全性问题
  7. php判断是否为数字_PHP知识点:从'xulei' == 0是否为真谈谈运算符===和==
  8. 运行Fast R-CNN的代码
  9. 项目交接文档_项目管理反思
  10. 富人和穷人在面对同一件事情时
  11. 历史上的今天:游戏机之父诞辰;搜索技术之父出生;MIT 公开演示旋风计算机...
  12. 11计算机专业vb试题答案,11高三计算机专业VB试题(三)
  13. 一份优秀的前端开发工程师简历是怎样的?
  14. Adolescent Architecture
  15. 在ubuntu用wine安装微信 并解决无法输入文字的问题 ubuntu完美安装微信
  16. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
  17. java知识串讲_java基础之Java知识串讲
  18. pta-L3-008 喊山 BFS
  19. 工欲善其事必先利其器 之 VirtualBox
  20. NLP5:NLTK词性标注

热门文章

  1. quartz 设计表结构
  2. CX水晶易表连接数据库的方法
  3. 软件著作权登记怎么查询
  4. android 多个基站信息吗,Android模拟器模拟基站信息,并将wifi伪造成4g数据信息
  5. 网络诊断 网络连接配置
  6. 计算机色彩知识调研(二):位深、Gamma值、标准色温和Display P3
  7. Cisco路由器配置动态路由rip
  8. 外贸常用术语_外贸业务中常用的术语
  9. c语言 tc 编译,用Win-TC编译与用TC2.0编译的差异
  10. PPP和PDP激活是什么区别