【问题标题】:Verilog - take in input from multiple "sensors", increment "count"Verilog - 从多个“传感器”接收输入,增加“计数”
【发布时间】:2019-03-02 19:16:48
【问题描述】:

我正在为一个班级做一个介绍性的 Verilog 项目。在我的代码中,我使用了多个传感器(Sensor_1、Sensor_2 ...)。所有传感器开始处于空闲状态; Sensor_x == 0。如果传感器感应到一个移动的物体,它会变为 Sensor_x == 1。有没有办法编写一个“计数”来跟踪多个传感器变为 1,这样我就可以根据不同的情况分支到不同的代码计数是多少?我意识到我可以将嵌套的“if”语句与 OR (||) 和 AND (&&) 结合使用,但是,如果我有四个或五个传感器,这就有点多余了。也许我在考虑这个错误的方式,但是在一个变量中跟踪多个断言的传感器似乎比许多“if,”else if”语句更有效。如果我错了,请纠正我。这对许多人来说可能很简单,但在 Verilog 中编码对我来说是新的,所以我有点难过。

【问题讨论】:

    标签: verilog fpga hdl


    【解决方案1】:

    ... 这样我就可以分支到不同的代码

    不! Verilog 不是一种编程语言,您可以在其中以某种方式重新定向程序计数器以执行不同的操作。

    所有代码同时存在并并行执行。
    您所能做的就是使用ifcase 等结构“启用”或“禁用”部分代码。

    有没有办法编写一个“计数”来跟踪多个传感器变为 1...

    您可以记录所有传感器的数量,但如果两个传感器同时发生变化,您会怎么做?
    不像像你可以做的 C 程序:

       for (s=0; s<NUM_SENSORS; s++)
         if (sensor[s])
            count++;
    

    对于初学者课程,我会为每个传感器使用一个计数器并将它们相加。

    最后但同样重要的是:如果要真正在硬件中工作,您可能需要先将传感器与本地时钟同步,然后才能使用它们。询问您的班级讲师传感器输入是同步还是异步到达。 当心:如果你问这个问题,他可能会怀疑你一直在寻求帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 2012-03-30
      相关资源
      最近更新 更多