微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 1052个数中如何找出所有的0(肯定小于8个)

1052个数中如何找出所有的0(肯定小于8个)

时间:10-02 整理:3721RD 点击:
我现在在做一个项目,需要找出一个1052维的数组中的所有0的位置(0的个数小于等于8个)。请问哪位大虾知道如何用可综合的verilog实现啊(用if  else if一个个找是不行的,一千多个else if 啊)。先谢过各位大虾了。

把这些数据一个个读出来,再一个个判断,是0的就记录下位置。

假定这些数据存储在一个RAM中,从RAM中读出(此时读地址即表明了数据在数组中的位置)判断是否为0,若为0则将相应的读地址存储,这样就检测到了0的位置。读地址要做相应的延迟。

如果没有速度的要求,楼上的办法即可

如果有速度的限制,大家还有什么算法?

看你要多久算出来了。

最快的到结果的算法。征集。

小编有没有看过Leading one相关的文献?
我觉着这个问题可以用类似的方法解决

学学!

你这个数据怎么来的,串行?并行?

关键是这些数是如何生成和存储的,如果是一个一个生成的只要生成的过程中判别即可;如果是预先生成的则在生成的时候生成一个指向这几个0位置的数组即可。

既然是数组,那就是说是并行的,最好的办法就是采用ram的存储方式读处并判断。如果不是数据堆的话,那一定是n比特顺序时钟驱动送入的 ,那么数据起始时初始化一个计数器,数据到来的同时判断数值,为0即将当前计数值存起来。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top