完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我知道我使用的是过时的设备,但我希望能为我的问题找到一些帮助。 使用的设备是xc3s400。 在我的应用程序中,它连接到运行linux的cortex a8应用程序处理器的外部存储器总线。 保持根fs的nand也连接到该总线(其他芯片选择)。 如果我通过jtag(总线访问等)将其直接加载到FPGA中,我的设计已经可以工作了。 问题是,如果我将我的设计存储在prom(xcf02s)设备中,在配置期间,总线引脚上似乎会发生某些事情,导致linux引导加载程序失败。 HSWAP_EN正在浮动。 到目前为止我尝试的是: - 使用简单的设计,将所有输出/输出引脚设置为“Z”高阻抗 - >相同的行为。 - 使用“STARTUP_SPARTAN3”原语将GTS线保持为高电平,超时时间足以让linux内核启动 - > samebehavior。 - 使用bitgen属性的启动选项“GTS_cycle = Keep”,似乎工作 - > linux能够启动,唯一的问题是我不知道如何再次启用引脚,一个定时器来清除STARTUP_SPARTAN3 GTS线路 不能像连接到STARTUP_SPARTAN3 GTS线路的输入引脚那样工作。 我的问题是为什么在配置期间fpga引脚上会发生某些事情,尽管它不应该以及如果我使用“GTS_cycle = Keep”该怎么办。 最好的问候 莱因哈德 以上来自于谷歌翻译 以下为原文 Hello to everyone, I know I'm using an outdated device, nevertheless I hope to get some help for my problem. The used device is a xc3s400. In my application it is connected to the external memory bus of an cortex a8 application processor running linux on it. The nand which holds the root fs is also connected to this bus (other chip select). My Design works already if I load it directly into the fpga over jtag (bus access, etc...). The problem is that if I store my design in the prom(xcf02s) device, something seems to happen on thebus pins during the configuration causing the linux boot loader to fail. HSWAP_EN is floating. What I have tried so far is: -Use a simple design which sets all out/inout pins to 'Z' high impedance -> same behavior. -Use the "STARTUP_SPARTAN3" primitive to hold the GTS line high for a timeout large enough to let the linux kernel boot -> same behavior. -Use the startup option of the bitgen properties "GTS_cycle=Keep", seems to work -> linux is able to boot, the only problem is that I'm not sure how to enable the pins again, a timer to clear the STARTUP_SPARTAN3 GTS line doesn't work as well as an input pin connected to STARTUP_SPARTAN3 GTS line. My Questions are why is does something happens on the fpga pins during configuration although it shouldn't and what to do if I use "GTS_cycle=Keep". Best regard Reinhard |
|
相关推荐
6个回答
|
|
嗨Gabor,
我能够解决我的问题。 ATM我完全不理解,但它现在有效。 我必须在共享等待线上启用上拉,尽管硬件中应该有一个(但是我无法检查它,因为处理器和nand在OEM模块上,而我所有的都是原理图)。 非常感谢您的时间和精力! 但我仍然对GTS_cycle“KEEP”感到好奇。 您可以在“生成编程文件”过程的属性(启动)中找到此设置。 我在那里找到了它:http://www.xilinx.com/itp/xilinx10/isehelp/pp_db_startup_options.htm 关心莱因哈德 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 Hi Gabor, I was able to solve my problem. ATM I don't understand it completely but it works now. I had to enable a pull up on the shared wait line although there should be one in hardware (but I can't check it because the processor and nand is on a OEM module and all I've got is the schematic). Thank you very much for your time and effort! But I'm still curios about the GTS_cycle "KEEP". You can find this setting in the properties (startup) of the "Generate Programming File" process. I found it there: http://www.xilinx.com/itp/xilinx10/isehelp/pp_db_startup_options.htm Regards Reinhard View solution in original post |
|
|
|
我唯一能想到的就是你使用了Spartan 3中特殊的“HDC”或“LDC”引脚之一。这些助记符分别代表配置中的高位和配置中的低位。
这些特定引脚在配置期间主动驱动。 您无法使用HSWAPEN更改其行为。 请注意,这些相同的引脚也应该在通过JTAG编程时驱动,但我的猜测是,当MCU访问NAND时,您没有进行JTAG编程。 - Gabor 以上来自于谷歌翻译 以下为原文 The only thing I can think is that you have maneged to use one of the special "HDC" or "LDC" pins of the Spartan 3. These mnemonics stand for High During Config and Low During Config respectively. Those particular pins actively drive during configuration. You can't change their behavior with HSWAPEN. Note that these same pins should also drive while programming via JTAG, but my guess is that you're not doing the JTAG programming while the MCU is accessing NAND. -- Gabor |
|
|
|
对不起,一定记不起那些LDC和HDC引脚。
Spartan 6拥有它们,最初的Spartan和Spartan XL系列(早已不复存在)也是如此。 查看接口中使用的所有引脚并查看它们中的任何引脚是否在配置期间具有功能(两用引脚)仍然是有益的。 我不熟悉任何GTS_cycle“KEEP”设置。 你是在哪里找到那个东西的。 如果您希望延迟FPGA启动直到MCU启动,那么在MCU启动并运行之前,通过将INIT_B或PROG_B保持为低电平来控制配置可能是有意义的。 或者,您可以使用某种监控电路(具有时间延迟的上电复位设备)来阻止FPGA配置。 除非您愿意分享您的原理图,否则不知道还有什么建议。 - Gabor 以上来自于谷歌翻译 以下为原文 Sorry, must have mis-remembered about those LDC and HDC pins. Spartan 6 has them, and so do the original Spartan and Spartan XL families (long gone). Still it would be beneficial to look through all of the pins used in the interface and see if any of them have functionality during configuration (dual-purpose pins). I'm not familiar with any GTS_cycle "KEEP" setting. Where did you find that? If you want to delay FPGA startup until the MCU has booted, then it would probably make sense to use a signal from the MCU to control configuration by holding either INIT_B or PROG_B low until the MCU is up and running. Alternately you could use some sort of supervisory circuit (power-on reset device with a time delay) to hold off FPGA configuration. Don't know what else to suggest unless you're willing to share your schematics. -- Gabor |
|
|
|
嗨Gabor,
我能够解决我的问题。 ATM我完全不理解,但它现在有效。 我必须在共享等待线上启用上拉,尽管硬件中应该有一个(但是我无法检查它,因为处理器和nand在OEM模块上,而我所有的都是原理图)。 非常感谢您的时间和精力! 但我仍然对GTS_cycle“KEEP”感到好奇。 您可以在“生成编程文件”过程的属性(启动)中找到此设置。 我在那里找到了它:http://www.xilinx.com/itp/xilinx10/isehelp/pp_db_startup_options.htm 关心莱因哈德 以上来自于谷歌翻译 以下为原文 Hi Gabor, I was able to solve my problem. ATM I don't understand it completely but it works now. I had to enable a pull up on the shared wait line although there should be one in hardware (but I can't check it because the processor and nand is on a OEM module and all I've got is the schematic). Thank you very much for your time and effort! But I'm still curios about the GTS_cycle "KEEP". You can find this setting in the properties (startup) of the "Generate Programming File" process. I found it there: http://www.xilinx.com/itp/xilinx10/isehelp/pp_db_startup_options.htm Regards Reinhard |
|
|
|
在UG332表11-2中,它表示Keep“保留当前的GTS_cycle设置”。
这似乎意味着你可能有一个实际上不影响启动周期的比特流,所以如果例如前一个比特流将它设置为周期4,它将保持在周期4 - 即使默认值是周期6。 我不确定这是否有用,但也许有理由这样做。 或者它可能就在那里,因为设计启动逻辑的人不知道如何处理比特流中第3个字段的第8个可能设置... - Gabor 以上来自于谷歌翻译 以下为原文 In UG332 Table 11-2, it says that Keep "Retains the current GTS_cycle setting." This seems to imply that you could have a bitstream that doesn't actually affect the startup cycle, so if for example a previous bitstream set it to cycle 4, it would remain at cycle 4 - even though the default is cycle 6. I'm not sure of the usefulness of this, but maybe there was a reason to do this. Or maybe it is just there because whoever designed the startup logic didn't know what else to do with the eighth possible setting of the 3-bit field in the bitstream... -- Gabor |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2384 浏览 7 评论
2800 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2264 浏览 9 评论
3336 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2431 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
757浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
547浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
369浏览 1评论
1965浏览 0评论
684浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:55 , Processed in 1.528532 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号