首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语句不能综合,因为它在not (时钟边缘)条件下不能保持其值

语句不能综合,因为它在not (时钟边缘)条件下不能保持其值
EN

Stack Overflow用户
提问于 2019-01-07 22:33:37
回答 2查看 610关注 0票数 1

语句不能综合,因为它在not (时钟边缘)条件下不能保持其值

尝试在u_txack边沿上重置=>0信号u_txreq,并在时钟边沿上设置=>1它

代码语言:javascript
复制
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;

EN

回答 2

Stack Overflow用户

发布于 2019-01-07 22:42:59

为了使HDL代码可综合,目标库中必须存在实现所请求功能的硬件。

目前还没有同时支持以下功能的硬件:

1/在低电平有效信号时同步复位a。(if (u_reset_n='0'))

2/上升沿触发(elsif rising_edge(CLK))

3/在的第二个独立上升沿触发。(elsif rising_edge(u_txack))。

您必须重写代码以仅使用一个上升或下降时钟沿。

票数 2
EN

Stack Overflow用户

发布于 2019-01-08 18:28:45

查看my signals synchronization async u_txack with sync CLK:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54076345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档