这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 求教:如何比较一个位矢量中0和1的个数?

共4条 1/1 1 跳转至

求教:如何比较一个位矢量中0和1的个数?

高工
2009-03-17 22:31:15     打赏

求教:如何比较一个位矢量中0和1的个数?

我正在做的项目中遇到了一个问题。
用无线方式传输图像信号,每一帧的前40bit为帧头,发送时,若这是一帧有效信号则帧头为40bit 1,若这一帧是空帧,则帧头为40bit 0。考虑到误码率,接收方的策略是,比较帧头40bit中0和1的个数,若1多,则接收数据,若0多,则丢弃数据。 
现在的问题是如何高效的比较40bit位矢量中0和1的个数,只要能比较多少就行,因为时钟是75MHz,所以必须考虑效率。例如:111011100,则1多;01110000,则0多。
请各位高手指点,说明算法或给出HDL都行。
先谢过了。




关键词: 求教     如何     比较     个位     矢量     个数    

高工
2009-03-19 12:35:00     打赏
2楼
没人回答吗?
我现在只好采取折中的方法,只要有8bit连续的1,就认为是有效帧。先将就着用。
if( (&reg5ByteData[39:32])|(&reg5ByteData[31:24])|(&reg5ByteData[23:16])|(&reg5ByteData[15:8])|(&datab) )
        DataFrame <= 1; // Data Frame
else // NON Frame
        DataFrame <= 0;

工程师
2009-04-28 14:00:26     打赏
3楼

楼主方法有用吗?


高工
2009-04-28 18:03:44     打赏
4楼
回楼上的:
if( (&reg5ByteData[39:32])|(&reg5ByteData[31:24])|(&reg5ByteData[23:16])|(&reg5ByteData[15:8])|(&datab) )
        DataFrame <= 1; // Data Frame
else // NON Frame
        DataFrame <= 0;
还是有用的,是个折中的方法,没想到更好的。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]