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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7672|回复: 10

【请教】如何改善多级mux的timing?

[复制链接]
发表于 2006-7-13 10:43:35 | 显示全部楼层 |阅读模式

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

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

x
input  [5:0]   index_32;

mem31 到 mem0 为[63:0]的寄存器

如下代码实现的功能是 通过输入的index_32,经过32级的64选一mux得出需要的index_0.
可是这种方法太慢了,不知道有什么好的结构方法可以实现这样的功能?

assign index_31 = {mem31[index_32],index_32[5:1]};
assign index_30 = {mem30[index_31],index_31[5:1]};
assign index_29 = {mem29[index_30],index_30[5:1]};
assign index_28 = {mem28[index_29],index_29[5:1]};
assign index_27 = {mem27[index_28],index_28[5:1]};
assign index_26 = {mem26[index_27],index_27[5:1]};
assign index_25 = {mem25[index_26],index_26[5:1]};
assign index_24 = {mem24[index_25],index_25[5:1]};
assign index_23 = {mem23[index_24],index_24[5:1]};
assign index_22 = {mem22[index_23],index_23[5:1]};
assign index_21 = {mem21[index_22],index_22[5:1]};
assign index_20 = {mem20[index_21],index_21[5:1]};
assign index_19 = {mem19[index_20],index_20[5:1]};
assign index_18 = {mem18[index_19],index_19[5:1]};
assign index_17 = {mem17[index_18],index_18[5:1]};
assign index_16 = {mem16[index_17],index_17[5:1]};
assign index_15 = {mem15[index_16],index_16[5:1]};
assign index_14 = {mem14[index_15],index_15[5:1]};
assign index_13 = {mem13[index_14],index_14[5:1]};
assign index_12 = {mem12[index_13],index_13[5:1]};
assign index_11 = {mem11[index_12],index_12[5:1]};
assign index_10 = {mem10[index_11],index_11[5:1]};
assign index_9  = {mem9 [index_10],index_10[5:1]};
assign index_8  = {mem8 [index_9 ],index_9 [5:1]};
assign index_7  = {mem7 [index_8 ],index_8 [5:1]};
assign index_6  = {mem6 [index_7 ],index_7 [5:1]};
assign index_5  = {mem5 [index_6 ],index_6 [5:1]};
assign index_4  = {mem4 [index_5 ],index_5 [5:1]};
assign index_3  = {mem3 [index_4 ],index_4 [5:1]};
assign index_2  = {mem2 [index_3 ],index_3 [5:1]};
assign index_1  = {mem1 [index_2 ],index_2 [5:1]};
assign index_0  = {mem0 [index_1 ],index_1 [5:1]};
发表于 2006-7-13 14:08:40 | 显示全部楼层
其他的index都是69位,怎么可以作mem的位选择呢?
 楼主| 发表于 2006-7-13 15:06:19 | 显示全部楼层


原帖由 老扁 于 2006-7-13 14:08 发表
其他的index都是69位,怎么可以作mem的位选择呢?


都是6位,mem[index_?] 是一个bit
 楼主| 发表于 2006-7-13 15:08:08 | 显示全部楼层


原帖由 liuzhenyu73 于 2006-7-13 13:01 发表
后5位是相同的,也就是说后5位的选择可以并行处理。最大延迟是否应该是一个32-1mux加上32个2-1mux。

我乱说。



后5位不同,因为每个index的最高bit实在变化的!
发表于 2006-7-13 17:39:40 | 显示全部楼层


原帖由 我是浪子 于 2006-7-13 15:06 发表

都是6位,mem 是一个bit


呵呵,看错了
发表于 2006-7-13 17:53:38 | 显示全部楼层
从逻辑关系来看,这是个算法的问题,不是时序优化的问题。
看来只有在算法上看看有没有其他实现方法,否则很难。
都继续想。。。
 楼主| 发表于 2006-7-13 22:59:34 | 显示全部楼层


原帖由 老扁 于 2006-7-13 17:53 发表
从逻辑关系来看,这是个算法的问题,不是时序优化的问题。
看来只有在算法上看看有没有其他实现方法,否则很难。
都继续想。。。


是的,是个逆向回溯的查找,想了很久了,没有好的办法!只能中间加了一级register,但是资源多了许多!
发表于 2006-7-13 23:12:08 | 显示全部楼层


原帖由 我是浪子 于 2006-7-13 22:59 发表

是的,是个逆向回溯的查找,想了很久了,没有好的办法!只能中间加了一级register,但是资源多了许多!


每次位置都二分?
 楼主| 发表于 2006-7-14 08:45:47 | 显示全部楼层


原帖由 老扁 于 2006-7-13 23:12 发表

每次位置都二分?


就在中间加了一级,timing基本满足目前的要求,但是不理想,觉得别扭,呵呵!
发表于 2011-2-19 12:09:53 | 显示全部楼层
好论文
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-29 16:39 , Processed in 0.027494 second(s), 9 queries , Gzip On, MemCached On.

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