首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
Search
1
virtuoso和empyrean alps模拟仿真和混仿教程
360 阅读
2
在IC617中进行xa+vcs数模混仿
301 阅读
3
文档内容搜索哪家强? 15款文件搜索软件横向评测
264 阅读
4
科普:Memory Compiler生成的Register file和SRAM有何区别?
258 阅读
5
通俗易懂的AI知识体系图及其产业链全景图
198 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
AI
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
bennyhe
累计撰写
387
篇文章
累计收到
33
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
搜索到
387
篇与
的结果
2025-08-08
收藏:详解服务器、磁盘和网卡知识
架构师技术联盟2020年05月14日07:35本文主要介绍服务器的概念、常见的服务器技术和架构组成,此外将详细介绍磁盘、RAID知识,网卡概念、分类和主流厂商和产品,内容大致分为3部分。第1章、服务器通用基础知识简单来说,服务器就是在网络中为其他客户机提供服务的计算机;具有高性能、高可靠、高IO数据传输能力等特点,企业从基础的邮件、打印到核心应用如ERP、数据库等业务,再到我们所熟悉的互联网业务,创新大数据服务、天气预报HPC高性能计算等都离不开大规模服务器的支持。服务器主要由CPU、内存、硬盘、模组、RAID卡组成,配合电源、主板、机箱等基础硬件组成。CISC:主要是两家,包括IntelCPU(非安腾系列)、AMD CPU。RISC:服务器领域主要是IBM Power系列、Sun Spark系列,消费级的代表是ARM架构的CPU。2017年7月,Intel正式发布了代号为Purley的新一代服务器平台,包括代号为Skylake的新一代Xeon CPU,命名为英特尔至强可扩展处理器(Intel Xeon Scalable Processor,SP),也宣告了延续4代的至强E5/E7系列命名方式的终结。Xeon至强可扩展处理器不再以E7、E5的方式来划分定位,而代之以铂金(Platinum)、金(Gold)、银(Silver)、铜(Bronze)的方式。Skylake是新命名方式的第一代产品,Cascade Lake是是二代,共用Purley平台。大型机:普通人很少接触,用于大规模计算的计算机系统.大型机通常用于政府、银行、交通、保险公司和大型制造企业。特点是处理数据能力强大、稳定性和安全性又非常高小型机:往往应用于金融、电力、电信等行业,这些用户看重的是Unix操作系统和专用服务器RAS特性、纵向扩展性和高并发访问下的出色处理能力。这些特性是普通的X86服务器很难达到的,所以在数据库等关键应用一般都采用“高大贵”的小型机方案。x86服务器:采用CISC架构处理器。1978年6月8日,Intel发布了一款新型的微处理器8086,意味着x86架构的诞生,而x86作为特定微处理器执行计算机语言的指令集,定义了芯片的基本使用规则。ARM服务器:ARM全称为Advanced RISC Machine,即进阶精简指令集机器。ARM是RISC微处理器的代表作之一,最大的特点在于节能。C/S是Client/Server的缩写,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQLServer,客户端需要安装专用的客户端软件。B/S是Browser/Server的缩写,客户机只要安装浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQLServer等数据库。在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。第2章、服务器硬盘基础知识第3章、服务器网卡基础知识网卡在TCP/IP的模型中,工作在物理层和数据链路层,用来接收和发送数据。除了数据的收发,网卡还有一些其他功能:1、代表固定的地址:数据发送出去,发给谁,又从哪里接收。这都是通过IP区分的2、数据的封装、解封:比如寄一封信,信封里的信纸是data,信封是帧头和帧尾。3、链路管理:因为以太网是共享链路的,在使用时候可能会有其他人也在发送数据。如果同时发送,就会产生冲突,这就要求在发送的时候,检测链路的状态是否空闲;4、数据的编码和译码:在物理介质中,传送的是电平或光信号。这时就需要将二进制数据转换成电平信号或光信号。5、发送和接收数据我们再来说说网卡的分类。随着计算机网络技术的飞速发展,为了满足各种环境和层次的应用,出现了不同类型的网卡。总线分类:PCIe、USB、ISA、PCI,ISA/PCI等总线是比较早期的网络总线,现在已很少用了,USB接口的网卡主要用在消费级电子中。结构形态:集成网卡(LOM)、PCIe标卡网卡、Mezz卡。应用类型:按网卡所应用的的计算机类型来区分,可以将网卡分为应用于工作站的网卡和应用于服务器的网卡。电口,PC上常见到的那种网口接口,这种接口叫RJ45,使用的是普通的网线光口,用于连接光模块,网卡上用于插光模块的接口,我们叫光笼子。光模块按封装形式,可以分为SFP+、SFP28、QSFP+,其中SFP+和SFP28在结构外观上是一致的,可以相互兼容,只是SFP28支持的速率更高,可以达到25G,而SFP+一般只到10G。QSFP+在外观形态上与SFP+差异很大,两者不兼容。QSFP+应用在40G以上速率上。DAC线缆是直连铜缆,这种铜缆的模块头是和线缆一体的,不需要再配置光模块。电缆的衰减大,一般只有1m,3m,5m长度的,但价格便宜,是端距离传输的最佳解决方案。AOC叫做有源光缆,一根AOC线缆相当于两个光模块+光纤,也是一体的,这种线缆数据传输可靠性高,但价格贵。申明:感谢原创作者的辛勤付出。本号转载的文章均会在文中注明,若遇到版权问题请联系我们处理!来自微信
2025年08月08日
42 阅读
0 评论
0 点赞
2025-08-08
FPGA惊天大漏洞细节全解读
来源:内容授权转载自公众号「老石谈芯」,作者:老石,谢谢。今年4月,来自德国的研究者披露了一个名为“StarBleed”的漏洞,它存在于赛灵思的Virtex、Kintex、Artix、Spartan 等全部7系列FPGA中。通过这个漏洞,攻击者可以同时攻破FPGA配置文件的加密(confidentiality)和鉴权(authenticity),并由此可以随意修改FPGA中实现的逻辑功能。更严重的是,这个漏洞并不能通过软件补丁的方式修复,一旦某个芯片被攻破,就只能通过更换芯片的方式修复。漏洞的发现者已于2019年9月将这个漏洞知会了赛灵思,并在第二天就获得了赛灵思的承认。根据赛灵思之前发布的财报,7系列FPGA贡献了公司35%的营收。这些FPGA被广泛用于通信设备、医疗、军工宇航等多个领域,而这些领域很多都需要系统有着很高的稳定性与安全性。因此,这次爆出的重大漏洞,无疑会对赛灵思及其客户带来较大的负面影响。近年来,有关CPU的漏洞时有发现。例如在2018年初,几乎全部主流的CPU厂商都被发现在其CPU产品中存在熔断(Meltdown)和幽灵(Spectre)漏洞。相比之下,FPGA的漏洞问题并不那么“常见”。在这篇文章中,老石将深入解析造成这个漏洞的技术原因,并总结一些可行的应对方法与预防措施。FPGA的主要加密方式随着FPGA在数据中心、通信基础设施、AI加速、医疗设备、边缘计算等多个领域的广泛使用,针对FPGA安全性的研究在近年来逐渐成为学术界和工业界关注的热点之一。与CPU、ASIC等芯片相比,FPGA芯片本身并不会完成任何逻辑功能,它只包含大量的可编程逻辑阵列,以及若干固化的IP核。FPGA系统功能的实现,基本完全取决于开发者的逻辑设计。由于不同的设计者可以开发不同的系统逻辑,这就使得相同的FPGA芯片可以广泛用于众多不同的行业领域。通常来说,一个FPGA设计都是由很多IP组合而成,而这些IP才是FPGA设计中最有价值的部分。为了将设计加载到FPGA中运行,唯一的方式就是通过一个所谓的“比特流(bitstream)”文件完成,业界也通常称之为系统映像。系统映像由FPGA设计软件自动生成,它包含了FPGA设计的全部信息,因此是FPGA加密环节的重中之重。通常来说,对比特流或系统映像文件的保护方式有两个层面,第一是加密,第二是鉴权。加密指的是使用特定算法对比特流文件进行处理,将其转换成密文,使得其中的内容对外不可见。在赛灵思的7系列FPGA中,使用了CBC-AES-256算法进行比特流加密。鉴权指的是对加密后的比特流文件进行身份验证,防止对其进行篡改和删减,这类似于我们日常生活中的身份验证。如果比特流文件被修改,势必会导致错误的鉴权结果。如果将这个比特流下载到FPGA中,会因为身份校验失败而拒绝执行,从而避免被攻击的可能。在赛灵思的7系列FPGA中,使用了基于SHA-256的HMAC(散列消息认证码,Hash-based Message Authentication Code)方法进行鉴权。可以想象,如果比特流的加密过程被破解,那么攻击者就可以读出比特流文件中的所有信息,从而进行反向工程、IP破解、信息收集等工作。如果鉴权过程被破解,那么攻击者就可以对比特流文件进行任意修改,比如修改系统功能、木马注入等。所以说,这两种保护方式缺一不可。只可惜,这次的StarBleed漏洞恰恰利用了这两种保护方式各自的短板,从而彻底破解比特流的加密和鉴权,并达到了完全控制比特流和FPGA芯片的目的,可以说这个漏洞的破坏性和潜在危害性极强。StarBleed漏洞的具体攻击方法整个攻击过程分为两大部分,第一是对加密的比特流文件进行破解,第二是获取鉴权密钥。为了破解加密的比特流文件,攻击者利用了赛灵思FPGA里的一个特殊的配置寄存器WBSTAR,这个寄存器原本保存了FPGA MultiBoot功能的起始地址,当启动FPGA时,就通过读取这个寄存器从片外非易失性存储器找到映像文件。因此,当FPGA复位时,这个寄存器的内容是不会被抹掉的。对加密比特流的破解过程分为5个步骤。第一步,攻击者对一个合法的比特流文件进行了简单篡改。具体来说,他需要修改比特流的一个32位字,将其改成对WBSTAR寄存器的写操作。写入的内容,就是比特流本身。虽然比特流是加密的,但这个篡改过程并没有想象中那么困难。由于Vivado生成的比特流文件的格式和很多内容是固定的,攻击者可以对比不同的比特流文件,从而确定对WBSTAR寄存器操作命令的位置,然后对其进行修改即可。由于篇幅所限,这部分的具体的细节不再赘述,欢迎在知识星球或微博与老石进一步交流。比特流数据结构,灰色部分是加密的内容第二步,将篡改后的比特流加载到FPGA里。此时,FPGA会对比特流进行解密,并将一个32位字写入WBSTAR寄存器。值得注意的是,这里写入的是已经解密的比特流内容!第三步,加载完毕后,由于比特流发生了修改,因此校验失败,并自动触发系统复位。第四步,使用另外一个未加密的比特流文件,读取WBSTAR寄存器的内容。由于WBSTAR寄存器的特殊性,它的内容不会随着复位而清除。因此,此时攻击者再使用另外一个未加密的比特流文件读取这个寄存器的内容,就可以得到解密后的FPGA比特流的32位内容了。这个未加密的比特流文件已开源,请在文末扫码进入知识星球查看。第五步,手工复位,然后重复上述步骤,直到整个比特流都解密完成。可以看到,攻击者利用了上面提到的鉴权过程晚于加解密过程这个缺陷,通过“蚂蚁搬家”的方式完成了对比特流的完全解密。最可怜的是,此时的FPGA本身也沦为了帮助解密的工具。这也解释了为什么只能通过更换FPGA芯片才能修补这个漏洞。下面的表格总结了不同的7系列FPGA的比特流大小,以及解密所需要的时间。读出一个32位字大概需要7.9毫秒,那么破解一个Kintex FPGA的比特流就大概需要3小时42分钟。接下来,就可以对鉴权过程进行破解了。这个过程相对简单,事实上,身份校验所需的HMAC密钥就存储在比特流文件中,并且未经其他额外的加密。这正是所谓的“谜底就在谜面上”。所以只需要读取完整的比特流,就可以免费附赠HMAC密钥一枚。有了它,就可以任意修改比特流文件的内容,并重新计算身份校验。此外,攻击者甚至可以修改HMAC密钥本身。综上所述,StarBleed漏洞正是利用了赛灵思7系列FPGA的两大设计缺陷:身份校验发生在解密过程之后身份校验的密钥直接存储在加密后的比特流文件里,且无额外加密通过StarBleed漏洞,攻击者破解了全系列的赛灵思7系FPGA,包括SAKURA-X板卡上的Kintex-7,Basys3板卡上的Artix-7等等。同时,攻击者还利用同样的原理攻击了6系FPGA,例如ML605板卡上的Virtex-6 FPGA,也能实现不完全破解。防御方法由于StarBleed漏洞直接利用了赛灵思7系列FPGA芯片的设计缺陷,且攻击过程直接在加载映像文件时展开,因此不能使用软件补丁或固件升级的方法规避这个漏洞。目前唯一的修复方法只有更换芯片,赛灵思官方已经向研究者承认了这一点。事实上,攻击者使用这种方法无法破解UltraScale或更新的FPGA系列。这说明上面所说的设计缺陷已经在新型FPGA架构中得到了修复。例如,首先对比特流文件进行鉴权,通过后再进行加载。虽然除了换芯片外没有完全防御的方法,我们仍然可以采用一些设计手段增加破解的成本和复杂度。一个常见的方法是在设计中增加额外的冗余逻辑,这些额外的部分并不影响逻辑功能,但会极大的提升设计的复杂度,从而增加破解的时间成本。比如,在状态机中增加很多无用状态等等。此外,还可以在板卡设计时封锁FPGA的配置端口,比如研究者使用的JTAG和SelectMAP端口等。事实上,在量产的FPGA设计中,应该也很少有暴露的JTAG端口。同时,研究者还思考了如何尽早发现这类设计缺陷和漏洞,而形式化方法就是一个很好的解决手段。设计者可以根据芯片的设计规约,建立形式化模型,并通过满足性验证(satisfiability)等方式对这个模型进行分析和证明。结语FPGA的安全性研究并非一个全新的课题。然而,传统的FPGA攻击方法都需要使用额外的物理设备或操作,实用性远不如此次爆出的StarBleed漏洞。一旦FPGA被攻破,攻击者可以任意读取FPGA比特流的数据、IP内容等,并实现反向工程;也可以任意改变FPGA实现的逻辑功能,这使得FPGA所在的系统可能沦为攻击者的高性能“肉鸡”。由于FPGA能以40Gbps甚至更高的速度线速发送数据包,这使得大规模DDOS攻击变得“简单”。此外,攻击者也可以通过逻辑实现的方式,大幅提升芯片温度并对系统硬件进行不可逆的物理破坏,等等。可以说,这次的StarBleed漏洞给业界敲响了警钟,也将会提升人们对FPGA安全性的重视,并以此指导未来的FPGA安全性设计。亡羊补牢,犹未晚也。(注:本文仅代表作者个人观点,与任职单位无关。)*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。今天是《半导体行业观察》为您分享的第2289期内容,欢迎关注。来自微信
2025年08月08日
35 阅读
0 评论
0 点赞
2025-08-08
芯片测试科普
半导体行业观察2020年03月14日11:29作为一个芯片设计公司(fabless),我们也非常关注集成电路产业链的各个环节,以此更好地给客户提供价值。这次我们给大家说说芯片测试相关。1测试在芯片产业价值链上的位置如下面这个图表,一颗芯片最终做到终端产品上,一般需要经过芯片设计、晶圆制造、晶圆测试、封装、成品测试、板级封装等这些环节。在整个价值链中,芯片公司需要主导的环节主要是芯片设计和测试,其余的环节都可以由相应的partner来主导或者完成。图(1)2测试如何体现在设计的过程中 下图表示的是设计公司在进行一个新的项目的时候的一般流程,从市场需求出发,到产品tape out进行制造,包含了系统设计、逻辑设计、电路设计、物理设计,到最后开始投入制造。最下面一栏标注了各个设计环节中对于测试的相关考虑,从测试架构、测试逻辑设计、测试模式产生、到各种噪声/延迟/失效模式综合、进而产生测试pattern,最后在制造完成后进行测试,对测试数据进行分析,从而分析失效模式,验证研发。所以,测试本身就是设计,这个是需要在最初就设计好了的,对于设计公司来说,测试至关重要,不亚于电路设计本身。图(2)设计公司主要目标是根据市场需求来进行芯片研发,在整个设计过程中,需要一直考虑测试相关的问题,主要有下面几个原因:1) 随着芯片的复杂度原来越高,芯片内部的模块越来越多,制造工艺也是越来越先进,对应的失效模式越来越多,而如何能完整有效地测试整个芯片,在设计过程中需要被考虑的比重越来越多。2) 设计、制造、甚至测试本身,都会带来一定的失效,如何保证设计处理的芯片达到设计目标,如何保证制造出来的芯片达到要求的良率,如何确保测试本身的质量和有效,从而提供给客户符合产品规范的、质量合格的产品,这些都要求必须在设计开始的第一时间就要考虑测试方案。3) 成本的考量。越早发现失效,越能减少无谓的浪费;设计和制造的冗余度越高,越能提供最终产品的良率;同时,如果能得到更多的有意义的测试数据,也能反过来提供给设计和制造端有用的信息,从而使得后者有效地分析失效模式,改善设计和制造良率。测试的各种对于芯片来说,有两种类型的测试,抽样测试和生产全测。抽样测试,比如设计过程中的验证测试,芯片可靠性测试,芯片特性测试等等,这些都是抽测,主要目的是为了验证芯片是否符合设计目标,比如验证测试就是从功能方面来验证是否符合设计目标,可靠性测试是确认最终芯片的寿命以及是否对环境有一定的鲁棒性,而特性测试测试验证设计的冗余度。这里我们主要想跟大家分享一下生产全测的测试,这种是需要100%全测的,这种测试就是把缺陷挑出来,分离坏品和好品的过程。这种测试在芯片的价值链中按照不同阶段又分成晶圆测试和最终测试(FT,也叫封装测试或者成品测试),就是上面图(1)中的红色部分。测试相关的各种名词:ATE-----------Automatic Test Equipment,自动化测试设备,是一个高性能计算机控制的设备的集合,可以实现自动化的测试。Tester---------测试机,是由电子系统组成,这些系统产生信号,建立适当的测试模式,正确地按顺序设置,然后使用它们来驱动芯片本身,并抓取芯片的输出反馈,或者进行记录,或者和测试机中预期的反馈进行比较,从而判断好品和坏品。Test Program---测试程序,测试机通过执行一组称为测试程序的指令来控制测试硬件DUT-----------Device Under Test,等待测试的器件,我们统称已经放在测试系统中,等待测试的器件为DUT。晶圆、单颗die和封装的芯片----如下面图(3)所示图(3)Wafer就是晶圆,这个由Fab进行生产,上面规则地放着芯片(die),根据die的具体面积,一张晶圆上可以放数百数千甚至数万颗芯片(die)。Package Device就是封装好的芯片,根据最终应用的需求,有很多种形式,这个部分由芯片产业价值链中的封装工厂进行完成。测试系统的基本工作机制:图(4)对测试机进行编写程序,从而使得测试机产生任何类型的信号,多个信号一起组成测试模式或测试向量,在时间轴的某一点上向DUT施加一个测试向量,将DUT产生的输出反馈输入测试机的仪器中测量其参数,把测量结果与存储在测试机中的“编程值”进行比较,如果测量结果在可接受公差范围内匹配测试机中的“编程值”,那么这颗DUT就会被认为是好品,反之则是坏品,按照其失效的种类进行记录。晶圆测试(wafer test,或者CP-chip probering):就是在图(3)中的晶圆上直接进行测试,下面图中就是一个完整的晶圆测试自动化系统。Prober--- 与Tester分离的一种机械设备,主要的作用是承载wafer,并且让wafer内的一颗die的每个bond pads都能连接到probe card的探针上,并且在测试后,移开之前的接触,同时移动wafer,换另外的die再一次连接到probe card的探针上,并记录每颗die的测试结果。图(4)Probe Card---乃是Tester与wafer上的DUT之间其中一个连接介面,目的在连接Tester Channel 与待测DUT。大部分为钨铜或铍铜,也有钯等其他材质;材质的选择需要高强度、导电性及不易氧化等特性,样子如下面图(5)所示。图(5)当 probe card 的探针正确接触wafer内一顆 die的每个bond pads后, 送出start信号通过Interface给tester开始测试, tester完成测试送回分类讯号 ( End of test) 给Prober, 量产時必須 tester 与 prober 做连接(docking) 才能测试。最终测试(FT,或者封装测试):就是在图(3)中的Package Device上进行测试.下图就是一个完整的FT的测试系统。对比wafer test,其中硬件部分,prober换成了handler,其作用是一样的,handler的主要作用是机械手臂,抓取DUT,放在测试区域,由tester对其进行测试,然后handler再根据tester的测试结果,抓取DUT放到相应的区域,比如好品区,比如坏品1类区,坏品2类区等。图(6)而probe card则换成了load board,其作用是类似的,但是需要注意的是load board上需要加上一个器件—Socket,这个是放置package device用的,每个不同的package种类都需要不同的socket,如下面图(7)所示,load board上的四个白色的器件就是socket。图(7)Handler 必须与 tester 相结合(此动作叫 mount 机)及接上interface才能测试, 动作为handler的手臂将DUT放入socket,然后 contact pusher下压, 使 DUT的脚正确与 socket 接触后, 送出start 讯号, 透过 interface 给 tester, 测试完后, tester 送回 binning 及EOT 讯号; handler做分类动作。如何进行一个产品的测试开发各种规格书:通常有三种规格书,设计规格书、测试规格书、产品规格书。设计规格书,是一种包含新电路设计的预期功能和性能特性的定义的文档,这个需要在设计项目启动阶段就要完成,通常由市场和设计人员共同完成,最终设计出来的产品的实际功能和性能需要和设计规格书的规定进行比较,以确认本次设计项目的完成度。测试规格书,其中包含详细的逐步测试程序、条件、方法,以充分测试电路,通常由设计人员和产品验证工程师在设计过程中完成。产品规格书,通常就是叫做datasheet,由设计公司对外发布的,包含了各种详细的规格、电压、电流、时序等信息。测试计划书:就是test plan,需要仔细研究产品规格书,根据产品规格书来书写测试计划书,具体的需要包含下面这些信息:a)DUT的信息,具体的每个pad或者pin的信息,CP测试需要明确每个bond pads的坐标及类型信息,FT测试需要明确封装类型及每个pin的类型信息。b)测试机要求,测试机的资源需求,比如电源数量需求、程序的编写环境、各种信号资源数量、精度如何这些,还需要了解对应的测试工厂中这种测试机的数量及产能,测试机费用这些。c)各种硬件信息,比如CP中的probe card, FT中的load board的设计要求,跟测试机的各种信号资源的接口。d)芯片参数测试规范,具体的测试参数,每个测试项的测试条件及参数规格,这个主要根据datasheet中的规范来确认。类型与下面图(8)这样图(8)e)测试项目开发计划,规定了具体的细节以及预期完成日期,做到整个项目的可控制性和效率。测试项目流程:桃芯科技目前量产的是BLE的SOC产品,里面包含了eflash、AD/DA、 LDO/BUCK、RF等很多模块,为了提供给客户高品质的产品,我们针对每个模块都有详细的测试,下面图(9)是我们的大概的项目测试流程:图(9)Open/Short Test: 检查芯片引脚中是否有开路或短路。DC TEST: 验证器件直流电流和电压参数Eflash TEST: 测试内嵌flash的功能及性能,包含读写擦除动作及功耗和速度等各种参数。Function TEST: 测试芯片的逻辑功能。AC Test: 验证交流规格,包括交流输出信号的质量和信号时序参数。Mixed Signal Test: 验证DUT数模混合电路的功能及性能参数。RF Test: 测试芯片里面RF模块的功能及性能参数。上面我们给大家介绍了芯片的测试目的,原理,以及方法和流程,接下来我们将比较详细的给大家介绍芯片的错误类型,对应的测试策略,以及跟芯片整体质量相关的一些具体测试方法。 半导体芯片的defects、Faults芯片在制造过程中,会出现很多种不同类型的defects,比如栅氧层针孔、扩散工艺造成的各种桥接、各种预期外的高阻态、寄生电容电阻造成的延迟等等,如下面图(1)所示,大概展示了各种基本的defects。图(1)这些defects单独、或者组合一起,造成了电路的表现不符预期,这就是造成了Faults.而且各种Faults的表现也是不一样的:永久的Faults,就是彻底的坏品,各种不同的条件下都会表现出来,易于测试发现。间或的Faults,时有发生的不符合预期,不是总能发现,需要一定的外部条件刺激。偶然的Faults,只是偶然的,在特定的外部硬件或者工作模式条件下才表现出来。可靠性问题的Faults,这种一般不会表现出来,只会在一些极端条件才会表现出来,比如高低温或者偏压情况下。为了更有效地检测出各种faults、避免浪费更多芯片的资源、节省费用,业界定义了很多种Faults Model,并提供了各种测试方法论。Stuck At Faults工艺制造过程中造成的硬件defects,使得某个节点Stuck At 0或者Stuck At 1, 如下面图(2)所示的一个或非门:输入节点x1发生了Stuck At 0的defect; x1和x2输入了00时候,Q1和Q2断开,Q3和Q4导通, z输出为H,正确;x1和x2输入了01时候,Q1和Q3断开,Q2和Q4导通, z输出为L,正确;x1和x2输入了10时候,此时x1被Stuck At 0了,等同于输入00,结果还是Q1和Q2断开,Q3和Q4导通,z输出为H,错误;至此,通过输入00,01,10就发现了这个defect。这种顺序输入00,01,10,而比较z输出的结果与预期的值进行判断的方法,就是所谓的Function测试。图(2)那对于一个电路,需要生成多少pattern,能达到多少的测试覆盖率呢?下面图(3)就以一个与门为例,说一下生产测试向量及计算测试覆盖率的基本理念。图(3)如上面图示,一个与门,有三个节点a、b、c, 每个节点都有两种fault的情况(Stuck At 0或者1),那么一共就有6种stuck-at faults情况:a0,a1,b0,b1,c0,c1.那么如上面图中列出的,需要输入(1,0),(0,1),(1,1)可以完全测试出所有的6种可能的Stuck-at Faults的情况,测试覆盖率为:可以发现的faults/所有可能的Faults,上面的输入的测试覆盖率为100%。Stuck Open(off)/Short(on) Faults制造过程种造成的晶体管的defects,使得某个晶体管常开或者常闭了,如下面图(4)所示的时一个晶体管发生了Stuck Open(off)的错误了。图(4)如上图,这种Stuck open可以用两组Stuck At的向量进行测试,AB输入从10变换到00,可以检测出这种Stuck Open的fault,也就是说大部分的Stuck Open/Short的faults都是可以通过Stuck At model的测试向量覆盖的。这种通过向量(function)的方式来测试Stuck Open/short,可能需要非常多的测试图形,需要的测试时间和成本都很多。还有一种测量电流的方式,也可以有效的测试一些这种Stuck open/short的faults,但是会节省很多测试时间和测试成本。如下面图(5)上半部分所示,右边的那个P沟道MOS管发生了Stuck short(on)的faults,图的下半部分展示了输入AB的四种不同的情况,当AB输入为00时,看起来这个晶体管表现的正常;但是当AB输入为11时,地和电源间存在一个直接导通的电路,输出端Z的状态是异常的。图(5)此时VDD上的漏电比较大,也可以通过测量VDD上面的电流来判断正误,即IDDQ的测试方法,后面会详细的介绍这种方法。桥接(Bridge Faults)桥接缺陷是由于电路中两个或多个电节点之间短路造成的,而设计中并未设计这种短接。这些短接的节点可能是某一个晶体管的,也可能是几个晶体管之间的,可能处于芯片上同一层,也可能处于不同层。下面图(6)是桥接缺陷的几种图例。图(6)上图中,(a)是因曝光不足导致7条金属线桥接子在一起的情形;(b)是外来颗粒的介入导致4条金属线桥接在一起的情形;(c)是因掩模划伤导致桥接的情形;(d)是1um大小的缺陷造成短路的情形;(e)是金属化缺陷导致2条金属线桥接的情形;(f)则是层间短路情形。上述情形中虽然导致缺陷的原因各有不同,但结果都是桥接。同样的,桥接测试也可以通过电压的方法完成,即run pattern方式,也就是stuck at的模式进行检测,但是电流测试是发现电压测试无法检查的故障的有效方法。下面图(7)表示的是mos管的source和drain桥接了。图(7)上面图中,因为上面的P沟通的MOS管的source和drain桥接了,电源VDD上会有很大的漏电,用电流测试方法,可以很快发现问题。开路故障(Open)开路缺陷是制造工艺不当造成的,物理缺陷中大约40%属于开路缺陷。典型的开路缺陷包括线条断开、线条变细、阻性开路和渐变开路等。如下面图(8)所示:图(8)图中(a)和(b)是电路存在开路的情形,(c)则是造成同时开路和短路缺陷的情形。开路缺陷的形式取决于缺陷的位置及大小。例如,对于栅极开路(一般称为浮栅,floating gate)这种缺陷,在缺陷面积小的情况下,隧道电流仍可流动,但信号的上升和下降时间增加;在缺陷面积大的情况下,输入信号就在栅极形成耦合,形成的浮栅就获得偏压,此电压可能导致晶体管导通,因此开路故障是否可检测,取决于缺陷的面积和位置。开路缺陷不一定都可以用Stuck At的模式检测到,如下面图(9)所示:图(9)上图中,红线部分表示那个mos管的drain与输出开路了,当顺序输入ab为00、01、10、11,从01变换为10的时候,输出Q保持了上面一个状态1,看起来还是正常的,这种情况下,就没有检测出来这个fault。但是如果调整一下输入的向量的顺序为00、01、11、10,就可以发现这个fault。通过IDD的测试方法,也可以测试出一些open缺陷,如下面的图(10)所示图(10)上面红色表示open的缺陷,当输入ABCD为1111时,输出O为0,当输出转为0001时候,在x、y和o之间出现了充放电,会有大电流出现。延迟缺陷(delay faults)在一些高速芯片应用中,延迟缺陷特别重要,这种缺陷有很多原因,比如小面积的open导致某段线路的阻值偏大。如下面图(11)所示:图(11)这个path的delay已经超过了一个clock的间隙,通过stuck At的测试方式,可以检测到这个缺陷。但是有的时候,延迟没有超过clock的间隙,就会造成潜在的失效,在某些情况下,比如硬件变化、外界温度变化等,延迟超过clock的间隙,导致缺陷。这种延迟缺陷,可以通过AC测试的方法进行补充,比如测试上升沿的时间、下降沿的时间等等。2 Pattern向量测试及IDDQ测试方法上面给大家介绍了一下各种失效模式及测试原理。通过Pattern向量测试,加以电流测试为补充,可以有效地测试各种faults。Pattern向量测试的方法设计人员对某种fault模型进行仿真,给出波形向量,通常是VCD格式或者WGL格式,测试人员需要结合时序、电平和逻辑,进行编程,来对芯片输入向量,以检测输出。如下面图(12)表示的就是测试机force给芯片的一段波形。图(12)而芯片在接受到这段输入的波形后,运行特定的逻辑,输出波形如下面图(13),测试机需要在指定的strobe window进行比较输出的与预期的逻辑值的情况,以此来判断DUT是否逻辑功能正常。图(13)下面图(14)是一个AND gate的逻辑测试的例子,实际的输出会有波动,如图中的紫色的波形,在Edge Strobing地方(pattern的timing设定的)采样到此时的输出为High的状态,表明此AND Gate的逻辑功能是正常。图(14)IDDQ测试的方法:CMOS电路具有低功耗的优点,静态条件下由泄露电流引起的功耗可以忽略,仅仅在转换期间电路从电源消耗较大的电流。Q代表静态(quiescent),则IDDQ表示MOS电流静态时从电源获取的电流。IDDQ测试是源于物理缺陷的测试,也是可靠性测试的一部分,其有着测试成本低和能从根本上找出电路的问题(缺陷)所在的特点。即若在电压测试生成中加入少量的IDDQ测试图形,就可以大幅度提高电压测试的覆盖率。即使电路功能正常,IDDQ测试仍可以检测出桥接、短路、栅氧短路等物理缺陷。测试方法如下面图(15)所示图(15)Step1: 给VDD上最高电压,并且tester的电压源设定一个钳制电流,防止电流过大损测试机。Step2: run一个特定condition的pattern,去toggle尽量多的晶体管on。等待 5~10ms。Step3: 量测流过VDD上的电流。Step4: run另外一个特定condition的pattern,去toggle尽量多的晶体管off。等待5~10ms。Step5: 量测流过VDD上的电流。Step6: 重复上述的step2到step5的步骤大概5~10次,取读出的平均值。跟datasheet中的规范进行比较。各种测试的测试覆盖率的大概情况如下面图(16)所示:图(16)如上图所示,hardware直接量测是最直接的方法,但是这种方法可以测试的电路有限,很多内部电路无法通过这种方法完成。而Stuck At测试和IDDQ测试的组合,可以有效的在时间和成本经济的情况下提高测试覆盖率。3其它的Hardware测试介绍连通性测试介绍连通性测试是测试芯片的管脚是否有确实连接到测试机之上,芯片的管脚之间是否有短路的一种测试,通常情况下,这项测试会放在第一项进行,因为连通性测试可以很快发现测试机的setup问题,以及芯片管脚开短路的问题,从而在第一时间发现bad dut,节省测试成本。如下图(17)所示的一个封装芯片的剖面图,造成连通性失效主要有这几个原因:a) 制造过程中的问题,引起某些pin脚的开短路。b) 封装中的missing bonding wires,会造成开路。c) 静电问题,造成某个pin被打坏从而造成开短路问题。d) 封装过程中造成的die crack或者某个pin脚的弯曲。图(17)这个测试主要是去测试pin的ESD保护二极管。一般情况下,会把open/short测试放在一个项目里同时测试,也有情况是需要分开测试这两个项目。测试某个pin到ground/其它pin之间的连通性,如下图(18),图(18)Step1: 所有不测试的pin都置0v。Step2: 在需要测试的pin上source一个-100uA的电流。Step3: 量测这个在测试的pin上的电压--如果tester与这个测试pin接触很好,并且这个pin本身没有任何的开路或者短路到VDD/ground/其它的pin脚上,那么理想的测试到的电压会是-0.7v。--如果这个在测试的pin有开路的fault,会量测到一个大的负电压。--如果这个在测试的pin有短路到vdd/ground/其它的pin上,会量测到一个接近0v的电压。考虑到实际的电路的情况,一般limit设置为-1.5V ~-0.2V。测试某个pin到VDD/其它pin之间的连通性,如下图(19)图(19)Step1: 所有不测试的pin都置0v。Step2: 在需要测试的pin上source一个100uA的电流。Step3: 量测这个在测试的pin上的电压。--如果tester与这个测试pin接触很好,并且这个pin本身没有任何的开路或者短路到VDD/ground/其它的pin脚上,那么理想的测试到的电压会是0.7v。--如果这个在测试的pin有开路的fault,会量测到一个大的正电压。--如果这个在测试的pin有短路到vdd/ground/其它的pin上,会量测到一个接近0v的电压。考虑到实际的电路的情况,一般limit设置为0.2V~1.5V。DC参数测试(DC Parameters Test)DC参数的测试,一般都是force电流测试电压或者force电压测试电流,主要是测试阻抗性。一般各种DC参数都会在datasheet里面标明,测试的主要目的是确保delivery的芯片的DC参数值符合规范。IDD测试IDD测试(或者叫做ICC测试),在CMOS电路中是测试Drain to Drain的流动电流的,在TTL电路中是测试Collector to Collector的流动电流。如下面图(20)所示:图(20)Gross IDD/ICC Test (power pin short test)电源pin的短路测试,通常Open/short测试后马上进行,如果在制造过程中有issue,导致了电源到地的短路,会测试到非常大的电流,也会反过来损害到测试机本身。测试的基本方法如下面图(21)所示图(21)Step1: 给VDD上最高电压,并且tester的电压源设定一个钳制电流,防止电流过大损测试机。Step2: 所有的输入pin置高,所有的输出pin置0. 等待5~10ms。Step3: 量测流过VDD上的电流,正向或者反向电流过高都说明电源到地短路了。Static IDD/ICC Test (静态功耗测试)这个项目是测试当芯片在静态或者idle state的情况下,流过VDD的漏电,这个参数对低功耗应用场景特别重要;这项测试也能检测出一些在制造中产生的margin defect,这些defect非常有可能会给芯片带来潜在的可靠性风险。测试方法与下面图(22)所示图(22)Step1: 给VDD上最高电压,并且tester的电压源设定一个钳制电流,防止电流过大损测试机。Step2: 跑pre-condition pattern,把芯片设置到低功耗状态。等待5~10ms。Step3: 量测流过VDD上的电流,根据datasheet中的标识设定limit,超过limit即表示坏品。Dynamic IDD/ICC Test (动态功耗测试)这个项目是测试当芯片在不停地运行某种function的情况下,流过VDD的电流。这个类似于某种工作情况下的功耗,需要meet产品spec中的值,对于功耗要求严格的应用方案,此项指标非常重要。测试方法如下面图(23)所示:图(23)Step1: 给VDD上最高电压,并且tester的电压源设定一个钳制电流,防止电流过大损测试机。Step2: 让芯片持续不断的运行特定的pattern,等待5~10ms。Step3: 量测流过VDD上的电流,根据datasheet中的标识设定limit,超过limit表示坏品。Leakage测试芯片内部晶体管不可能在理想的状态,因此或多或少会存在一定的漏电流,需要测试漏电,保证漏电是在正常的允许的范围内,而不是潜在的defect。Input Leakage Test(IIH and IIL)IIH是当芯片的某个input pin被设定为输入VIH时,从这个input pin到芯片的ground之间的漏电流,如下图(24)所示图(24)IIL是当芯片的某个input pin被设定为输入VIL时,从芯片的VDD 到这个input pin的之间的漏电流,如下图(25)所示图(25)Output Tristate Leakage Test(IOZL and IOZH)Tristate表示的是输出pin是高阻状态,当这个时候,如果输出pin上有电压VDD,那么从输出pin到芯片的ground上会有漏电(IOZH);如果输出pin接地,那么从芯片的VDD到这个输出pin上也会有漏电(IOZL),如下面图(26)所示,这些漏电必须保持在spec规定的范围内,以确保芯片的正常工作,不会有潜在的defect产生。图(26)Output Logic Low DC Test(VOL/IOL)VOL表示的是当输出pin为状态low的时候的最大电压,IOL表示的是在此种状态下这个输出pin的最大的电流驱动能力,这个项目是测试当此状态下的输出pin对地的电阻大小,如下面图(27)所示。图(27)Output Logic High DC Test(VOH/IOH)VOH表示的是当输出pin为状态high的时候的最小电压,IOH表示的是在此种状态下这个输出pin的最大的电流驱动能力,这个项目是测试当此状态下的芯片的VDD到这个输出pin的电阻大小,如下面图(28)所示。图(28)随着芯片工艺越来越先进,晶体管密度越来越高,芯片测试的复杂度和难度也成倍地增长。本文通过各种失效模式及检测机理的讨论,梳理了一下基本的测试概念。后续我们会再针对混合信号测试、RF测试、DFT测试进行一些探讨,谢谢!*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。今天是《半导体行业观察》为您分享的第2248期内容,欢迎关注。来自微信
2025年08月08日
21 阅读
0 评论
0 点赞
2025-08-08
ASIC设计学习总结(包括:工具及书籍文档推荐 、软件环境搭建、RTL设计、验证、工艺库说明、形式验证、综合等共12部分)
原创tfpwl——lj EET0P2019年02月07日09:57之前介绍过了了芯片设计全流程介绍(芯片设计全流程详解 包括:正向流程和反向流程)。由于当时的经验十分有限,所以对于正向设计,特别是对于从RTL级代码开始的设计介绍得不是很清楚。经过这一段时间的学习,对于从RTL级代码开始的Asic芯片设计有了更多的认识,现在总结一下,一方面给自己整理思路,另一方面也希望抛砖引玉,让大家各抒己见,分享一下各自的设计经验,促进我们的共同进步。笔者原本打算详细的介绍学习中的收获,将各类知识点写成文章,但经过反复考量之后,发现这种详细照搬别人知识的做法其实没什么意思。与其原封不动的转述别人书中的内容,不如直接提供参阅的书目,这样就免得在转述别人的知识的时候误解作者想要表达的真正意义。所以本系列的文章,笔者将个人学习的经验加以整合,将经验知识点罗列出来,并附加所参阅的书籍。另外涉及到实践操作过程的章节,将会把具体使用的工具罗列出来,并附上一些参考性的代码和脚本。本系列文章主要分为十二个部分,分别为:(一)工具及书籍文档推荐(二)软件环境搭建(三)RTL设计(四)验证(五)工艺库说明(六)形式验证(七)综合(八)可测性设计(九)低功耗设计(十)静态时序分析(十一)数模混合仿真(十二)可测性设计介绍这么多,不是显得个人有多少经验,其实本人也只是菜鸟,关注这么多内容,主要是为了让自己的知识储备更全面一下,这样考虑设计问题的时候遗漏的东西会更少一些。在本系列文章中,每个章节的详略是不同的,主要是跟个人工作经验有关,有介绍得简单的地方,麻烦大家帮忙补充。每个部分的内容基本采用“理论+工具+示例”的行文结构,有些EDA工具笔者没有使用过的就暂不能提供实例了。(一)工具及书籍文档一、前言对于RTL级的Asic设计所涉及到的软件是非常之多的,笔者也并没有每一个都使用过。二、工具介绍RTL代码规则检查工具:nlint,spyglass。这两个软件主要是用于检查代码的语法和语义错误的,并且比其他的工具能检测出更多的问题,比如说命名规格,时序风险,功耗等。详细介绍请参考软件的使用教程,nlint有Windows版和linux版,软件的linux版本和使用教程可以在eetop上搜索到。RTL代码仿真工具:这类仿真工具有较多的组合,比如说:qustasim/modelsim,NC_verilog+Verdi,VCS+DVE,VCS+Verdi等等。目前笔者使用的组合是VCS+Verdi。这两个软件是业内主流的仿真软件,还可以结合UVM库进行仿真,当然这是验证方法学的内容。综合工具:Design Complier。最常用的综合工具,没有之一,该软件主要是将RTL代码“翻译+优化+映射”成与工艺库对应的门级网表。并且还包含功耗分析软件Power Complier和边界扫描寄存器插入软件 BSD Complier。可测性设计:DFT Complier + TetraMAX。软件在DC之后使用,DFT Complier 用于将设计的内部寄存器替换成扫描寄存器并组成一条或多条扫描链,TetraMAX是用于自动生成测试向量的。形式验证工具:Formality、Conforml(candence出品)。等价性验证工具,主要是在DFT Complier插入扫描链之后进行验证,另外,在版图综合时钟树,插入BUFFER之后,也需要用该工具进行等效性验证。静态时序分析工具: Prime Time。业界最常用的时序分析工具之一,该软件包括功耗分析PTPX工具,功耗分析必备。cadence也有对应的时序分析工具——Encounter Timing System。自动布局布线工具(APR):ICC,Enconter。其中Encounter是Cadence公司的。数模混合仿真: nanosim + VCS,nanosim的升级版为XA。这是一篇有关于synopsysEDA工具软件的介绍,希望对于EDA软件的用途不清楚的伙伴有帮助。http://bbs.eetop.cn/thread-151171-1-1.html三、书籍推荐《Verilog HDL 硬件描述语言》《设计与验证Verilog HDL》《企业用verilog代码风格规范》《verilog语言编码风格》《verilogHDL代码风格规范》《Verilog HDL高级数字设计》《Soc设计方法与实现》《高级ASIC芯片综合》《华为Verilog典型电路设计》《数字IC系统设计》《数字集成电路--电路、系统与设计》《专用集成电路设计实用教程》《集成电路静态时序分析与建模》《CMOS集成电路后端设计与实战》《makefile教程》《鸟哥的私房菜》《SystemVerilog与功能验证》《UVM实战》《通信IC设计(上下册)》《数字图像处理与图像通信》《数字信号处理的FPGA实现中文版》各类Synopsy userguide,EETOP有16年版的。三、工艺库说明使用DC,PT,FM,ICC或者ENCOUNTER软件需要工艺库文件,主要包括数字逻辑单元文件,符号库,综合库,寄生电容参数库,版图文件LEF,milkway库等等。有关工艺库各文件夹的作用,笔者将会在将“工艺库说明”的章节进行详细介绍,如果有遗漏还请大家包涵。(二)环境搭建一、前言先介绍一下个人的使用环境。由于网络上已经存在很多安装教程,笔者就不再废话,直接给出他们的连接,并附带其他需要注意的关键点,如果有安装问题,请追问。Synopsys软件安装包下载地址在笔者前一篇文章“工具及书籍文档”,都是来自EETOP的大牛们提供的。在安装的过程中需要具备一些Linux系统的使用经验,不然会很难理解这些步骤是做什么的。个人的环境如下:1、vmware 12;2、RHEL6.5系统;3、synopsys软件,Lib Complier,VCS,Verdi,Desgin Complier,PrimeTime,Formality,ICC。一共7个软件,几乎都是15年版本的。二、步骤环境搭建需要准备以下三件事:1,vmware12虚拟机安装;安装教程如下。https://jingyan.baidu.com/article/215817f78879c21edb142379.html2, RHEL6.5操作系统安装,当然也可以使用CentOs6.5,安装教程如下。http://www.linuxidc.com/Linux/2016-05/131701.htm ——》RHEL6.5https://www.kafan.cn/edu/488101.html ——》Centos6.5a、安装vmware tools。在虚拟机中把系统安装好了之后,需要安装vmware tools,安装教程如下,http://www.linuxidc.com/Linux/2015-08/122031.htm ,安装该软件之后才可以启用共享文件夹以利于RHEL6.5与windows系统进行文件交换。b、更新YUM源,RHEL和Centos都需要更新YUM源,操作步骤一致,YUM是一个链接到软件库的一个软件,随后安装软件需要用到。https://jingyan.baidu.com/article/b24f6c8239c6aa86bee5da60.html注意:该教程某些步骤可能会失效,需要结合自己具体的情况使用。安装好YUM之后,可以使用yum install gvim命令测试一下。c、安装GCC,G++,这两个软件在VCS+Verdi仿真时会调用到。命令:yum install gcc命令:yum install gcc-c++3、 Synopsys软件安装Synopsys软件安装教程,链接如下:https://wenku.baidu.com/view/c02c271d9b6648d7c0c74670.htmlhttp://bbs.eetop.cn/thread-553702-1-1.html高版本和低版本的Synopsy软件安装步骤一致,区别在于license的问题。用EETOP上的最新license即可使用15版的软件。在使用RHEL操作系统需要懂一些SHELL脚本,makefile脚本,这样便于提高操作效率,后文会提到。注意:此外还需要修改四个文件的hostname,使得这四处的hostname保持一致。a、synopsys.dat中的第一行hostname;b、synopsys.bashrc中的export SNPSLMD_LICENSE_FILE=27000@localhost行,“@”符号后的hostname;c、/etc/sysconfig/network配置文件中hostname;d、/etc/hosts配置文件中的127.0.0.1这一行的 ,第三个参数hostname;这四个hostname一定要一致,才能正确启动DC,PT,FM,ICC,VCS,VERDI软件。在启动DC,PT,FM,ICC,VCS,VERDI软件之前需要先启动Synopsys的license管理器。有关软件的使用教程可以参考官方的userguide。或者EETOP上,小伙伴们的教程。(三)工艺库说明(略,请点击阅读原文查看)(四)RTL设计数字电路设计RTL设计所需要的理论知识庞杂而繁多,本文所介绍的内容均由个人参阅了许多书籍之后加以整合的,很多内容本人也不是很熟,只是罗列出来作为参考学习的资料。主要有三个部分的内容,第一部分主要是数字电路设计的基础,这是在大学时期应该予以掌握的内容,第二部分是进阶的学习内容附带一个专业方向——MCU,第三部分是有关于各类算法处理的专业知识,需要更多的复合型知识,例如通信方向需要有较好的数学功底—傅立叶变换。由于这部分内容实在太多,个人没有能力也没有必要将每一部分的内容都详细的罗列出来,所以这里只是整理出一些需要把握的关键点。至于具体的内容,还请大家按照个人需求,参阅推荐的各类书籍。一、基础组合逻辑与时序逻辑:布尔代数,卡诺图,基本与非门,锁存器,触发器,冲突与冒险。——《Verilog HDL高级数字设计》Verilog语言基础:数值类型,表达式与运算符,assign语句,always语句,if-else语句,case语句,阻塞与非阻塞。——《Verilog HDL 硬件描述语言》状态机:一段式、二段式、三段式状态机的区别;独热码、二进制码、格雷码的区别及应用场合。——《Verilog HDL高级数字设计》同步电路和异步电路:两者的本质,异步电路跨时钟域,亚稳态。——IC_learner博客复位与时钟:同步复位、异步复位、异步复位同步释放的区别,时钟分频——二分频、三分频、任意整数分频,门控时钟,时钟切换。——《深入浅出玩转FPGA》,百度文档数据通路与控制通路:本质上任何数字电路都可以划分为简单的两种类型——控制通路与数据通路,控制通路的核心是状态机,数据通路是各类算术处理算法、并行总线等等。——《Verilog HDL高级数字设计》Testbench验证:无论什么电路,最终都需要验证其功能的正确性。Testbench的结构主要由a,复位和时钟,b,激励产生电路,c,系统监视器,d,结果比较电路,e,波形产生函数,f,待验证的MODULE等主要模块组成,其中,b是最重要的模块,一切验证都是从激励信号开始的。——《verilogHDL代码风格规范》。初学者推荐使用windows版qustasim 或者modelsim 仿真工具,简单又方便,以后可学习使用VCS+Verdi(比较折腾人)。二、进阶代码风格:良好的代码风格很有必要,参考一下企业用的代码风格,有助于个人养成良好的编码习惯。——《企业用verilog代码风格规范》《verilog语言编码风格》基本常用电路:具备以上庞杂的理论基础之后,需要积累一些常用的基础电路。——《华为Verilog典型电路设计》接口电路,I2C,UART,SPI:接口电路是中小规模芯片常用的对外接口电路,无论是与上位机(PC)通信还是控制其它芯片。I2C从机常用于EEPROM芯片中,主机可以直接使用单片机模拟,ARM单片机直接集成了I2C主机,I2C的IP代码网络上有现成的;UART是全双工电路,宏晶单片机通过UART进行烧录,SPI电路最常用于SD卡上。——《Verilog HDL高级数字设计》《通信IC设计(上下册)》有简单的UART和SPI的代码。RISC,8051 MCU ——IP:通过下载EETOP上相关的IP及文档来学习。 三、专业数值的表示方法:浮点数,定点数的表示办法——《Verilog HDL高级数字设计》《通信IC设计(上下册)》算术处理算法:浮点数的加法、乘法电路设计。——《Verilog HDL高级数字设计》通信算法:FIR滤波器,IIR滤波器,傅立叶变换,冗余编码等等各种通信方向必须掌握的。——《通信IC设计(上下册)》《数字信号处理的FPGA实现》图像处理算法:静态图像,动态图像去噪。——《数字图像处理与图像通信》SOC:SOC类芯片的组成结构,AMBA总线,IP复用,SV验证。——《Soc设计方法与实现》四、工具:文档代码编辑器:GVIM,Notpad++RTL设计规则检查:Nlin,spyglass(五)验证(1)一、前言借助于前文RTL设计中提到的UART代码,本章节将在后面给出对应的testbench以及说明如何在questa/modelsim、VCS+DVE、VCS+Verdi工具中使用。推荐书籍:《vcs User Guide 2016》二、TestbenchTestbench的结构,正如上文提到的,主要由a,复位和时钟,b,激励产生电路,c,系统监视器,d,结果比较电路,e,波形产生函数,f,待验证的MODULE,g,控制仿真时间这几个部分组成。本章节提供的testbench只包含a,b,e,f,g部分,至于c,d更高级的内容,暂时无法涉及,questa/modelsim将不会使用到e部分的代码,使用questa/modelsim仿真时要屏蔽掉全部e段的内容。同样,在使用VCS+DVE进行仿真时要屏蔽VCS+VERDI的e段内容三、工具使用3.1modelsim仿真对于modelsim仿真, 仿真文件包含:1,verilog源文件(前文已全部提供);2,testbench文件(后面会提供)modelsim使用教程:https://wenku.baidu.com/view/db638e25b9d528ea81c779cc.html有关在modelsim软件中如何使用本示例请参考以上教程。仿真结果图:3.2 VCS+DVE和VCS+VERDI仿真对于VCS+DVE和VCS+VERDI, 仿真文件包含:1,verilog源文件(前文已全部提供);2,testbench文件(后面会提供),3,包含verilog、testbench文件路径的uart.f文件(必要时需自行修改),4,makefile仿真启动文件。在终端中运行make命令即可运行仿真,一定要注意文件路径问题。makefile教程:http://blog.csdn.net/liang13664759/article/details/1771246VCS+DVE 使用教程,https://wenku.baidu.com/view/48912cf558fb770bf68a55b4.htmlDVE是VCS软件自带的波形查看器。本章实例对应的VCS+DVE makefile启动脚本:all:VCS DVE VCS: vcs -f uart.f -full64 -debug_all -R DVE: dve -vpd wave.vpd -mode64 将以上内容复制到文本文件中,并将该文本文件改名为makeflile。uart.f内容:/home/Lance/synopsys/UART/testbench.v //必须放在文件中的第一行。/home/Lance/synopsys/UART/UART_XMTR.v/home/Lance/synopsys/UART/Control_Unit.v /home/Lance/synopsys/UART/Datapath_Unit.v/home/Lance/synopsys/UART/UART_RCVR.v/home/Lance/synopsys/UART/Control_Unit2.v/home/Lance/synopsys/UART/Datapath_Unit2.v DVE波形查看器启动命令:dve -vpd wave.vpd -mode64此外,在运行makefile启动脚本之前,还需要在testbench中添加如下代码:initialbegin $vcdplusfile("wave.vpd");//保存的波形文件名字 $vcdpluson(1,tb);//tb对应testbench文件的内的module名字 end该段代码为e,波形产生函数,主要是生成DVE波形查看器使用的VPD格式的波形文件。仿真结果图:VCS+Verdi,Verdi是debussy的升级版,是一个独立的软件,这对软件组合使用方式与VCS+DVE差不多。VCS+Verdi makefile启动脚本:all:VCS VERDI VCS:vcs +v2k -sverilog -debug_all -P /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/novas.tab /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/pli.a +vcs+lic+wait \ -f uart.f -y ./ +libext+.v -full64 -RVERDI: verdi -f uart.f -ssf wave.fsdb & 将以上内容复制到文本文件中,并将该文本文件改名为makeflile。注意:-P /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/novas.tab /usr/synopsys/Verdi/K-2015.09/share/PLI/VCS/LINUX64/pli.a主要是调用Verdi的接口函数以生成fsdb波形。 Verdi波形查看器启动命令:verdi -f uart.f -ssf wave.fsdb &此外,在运行makefile启动命令前,还需要在testbench中添加如下代码:initialbegin $fsdbDumpfile("wave.fsdb"); $fsdbDumpvars(0,tb); end 以生成Verdi波形查看器使用的FSDB格式的波形文件。注意: 启动脚本相关问题,需要学习makefile有关内容,有关VCS和Verdi的详细使用教程,还请参考其它资料。 (七) 综合(八)形式验证(九)数模混合仿真(十)静态时序分析(十一)低功耗设计(十二)可测性设计(由于篇幅关系,以上章节请点击阅读原文前往作者博客查看)推荐阅读:关注EETOP公众号,后台输入 芯片,查看如下文章ASIC前后端设计经典的细节讲解IC大牛10多年的设计分享:数字典型电路知识结构地图及代码实现关于华为海思,这篇文章值得一看俄国没有高端芯片,为什么却能造出一流武器?别拦我,我要做芯片!芯片春秋·ARM传中国芯酸往事印度芯酸往事国防军工芯片行业深度报告一位美国芯片公司华人高管对中国芯片行业的思考学习、积累、交流-IC设计高手的成长之路女生学微电子是一种什么体验?MIPS架构开放了,10天设计一款完全免费的MIPS处理器(附源码)性能之殇:从冯·诺依曼瓶颈谈起AI芯片设计与开发概览AI 芯片和传统芯片有何区别?一个资深工程师老王关于AI芯片的技术感悟隔隔壁老王:AI芯片与她怎么选?终于有人把云计算、大数据和人工智能讲明白了!尺寸减半、功率翻番!——氮化镓技术的现在和未来逻辑综合 Design Compiler 资料大全集成电路制造技术简史版图中Metal专题——线宽选择麒麟980内核照片:NPU在哪呢?有哪些只有IC工程师才能get到的梗?为什么7nm工艺制程这么难?从7nm看芯片行业的“贫富差距”什么是台积电的SoIC? RISC-V打入主流市场的诸多问题RISC-V架构有何优势?关于RISC-V 终于有人讲明白了!ASIC低功耗设计实例分析及书籍推荐ASIC设计学习总结之可测性设计及书籍推荐ASIC设计学习总结之静态时序分析概要及书籍推荐ASIC设计学习总结之工具及书籍文档小芯片大价值 | ASIC工程师如此值钱到底为什么?芯片面积估计方法简介自主研发通信芯片有多难?通信行业老兵告诉你,没那么简单!RISC-V精简到何种程度?能省的都省了!多核CPU设计及RISC-V相关资料时序设计与约束资料汇总模拟版图讲义GDSII转DEF的flow简介机器学习将越来越依赖FPGA和SoCVerilog基本功之:流水线设计Pipeline Design先进封装发展趋势分析PPT先进封装发展现状分析PPT可测试性设计与ATPG麒麟980是如何诞生的?敢于失败,勇于尝试!(附:华为早期型号处理器研发过程)IC模拟版图设计讲义 Verilog CPU设计实例。。。。(共260篇)
2025年08月08日
43 阅读
0 评论
0 点赞
2025-08-07
关于量子通信与量子计算,终于有人讲透了!
EET0P2018年09月17日11:59来源:绿盟博客 作者:陈磊 原地址:http://blog.nsfocus.net/quantum-information-technology/本文首先介绍量子相关的基本概念、性质及基本原理;接着,从量子通信和量子计算两个部分阐述其原理与发展现状;然后,简单介绍了后量子密码学(也称抗量子密码体制)的发展情况;最后,对量子信息技术的发展进行总结与展望。文章目录1 引言2 量子信息简介2.1 量子概念2.2 量子基本特性2.3 量子信息2.4 量子信息学3 量子通信3.1 量子通信系统基本模型3.2 量子通信技术优势3.3 量子密钥分配基本原理3.4 量子隐形传态基本原理3.5 理论与试验研究进展3.6 产业化进展与面临的挑战4 量子计算4.1 典型量子算法4.2 量子机器学习与深度学习算法4.3 量子计算机4.4 量子编码5 后量子密码6 总结1 引言量子信息科学(Quantum Information)是以量子力学为基础,把量子系统“状态”所带有的物理信息,进行信息编码、计算和传输的全新信息技术。量子信息技术主要包括量子通信和量子计算,由于它们具有潜在的应用价值和重大的科学意义,正引起人们广泛的关注和研究。本文首先介绍量子相关的基本概念、性质及基本原理;接着,从量子通信和量子计算两个部分阐述其原理与发展现状;然后,简单介绍了后量子密码学(也称抗量子密码体制)的发展情况;最后,对量子信息技术的发展进行总结与展望。2 量子信息简介在本章中,首先介绍量子和量子信息基本概念及相关特性;然后介绍量子信息学领域的研究分支及其研究内容。2.1 量子概念量子(Quantum)属于一个微观的物理概念。如果一个物理量存在最小的不可分割的基本单位[1],那么称这个物理量是可量子化的,并把物理量的基本单位称为量子。现代物理中,将微观世界中所有的不可分割的微观粒子(光子、电子、原子等)或其状态等物理量统称为量子。量子这个概念最早由德国物理学家普朗克在1900年提出的,他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位的整数倍,这很好地解释了黑体辐射的实验现象。即假设对于一定频率的电磁辐射,物体只以“量子”的方式吸收和发射,每个“量子”的能量可以表示为:,为普朗克常数。量子假设的提出有力地冲击了牛顿力学为代表的经典物理学,促进物理学进入微观层面,奠定了现代物理学基础,进入了全新的领域。2.2 量子基本特性作为一种微观粒子,量子具有许多特别的基本特性,如量子力学三大基本原理:量子测不准也称为不确定性原理,即观察者不可能同时知道一个粒子的位置和它的速度,粒子位置的总是以一定的概率存在某一个不同的地方,而对未知状态系统的每一次测量都必将改变系统原来的状态。也就是说,测量后的微粒相比于测量之前,必然会产生变化。量子不可克隆量子不可克隆原理,即一个未知的量子态不能被完全地克隆。在量子力学中,不存在这样一个物理过程:实现对一个未知量子态的精确复制,使得每个复制态与初始量子态完全相同。量子不可区分量子不可区分原理,即不可能同时精确测量两个非正交量子态。事实上,由于非正交量子态具有不可区分性,无论采用任何测量方法,测量结果的都会有错误。除此之外,还包括以下基本特性:量子态叠加性(superposition)量子状态可以叠加,因此量子信息也是可以叠加的。这是量子计算中的可以实现并行性的重要基础,即可以同时输入和操作个量子比特的叠加态。量子态纠缠性(entanglement)两个及以上的量子在特定的(温度、磁场)环境下可以处于较稳定的量子纠缠状态,基于这种纠缠,某个粒子的作用将会瞬时地影响另一个粒子。爱因斯坦称其为: “幽灵般的超距作用”。量子态相干性(interference)量子力学中微观粒子间的相互叠加作用能产生类似经典力学中光的干涉现象。2.3 量子信息一个经典的二进制存储器只能存一个数:要么存 0,要么存 1。但一个二进制量子存储器却可以同时存储0和1这两个数。两个经典二进制存储器只能存储以下四个数的一个数: 00,01,10 或 11。倘若使用两个二进制量子存储器,则以上四个数可以同时被存储下来。按此规律,推广到N个二进制存储器的情况,理论上,N个量子存储器与N个经典存储器分别能够存储个数和1个数。由此可见,量子存储器的存储能力是呈指数增长的,它比经典存储器具有更强大的存储数据的能力,尤其是当 N很大时(如 N=250 ),量子存储器能够存储的数据量比宇宙中所有原子的数目还要多[1]。2.4 量子信息学量子信息学是量子力学与信息科学形成的一个交叉学科,该领域主要包括两个领域:量子通信和量子计算。其中量子通信主要研究的是量子介质的信息传递功能进行通信的一种技术,而量子计算则主要研究量子计算机和适合于量子计算机的量子算法。图 1 量子信息学的研究分支3 量子通信所谓量子通信,从概念角度来讲就是利用量子介质的信息传递功能进行通信的一种技术。它主要包括量子密钥分配、量子隐形传态等技术。量子密码 (Quantum Cryptography)是利用量子力学属性开发的密码系统。与传统的密码系统不同的是,它的安全性依赖于量子力学属性(不可测量和不可克隆等)而不是数学的复杂度理论。量子密钥分配是研究最为成熟的量子密码技术。在本章中,我们首先简单地介绍量子通信系统的基本模型以及优势,然后介绍量子密钥分配和量子隐形传态的基本原理。接着,概述量子通信的目前研究与发展现状。最后,总结量子通信目前存在的问题。3.1 量子通信系统基本模型量子通信体系架构包括量子态发生器、量子通道和量子测量装置以及经典信道等部分,其基本模型如图2所示。图 2 量子通信系统基本模型量子通信过程可以从发送端和接收端两个角度理解。在发送端,量子信源模块产生消息,消息通过量子编码模块转换成量子比特,量子比特通过量子调制模块得到以量子态为载体的量子信息,量子信息通过量子信道进行传输。除此以外,量子调制的模式信息(传统的信息)需要使用经典信道进行传输。在接收端,将接收到两部分信息:量子信道接收量子信息;经典信道接收额外的经典信息。这两部分信息通过解调和解码模块后,获得最终的消息。3.2 量子通信技术优势量子通信与传统通信技术相比,具有如下主要特点和优势:(1) 时效性高。量子通信的线路时延近乎为零,量子信道的信息效率相对于经典信道量子的信息效率高几十倍,传输速度快。(2) 抗干扰性能强。量子通信中的信息传输不通过传统信道(如传统移动通信为了使得通信不被干扰,需要约定好频率,而量子通信不需要考虑这些因素),与通信双方之间的传播媒介无关,不受空间环境的影响,具有完好的抗干扰性能。(3) 保密性能好。根据量子不可克隆定理,量子信息一经检测就会产生不可还原的改变,如果量子信息在传输中途被窃取,接收者必定能发现。(4) 隐蔽性能好。量子通信没有电磁辐射,第三方无法进行无线监听或探测。(5) 应用广泛。量子通信与传播媒介无关,传输不会被任何障碍阻隔,量子隐形传态通信还能穿越大气层。因此,量子通信应用广泛,既可在太空中通信,又可在海底通信,还可在光纤等介质中通信。3.3 量子密钥分配基本原理量子密钥分配 (Quantum Key Distribution, QKD)以量子态为信息载体,通过量子信道使通信收发双方共享密钥,是密码学与量子力学相结合的产物。QKD 技术在通信中并不传输密文,而是利用量子信道将密钥分配给通信双方,由于量子力学的测不准和量子不可克隆定理,攻击者无法获取正确的密钥。基于QKD 技术的保密通信系统结构如图3所示,其中上路负责密钥分配,下路负责传输加解密数据。在上路中,量子信道负责传输量子密钥,经典信道负责传输测量基[2]等额外需要的信息。下面,将以BB84[5]方案为例,具体地介绍两条信道起到的作用。图 3 基于QKD 的量子保密通信系统BB84 方案。1984 年,Brassard与Bennett联合提出了第一个实用型量子密钥分配系统—BB84 方案,系统架构如图4 所示。图 4 BB84协议示意图[20]该方案通过量子信道传送密钥,量子信道的信息载体是单个量子,通过量子的相位、极化方向或频率等物理量携带量子密钥信息。BB84 方案利用单个量子作为信息载体两组共扼基,每组基中的两个极化互相正交。由于理想状态的量子信道无法实现,BB84 方案还利用经典信道进行量子态测量方法的协商和码序列的验证。有趣的现象:接收端必须使用正确的测量基,才能正确地测出量子比特(光量子的偏振态);使用错误的测量基,测量结果将发生错误,同时光量子的偏振态发生改变,如图5所示。图 5测量基对测量结果的影响[20]有了以上基础后,理解BB84协议将变得相对容易,其主要步骤如下:量子信道部分(1) Alice发送随机的量子比特串给Bob。Alice随机选择四种偏振片,制备不同偏振状态的光量子,得到足够多的随机量子比特并将其发送给Bob。(2) Bob随机选择测量基测量量子比特。由于Bob并不知道光量子是由发送端那一种测量基编码的,所以他也只能随机选择测量基来进行测量。当选择正确的测量基时,测量的结果正确。当使用错误的测量结果时,测量结果错误。经典信道部分(3) Bob将使用的测量基发送给Alice。(4) Alice将接收的测量基与使用的测量基进行比较,并通过信息告诉Bob哪些位置的测量基是正确的。(5) Bob根据Alice的消息剔除错误的量子比特,并将选择少部分正确的测量结果告诉Alice。(6) Alice确认Bob测量结果的正确性。若错误,则说明存在量子信道可能存在窃听,停止通信或者返回第 (1) 步(由于实际的量子信道中也存在噪声,因此会根据一个错误率阈值判断是否窃听和停止通信)。若正确,剔除部分的量子比特,剩下的二进制串作为最终的密钥。并发送确认信息给Bob。(7) Bob收到确认信息。同样剔除部分的量子比特,剩下的二进制串作为最终的密钥。我们对BB84协议的安全性做一个简单的分析:如果Eve在量子信道中旁路窃听,由于量子不可克隆,因此Eve无法复制出一份相同的量子比特副本;如果他在量子信道中直接测量光量子,由于Eve不知正确的测量基,他也会随机选择,有50%的概率选择正确,50%的概率选择错误。若选择的测量基错误,有上述的有趣的现象可知,测量结果错误,同时光量子的偏振态发生改变。当协议的步骤由 (2) 执行到 (6) 时,Alice将发现到量子信道的窃听,那么她将终止这一过程。如果在经典信道进行窃听呢?实际上也是无效的。即使Eve知道了测量基信息(步骤 (3)),然而由于量子不可克隆,无法得到正确的量子比特串副本。由以上分析可知,BB84协议基于量子不可克隆等原理,实现安全的密钥分配过程。3.4 量子隐形传态基本原理量子隐形传态( Quantum Teleportation) 又称量子远程传态或量子离物传态,是利用量子纠缠的不确定特性,将某个量子的未知量子态通过EPR对(纠缠量子对)的一个量子传送到另一个地方(即EPR对中另一个量子),而原来的量子仍留在原处。如图所示6所示,Alice想和Bob通信,具体流程如下:(1) 制备两个有纠缠的EPR量子(粒子)对,然后将其分开,Alice和Bob各持一个,分别是粒子1和粒子2。(2) Alice粒子1和某一个未知量子态的粒子3进行联合测量,然后将测量结果通过经典信道传送给接Bob。此时,神奇的事情发生了:Bob持有的粒子2将随着Alice测量同时发生改变,由一量子态变成新的量子态。这是由于量子纠缠的作用,粒子2和粒子1之间如同有一根无形。(3) Bob根据接收的息和拥有粒子2做相应幺正变换(一种量子计算变换),根据这些信息,可以重构出粒子3的全貌。图 6 量子隐形传态原理图3.5 理论与试验研究进展1993年,学术界给出了一种利用量子技术传输信息的实际方案,4年后量子通信技术在奥地利科学家的实验室中正式完成了实验验证。经过十多年的发展,量子通信先后实现了信息传递从600m(2007年)到通信距离144km(2012年)的巨大跨越,标志量子通信从理论阶段走向实用化阶段。下面从量子密钥分配和量子隐形传态两个主要研究领域进行介绍。(1) 量子密钥分配国外:1993年,英国研究小组首先在光纤中,使用相位编码的方法实现了BB84方案,通信传输距离达10km;1995年,该小组将距离提升到30km。瑞士于1993年用偏振光子实现了BB84方案,光子波长1.3mm,传输距离1.1km,误码率0.54%;1995年,将距离提升到23km,误码率为3.4%;2002年,传输距离达到67km。2000年,美国实现自由空间量子密钥分配通信,传输距离达1.6km。2003年,欧洲研究小组实现自由空间中23km的通信。2008年10月,欧盟开通了8个用户的量子密码网络;同月,日本将量子通信速率提高100倍,20km时通信速率达到1.02Mbit/s,100km时通信速率达到10.1kbit/s。目前,国外光纤量子密钥分配的通信距离达300km,量子密钥协商速率最高试验记录在50km光纤传输中超过1Mb/s[2]。图7 北京—天津量子密码实验[1]国内:2004年,郭光灿团队完成了途径北京望京—河北香河—天津宝坻的量子密钥分配,距离125km。2008年,潘建伟团队建成基于商用光纤和诱骗态相位编码的3节点量子通信网络,节点间距离达20km,能实现实时网络通话和3方通话。2009年,郭光灿团队建成世界上第一个“量子政务网”。同年9月,中国科技大学建成世界上第一个5节点全通型量子通信网络,实现实时语音量子密码通信。2011年5月,王建宇团队研发出兼容经典激光通信的“星地量子通信系统”,实现了星地之间同时进行量子通信和经典激光通信。2012年2月17日,合肥市城域量子通信实验示范网建成并进入试运行阶段,具有46个节点,光纤长度1700km,通过6个接入交换和集控站,连接40组“量子电话”用户和16组“量子视频”用户。2013年5月,中科院在国际上首次成功实现星地量子密钥分发的全方位地面试验。同年11月,济南量子保密通信试验网建成,包括三个集控站、50个用户节点[2]。在2016年8月16日,我国发射首颗“墨子号”量子卫星,这标志着我国在全球已构建出首个天地一体化广域量子通信网络雏形,为未来实现覆盖全球的量子保密通信网络迈出了新的一步。(2) 量子隐形传态1997 年,奥地利Zeilinger小组首次成功实现了量子隐形传态通信; 1998 年初,意大利Rome 小组实现将量子态从纠缠光子对中的一个光子传递到另一个光子上的方案; 同年底,美国CIT 团队实现了连续变量(连续相干光场) 的量子隐形传态,美国学者用核磁共振( NMR) 的方法,实现了核自旋量子态的隐形传送。2001 年,美国Shih Y H 团队在脉冲参量下转换中,利用非线性方法实施Bell 基的测量,完成量子隐形传态。2002年,澳大利亚学者将信息编码的激光束进行了“远距传物”。1997 年,我国潘建伟和荷兰学者波密斯特等人合作,首次实现了未知量子态的远程传输;2004 年,潘建伟小组在国际上首次实现五光子纠缠和终端开放的量子态隐形传输,此后又首次实现6光子、8光子纠缠态; 2011 年,在国际上首次成功实现了百公里量级的自由空间量子隐形传态和纠缠分发,解决了通讯卫星的远距离信息传输问题。2012年9月,奥地利、加拿大、德国和挪威研究人员,实现了长达143公里的“隐形传输”[2]。3.6 产业化进展与面临的挑战量子通信的战略意义吸引了西方各国科研机构的关注,IBM、NIST、Battelle、NTT、东芝、西门子等著名公司和机构一直密切关注其发展并投资相关研究。英国政府在2013年发布了为期5年的量子信息技术专项,投入2.7亿英镑用于量子通信和量子计算等方面的研究成果转化,促进新应用和新产业的形成。国外成立了多个专门从事量子通信技术成果转化和商业推广的实体公司。例如美国的MagiQ公司和瑞士日内瓦大学成立的idQuantique公司等,能够提供QKD量子通信的商用化器件、系统和解决方案。法国电信研究院成立的SeQureNet公司从事连续变量量子密钥分发产品的开发。美国洛斯阿拉莫斯国家实验室成立了Qubittek公司,主攻智能电网安全通信领域[4]。国内开展量子通信相关研究的代表性机构包括中国科学技术大学、中国科学院微系统所和技术物理所、清华大学、山西大学和南京大学等。以中国科学技术大学相关研究团队为核心发起成立了科大国盾量子、安徽问天量子和山东量子等产业化实体,进行量子通信前沿研究成果向应用技术和用化产品的转化,国家对量子通信领域持续的专项投入和政策扶持为其发展提供了强劲动力。(a) 量子密钥分发机 (b) 量子安全加密手机图 8 科大国盾量子公司的产品相比其他量子信息技术,QKD无论在理论中、试验中还是实际应用中,都已经取得了一些重要的进展。然而,大规模的应用和推广仍然面临一系列的困难和挑战[4],主要表现以下四个方面:(1) 初期市场规模和用户群体十分有限。量子通信目前主要面向的是有高安全性要求的特定应用场景,如银行、政务和国防等通信网络环境。传统通信业界对于量子通信的应用目前仍然持观望态度,参与度和热情较低。(2) 产业化供应链的建立尚需时日。QKD 系统采用的单光子源和光子探测器等核心器件与传统光学器件完全不同,生产将面临量子设备特有的器件参数、制造工艺等新的挑战,因此需要一段时间的发展与适应。(3) 行业标准与规范研尚不完善。对于任何高新技术而言,测试认证和标准化是商用化推广的必备条件,而新型测试认证技术的开发通常是非常复杂、昂贵和耗时的。目前测评技术和标准化研究已经成为量子通信实用化的一大瓶颈。(4) 基础设施建立目前难以实现。QKD 系统前期需要更多的投入与改造,将原有传统的通信系统升级量子通信系统,将消耗巨额的经济成本。QKD 系统的量子态信号和传统强光信号的混传,所以大规模量子通信组网需要额外的光纤资源进行支持,将对量子通信系统的应用造成限制。此外,量子通信无法共享传统光通信设备等基础设备,需要进行全新部署, 造成前期大量软硬件升级改造的高投入要求。4 量子计算量子计算利用量子态的叠加性和纠缠性信息的运算和处理,其最显著优势在于“操作的并行性”,即个叠加态的量子信息进行一次变换,相当于对个量子信息同时进行操作。在本章中,我们将首先介绍三种典型的量子算法的原理,进而介绍量子机器学习与深度学习算法相关知识,最后介绍量子计算机的基本原理和量子编码相关知识。4.1 典型量子算法量子算法是量子计算的灵魂。可以说,没有量子算法就无法实现量子计算的并行性。因此,寻找和设计量子算法是量子计算的关键。在量子算法的研究中,出现了三个里程碑式的重要算法:Shor算法,Grove算法和HHL算法,它们都具有较高的理论意义和应用价值。(1) Shor算法1994年,应用数学家Shor 提出了一个实用的量子算法,通常称为Shor算法[12]。它的出现使得大整数分解问题在量子计算机中在多项式时间内解决成为可能,它计算复杂度仅为 。显然,相比经典算法,Shor算法相当于进行了指数加速。算法主要思想是将整数质因子分解问题转化为求解量子傅里叶变换的周期,将多个输入制备为量子态叠加,进行并行处理和操作,从而到到了量子加速的目的。在实际应用中, 2001年,IBM公司的研究小组首次在开发的核磁共振(Nuclear magnetic resonance,NMR)量子计算机中使用Shor算法,成功将15分解成3×5,这一成果引起业界广泛的关注和讨论。理论上,一旦更多量子比特的量子计算机研究成功,对于1000位大整数,采用 Shor算法可以在不到1秒内即可进行素因子分解,而采用传统计算机分解需要年(而宇宙的年龄为年)。由此可见在量子计算机面前,现有的公开密钥 RSA体系不再安全。(2) Grove算法搜索问题指的是从个未分类的元素中寻找出某个特定的元素。对于该问题,经典算法逐个地进行搜寻,直到找到满足的元素为止,平均需要,时间复杂度为。由于很多问题都可以看作一个搜索问题,如寻找对称密码(DES/AES等)的正确密钥,搜索方程的最佳参数等,因此Grover算法的用途十分广泛。(3) HHL算法由于机器学习算法中的某些求参过程同样可看作是该类问题,因此学者们已经将 HHL 算法应用到机器学习领域,比如 K-means 聚类,支持向量机,数据拟合等算法中,从而达到加速的目的。4.2 量子机器学习与深度学习算法在量子算法中,有一类算法是应用在机器学习或深度学习领域。由于近年来人工智能和机器学习/深度学习的研究热潮,同样带动了量子机器学习/深度学习的发展和研究。众所周知,传统的机器学习/深度学习算法仍然面临计算瓶颈的挑战。然而,若充分利用量子计算的并行性,则可以进一步优化传统机器学习算法的效率,突破计算瓶颈,加速人工智能进程。量子机器学习的研究可追溯到1995年,Kak最先提出量子神经计算的概念[15]。相继学者们提出了量子聚类、量子深度学习和量子向量机等算法。2015年,潘建伟教授团队在小型光量子计算机上,首次实现了量子机器学习算法[16]。从经典—量子的二元概念出发可以将机器学习问题按照数据和算法类型的不同分为4类,如表1所示[9]。表1 机器学习分类量子机器学习的训练数据必须以某种可以为量子计算机识别的格式载入(即制备量子叠加态),经过量子机器学习算法处理以后形成输出,而此时的输出结果是量子叠加态的,需要经过测量得到最终结果[9],该流程如图9所示。图9量子机器学习的基本流程表2概述了目前文献中见到的一些典型量子机器学习算法,及其所需资源和性能改善特征[9]。表2 主要量子机器学习算法如前所述,量子机器学习算法相比经典算法,有以下显著优势:(1) 量子加速。由于量子态的可叠加性,相比传统计算机,量子算法可以在不增加硬件的基础上实现并行计算,在此基础上利用Shor算法、HHL算法和Grover搜索等算法,可实现相对于完成同样功能的经典算法的二次甚至指数加速[4]。(2) 节省内存空间。将经典数据通过制备量子态叠加编码为量子数据,并利用量子并行性进行存储,可实现指数级地节省存储硬件需求。4.3 量子计算机所谓量子计算机,它是指具有量子计算能力的物理设备。为什么要出现这种设备呢?主要有两个原因:(1) 外部原因:摩尔定律失效。根据摩尔定律,集成电路上可容纳的晶体管数目每隔24个月增加一倍,性能也相应增加一倍。然而,一方面随着芯片元件集成度的提高会导致单位体积内散热增加,由于材料散热速度有限,就会出现计算速度上限,产生“热耗效应”。另一方面元件尺寸的不断缩小,在纳米甚至埃尺度下经典世界的物理规律不再适用,出现“尺寸效应”。(2) 内部原因:量子计算机的强并行性。这是量子计算机相比传统计算机的显著优势,量子计算机和量子算法相互结合,可以将计算效率进行二倍加速甚至指数加速,例如传统计算机计算需要1年的任务,使用量子计算机可能需要不足1秒的时间。不同于传统计算机,量子计算机用来存储数据的对象是量子比特;不同于传统计算机,量子计算机用使用量子逻辑门进行信息操作,如对单个量子操作的逻辑门:泡利-X门,泡利-Y门,泡利-Z门和Hadamard门等;对两个量子操作的双量子逻辑门:受控非门CNOT,受控互换门SWAP等等。这些量子的逻辑门的操作可以看做一种矩阵变换,即乘以幺正矩阵(可看做正交矩阵从实数域推广到复数域)的过程。图10以Hadamard门为例,表述了对量子态的形象操作过程。图 10 量子门的操作示意图由图可知,Hadamard门可以将一个量子态变成两个量子态的叠加状态。形象地说,猫生的状态通过Hadamard门转换成生和死的叠加态(概率为状态幅度的平方,概率各为50%)。这种性质十分有用,是实现并行计算基础,可以将N个输入数据转换成一个叠加的量子态,一次量子计算操作,相当于进行了N个数据操作,即实现了N次的并行,后文提到的量子算法正是利用这些量子逻辑门的变换特性。其他量子逻辑门的幺正矩阵有所不同,但操作也类似,这里不做赘述。此外,量子计算机用使用的量子逻辑门是可逆的;而传统计算机的逻辑门一般是不可逆的。前者操作后产生的能量耗散,而后者进行幺正矩阵变换可实现可逆计算,它几乎不会产生额外的热量,从而解决能耗上的问题。与传统的计算机相同的是,量子计算机的理论模型仍然是图灵机。不同的是,量子计算目前并没有操作系统,代替用量子算法进行控制,这决定了目前的量子计算机并不是通用的计算机,而属于某种量子算法的专用计算机。量子计算机和传统计算机的比较结果如表3所示。表3 量子计算机VS 传统计算机量子计算机的基本原理如图11所示。它主要的过程如下:(1) 选择合适的量子算法,将待解决问题编程为适应量子计算的问题。(2) 将输入的经典数据制备为量子叠加态。(3) 在量子计算机中,通过量子算法的操作步骤,将输入的量子态进行多次幺正操作,最终得到量子末态。(4) 对量子末态进行特殊的测量,得到经典的输出结果。图 11 量子计算机工作原理流程图[20]迄今为止,科学家用来尝试实现量子计算机的硬件系统有许多种,包括液态核磁共振、离子阱、线性光学、超导、半导体量子点等。其中,超导和半导体量子点由于可集乘度高,容错性好等优点,目前被认为是实现量子计算机的两种可能方案[1]。最近,IBM宣布的研制50比特和谷歌研制的72比特量子计算机都是基于低温超导系统的方案。4.4 量子编码理论上,需要极少的量子比特便可在量子计算机中实现复杂的量子计算。然而现实中,一方面量子信道上和量子设备中总存在各种噪声,如量子比特的热量等;另一方面量子的“退相干性”[5]。在量子计算,需要使得所有的量子位都持续处于一种“相干态”,然而在现实中很难做到,目前“相干态”仅能维持几百毫秒,随着量子比特的数量以及与环境相互作用的可能性增加,这个挑战将变得越来越大。这两个因素都能导致量子比特的状态翻转或随机化,导致从而导致量子计算失败。量子编码的目的正是为了纠正或防止这些量子比特发生的错误。虽然量子编码和经典编码的基本想法类似,即要以合适的方式引进信息冗余,以提高信息的抗干扰能力,但量子码可不是经典码的简单推广。在在量子情况下,编码存在着一些基本困难,表现在如下3方面[7]:(1) 经典编码中,为引入信息冗余,需要将一个比特复制多个比特。但在量子力学中,量子态不可克隆。(2) 经典编码在纠错时,需要进行测量,以确定错误图样。在量子情况下,测量会引起态坍缩,从而破坏量子相干性。(3) 经典码中的错误只有一种,即0,1之间的跃迁。而量子错误的自由度要大得多,对于一个确定的输入态,其输出态可以是二维空间中的任意态。量子编码按其原理,可分为量子纠错码、量子防错码、和量子避错码,其中量子纠错码是经典纠错码的量子推广。在各种量子纠错方案,实际上都假设了发生错误的量子比特数是给定的,例如常见的有纠一位错的量子码。典型的方案是Shor首次给出了一个新颖的纠错编码技术[17],利用9个量子比特来编码一个量子比特信息,可以纠正一位比特错误。5 后量子密码量子计算的快速发展,对当前广泛成熟使用的经典密码算法,特别是公钥密码算法(如RSA和ECC等)产生了极大的威胁和挑战,具体包括[11]:(1) 所有基于整数分解和离散对数上的非对称密码体制都是不安全的。如RSA、EEC公钥密码算法,它们在多项式时间内可以破解。那么当前主流的公钥加密、数字签名算法将不再安全。(2) 分组密码和序列密码的比特安全性将降低为原来密钥长度的1/2。为了抵抗这种攻击,对称加密算法通过增加密钥长度(2倍密钥长度)即可。(3) Hash 算法比特安全性将降低为原来的2/3。为了抵抗量子计算的攻击,人们提出抗量子密码体制,也称为后量子密码体制(Post-Quantum Cryptography),即在量子计算机出现之后仍然安全的密码体制。它主要包含基于 Hash的密码体制、基于编码的密码体制、基于格的密码体制和基于多变量的密码体制。事实上,从上述的影响结果来看,目前量子计算仅对公钥密码影响最大,而对分组密码、序列密码、哈希算法相对影响较小,因此可以看作它们也具有一定的抗量子计算攻击的特性。表4 抗量子密码体制及其具体算法目前,美国和欧洲正在大力对其投入研究,并快速推动其实用化。2015 年8月,美国国家安全局 NSA 宣布将当前美国政府所使用的“密码算法 B 套件”进行安全性升级,用于2015年至抗量子密码算法标准正式发布的空窗期,并最终过渡到抗量子密码算法。2016 年秋到2017年11月,NIST面向全球征集抗量子密码算法,然后进行 3~5年的密码分析工作,预计在 2022年到2023年,完成抗量子密码标准算法起草并发布。6 总结量子信息技术主要包含量子通信和量子计算两个分支,本文分别介绍了这两个分支技术。从理论角度的看,可用数学证明QKD能达到“绝对安全”。然而实践中由于设备和技术的缺陷,QKD不可能达到理想的“绝对安全”,离完全实用化进程还有很长的路需要探索。对此持既批判吹捧量子密码替代传统密码的极端观点,也看好未来量子密码的发展前景。从目前技术成熟度来看,量子密钥分配 ( QKD ) 是最为成熟的量子技术,它结合对称加密技术形成安全的保密通信系统,目前已经实现了商用化,但主要面向政务、国防、金融等安全性要求很高的特定应用场景,离全面推广和实用化还有很长的距离。从工业界研究热度来看,多数IT和互联网公司致力于研究量子计算,提出“量子计算+人工智能”,以解决计算力瓶颈问题。它具有广泛的应用价值,值得持续关注。从影响程度来看,量子计算的发展对以RSA和ECC为代表公钥密码学产生了巨大威胁,但对对称加密算法(如AES)的威胁较少。可预见将来,即使量子计算机被研发出来,传统密码也不会完全被替代,而将出现传统密码与量子密码(QKD)相互促进、共同繁荣的景象。从我国发展状况来看,量子通信技术发展速度迅猛,在理论研究和实验技术上均取得了许多重大突破,成果卓越。然而,量子算法、量子计算机的研究与欧美发达国家相比,仍有很大的差距,相关研究仍需努力。参考文献[1] 郭光灿,张昊,王琴. 量子信息技术发展概况[J]. 南京邮电大学学报(自然科学版), 2017, 37(3):1-14.[2] 徐兵杰,刘文林,毛钧庆,等. 量子通信技术发展现状及面临的问题研究[J]. 通信技术, 2014(5):463-468.[3] 王矿岩. 量子通信技术发展现状及面临的问题研究[J]. 通讯世界, 2017(1):110-111.[4] 赖俊森,吴冰冰,汤瑞,等. 量子通信应用现状及发展分析[J]. 电信科学, 2016, 32(3):123-129.[5] Bennett C H, Brassard G. Quantum cryptography: Public key distribution and coin tossing[J]. Theoretical Computer Science, 2014, 560:7-11.[6] 陈锦俊, 吴令安, 范桁. 量子保密通讯及经典密码[J]. 物理, 2017, 46(3):137-144.[7] 段路明, 郭光灿. 量子信息讲座 第三讲 量子编码[J]. 物理, 1998(8):496-499.[8] 韩永建. 量子计算原理及研究进展[J]. 科技导报, 2017, 35(23):70-75.[9] 陆思聪, 郑昱, 王晓霆,等. 量子机器学习[J]. 控制理论与应用, 2017(11).[10] 黄一鸣, 雷航, 李晓瑜. 量子机器学习算法综述[J]. 计算机学报, 2018(1).[11] 刘文瑞. 抗量子计算攻击密码体制发展分析[J]. 通信技术, 2017, 50(5): 1054-1059.[12] Shor P W. Algorithms for quantum computation: Discrete logarithms and factoring [C]// Proceedings of the 35th Annual IEEE Symposium on the Foundations of Computer Science. Piscataway, NJ: IEEE, 1994:124-134.[13] Grover L K. A fast quantum mechanical algorithm for database search[C]// Twenty-Eighth ACM Symposium on Theory of Computing. ACM, 1996:212-219.[14] Harrow A W, Hassidim A, Lloyd S. Quantum algorithm for linear systems of equations. Phys Rev Lett, 2009, 103:150502.[15] Kak S. On quantum neural computing[J]. Systems Control & Information, 1995, 52(3-4):143-160.[16] Su Z E, Wang X L, Lu C Y, et al. Entanglement-based machine learning on aquantum computer[J]. Physical Review Letters, 2015, 114(11):110504.[17] Shor P W. Scheme for reducing decoherence in quantum computer memory[J]. Physical Review A, 1995, 52(4):R2493.[18] 孙晓明. 量子计算若干前沿问题综述[J]. 中国科学:信息科学, 2016, 46(8):982.[19] 赵红敏. 量子纠错与经典纠错的比较[J]. 河北科技大学学报, 2008, 29(3):211-213.[20] Makarov V. Quantum cryptography and quantum cryptanalysis [D]. 2007.[1] 这里“不可分割”的含义应该这样理解,比如不可能分割出0.5个原子。[2]如图4所示,测量基对应为两种不同的偏振片,每个偏振片有两个正交的方向。当偏振片方向可以通过偏振片时,测量结果正确。当偏振片方向不是偏振片的方向,无法通过偏振片,测量结果错误。[3]由2.3节可知,20个量子比特可同时存储100万个号码。[4] 表示计算复杂度从降为。[5]通俗地讲,两束频率完全相同的光源产生相干的量子,它们是相互关联的,即对一个量子进行处理,影响就会立即传送到另一个量子,它们是量子并行处理的基础。但由于外部环境的原因,量子由“相干态”退化为“非相干态”,操作一个量子不会影响另一个量子,它们之间是独立的(类似经典计算机的比特),这就是所谓的“退相干性”。来自微信
2025年08月07日
16 阅读
0 评论
0 点赞
1
...
20
21
22
...
78