在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2924|回复: 9

[求助] 问一个关于VHDL不用event来表示时钟边沿的问题

[复制链接]
发表于 2014-9-4 13:09:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 zhikai 于 2014-9-4 13:10 编辑

vhdl中如何不用event来表示一个信号的时钟沿?能否用如下方式表示?




  1. process(sig)
  2. begin
  3.         sig2<=sig;
  4.         if sig2='0' and sig='1' then
  5.         --命令
  6.         end if;
  7. end process;


复制代码
发表于 2014-9-4 15:02:35 | 显示全部楼层
已经三年不接触VHDL了,不能回答你,你自己试着综合下看看电路图就很清楚了。
 楼主| 发表于 2014-9-4 22:36:51 | 显示全部楼层
我在板子上用了,不行,但从我理解来说是可以的,不知到底是什么原因
发表于 2014-9-5 09:58:51 | 显示全部楼层
需要用时钟打才行
发表于 2014-9-5 16:08:10 | 显示全部楼层
我觉得应该可以,现在应用程序,不能试,但之前写程序的时候我用过类似的方法
发表于 2014-9-5 16:09:18 | 显示全部楼层
会不会是敏感信号的问题,这个的敏感信号是sig,应该sig在变化的时候进程就重新执行了吧
 楼主| 发表于 2014-9-5 19:28:13 | 显示全部楼层
我是这样理解的:进程中赋值在进程执行结束后进行。那当sig由0变为1时,sig2<=sig在执行时还未发生变化,因此符合sig2='0'以及sig='1',因此if条件成立。但在实际运行时,似乎这个并不能运行,不知怎么回事?
发表于 2014-9-16 17:15:35 | 显示全部楼层
回复 1# zhikai


   不行。这种方式取信号的沿,必须得用时钟打。
发表于 2014-9-16 18:07:24 | 显示全部楼层
不懂VHDL
 楼主| 发表于 2014-9-23 23:05:56 | 显示全部楼层
回复 8# adrian7


    但从VHDL进程赋值过程上说,没有问题啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-29 20:34 , Processed in 0.051857 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表