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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 怎么将原有电路中的并行组合逻辑 全部 用 串行迭代时序逻辑 替代掉(有示意图)?

[复制链接]
发表于 2014-12-14 09:38:53 | 显示全部楼层 |阅读模式

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

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

x
因为代码比较大,有没有一种傻瓜式的替代方法?就是对外接口都不变。比如说有一个功能,原来是在一个时钟周期内就能计算出来的,但是消耗资源很大;现在我要把这个组合逻辑改成串行迭代的结构,相应的,控制这个迭代结构的时钟肯定要和控制左右两边的外部寄存器的时钟不一样,怎么破?
360截图20141214093745848.jpg
发表于 2014-12-14 14:39:03 | 显示全部楼层
如果外部时钟频率和流水都保持不变的话,没法破
比如现在时钟是100M,这部分组合逻辑路径在一个周期内10ns必须走完,外部时钟和流水不变,里面即使插几级流水,总的路径周期仍然只有10ns,新插入的寄存器还会增加路径延迟,这个无解
只有外部流水也随之增加,比如一个周期出数据变为两个周期才出数据,里面的逻辑才能得到更松的时序约束
 楼主| 发表于 2014-12-14 16:19:15 | 显示全部楼层
回复 2# supercainiao

再请教一个问题啊,是不是说控制寄存器的时钟只能有一个?比如有段代码是这样的:
always@(posedge A, posedge B)begin
    .....
.......
......


end
是不是说,随后综合的结果中,要么A是时钟信号,要么B是时钟信号,(另外一个信号接到寄存器的使能或者置位/复位端?)
 楼主| 发表于 2014-12-14 17:29:23 | 显示全部楼层
回复 2# supercainiao


   刚才遇到一个很严重的问题(对我来说),具体的我写在纸上了。 360截图20141214172853211.jpg
发表于 2014-12-15 01:49:38 | 显示全部楼层
综合一个寄存器只有一个时钟沿触发,另一个可用作复位/置位,以此实现清零
外部时钟频率流水都不变的情况下,不知道你这样改的意义何在,中间逻辑的时序约束会更紧
 楼主| 发表于 2014-12-15 10:40:03 | 显示全部楼层
回复 5# supercainiao


   我主要是为了节省资源
 楼主| 发表于 2014-12-18 00:03:56 | 显示全部楼层
本帖最后由 zhuyuefeng2009 于 2014-12-18 00:18 编辑

回复 5# supercainiao

请问,还是看上面那张图,我的clk1和clk2是异步的(clk1由clk2分频产生),结果我在做功能仿真的时候,仿真器认为我先运算了时钟沿2(控制内部电路),然后再执行了时钟沿6(控制外部电路)。但是实际上我希望的是,时钟沿2和时钟沿6是完全对齐的。额,你懂我的意思吗,就是时钟沿2(控制外部大的那个寄存器,将内部的几个小寄存器的值打入)和时钟沿6(内部几个小寄存器之间循环流动)是同时进行的,而不是先后进行的。(但是仿真器总是认为,这两个时钟信号是异步的,并且总是有clk2在clk1之后执行)。
怎么解决这个问题呢?可以掉用PLL 或者 XILINX的时钟资源(类似原语,记得好像有BUF之类的东西) 来让这两个异步时钟完全同步吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 09:54 , Processed in 0.024926 second(s), 12 queries , Gzip On, Redis On.

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