完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我有一个小代码片段我试图穿上xilinx CPLD - xa2c128-7VQ100
mclk(24MHz)是设计的输入,从中生成i2s_o clk。 然后,i2s_o时钟进入设计中的其他一些小进程和输出引脚。 i2s_o时钟以下列方式生成 - 总是@(posedge mclk或negedge rst_n)开始if(!rst_n)i2s_o else i2s_o end mclk不用于设计中的任何其他地方 当我在CPLD上实现设计时(使用ISE 14.1),我总是会收到警告 - Cpld:310 - 无法应用tiMESPEC TS_mclk = PERIOD:mclk:41.666nS:HIGH:20.833nS,原因如下:(a)未找到信号名称; (b)由于优化而删除或重命名的信号; (c)TIMESPEC中的FROM节点和TO节点之间没有路径。 然而,ISE约束编辑器说上面的约束很好,有效且语法正确。 我的问题是 - 1)警告可以被忽略吗? 如果没有,我怎么能摆脱上述警告? 我只在CPLD实施的情况下看到它。 如果我将设备更改为virtex FPGA,警告就会消失 2)如何约束内部生成的i2s_o时钟? 在约束编辑器中,我没有看到内部的i2s_o clk但是我确实看到了一个i2s_o_OBUF clk(也许是因为它被路由到输出引脚?)。 既然i2s_o clk也进入了设计中的某些进程,那么仅限制i2s_o_OBUF时钟是否正确? 如果没有,我如何在约束编辑器中找到i2s_o时钟,或者这个时钟的约束语法应该如何? 请告诉我 ... 谢谢, ž。 以上来自于谷歌翻译 以下为原文 hi, i have a small code snippet im trying to put on a xilinx CPLD - xa2c128-7VQ100 mclk (24MHz) is an input to the design from which i2s_o clk is generated. the i2s_o clock then goes to some other small processes and an output pin in the design. i2s_o clock is generated in the following manner - always @ (posedge mclk or negedge rst_n) begin if (!rst_n) i2s_o <= 1'b0; else i2s_o <= ~i2s_o; end mclk is not used anywhere else in the design when i implement the design on the CPLD (using ISE 14.1), i always get a warning saying - Cpld:310 - Cannot apply TIMESPEC TS_mclk = PERIOD:mclk:41.666nS:HIGH:20.833nS because of one of the following: (a) a signal name was not found; (b) a signal was removed or renamed due to optimization; (c) there is no path between the FROM node and TO node in the TIMESPEC. however the ISE constraints editor says the above constraint is fine and valid and syntactically correct. My questions are - 1) can the warning be ignored? if not, how can i get rid of the above warning? i only see it in case of CPLD implementation. if I change the device to a virtex FPGA, the warning goes away 2) how do i constraint the i2s_o clock which is generated internally? in the constraints editor, i donot see the internal i2s_o clk however i do see an i2s_o_OBUF clk (maybe because it is routed to an output pin?). since the i2s_o clk also goes to some processes inside the design, is it correct to just constraint the i2s_o_OBUF clock? if not, how can i locate the i2s_o clock in the constraints editor or how should the constraint syntax for such a clock be? please let me know ... thanks, z. |
|
相关推荐
6个回答
|
|
在i2s_o_OBUF上设置约束可能会做你想要的。
在CPLD中,通常没有单独的路径从信号片外到其他片上负载。 如果你没有像mclk那样得到警告,那么约束应该有效。 要记住的一件事是,工具不会像T触发器那样通过同步逻辑传播时钟约束。 它们仅在通过DCM或PLL等时钟结构时创建派生约束。 因此,即使在FPGA中,您也需要约束i2s_o,无论您是否约束mclk。 - Gabor 在原帖中查看解决方案 以上来自于谷歌翻译 以下为原文 It's likely that placing a constraint on i2s_o_OBUF will do what you want. In a CPLD, there is typically no separate path from a signal that goes off-chip to other on-chip loads. If you don't get warnings like you had for mclk, then the constraint should be working. One thing to remember is that the tools will not propagate a clock constraint through synchronous logic like your T flip-flop. They only create derived constraints when going through a clocking structure like DCM or PLL. So even in an FPGA you would need to constrain i2s_o regardless of whether you constrained mclk. -- GaborView solution in original post |
|
|
|
在您的情况下,问题似乎是“(c)TIMESPEC中的FROM节点和TO节点之间没有路径。”
这是因为切换触发器完全包含在宏单元内,因此没有通过定时检查的类型的“路径”。 从计时工具的角度来看,即使源代码中定义了反馈路径,您的mclk也只有一个负载,并且没有从该节点到其自身的“路由”。 该反馈路径是宏单元结构的内部,允许触发器被设置为触发器触发器而不使用任何路由资源。 - Gabor 以上来自于谷歌翻译 以下为原文 In your case it looks like the issue is "(c) there is no path between the FROM node and TO node in the TIMESPEC." That's because a toggle flip-flop is contained entirely within the macrocell so there is no "path" of the type that gets checked by timing. From the timing tool's standpoint your mclk has exactly one load and no "routes" that go from that node to itself, even though there is a feedback path defined in the source code. This feedback path is internal to the macrocell structure which allows the flip-flop to be set as a toggle flip-flop without using any routing resource. -- Gabor |
|
|
|
嗨gabor,谢谢你的回复。
我猜这对于mclk来说是一个无害的警告,因为我没有得到关于FPGA综合的警告。 但是如何约束i2s_o clk? 在约束编辑器中,我只看到i2s_o_OBUF clk。 我没有看到i2s_o clk,所以我不确定是否对i2s_o_OBUF施加约束是否足够? 我怎么能得到这个时钟来约束? 谢谢, ž。 以上来自于谷歌翻译 以下为原文 hi gabor, thanks for the reply. ya i guessed it's an innocuous warning for mclk because i did not get this warning for an FPGA synthesis. however how to i constrain the i2s_o clk? in the constraints editor, i only see i2s_o_OBUF clk. I dont see the i2s_o clk and so im not sure if putting a constraint on i2s_o_OBUF is sufficient? how can i get to this clock for constraining? thanks, z. |
|
|
|
在i2s_o_OBUF上设置约束可能会做你想要的。
在CPLD中,通常没有单独的路径从信号片外到其他片上负载。 如果你没有像mclk那样得到警告,那么约束应该有效。 要记住的一件事是,工具不会像T触发器那样通过同步逻辑传播时钟约束。 它们仅在通过DCM或PLL等时钟结构时创建派生约束。 因此,即使在FPGA中,您也需要约束i2s_o,无论您是否约束mclk。 - Gabor 以上来自于谷歌翻译 以下为原文 It's likely that placing a constraint on i2s_o_OBUF will do what you want. In a CPLD, there is typically no separate path from a signal that goes off-chip to other on-chip loads. If you don't get warnings like you had for mclk, then the constraint should be working. One thing to remember is that the tools will not propagate a clock constraint through synchronous logic like your T flip-flop. They only create derived constraints when going through a clocking structure like DCM or PLL. So even in an FPGA you would need to constrain i2s_o regardless of whether you constrained mclk. -- Gabor |
|
|
|
嗨gabor,
谢谢回复。 我确实对i2s_o_OBUF应用了约束,看起来它正在约束时钟。 我确实在原理图视图(后拟合)中查找信号,它被称为i2s_o_OBUF。 如此限制这就完成了这项工作。 mclk警告仍在那里。 但正如你所说 - 因为没有从 - 到节点,我会认为警告是无害的,并将继续存在。 谢谢! 以上来自于谷歌翻译 以下为原文 hi gabor, thanks for the reply. i did apply the constraint on i2s_o_OBUF and it looks like it is constraining the clock. i did look up the signal in the schematic view (post-fit) and it is called i2s_o_OBUF. so constraining this does the job. the mclk warning is still there. but as you said - since there is no from-to node, i will assume the warning is harmless and will continue to be there. thanks! |
|
|
|
如果要删除mclk警告,可以删除时序约束。
从理论上讲,这些工具仍应检查对零件切换限制的约束,尽管CPLD工具可能不是那么先进。 您可以使用数据表值来获得最大切换率,以确保您的mclk不会太快。 - Gabor 以上来自于谷歌翻译 以下为原文 If you want to remove the mclk warning, you could just remove the timing constraint. Theoretically, the tools should still be checking the constraint against the part's switching limits, although it's likely that the CPLD tools are not that advanced. You can use the data sheet values for max toggle rate to make sure your mclk isn't too fast for your part. -- Gabor |
|
|
|
只有小组成员才能发言,加入小组>>
2416 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2459 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1157浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
584浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
450浏览 1评论
2005浏览 0评论
729浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:15 , Processed in 1.537741 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号