随着现场可编程门阵列(FPGA)集成度越来越高,在大型FPGA系统设计中应用第三方IP核也越来越广泛 (IP核是指集成电路设计中所采用的具有独立知识产权的可复用的电路功能模块)。多数IP供应商提供基于FPGA技术的各种功能模块。基于IP核的模块化设计具有众所周知的优势:可以缩短设计周期,提高设计质量,使得系统设计更加便利。

目前,基于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提供商及用户各自的知识产权。

基于java的cad_基于JavaCAD架构的IP知识产权保护相关推荐

  1. 基于java智能家居,基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿...

    基于JAVA的智能家居控制系统的设计(信息控制端的设计)-论文二稿 PINGDINGSHAN UNIVERSITY毕业论文 (设计 )题 目:基于 JAVA 的智能家居控制系 统的设计(信息控制端的设 ...

  2. 基于Java技术的大型网站架构设计方案

    架构设计漫长路 最佳实践我来数 千万并发没问题 要点首推数据库 SQL语句要优化 索引创建有艺术 三大范式不可废 冗余字段难维护 查询过多怎么办 缓存使用是本固 频繁访问不用怕 每秒数千扛得住 更新插 ...

  3. 实验一基于 的词法分析实验_[源码和文档分享]基于JAVA实现的基于DFA的词法分析程序...

    1 实验目的 根据自己确定的正规表达式,编写.调试一个词法分析程序,对语句进行词法分析,从而更好理解词法分析原理. 2 内容描述 此程序用java编写.程序读取一个文本文件,并对其中的内容进行词法分析 ...

  4. 基于Java+JSP+MySQL基于SSM的在线投票系统-计算机毕业设计

    项目介绍 随着社会的发展,人们在处理一些问题的时候不同意见越来越多,这源于人们对思想的解放和对社会的认识.所以在处理同一问题上,为了征求不同人的意见在线投票系统诞生了. 基于SSM的在线投票系统以钦州 ...

  5. 基于Java+JSP+MySQL基于SSM的医院挂号就诊系统——计算机毕业设计

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  6. 基于Java+JSP+MySQL基于SSM的医院挂号就诊系统

    随着计算机科技的快速发展,很多地方都实现了自动化管理,医院也不例外.在大多数医院,无论是挂号处,还是取药的窗口,都会看到有很长的队伍,很显然这样会让患者就医的过程中浪费太多的时间.其次,对于那些年长的 ...

  7. 基于java斗地主_基于Java的网络版斗地主

    [实例简介] 支持网络三人斗地主.有一个服务器端,同时运行三个客户端并且连接服务器端的IP就可以联机游戏了. [实例截图] [核心代码] Game └── Game ├── Client │   ├─ ...

  8. 基于java的excel_基于Java的Excel文件操作

    电脑知识与技术 本栏目责任编辑: 王力计算机教育 1 引言在 Web 应用日益盛行的今天, 通过 Web 来操作 Excel 文件的需求越来越强烈, 目前较为流行的操作是在 JSP 或 Servlet ...

  9. 基于java斗地主_基于Java----斗地主游戏的开发

    //这是无序的手牌 用到ArrayList集合(无排序功能) public class PokerDemo { public static void main(String[] args) { //创 ...

最新文章

  1. 2020,让我更持久了...
  2. HDLBits 系列(24)进入FSM(有限状态机)的世界入口
  3. linux上最好用的sh --zsh
  4. 时间序列数据的存储和计算 - 开源时序数据库解析
  5. 在一个IIS上同时运行两个版本ASP.NET报错的
  6. 钱老,外国人能搞的,今天中国人也能搞了!
  7. v-for和v-if同时使用(案例分析:循环最新的前14条数据显示) - 踩坑篇
  8. Hibernate里面session.get()和session.load()的区别
  9. 【英语学习】【English L06】U04 Adventure L3 The city playground and some famous museums
  10. python apscheduler执行_如何使Python apscheduler在后台运行
  11. 单片机原理及应用姜志海pdf_单片机原理及应用.pdf
  12. 【人类简史】从动物到上帝 [以色列-尤瓦尔 · 赫拉利](阅读笔记)
  13. 机器学习:决策树的划分依据
  14. 基于Python语言豆瓣电影数据挖掘与分析
  15. OSChina 周三乱弹 ——我就爱吃月饼,就爱抢月饼。我高兴。
  16. 视频是新时代的文本,微信也不得不认了!
  17. Docker 入门看这一篇就够了,万字详解!
  18. java波斯王子武者之心,波斯王子2:武者之心通关攻略
  19. WORD中的多级列表详解
  20. 炫酷,纯Python开发LOL英雄信息查询平台

热门文章

  1. 【转】Notes 函数详解
  2. 谈谈如何快速掌握一般性的IT知识点
  3. 带张光盘去装机(转)
  4. Mac如何卸载系统自带软件?macbook系统软件怎么删除?
  5. Unity3D|Animation:动画位置与对象位置不一致如何改正
  6. Nacos配置热更新两种方式。
  7. 钉钉开发之使用HTTP请求获取你的公网出口IP
  8. webstorm2020背景和字体_怎么为WebStorm更换主题 修改字体样式
  9. python 调用HEG工具批量处理modis数据将hdf转为tif
  10. 中科大计算机考研录取分数线_2017计算机专业学校考研难度排行榜,计算机考研难度排名...