随着人类航天活动的不断开展,空间碎片的空间密度已经对航天器安全造成了威胁,特别是近地轨道,碎片密度更大,且其数量仍在迅速增加,航天器遭受空间碎片撞击事件时有发生。空间在轨目标数量不断增加,对空间目标进行碰撞预警所需要的计算量也在迅速增加,鉴于并行计算速度很快,因此适合应用并行计算对危险目标进行筛选,进而进行预警操作。利用fpga中的cam(内容可寻址存储器)和microblaze软核控制器可以实现危险目标的快速并行筛选。
1 cam
1.1 cam概述
cam是一种特殊的存储器,它是将数据项存储在一个阵列中。每个数据项的位数叫作字宽,cam中所有数据项的条数叫作cam的深度。字宽和深度可以表征cam的容量。
cam基于内容寻址,通过硬件电路实现快速匹配。cam的并行处理特性使得它在数据分选领域倍受青睐,被广泛应用于以太网网址搜寻、数据压缩、模式识别、高速缓存、高速数据处理、数据安全和数据加密等。
1.2 cam工作原理
cam最基本的两个端口是数据线和地址线,数据线作为输入端口,存放需要由cam来处理的数据,而地址线作为输出端口,输出cam的处理结果——匹配数据所在地址。图1所示为深度为4、字宽为4的cam,如果将二进制数1100放在数据线上,输出的匹配结果将会是0011,如图1所示,结果中的每一位二进制数对应cam内部每一条数据,数据线上数据与cam内部数据相等则对应位输出为1,不相等则输出为0。由于cam具有并行匹配特性,所以很适合对空间多个目标进行同时并行匹配处理。
2 microblaze软核控制器
microblaze是基于xilinx公司fpga的微处理器ip核,它和其他外设ip核一起可以完成可编程系统芯片(sopc)的设计。microblaze处理器采用risc架构和哈佛结构的32位指令和数据总线,内部有32个32位宽度的通用寄存器;其内部结构图如图2所示。
使用xilinx公司提供的edk(嵌入式系统开发套件),可以在参数化的图形界面下方便地完成嵌入式处理器系统的设计。其突出的优点:一是设计灵活性;二是可以整合用户自定义ip核,使得算法可以在硬件中并行的执行而不是在软件中串行的执行,从而极大地加速软件的执行速度。
3 算法设计
3.1 算法分析
对空间目标进行碰撞预警,实际上可以转化为通过对目标之间的距离进行判断比较,找出有碰撞危险的目标。由于空间目标的位置可以用三维空间坐标表示,因此对任意两个目标之间距离的判断又可进一步转化为他们之间坐标的比较。
3.2 算法描述
假设只有3个目标需要进行坐标匹配处理,它们的坐标分别为a(xa、ya、za),b(xb、yb、zb),c(xc、yc、zc),需要一个深度为3的cam,首先处理z坐标,将3个目标的x坐标存入cam,如图3所示。
然后分别将xa、xb、zc放在数据线上进行匹配操作,经过3次匹配操作得到3个匹配结果rxa,rxb,rxc,对于y和z坐标进行相同操作,分别得到y和z的匹配结果为rya,ryb,ryc和rza,rzb,rzc,所得到的结果均为3位的二进制数,然后对每个目标进行内部坐标对比,例如将目标a的3个匹配结果rxa,rya,rza进行对比,就可知道是否存在与目标a的3个坐标均相同的项,例如rxa,rya,rza分别为101,101,101则说明目标a与目标c的坐标是匹配的,进而可以判断目标a与目标c有碰撞的可能。
与常规存储器和软件匹配方式有所不同,cam对于数据的匹配操作是并行执行的,这样就可以大大提高数据匹配速度,进而提升系统效率。
4 硬件平台搭建及运行
4.1 cam模块实现
利用赛灵思公司提供的ip核资源,通过配置cam ip核参数化图形界面,如图4所示,在fpga内部例化了一个深度为16,字宽为32的cam模块,其基本参数如表1所示。
如表1所示,选择存储器类型为block memory这样就可例化一个以fpga片内bram为基础的cam模块,与基于srl16(16 bit移位寄存器查找表)的cam相比,其写周期只需2个时钟周期,写操作所需时间为后者的1/8,提升了系统速度。
输出地址编码方式有3种可供选择的方式:非编码多位匹配(multi match unencoded)、非编码单一匹配(single match unencoded)和二进制编码(binary encoded)。第一种编码方式可以从地址线上输出所有可能的匹配项,而后两种编码方式则只能在地址线上输出一个匹配项。
经过实际验证,由ise综合工具xst进行综合后得出的综合报告显示,在型号为xc3s700an的fpga芯片中实现一个深度为16,字宽为32的cam占用的资源情况如表2所示。
由表2可知,实现一个深度为16,字宽为32的cam所占用的资源中,块ram所占比重较大,这是由于在fpga内部所实现的cam模块正是基于fpga的块ram资源的,所以对块ram资源消耗比较多,因此在实际应用中选用fpga芯片时应选择块ram资源丰富的芯片。
4.2 microblaze软核控制器与cam的连接
在fpga芯片中配置一个microblaze软核控制器以实现对cam的一系列控制,如复位、写入数据、读取数据等,microblaze通过plb总线与cam相连,同时为便于调试,在plb总线上连接了串口等外设模块,系统模块图如图5所示。
4.3 系统执行
系统执行过程中,microblaze作为控制器通过执行由c语言编写的软件程序实现对cam的控制,它的具体操作流程如图6所示。
在系统内部,整个工程的实现和下载共分成4步:首先产生系统的硬件网表,即对嵌入式系统进行综合;其次产生系统硬件架构的比特流文件;再次编译软件,并将软件代码生成的比特流和系统硬件的比特流合二为一,构成完整的系统描述比特流;最后将完整的比特流下载到fpga芯片中。
4.4 验证结果分析
经过对处理结果分析可知,此系统验证了设计算法的正确性。所搭建系统时钟频率为62.5 mhz,时钟周期为16 ns,通过在代码内部添加时钟计数器,并且使用chipscope逻辑分析仪进行波形分析,可知系统执行一次筛选操作所需要的时钟周期数为114 296 649个,即1.8 s左右。
4.5 系统扩展能力分析
在后续研究中通过对cam容量的扩展,可以增加待筛选目标的数量。cam容量的扩展,需要占用更多的fpga芯片资源,同时其运行频率会有所降低,以某spartan3a芯片为例,三者之间的关系如表3、表4、表5所示。
考虑到成本问题,本设计所使用的芯片为赛灵思公司的型号为xc3s700an,由表3~表5可知,在扩展cam容量时,需要综合考虑所需cam容量、所选fpga芯片资源情况以及运行频率三者之间的关系。
5 结论
采用赛灵思公司microblaze软核控制器和内容可寻址存储器(cam)所搭建的目标碰撞预警平台实现了总目标数为16的目标群中危险目标的筛选操作。软核控制器与cam模块同在一片fpga芯片中实现,管理和操作起来比较方便,便于系统实现小型化、集成化。受到fpga自身容量的限制,在扩展cam容量时可以考虑选用更大容量的fpga芯片,或者应用外接大容量专有cam芯片,实现大规模目标的并行匹配操作。
瑞信:苹果 iPhone 12 发布后仍缺乏推动 5G 普及的 “杀手级应用”
如何远程执行IC验证看了就知道
和其他的二极管比起来,肖特基二极管又有什么特别之处呢?
微软首席科学官反驳马斯克 暂停开发人工智能没有意义
SoC FPGA上的策略考虑
基于FPGA的CAM所搭建的空间目标碰撞预警系统分析详解
工业安全,星宸科技SSD222Q来守护!
石英振荡器热拍频率的产生
Mouser与CUI签订全球分销协议,进一步壮大Mouser产品阵营
抢票:2018年不容错过的世界人工智能大会
威迈斯上市IPO观察:主营产品销量快速增长
荣耀v9和荣耀9哪个好谁更值得买?荣耀v9和荣耀9区别对比评测
土壤呼吸测定仪器的主要参数
Chiplet小芯片的时代机遇与趋势
由Windows 2000升级至2003/XP的10大理由
TCL柔风空调系列发布 官方声称可实现“吹不散蒲公英”的效果
华为Mate 40系列后续可以支持升级鸿蒙OS2.0系统
小米5X与小米5C对比评测:外观、配置、性能、续航、跑分对比分析那个更好?
嵌入式软件可靠性设计需注意以下四个方面的问题!
如何识别变压器的输入侧和输出侧