确保数据总线的信号偏移控制

有时候我们想让多个信号或多或少的出现在同一时刻(也就是说这些信号之间的时间差应该在某个界限之内)。

一个经典的情况就是多位的数据总线,总线上的信号应该(几乎)同时到达。

如果其它信号均由其中一个信号生成,那么要满足上面的要求,我们可以通过设置set_min_delay约束来实现。

但是如果这些信号都是互相独立生成的呢?

或者说,大多数情况下,这些信号可能都是由同一个信号源生成的(例如同一个时钟源)?

确保小的信号传输偏移的一个方式就是相对共同的源约束每个信号。

举个例子,一个32位的数据信号,相对同一个时钟源(用于生成这些信号)我们可以对每个信号进行约束。

但是使用这种方法来控制数据总线上信号之间的偏移需要非常严格的时序约束。

例如我们需要确保不同信号之间的偏移差在0.5ns范围内。

因此我们需要设计延迟规范,比如定义最小和最大延迟,确保所有信号能在0.5ns偏差范围内全部到达节点。

这个要求不是对于某个具体的0.5ns节点来说的,而是需要满足任意一个节点——在0.5ns的延迟范围内所有信号都能到达。

XDC可以通过set_data_check命令来规定这样的偏差控制要求。

我们可以使用这个命令来定义两个数据信号之间所能接受的最大偏差值。

举个例子:
set_data_check –from A –to B 0.5

也就是说AB之间的传输时间在0.5之内。

下面让我们来使用这个命令来规范一个32位总线的数据偏移问题。

这需要31*32/2条命令来定义任意数据信号之间的组合。

另一个简单的方法(只是稍微加一些限制)是取其中一位数据信号作为参照,根据这个信号来规范其它数据信号。

对于每个数据信号位,set_data_check命令后面都要加“-to”参数。

这样将仅需要32条这样的命令。

举个例子:
set_data_check –from A[0] - to A[15] 0.25
set_data_check –from A[1] –to A[15] 0.25
….
set_data_check –from A[31] –to A[15] 0.25

注意一定要将想定义的数值减半,因为定义的是双向的。

因此考虑到的极端情况就是一个信号可能早些到达,另一个信号可能晚些到达。

因此所有要约束的信号之间的最大时间偏移将是具体值的两倍。

上面的命令设置可以确保任意的信号组合都能够使用,信号之间的最大时间偏移为0.5ns。

确保数据总线的信号偏移控制_设计制作_模拟技术
2
37
0
7

相关资讯

  1. 1、“小龙女”吴卓林拍微电影,18年过去与成龙的关系终于缓和2750
  2. 2、有一种整容叫《仙剑》的“阿奴”,15年前嫌她胖,如今美到心动3875
  3. 3、曹保平《狗十三》话悲惨青春少女张雪迎遭家暴直面现实1227
  4. 4、翁虹主演新剧香港发布素装亮相为公益倾尽己力4456
  5. 5、冒险升级正能量满满这个灰姑娘不一样!3199
  6. 6、《完美陌生人》:手机游戏?爱人变陌生人?1276
  7. 7、五亿女婿黎诺懿TVB发展受限,自寻机会北上拍戏,自曝酬劳高过TVB2570
  8. 8、《风起霓裳》编剧脑子或者古力娜扎的演技总有一个有问题3876
  9. 9、5.20主题放映:韩国电影逆袭戛纳成后起之秀4743
  10. 10、没完没了!钢骨演员掀骂战,《复联》导演成众矢之的3621
全部评论(0)
我也有话说
0
收藏
点赞
顶部