可编程逻辑
目前,基于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提供商及用户各自的知识产权。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !