完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
虽然我在90年代曾使用过CPLD,但我还不熟悉FPGA。 我有一个项目的想法,如果可能的话我正在考虑FPGA解决方案。 但在让自己成为开发板并潜入之前,我想我会先在这里得到一些建议。 基本上我想实现两个32位计数器,但我希望这些计数器的计数速率高达3GHz。 看起来低端FPGA(即Spartan 6)的最大频率为200 - 300 MHz。 因此,我计划使用离散ECL逻辑在片外实现4个LSB,并在FPGA中实现每个计数器的剩余28位。 然后将外部4位引入FPGA,并且两个32位计数器将由加法器求和,然后主机处理器可以读取结果。 虽然外部4位仍然会在FPGA的频率过高时切换,但在对计数器求和之前,时钟将停止。 如果需要,我可以对这些输入进行门控,并且只有在时钟停止后才启用它们。 将会有一些额外的逻辑,可能还有第三个计数器,但我意识到Spartan 6可能有点过分,但我主要对更高的时钟速度感兴趣。 任何意见将不胜感激。 谢谢。 问候, 抢 以上来自于谷歌翻译 以下为原文 Hi, Although I have used CPLDs back in the 90s I am new to FPGAs. I have an idea for a project for which I am considering an FPGA solution if possible. But before getting myself a development board and diving in I thought I would get some advise here first. Basically I want to implement two 32 bit counters but I want these counters counting at a rate up to 3GHz. It appears that the max frequency for a low end FPGA (ie. Spartan 6) is 200 - 300 MHz. Therefore I was planning to implement the 4 LSBs off chip using discrete ECL logic and implement the remaining 28 bits of each counter in the FPGA. The external 4 bits would then be brought into the FPGA and both 32 bit counters would be summed by an adder and the result could then be read by the host processor. Although the external 4 bits would still be toggling at frequencies too high for the FPGA, the clocks will be stopped before summing the counters. If necessary I could gate these inputs and only enable them once the clocks have stopped. There will be some additional logic and possibly a third counter but I realise the Spartan 6 is probably a bit of overkill but I'm mainly interested in the higher clock speeds. Any comments would be appreciated. Thanks. Regards, Rob |
|
相关推荐
4个回答
|
|
忘记s6,只使用7系列或更新的东西。
90年代过去了。 :)我开始用XC2064直播现在不同了。 你可以计算时钟高达800mhz,这仍然比3Ghz低一点 但你可以使用7或8系列的GT收发器,比特率为12.5Gbit,创建一个可以捕获高达5ghz信号的采样输入,这样你就可以在序列化后在FPGA中实现脉冲计数器 你为什么想要专柜? 如果你想测量时间,延迟或周期或脉冲宽度等,那么FPGA可以用一些聪明的技巧来测量时间事件,直到几十皮秒的精度。 以上来自于谷歌翻译 以下为原文 forget s6, use only 7 series or newer stuff. 90s are past. :) I did start with XC2064 live is different now. you can count clocks up 800mhz, this is bit lower than 3Ghz still but you can use GT transceiver in 7 or 8 series, at bit rate of 12.5Gbit, creating a sampling input that can capture signals up to 5ghz, so you can implement the pulse counter in the FPGA after the serialization why do you want counters? if you want to measure time, delay or period or pulse width, etc.. then FPGA's can be used to measure time events up to the precison of few 10s of picoseconds with some clever tricks. |
|
|
|
谢谢回复。
我没有意识到斯巴达那么古老,我使用的CPLD是Altera Max系列。 你能详细说明这些“聪明的技巧”还是指向一些文档? 请注意,有些FPGA的GT收发器的额定频率为6 - 12 GHz,但当我检查寄存器的最大频率时,它们通常要低得多,为500 - 800 MHz。 这仍然太慢,我最终会在外部实现一些计数器的LSB,所以我想我也可以使用更小的FPGA。 但是,如果我能够在FPGA中实现整个事情,那将是一个惊喜。 以上来自于谷歌翻译 以下为原文 Thanks for the reply. I didn't realise the Spartan was that old, the CPLDs I used was the Altera Max family. Can you elaborate a bit on these "clever tricks" or point me to some documentation? I did notice that some FPGAs have GT transceivers rated for 6 - 12 GHz but then when I checked the max freq for the registers they were usually much lower, 500 - 800 MHz. This is still too slow and I would end up implementing a few LSBs of the counter externally anyway so I thought I may as well use the smaller FPGA. But if I can implement the entire thing in the FPGA that would be a pleasant surprise. |
|
|
|
Spartan 6并不是那么老,但不幸的是它在当前的软件版本中不受支持。
要使用它,你必须坚持使用ISE - 而所有新的Xilinx芯片都使用Vivado。 Vivado提供了比ISE更多的功能,并且仍在更新(ISE未更新)。 你能准确解释一下你的用途吗? 收发器通过采用非常快速的串行流并将其转换为更慢的并行流(例如,采用3GHz 1位串行数据并产生47MHz 64位数据)来工作。 如果您只是需要了解事件何时发生,这是可以接受的; 您以47MHz读取数据,并通过查找设置了哪些位,您可以准确确定事件发生的时间。 以上来自于谷歌翻译 以下为原文 The Spartan 6 isn't that old, but unfortunately it's not supported in the current software version. To use it, you'd have to stick with ISE - whereas all the new Xilinx chips use Vivado. Vivado offers much more functionality than ISE ever did, and is still being updated (ISE is not updated). Can you explain exactly what you're using this for? The transceivers work by taking a very fast serial stream and converting it to a much slower parallel stream (eg. taking 3GHz 1-bit serial data and producing 47MHz 64-bit data). If you just need to find out when an event happened, this is acceptable; you read the data at 47MHz and by finding which bits are set you can determine exactly when the event occurred. |
|
|
|
感谢您的回复以及有关Spartan 6和Vivado的信息。
从我读过的数据表中可以看出,我所知的收发器是你所描述的快速的SIPO转换器。 在我的应用程序中,我计划使用由2.5GHz时基时钟计时的计数器来计算启动和停止事件之间的持续时间。 这些事件可能发生得非常缓慢或非常快。 起初我认为FPGA收发器除了预分频器之外不会有用。 但如果收发器接收2.5GHz(5GBs)时钟以使并行输出交替为1和0,那么我所要做的就是移除一个脉冲以标记启动事件并移除另一个脉冲来标记事件。 然后可以在FPGA中检测这些事件,我只需要计算在主机之间接收的“字”的数量以及每个起始和停止“字”中的剩余位以获得准确的计数。 我意识到时钟的门控需要在外部完成,但这比在离散逻辑中实现所有内容要简单得多。 当您提到发现事件发生时,这基本上是您的想法吗? 我正在考虑购买Arty板并开始学习更多有关FPGA的知识。 以上来自于谷歌翻译 以下为原文 Thanks for the reply, and the info regarding Spartan 6 and Vivado. From the datasheets I have read it is my understanding that the transceivers are fast SIPO converters as you describe. In my application I was planning to use a counter clocked by a 2.5GHz time base clock to be used to time the duration between start and stop events. These events could happen very slowly or very fast. At first I thought the FPGA transceiver wouldn't be useful for much other than perhaps a prescaler. But if the transceiver was receiving the 2.5GHz (5GBs) clock so that the parallel output was alternating 1's and 0's, then all I have to do is remove a pulse to mark the start event and remove another pulse to mark the end event. These events could then be detected in the FPGA and I just need to count the number of "words" received between them as well as the remaining bits in each of the start and stop "words" to get an accurate count. I realise this gating of the clock will need to be done externally but that's much simpler than implementing everything in discrete logic. Is this basically what you had in mind when you referred to finding out when an event happened? I'm thinking of purchasing an Arty board and start learning some more about FPGAs. |
|
|
|
只有小组成员才能发言,加入小组>>
2279 浏览 7 评论
2688 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2173 浏览 9 评论
3247 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2318 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
577浏览 1评论
1644浏览 1评论
141浏览 1评论
在使用xc5vsx95T时JTAG扫片不成功,测量TDO无信号输出
2297浏览 0评论
609浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-21 17:45 , Processed in 1.286509 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号