2 EDA软件中实现IP保护
FPGA的设计开发流程主要包括行为综合、逻辑综合、技术映射和布局布线。一般情况,设计者使用硬件描述语言(如VHDL,Velilog)描述电路,然后由EDA软件对其处理。
在EDA软件处理流程中,行为综合把算法级或寄存器传输级(Register Transfer Level,简称RTL)的电路描述转换为门级的网表,逻辑综合优化门级网表,技术映射是将优化后的网表映射为FPGA中的具体实现(查找表),布局布线工具则按照一定的评价标准来确定最终的电路单元在FPGA中的位置,并利用连线资源实现电路单元间的连接。
如果设计者利用第三方提供的IP核实现所需的设计,为了避免设计者窃取IP核后,对其修改,并将其据为已有,需要有相应的安全机制来保护第三方设计的IP核。
在EDA软件的处理流程中,EDA软件必须能够正确解析设计,才能完成处理,因此设计本身对于EDA软件是公开的。这里假定EDA软件是可信的。具有IP核保护机制的EDA流程如图l所示。第三方设计的IP核要先向EDA软件的开发用户购买RTL级的IP核后,第三方将该IP核先用EDA开发商的公开密钥对该IP核加密,再用设计者提供的公开密钥加密。这样,设计者虽然得到了第三方的IP核,但是并不知道EDA软件开发商的私钥,因此设计者无法知道该IP核中RTL级的描述。
设计者可将购买的IP核看作功能已知的黑盒子,在利用黑盒子和其他的电路模块完成电路描述之后,设计者将设计导入EDA工具。EDA工具分别利用设计者输入的密钥和EDA开发商的密钥对加密的IP核进行两次解密,从而得到整个设计完整的RTL表示。然后,EDA工具可以对设计进行行为综合、逻辑综合和技术映射,最后生成技术映射后的网表。假定用于综合和技术映射的工具是由某个EDA开发商提供,而FPGA布局布线工具是另外的EDA开发商,例如由FPGA的生产商提供。