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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 如何实现多输入单输出端口功能

[复制链接]
发表于 2017-1-11 19:50:17 | 显示全部楼层 |阅读模式

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

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

x
求助各位大神,现在要实现一个功能,就是把多个输入(可能会同时到达)接收进来转换成一个输出,就类似于交换机的功能,想到应该用缓存器,但是具体代码怎么写呢,在做时序仿真的时候很容易出问题,谢谢各位了!
发表于 2017-1-12 17:12:20 | 显示全部楼层
一般思路是把每路数据封包缓存,然后再根据仲裁把数据MUX到数据的输出。要考虑数据吞吐的平衡。
发表于 2017-1-12 18:29:00 | 显示全部楼层
首先,你要确定所有输入的速率之和,小于输出的速率;
其次,由于不同的输入之间会在输出时有一个阻滞关系,你要把这个阻滞关系进行建模;
然后,既然所有输入之间有阻滞关系,那么必须考虑将输入的数据缓存(可以考虑共享缓存);
发表于 2017-1-12 22:11:23 | 显示全部楼层
谢谢楼上解答!
 楼主| 发表于 2017-1-15 13:05:26 | 显示全部楼层
回复 2# tao2000

如果有多路数据同时到达,一般是怎么做缓存的呢?目前只想了这种方法,用ack信号回馈给信号源,使之valid信号无效,没有用缓存,感觉用缓存应该更简单一点,但是不知道怎么做



  1. always@(posedge clk)
  2. begin
  3. if(pcf_valid1&&pcf1[103:96]==pcf_sync_priority) begin pcf_info={pcf1[39:32],pcf1[7:0],pcf1[223:208],local_clock};pcf1_ack=1;end
  4. else if(pcf_valid2&&pcf2[103:96]==pcf_sync_priority) begin pcf_info={pcf2[39:32],pcf2[7:0],pcf2[223:208],local_clock};pcf2_ack=1;end
  5. else if(pcf_valid3&&pcf3[103:96]==pcf_sync_priority) begin pcf_info={pcf3[39:32],pcf3[7:0],pcf3[223:208],local_clock};pcf3_ack=1;end
  6. else if(pcf_valid4&&pcf4[103:96]==pcf_sync_priority) begin pcf_info={pcf4[39:32],pcf4[7:0],pcf4[223:208],local_clock};pcf4_ack=1;end
  7. else pcf_info=0;
  8. end


复制代码
 楼主| 发表于 2017-1-15 13:06:30 | 显示全部楼层
回复 3# 飘渺仙


   同问大神关于我回复二楼的那个问题
发表于 2017-1-16 13:53:16 | 显示全部楼层
回复 6# sheerlala

亲,别贴代码,不好看的,还是贴你的设计思路框图吧。框图更直观!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 00:45 , Processed in 0.023307 second(s), 7 queries , Gzip On, Redis On.

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