时序逻辑中,像下面这样写 没问题吧 ?
时序逻辑中,像下面这样写 没问题吧 ?只见过 有一个按键输入的 key1的情况 ,加上key2 编译能通过,两个按键 都加上可以吧 ?
regflg;
always @(posedge ram_clk or negedge key1or negedge key2 )
if(!key1 )
flg <= 1'b1;
else if(!key2 )
flg <= 1'b0; 楼主,还少了个else,一般建议补全。 放到开发工具里试一下嘛。看综合出来的电路有没有问题。 这样的逻辑,只要key1或key2上有个小的毛刺都有可能误触发;综合成电路就是key1为寄存器的置位端,key2为清零端;如果key1和key2同时有效,key1优先级高。不知楼主想要的是不是这样的功能。 2楼说的有理,逻辑要完整好些。 对于外部的按键输入,最好搞成同步触发,同步释放,同时还要考虑1ms左右的防抖延时。 我感觉有问题 没问题,不过用三个沿来触发要小心,不一定都能综合。一个沿的是同步复位的触发器,两个沿的是异步复位的触发器,三个沿的是异步复位和置位的触发器。楼主的逻辑刚好符合这个条件。
不行
always@(posedge clk or negedge rst_n)
if(!rst_n)
xxxx
else if(key1)
xxxx
else if(key2)
xxxxx 7802848 发表于 2014-11-5 16:23
不行
always@(posedge clk or negedge rst_n)
if(!rst_n)
应该使用这种同步的写法
楼主的写法叫做“敏感边缘信号满天飞”
页:
[1]