目前,基于ip的eda设计流程面临着两大挑战。首先,必须提供方法技术,用于测试包含ip组件设计的可靠性和质量;另一方面,必须保护ip供应商和设计者的知识产权。第三方ip核的使用确实可以提高芯片设计效率,但是供应商将ip核交付到客户的过程却并非直截了当。对于客户来说,为了测试验证ip核,它必须具备一定的可见性。可见性包括ip的仿真、结构性理解以及特性的详细描述。客户获得的可见度越高,就越容易将ip核集成到自己的fpga设计中。而对于供应商来说,ip核具有一定的保护性,必须防止未经授权使用或复制ip核,而客户需求恰恰与之相矛盾。因此交付ip核的程序必须权衡这两种相互矛盾的需求。如果客户获取关于ip设计的信息过多,就可能出现未经授权而使用或复制该ip核,从而降低其价值,影响到设计者和供应商的利益。
目前有一些方法着重保护供应商的利益,如水印技术,就是将数字签名嵌入至ip组件中,没有供应商的许可,客户就无法去除数字签名,实例化ip元件就具有一定风险。水印技术的主要限制在于只能维护供应商组件实例化的合法性,却无法真正隐藏ip,因为通过元件体系的反向工程仍可以获取ip核的内部信息。
javacad架构中采用了另一种有效安全的ip评估测试方法。设计者能实例化第三方的ip元件,同时可以结合自己设计的模块一起仿真。不同ip供应商提供的多个ip核也能够一同进行仿真,同时保证各个供应商及用户的知识产权不受侵害。ip用户与供应商可以协商仿真期间可以获取的信息量。javacad是相当灵活的、以事件驱动的仿真工具,设计者可以在java程序中直接采用结构与行为级混合的编写方式。
javacad 架构
设计者可以针对不同抽象层次指定模块行为。目前javacad支持门级、寄存器传输级,同时在行为级上也有一个实现工具。javacad环境完全支持混合模式的系统描述,例如某些设计元件是rtl级语言描述的,而其余的是门级描述。设计模块可以是本地模块也可以是远程模块。本地模块在ip用户端的java虚拟机(jvm)上运行,而远程模块可以通过internet访问。一般说来,远程模块均是在ip供应商的javacad服务器上运行的。
图1中描述了javacad的概念性体系结构。用户在javacad客户端上完成所有的电路设计,包含供应者提供的ip元件。供应商可以通过javacad服务器与客户端进行通信。设置仿真参数时,用户和供应商协商每个元件可以访问的功能与成本模块类型。有一些模块需要供应商提供在线帮助,当然这得花费额外费用。例如,不必得知封闭式ip元件的内部信息,用户就可以通过整个设计的故障模拟准确地评估易测性。
如果javacad客户端的仿真工具需要了解ip核的实现过程时,javacad客户端就可能要求供应者运行仿真子程序。javacad底板借助客户端与服务器之间复杂的网络通信完全隐蔽起来。javacad吸收了java面向对象的特色,这样可以将程序高效地映射到现代数字系统中基于元件的设计原语。javacad的关键特性是能够处理包含本地组件(用户所有的)与远程组件(ip供应者所有的)的系统设计。任何设计或仿真工具都能采用javacad协议处理远程组件。在javacad中系统级硬件描述语言(hdl)则用java语言编写。
javacad架构实际上就是java程序包的集合,必须由用户与供应商同时使用,缺一不可。javacad 底板是用java语言编写的程序包,通常称为javacad基本包(jfp),可以整合到任何设计环境中。ip提供者、用户都必须使用jfp。元件和设计都是基本包的子集。设计规范要求实例化设计组件的javacad类。连接器将本地模块与远程模块连接在一起,确保模块之间的事件正常运转。定制的连接器能执行模块之间的通信原语。
执行远程模块是以java 远程方法(rmi)为基础,rmi是类似于corbo的协议,rmi保留了java对象模块的原语,从而使分布的对象更加方便执行并应用。javacad中采用rmi的主要特性是:1)不用借助二进制代码就能在本地创建远程类的实例;2)调用远程类的方法,并适当处理参数和返回值;3)保证客户端-服务器端通信的安全性。
并非所有的远程模块都是设计者需要运行的,通常执行的都是包含ip相关信息的方法。ip核的提供者需要设计一个专门的模块,用于明确说明哪些方法是可以让客户下载的,哪些方法可以通过internet 网络访问。
javacad是事件驱动的仿真工具,支持多种事件类型,由调度程序进行调度执行。多个调度程序可以同时运行,从而javacad也支持同一设计的协同仿真。
安全性与ip保护
安全性是javacad最重要的议题。客户端与服务器端相互作用的紧密性引发了一些问题,有别于传统的基于internet的客户端—服务器端方式的问题。当前情况下,客户与提供商还没有达到完全信任对方的程度,同时客户端与服务器端的通信必须防止第三方的侵入,这就是保护ip核的目的。javacad采取rmi功能及增强安全性的java模块解决这些问题。
针对第三方的侵入,rmi协议能保证ip用户与提供商之间的安全通信。协议中应用一个自定义的通信端口,规定了ip客户端与服务器端都认可的安全级别。
从提供商的角度来考虑,javecad将远程模块设计分成三部分:公共部分、rmi 残余部分、私有部分。ip用户可以下载公共部分并集成到自己的设计中。公共部分中包含某些组件中不受保护的方法的可下载代码。用户必须下载rmi残余部分,并通过残余部分调用远程方法。ip用户需要通过rmi残余部分才能调用私有部分的方法,私有部分一直位于提供者的服务器上,其代码不会转移到客户端。
从用户的角度来考虑,javacad中为了实现对客户端的保护措施,在rmi中采用了一系列有效可行的参数配置。将每个模块都和连接器绑定在一起,这种方式可以使得javacad仿真工具能完全防止传播设计中实例化的其他模块的敏感信息,包括属性及其相互联系。执行某些仿真时,远程ip模块可能需要其端口的一些信息,此时javacad通过rmi将这些信息传送到客户端。
使用者从提供商处下载得到的公共部分和rmi残余部分的类时,javacad将这些类标上“非可信赖”的标记,因此用户端无法执行这些类。例如,由这些类运行的方法不能读取或删除用户的文件系统。标准的rmi安全管理器使得各种方法只能通过供应商的服务器进行通信。
评估测试
javacad中有个jfp评估程序包,可以对ip元件的成本及性能进行静态、动态评估,包括面积、传输延迟、平均功耗、最大功耗、i/o性能等。评估程序可以计算出这些参量的实际值。一个设计元件可以利用多个评估器对同一参量进行评估。用户选择ip核时可以根据正确性、成本、面积、速度等之间权衡。评估器可以在本地,也可以位于服务器上。
使用javacad
服务器端
为了使用户能获取并测试供应商的ip元件,提供者首先应安装一个web服务器,包含一些描述ip元件主要功能的文件及jar文件的链接,用于下载ip核公共部分及rmi残余部分的类。同时还需要设置rmi注册服务器及rmi后台程序。元件中受保护的ip部分在该服务器上处于活动状态,当客户端提出仿真、评估、验证等请求时,此服务器需做出响应。
客户端
设计者的电路结构是相互连接的模块,这些模块可以是本地模块,也可以是远程ip提供商处的元件。仿真验证阶段,通过javacad架构访问远程ip元件。
通常,设计者首先访问各个ip提供商的web服务器,获取不同ip元件的信息,以选择符合自己设计目标的元件。然后下载jar格式的公共部分及rmi残余部分文件,并根据设计要求对这些元件进行实例化。客户端启动仿真设置后,javacad架构在客户端与服务器之间建立网络通信链接,保证维护ip提供商及用户各自的知识产权。
华为WatchGT2搭载华为自家麒麟A1处理器
怎样用万用表测量电机是否烧坏
有必要让客户知道正在和人工智能对话吗
5G时代下语音通话技术将迎来全面商用
RISC和CISC的区别 ARM架构简述
基于JavaCAD架构的安全性与IP保护研究
2015第七届中国(深圳)国际物联网与智慧中国博览会
TP4323移动电源芯片概述及特点
基于magnum 2测试机的NAND FLASH的测试解决方案分析
什么是Decred币
Python2D绘图库Matplotlib会用吗?
电气控制面板设计对可编程自动化控制器的发展的影响
openeuler安装教程四:openeuler安装方法使用kickstart自动化安装
基于PSoC芯片的粗轧机组扭矩在线监测系统的设计与实现
2017年最受期待的五款手机 iPhone 8排第一,华为p10居第二,你期待吗?
5G工业相机,让机器变身“超级工人”
深度传感器Structure可以让AR/VR头显更轻松的具备SLAM功能
罗姆展出沟道型SiC制SBD和MOSFET
基于CTF25无级变速器的驻车机构设计
工业物联网刮来购并风,技术夺取这么豪放?