大侠看一下这个波形用vhdl怎么实现哟,谢谢
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545412.jpg(原文件名:1.jpg)
C在B的上升沿置为1,在A的上升沿置为0,,本想用两个进程进行边沿检测,但在不同进程对同一个信号赋值,是不能综合的呀。代码如下,请大侠指点一下呀
process(A)
begin
if(rising_edge(A)) then
C<='0';
end if;
end process;
process(B)
begin
if(rising_edge(B)) then
C<=1';
end if;
end process; 我也想知道... 下面这样应该可以把,我没实际模拟啊,觉得应该可以
process(A,B)
begin
if(rising_edge(A)) then
C<='0';
elsif (rising_edge(B)) then
C<='1'
end if;
end process; 你B脉冲永远在A为高时出现?还是不一定? B是在A为高之后出现.A脉冲也一定比B宽,A和B是用一个比较器用不同的阀值电压对输入的波形比较得到的。 architecture Behavioral of la is
signal flag:std_logic;
begin
process(a,b)
begin
if a='1' then
flag<='1';
if b='1' then
q<='1';
else
if flag='0' then
q<='0';
else
q<='1';
end if;
end if;
else
flag<='0';
end if;
end process;
end Behavioral;
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545644.JPG
(原文件名:波形.JPG) 上面这位大侠的程序不容易看太懂哟。跑了一下仿真,波形也和下面的对不上哟。 RS触发器行吗,你试试看 http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545863.jpg
RS触发器 (原文件名:未命名.jpg) 按照楼上的办法试了一下,
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545868.JPG
(原文件名:2.JPG)
仿真结果
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545869.JPG
(原文件名:3.JPG) 时间是多少啊?你得考虑门的延迟时间 再试了一下,加大了延迟时间,能在b为单个脉冲的时候实现功能的。
如果在A为高期间有抖动就有跳变了,还是谢谢上楼,感觉通过vhdl边沿检测实现的确还不容易呢
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545884.JPG
(原文件名:aa.JPG) 又仿真了一下,还有没覆盖完的情况
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_545890.JPG
(原文件名:33.JPG) 楼主看下555 时基电路,好像就是两比较器加一RS触发器 回复【楼主位】ccuse
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_546436.JPG
(原文件名:bmp1.JPG)
页:
[1]