语句不能合成,因为它在NOT(时钟沿)条件下不保持其值
尝试在u_txack边缘复位=> 0信号u_txreq并在CLK边缘设置=> 1信号
process (CLK, u_reset_n, u_txack)
begin
if (u_reset_n='0')then
u_txreq<='0';
elsif rising_edge(CLK) then
u_txreq<='1';
elsif rising_edge(u_txack) then
u_txreq<='0';
end if;
end process;
答案 0 :(得分:2)
要使HDL代码顶部可合成,目标库中必须存在一些硬件,以实现所请求的功能。
目前不存在同时支持的硬件:
1 /在低电平有效信号下同步重置a。 (if (u_reset_n='0')
)
2 /在上升沿(elsif rising_edge(CLK)
)触发
3 /在第二独立上升沿触发。 (elsif rising_edge(u_txack)
。
您必须重新编写代码以仅使用一个时钟上升沿或下降沿。
答案 1 :(得分:0)
通过同步CLK查看我的信号同步异步u_txack:
if rising_edge(CLK) then
count<=count+B"00000001";
n1_txack <= u_txack;
if( n1_txack='0' AND u_txack='1')
then
u_txreq<='0';
count<=B"00000000";
end if;
if (count=B"00000010") then
u_txreq<='1';
end if;
end if;