请教下各位大侠下载以及编程xilinx片子的问题,多谢!
大家好,我是个xilinx的新手。前段时间从xilinx官方那边得到了一块Spartan-3AN 单板。问题一:板子上面的芯片是XC3S700AN,然后我查了资料,说这个板子是内带flash的,就是说不需要通过SPI接口外部扩展Flash,是这样吗??我只要用ISE编译代码,生成的bit文件,直接下载就可以了,是吗??
问题二:然后我看到板子上还直接焊接着M25P16这个flash。是不是用来当外部flash用?那么用外部flash的时候,内部Flash就失效了,好比主芯片变成了XC3S700A+M25P16,是这样吗?如果是的话,好像M25P16下载的代码是mcs文件,这个文件我怎么生成?我好像ISE编译后只有bit文件啊?? M25P16当配置芯片,ISE生成的文件通过ISE iMPACT 里的PROM File Formatter 转一下就行了.(我去年搞过一次,也不知道说的对不对,你试试吧!) 你的意思是,ISE生成的bit文件通过PROM File Format转成bit与mcs这两个文件?? 是的 你试试就知道了 回复【楼主位】master0722
-----------------------------------------------------------------------
S3AN从哪里启动,取决于三个Mode引脚的电平,而不管是否挂了外部Flash
即使从外部Flash启动,其内部Flash仍然是可用的,可以通过SPI_ACCESS模块来访问 那意思就是说,代码我还是按照老样子写,编译也是老样子编译。只是到最后,编译成功之后,根据flash的配置情况,生成相应的下载文件而已,是这么理解吗? 用内部的话直接用.bit就行 对的,选择片内还是片外作为配置ROM,取决于你M0、M1、M2的设置。
用内部的话,直接用.bit文件通过JTAG方式下载就可以。
你选了spartan 3AN的型号,iMPACT下载时候你就会看到编程FPGA、编程FLASH还是两个都写的选项。
另外,ISE编译生成的bit文件可以用iMPACT转成MCS文件,你看下ISE图像界面的导航栏,最下面一项战开后就有
Generate Target PROM/ACE File一项。
另外,bit文件和二进制的bin文件非常接近,只是前面多了几十个字节的头,自己都可以裁减掉,我以前就这样做过。
由bin转换成MCS也是标准的方法,有很多软件都可以做,呵呵。 mark 那是不是说,在Spartan-3AN里,包括bitstreams与User datas。bitstreams是存在于FPGA内部的,User datas是存在于Flash内的。然后编程的时候,编程FPGA就是编写bitstreams,编程FPGA与FLASH就是bitstreams与User datas都被编写。如果我写的代码编译结果,没有User datas,那么不管是编程FPGA,还是编程FPGA与FLASH,效果都是一样的??? 回复【9楼】master0722
-----------------------------------------------------------------------
在Spartan-3AN里面,所有数据都是存在Flash中的,包括配置位流和一切其它数据
“Program FPGA only”是只配置FPGA,掉电后就没了的
楼主折腾这些问题N久了,请明确:
Spartan-3AN本质上是两块芯片,一块Spartan-3A,一块AT45DBxxxD,封装在一个壳里面的
Spartan-3A没有任何非易失储存器,它需要从其它东西中获得配置位流
无论你写任何的HDL,原理图,状态机,不会产一点点何配置位流以外的东西
对于FPGA来说,配置位流就是一切,一切的一切。
对Spartan-3AN的烧写,有两种模式,“Program Flash and Load FPGA”“Program FPGA only”
前者的过程是,先下载一个烧写固件到FPGA,通过该固件,把位流写进Flash中,再Reboot FPGA
后者是下载位流到FPGA的SRAM,这个是易失性的,断电或Reboot就没了
user data只是Flash的剩余空间,这些空间除非你专门去访问,不会有任何人对其进行任何操作
包括ISE和Impact,都永远不会使用该空间,也根本没有操作user data的命令或选项
这些空间也和FPGA没有任何关系,它是在一块独立的Flash芯片内的空闲区域
如果楼主还不能理解的话,自己动手试一下不就好了 再次感谢无机酸大哥,经过我刚才的实验,得出结果:生成的bit文件,Program FPGA only之后,结果就是实验板按照我要求的程序运行了。但是一旦断电,再上次,程序又回到了Program FPGA only之前配置的bitstreams的程序了;
但是Program Flash and Load FPGA之后,就按照我最新的代码运行了,断电后再上电,程序还是我最新的,这说明已经烧写成功。
再次多谢无机酸大哥。对于外部FLASH的,暂时先不去考虑了,因为我手上的板子就是3AN的,呵呵 还有在得到最终版本前,请不要 "Spartan-3AN" 的片子“烧死了”,
--“data lockdown” 这项就莫要选了 怎么选?? 无机酸为什么 设置了lockdown 和 protect还是可以读出来呢 本帖最后由 h2feo4 于 2012-5-15 22:53 编辑
424x3 发表于 2012-5-15 16:56 static/image/common/back.gif
无机酸为什么 设置了lockdown 和 protect还是可以读出来呢
因为lockdown是锁定数据不可改变,而不是不可读
protect是在位流加载之后才有用的,但我完全可以让FPGA加载另一个没有保护的位流
S3AN的防copy策略不是靠抗读出来实现的,这玩意在任何情况下都能低成本的读出,想认真了解S3AN的防copy策略请阅读X的whitepaper 谢谢但是不至于 这样简单的读出来之后还可以被继续下载到另外的板上正确的运行起来吧 自己后来摸索的xilinx的FPGA 相当于自学了这种问题 自己玩玩 没什么事情 商业应用的话 岂不是太赤裸裸了 424x3 发表于 2012-5-16 00:07 static/image/common/back.gif
谢谢但是不至于 这样简单的读出来之后还可以被继续下载到另外的板上正确的运行起来吧 ...
那要看你设计了,不做保护的话可以 像个U盘一样到处用哦 >> 还可以被继续下载到另外的板上正确的运行起来吧
两个芯片有个地方不同 -- DNA
首先读取 DNA 通过一个算法生成一个数据, 保存再某处
上电后生成数据, 与保存的比较, 就知道是否是copy了
要是算法不能从bit文件找到, 那么应该比较安全了 ( debit? )
Debit reference implementation. . Available:
http://www.ulogic.org
页:
[1]