问一个关于VHDL不用event来表示时钟边沿的问题
时间:10-02
整理:3721RD
点击:
vhdl中如何不用event来表示一个信号的时钟沿?能否用如下方式表示?
- process(sig)
- begin
- sig2<=sig;
- if sig2='0' and sig='1' then
- --命令
- end if;
- end process;
已经三年不接触VHDL了,不能回答你,你自己试着综合下看看电路图就很清楚了。
我在板子上用了,不行,但从我理解来说是可以的,不知到底是什么原因
需要用时钟打才行
我觉得应该可以,现在应用程序,不能试,但之前写程序的时候我用过类似的方法
会不会是敏感信号的问题,这个的敏感信号是sig,应该sig在变化的时候进程就重新执行了吧
我是这样理解的:进程中赋值在进程执行结束后进行。那当sig由0变为1时,sig2<=sig在执行时还未发生变化,因此符合sig2='0'以及sig='1',因此if条件成立。但在实际运行时,似乎这个并不能运行,不知怎么回事?
不行。这种方式取信号的沿,必须得用时钟打。
不懂VHDL
但从VHDL进程赋值过程上说,没有问题啊
