完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
嗨,我的设计需要几个时钟信号10Mhz,20Mhz,30Mhz。
我的输入时钟是120Mhz。 我可以并行使用3个DCM来获得3个所需的时钟但它们之间是否有syn(div 12,div 6,div 4)? 如何确保我在所有三个频率之间具有同步性。 此外,我的30MHz频率将用于为我的许多设计FPGA模块(Mux,Counter ......等)提供时钟。 每个时钟输出引脚可以驱动的最大模块数是多少? 我正在使用virtex 5 以上来自于谷歌翻译 以下为原文 Hi I have a design that require several clocking signal 10Mhz, 20Mhz, 30Mhz. My input clock is 120Mhz. Can I use 3 DCMs in parallel to have the 3 required clock yet have syn between them (div 12, div 6, div 4 )? How can I ensure that I have syn between all three frequency. Also my 30MHz frequency will be used to clock many of my design FPGA Module (Mux, Counter...etc). What will be the recommended max number of module each clock outpin can drive? Im using virtex 5 |
|
相关推荐
5个回答
|
|
|
S,
您可以根据需要在相同的输入时钟下运行尽可能多的DCM。 但是,没有办法同步启动,因此相位关系将与120 MHz时钟对齐,但各种分频器将不会同步。 一般来说,你所描述的是差的同步系统设计实践。 相反,构建这种方法的正确方法是在120 MHz上使用一个计数器为每个域生成时钟使能。 然后,所有内容都在120 MHz时钟域下运行,每个模块都获得正确的时钟使能。 如上所述,系统现在完全同步,具有完全定义的时序。 时序约束可能会变得更加复杂,因为您现在都拥有多周期路径,以使布局和布线更简单,更容易。 Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 s, You may operate as many DCM's off the same input clock as you like. However, there is no way to sync the start up, so the phase relationship will be aligned to the 120 MHz clock, but the various dividers will not be synchronized. Generally speaking, what you describe is poor synchonous system design practice. Instead, the proper way to architect this is to use one counter on 120 MHz to generate clock enables for each domain. Everything is then operated off the 120 MHz clock domain, and each module gets the proper clock enable. As I described above, the system is now fully synchronous, with completely defined timing. The timing constraints may get more complex, as you now all ow multi-cycle paths, to make placing and routing simpler, and easier. Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
|
|
嗨我附加了3个不同设置(A,B,C)的文件。
基于你有建议的预告片,选项B是否正确设置正确的同步时钟? 这意味着120MHz-> DCM - > 120MHz->一个时钟分频器,输出10Mhz,20MHz和30MHz带信号计数器(单个“过程”)? 还有最大数量的输入时钟输出(假设我的30MHz时钟)可以支持吗? CLK_GENERATOR.pdf 135 KB 以上来自于谷歌翻译 以下为原文 Hi I have attached a file with 3 different setup (A,B,C). Based on you have advise eariler, is option B the correct setup for proper syn clocking? Which mean 120MHz-> DCM -> 120MHz-> A Clock Divdier that output 10Mhz, 20MHz and 30MHz with a signal counter (with in a single "Process")? Also is there a max number of inputs a clock output (let say my 30MHz clock) can support? |
|
|
|
|
|
BUFG驱动时钟资源,自动打开缓冲区(驱动程序)以驱动所需的时钟负载数。
通常,在FPGA器件中,工具会处理ASIC设计中您必须注意的所有细节。 我会对你的代码发表评论...... Austin Lesea主要工程师Xilinx San Jose 以上来自于谷歌翻译 以下为原文 The BUFG drives a clock resource, which automatically turns on bufferd (drivers) to drive the required number of clock loads. Generally, in a FPGA device, the tools take care of all those details that you would otherwise have to pay attention to, in am ASIC design. I will let other comment on your code... Austin Lesea Principal Engineer Xilinx San Jose |
|
|
|
|
|
您尚未描述如何使用多个时钟。
这可能会对您如何优化设计结构产生影响。 从120MHz源时钟生成10Mhz,20MHz和30MHz时钟非常简单。 根据您所描述的内容,不需要DCM或PLL。 正如Austin在其帖子中所建议的那样,这三个时钟的预期用途可能表明您计划的设计实现可能不是Xilinx FPGA的最佳实现方法。 替代的最佳实现可以导致更低的功率和资源利用率,以及更简单的设计和更好的定时性能。 示例:使用6(9)个寄存器/计数器位从120MHz生成10/20/30 MHz方波(和时钟使能) reg [1:0] cnt40 = 0; // 2位计数器,将120MHz除以3至40MHz reg [1:0] cnt10 = 0; // 2位计数器,与cnt40一起使用,将120MHz除以6/12至20MHz / 10MHz reg [1:0] cnt30 = 0; // 2位计数器,将120MHz除以4至30MHz wire preclk10,preclk20,preclk30; // 10,20,30MHz方波。 缓冲区(例如BUFG)如果用作时钟 永远@(posedge clk120) if(cnt40> = 2'b10)cnt40 //除以3 别的cnt40; // cnt40 [1]是1-of-3单周期脉冲,40MHz速率 永远@(posedge clk120) if(cnt40 [1])cnt10 //使用cnt40 [1]作为40MHz时钟ena,将120MHz除以20/10 MHz 总是@(posedge clk120)cnt30 // 2位将120MHz除以4到30MHz 分配preclk30 = cnt30 [1]; // 30MHz方波 分配preclk20 = cnt10 [0]; // 20MHz方波 分配preclk10 = cnt10 [1]; // 10MHz方波 reg clkena_10,clkena_20,clkena_30; //注册的单周期宽时钟使能 始终@(posedge clk120)clkena_10 // 1个12周期单周期,10MHz时钟使能 always @(posedge clk120)clkena_20 // 1个单周期,20MHz时钟使能 always @(posedge clk120)clkena_30 // 1个单周期,30MHz时钟使能 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 以上来自于谷歌翻译 以下为原文 You have not described how you are using the multiple clocks. This might make a difference in how you would optimally structure your design. Generating 10Mhz, 20MHz, and 30MHz clocks from a 120MHz source clock is simple. No DCM or PLL is required, based on what little you have described. As Austin suggested in his posts, your intended use for these three clocks may suggest that your planned design implementation may not be an optimal implementation approach for Xilinx FPGAs. An alternate, optimal implementation may result in lower power and resource utilisation, and simpler design with better timing performance. Example: generate 10/20/30 MHz square waves (and clock enables) from 120MHz, using 6 (9) register/counter bits reg [1:0] cnt40 = 0; // 2-bit counter to divide 120MHz by 3 to 40MHz reg [1:0] cnt10 = 0; // 2-bit counter, used with cnt40 to divide 120MHz by 6/12 to 20MHz/10MHz reg [1:0] cnt30 = 0; // 2-bit counter to divide 120MHz by 4 to 30MHz wire preclk10, preclk20, preclk30; // 10,20,30MHz square waves. Buffer (e.g. BUFG) if used as clocks always @(posedge clk120) if (cnt40 >= 2'b10) cnt40 <= 0; // divide by 3 else cnt40 <= cnt40 + 1; // cnt40[1] is a 1-of-3 single-cycle pulse, 40MHz rate always @(posedge clk120) if (cnt40[1]) cnt10 <= cnt10 + 1; // use cnt40[1] as 40MHz clock ena, divide 120MHz to 20/10 MHz always @(posedge clk120) cnt30 <= cnt30 + 1; // 2-bit divide 120MHz by 4 to 30MHz assign preclk30 = cnt30[1]; // 30MHz square wave assign preclk20 = cnt10[0]; // 20MHz square wave assign preclk10 = cnt10[1]; // 10MHz square wave reg clkena_10, clkena_20, clkena_30; // registered single-cycle wide clock enables always @(posedge clk120) clkena_10 <= &{cnt10,cnt40}; // 1-of-12 single cycle, 10MHz clock enable always @(posedge clk120) clkena_20 <= &{cnt10[0],cnt40}; // 1-of-6 single cycle, 20MHz clock enable always @(posedge clk120) clkena_30 <= &cnt30; // 1-of-4 single cycle, 30MHz clock enable -- Bob Elkind SIGNATURE: README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369 Summary: 1. Read the manual or user guide. Have you read the manual? Can you find the manual? 2. Search the forums (and search the web) for similar topics. 3. Do not post the same question on multiple forums. 4. Do not post a new topic or question on someone else's thread, start a new thread! 5. Students: Copying code is not the same as learning to design. 6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please). 7. You are not charged extra fees for comments in your code. 8. I am not paid for forum posts. If I write a good post, then I have been good for nothing. |
|
|
|
|
|
Virtex-5具有PLL,可用于从120MHz输入轻松生成10/20 / 30MHz时钟(请参见下面的快照)
skquah写道: 嗨,我的设计需要几个时钟信号10Mhz,20Mhz,30Mhz。 我的输入时钟是120Mhz。 我可以并行使用3个DCM来获得3个所需的时钟但它们之间是否有syn(div 12,div 6,div 4)? 如何确保我在所有三个频率之间具有同步性。 此外,我的30MHz频率将用于为我的许多设计FPGA模块(Mux,Counter ......等)提供时钟。 每个时钟输出引脚可以驱动的最大模块数是多少? 我正在使用virtex 5 干杯,吉姆 以上来自于谷歌翻译 以下为原文 Virtex-5 has PLL, which can used to easiily generate 10/20/30MHz clocks from 120MHz input (see the snapshot below) skquah wrote: Cheers, Jim |
|
|
|
|
只有小组成员才能发言,加入小组>>
3141 浏览 7 评论
3435 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2897 浏览 9 评论
4097 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
3082 浏览 15 评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
1358浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
1196浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 08:49 , Processed in 0.992418 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
367
