小弟用SPARTAN-6 LX45T(xc6slx45t-3fgg484)做了一个项目,现在已经完成,需要对其进行加密,论坛里面有一个帖子:
http://bbs.21ic.com/viewthread.php?tid=219751&highlight=%E5%8A%A0%E5%AF%86
讲的很好,小弟参考了一下。个人的理解是:SPARTAN-6 LX75以上的器件可以用AES加密,而LX75以下的器件,可以使用device DNA加密。个人觉得对于LX45T这样的器件,首先可以读取device DNA,然后通过这个device DNA产生一个加密的BIT文件,这样这个加密的BIT文件就和一个具体的芯片关联起来,这样做在小批量生产时还可以。
不知道上面的理解对不对,如果对,那么如何在ISE里面操作。俺的Generate Programming file属性里面的encryption option里面的encrypt bitstream没有办法点击,如下:
“个人觉得对于LX45T这样的器件,首先可以读取device DNA,然后通过这个device DNA产生一个加密的BIT文件,这样这个加密的BIT文件就和一个具体的芯片关联起来,这样做在小批量生产时还可以。”
device DNA可以通过DNA_PORT原语进行读取,读取DNA以后,通过什么样的机制才能保证设计防止复制呢???
小弟想到一个比较笨拙的办法,不知道这次理解的对不对:
(1)首先建立一个工程,通过JTAG读取DNA,比如用JTAG读取到的DNA为123456789
(2)然后在原设计代码中调用DNA_PORT原语,读取DNA,读取以后,将读取到的DNA和用JTAG读取的DNA(123456789)进行比较,如果相同,则让设计运行;否则,终止运行。调用DNA_PORT的代码和比较DNA的代码都添加到原设计中。
不过,如果像上面这样做,那么,每次下载程序到一个新的FPGA芯片,都要用JTAG读取FPGA的DNA,然后,修改源代码(和JTAG读取到的DNA值做比较),然后,重新编译整个设计。感觉太费劲了。
一定有更好的方法。希望大侠赐教。
UG380描述如下:
一周热门 更多>