完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我在vhdl书中读过,如果vhdl进程中的灵敏度列表留空,则进程无限期执行,但如果我将灵敏度列表留空,则xilinx合成工具会显示错误。所以我在灵敏度列表中放入一个虚拟输入位信号
并且据我所知,只有当灵敏度列表上有事件时,才会执行该过程。但在modelsim中,默认情况下该位信号的值为0,然后即使不改变它的值,模拟工作正确并且处理执行。 这怎么可能 ? 以上来自于谷歌翻译 以下为原文 I have read in a vhdl book that if the sensitivity list in vhdl process is left blank the process executes indefinitely but if i leave the sensitivity list blank, the xilinx synthesize tool shows error.So i put a dummy input bit signal in the sensitivity list and as far as i know the process executes only when there is a event on the sensitivity list.But in modelsim it takes by default the value as 0 for this bit signal and then even if dont change it's value the simulation works correct and process executes. How is this possible ? |
|
相关推荐
3个回答
|
|
gopalkrishnarn写道:
我在vhdl书中读过,如果vhdl进程中的灵敏度列表留空,则进程无限期执行,但如果我将灵敏度列表留空,则xilinx合成工具会显示错误。所以我在灵敏度列表中放入一个虚拟输入位信号 并且据我所知,只有当灵敏度列表上有事件时,才会执行该过程。但在modelsim中,默认情况下该位信号的值为0,然后即使不改变它的值,模拟工作正确并且处理执行 。 这怎么可能 ? 您可能会在没有敏感列表的流程中看到错误,因为您的代码没有“等待”发生某些事情的逻辑。 具有敏感性列表的过程仅在该列表中的信号发生变化时触发。 对于注册过程,唯一感兴趣的信号是时钟(想想D触发器)。 对于组合过程,您必须考虑所有分配右侧的每个信号。 拥有没有敏感性列表的流程当然是合法的。 但是,这种过程必须有某种延时或等待机制; 否则进程将尝试在零时间内循环。 请购买Peter Ashenden的“VHDL设计师指南”。 它将为您澄清所有这些。 ----------------------------是的,我这样做是为了谋生。 以上来自于谷歌翻译 以下为原文 gopalkrishnarn wrote: You are likely seeing errors in processes without a sensitivity list because your code has no logic that "waits" for something to happen. A process that HAS a sensitivity list will only trigger on a change in the signals in that list. For a registered process, the only signal that is of interest is the clock (think about a D flip-flop). For a combinatorial process, you must consider EVERY signal on the right-hand side of all assignments. It is certainly legal to have a process without a sensitivity list. However, this sort of process must have some kind of time-delay or wait mechanism; otherwise the process will try to loop in zero time. Please please please buy a copy of Peter Ashenden's "The Designer's Guide To VHDL." It will clarify all of this for you. ----------------------------Yes, I do this for a living. |
|
|
|
无论如何,进程无限期地执行。
您看到的错误消息可能是一个警告,说合成器检测到列表中缺少的信号并自动添加它们。 我见过很多合成器都是这样做的。 吉姆 以上来自于谷歌翻译 以下为原文 A process executes indefinitely anyway. The error message you saw is probably a warning saying that the synthesizer detected signals missing from the list and is adding them automatically. I have seen many synthesizers that do this. Jim |
|
|
|
嗨,
关于敏感性列表和过程需要记住的一些事项: - 它们仅用于模拟并被合成忽略,即使某些工具发出警告(主要是告诉您模拟可能不准确) - 在0时刻触发所有进程一次 - 如果没有敏感列表,进程必须至少有一个wait语句,否则它会无限重启并且你的模拟器会停止。 发布您的代码,以便我们为您提供有关其工作原理的更多具体信息。 有一个很好的模拟 Eilert 以上来自于谷歌翻译 以下为原文 Hi,some things to remember about sensitivity lists and processes:- They are only used in simulation and ignored by synthesis, even if some tools give warnings (mostly to tell you that the simulation may be inaccurate)- ALL processes are triggered once at time 0- Without a sensitivity list a process has to have at least one wait-statement, otherwise it restarts infinitely and your simulator stalls.Post your code, so we can give you more specific information about how it works.Have a nice simulation Eilert |
|
|
|
只有小组成员才能发言,加入小组>>
2424 浏览 7 评论
2825 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2465 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1231浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
590浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
452浏览 1评论
2006浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 11:20 , Processed in 1.754282 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号