我正在为一个课堂做Verilog入门项目。在我的代码中,我使用了多个传感器(Sensor_1,Sensor_2 ...)。所有传感器都开始处于空闲状态。 Sensor_x ==0。如果传感器感测到运动物体,它将更改为Sensor_x ==1。有没有一种方法可以对“计数”进行编码,该计数将跟踪多个传感器变为1,因此我可以根据以下情况跳转到不同的代码计数是多少?我意识到我可以将嵌套的'if'语句与OR(||)和AND(&&)结合使用,但是,如果我有四个或五个传感器,这会有点多余。也许我在想这是错误的方法,但是在一个变量中跟踪多个声明的传感器似乎比许多“ if,else if”语句更有效。如果我错了,请纠正我。这对许多人来说可能很简单,但是Verilog编码对我来说是新手,所以我有些困惑。
答案 0 :(得分:0)
...以便可以跳转到其他代码
不! Verilog不是一种编程语言,您可以在其中以某种方式重定向程序计数器以执行其他操作。
所有代码同时存在并并行执行。
您所能做的就是使用if
,case
等结构来“启用”或“禁用”部分代码。
有没有一种方法可以对“计数”进行编码,从而跟踪多个传感器更改为1 ...
您可以保留所有传感器的计数,但是如果两个传感器同时更换,该怎么办?
不是 ,就像您可以执行的C程序一样:
for (s=0; s<NUM_SENSORS; s++)
if (sensor[s])
count++;
对于初学者,我将为每个传感器使用一个计数器并将其累加起来。
最后但并非最不重要的一点:如果要真正在硬件中工作,则可能需要先将传感器与本地时钟同步,然后才能使用它们。询问您的班主任,传感器输入是同步还是异步到达。 当心 :如果您问这个问题,您可能会冒他可能怀疑您一直在寻求帮助的风险!