首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除未使用的顺序逻辑元素。不知道为什么它没有被使用

删除未使用的顺序逻辑元素。不知道为什么它没有被使用
EN

Stack Overflow用户
提问于 2018-04-03 15:04:16
回答 1查看 507关注 0票数 1

代码运行时没有任何语法错误,但是当我试图将代码移植到basys板并使用它时,它就不工作了。我认为给定的Vivado错误是问题所在,但我不确定。我不知道距离是如何被闲置的。Vivado错误 (对不起,我没有足够的声誉直接把这张照片放上去)

代码语言:javascript
复制
`timescale 1us/1us
module ProximitySensor(output reg trigger, input echo, input clk, output reg isCrash);
integer distance;

always @(posedge clk) //every clock pulse
    begin
        case (echo)
        0:
            begin

                if(distance <= 294117 && distance > 0)
                    begin
                        isCrash <= 1;
                        distance <=0;
                    end
                 else if(distance > 294117)
                    begin
                        isCrash <= 0;
                        distance <= 0;
                    end
                    trigger = 1;

            end       
        1:
            begin
                trigger <= 0;
                distance <= distance + 1;
            end
            endcase
    end

端模

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 15:44:33

打开综合->原理图,查找距离寄存器(distance_reg.)。检查是否真的删除了所有的寄存器。我刚刚运行了你的设计,我也收到了信息,但大多数仍然存在。(至少直至注册纪录册27)。

如果它们真的都消失了,最有可能的原因是“回声”信号总是0。

下一步:使用整数作为寄存器是不好的风格。通常的编码方式是使用:

代码语言:javascript
复制
reg [31:0] distance;

(整数也是有符号的,您可能需要一个无符号计数器)

最后:您的“触发器=1”代码:

  1. 它应该是非阻塞的:“触发器<= 1;”(尽管我更喜欢1'b1)
  2. 缩进是错误的。这表明它属于“if(距离> 294117)”一节,但它不属于。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49633330

复制
相关文章

相似问题

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