在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2303|回复: 6

[求助] 串行数据变为并行数据,怎么办?

[复制链接]
发表于 2017-7-3 09:27:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
串行数据位宽16位,我希望把连续的16个16位数据变成并行的,并且满足实时性,我想不出来怎么实现。因为第1个,17,33......个数据需要串行起来处理,第2,18,34....个数据需要串行起来处理.......第16,32,48......个数据需要串行起来处理。给个思路吧,是个有趣的问题。
 楼主| 发表于 2017-7-3 15:27:24 | 显示全部楼层
怎么没有人回帖呀?
我想到了一个方法就是使用16个16位的寄存器。
发表于 2017-7-4 12:18:35 | 显示全部楼层
明白你的意思了。我给你写一段伪代码,你自己琢磨吧。
首先定义寄存器存放输入进来的数据: shift_reg_s   ,这个寄存器可存放16个输入的数据。
再定义16个寄存器存放并行的数据,每个寄存器长度为你每次处理数据的个数,假如为48个吧shift_reg_p1,shift_reg_p2..........shift_reg_p16;每个寄存器可存放48个数,这16个寄存器存放的就是你需要的并行的数据。
定义一个计数器: cnt ,每次计到15清零。
process( clk )  begin
      if clk'event and clk = '1' then
             cnt <= cnt + 1;
              shift_reg_s[0] <= data_in;
              for i =1:15  loop
                      shift_reg_s[i] <= shift_reg_s[i-1];
              end loop;
             if cnt = 0   then
                     shift_reg_p1[0] <= shift_reg_s[0];
                     shift_reg_p2[0] <= shift_reg_s[1];
                     shift_reg_p3[0] <= shift_reg_s[3];
                                       ..
                                       ..
                     shift_reg_p16[0] <= shift_reg_s[15];

                     for i=1:48 loop
                           shift_reg_p1[i] <= shift_reg_p1[i-1];
                           shift_reg_p2[i] <= shift_reg_p2[i-1];
                                         ..
                                         ..
                            shift_reg_p16[i] <= shift_reg_p16[i-1];
                      end loop;
              elsif cnt = 15 then
                     cnt <= 0;
             end if;
            
      end if;
end process;
 楼主| 发表于 2017-7-4 14:30:50 | 显示全部楼层
谢谢您。
真心不错的一段伪代码。
发表于 2017-7-11 11:59:49 | 显示全部楼层
如果是quartus的话,在IP核中调用shift_reg IP核,可直接打到目的,时序也好点,数据不停输入,并行的数据不断输出。并行可设16路
 楼主| 发表于 2017-7-11 17:14:32 | 显示全部楼层
回复 5# 青草香山

谢谢您的回答。不胜感激。
发表于 2017-7-12 17:10:50 | 显示全部楼层
谢谢解释!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 19:53 , Processed in 0.022440 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表