这个逻辑怎么实现呢,请教大虾!
如何实现呢?因为要用到两个沿的判断问题。不知道怎么用?
不知道,A和B同时下降沿时,怎么办
前提是:A和B 的下降沿是相互错开的。
信号就是这样的,都这样错开的。
然后,俺就用以下的程序写的。但输出的是XXXX
555~怎么回事呀。
architecture cn_test_behav of cn_test is
begin
process(a,b)
variable x:bit :='0';
begin
if a='0' and b='0' then--是这有问题吗?
if x='0' then
con1a<='1';
elsif x='1' then
con1a<='0';
end if;
X:=not x;
end if;
end process;
end cn_test_behav;
VHDL我不会,verilog可以这样实现
always @(negedge a or negedge b)
if(!b)
c <= 1;
else
c <= 0;
其实就是把a和b一个接在时钟端上,一个接在异步复位端上
楼上的做法不推荐,不可综合
非要negedge的话,可以打把A打一拍成AF!
在每个时钟上升的时候判断!A & AF1
简单,用两个移位寄存器,然后后一个寄存器的输出取反与前一个寄存器的输出相与,或者前一个寄存器取反与后一个寄存器的输出相与,即可。
always @(negedge a or negedge b)
if(!b)
c <= 1;
else
c <= 0;
上面这段代码是完全可以综合的,a相当于下沿有效的时钟,而b是异步低电平有效的置位信号(不是freelion所说的复位信号),在Altera FPGA上我综合过,可以综合为预测的逻辑,不过是否适用于搂主的设计到并不见得,但单从可综合性来说是完全可以通过的。
但在实际应用中那样写是不可行的,一般只能取时钟的posedge,negedge
拜托,你综合一下看看,a是不是会被放在触发器的时钟管脚上,唉
不要综合好了,set_dont_touch