打印

请教:关于程序不稳定的问题

[复制链接]
4081|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liushachen|  楼主 | 2013-5-11 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
GoldSunMonkey| | 2013-5-11 22:59 | 只看该作者
1. 变什么了?查找一下相关原因。
2. 结果变是布线结果变还是?

使用特权

评论回复
板凳
liushachen|  楼主 | 2013-5-11 23:15 | 只看该作者
fpga的输出信号的时序发生变化了,关键是代码内容其实没什么实质变化啊,所以不知从何查起

使用特权

评论回复
地板
GoldSunMonkey| | 2013-5-11 23:16 | 只看该作者
liushachen 发表于 2013-5-11 23:15
fpga的输出信号的时序发生变化了,关键是代码内容其实没什么实质变化啊,所以不知从何查起 ...

是结果还是时序?

使用特权

评论回复
5
liushachen|  楼主 | 2013-5-11 23:20 | 只看该作者
时序,本来是在另外一个信号6个脉冲后他的电平才发生变化,结果5个脉冲就变化了。而实际上计数不应该有变化。

使用特权

评论回复
6
huangxz| | 2013-5-12 00:04 | 只看该作者
liushachen 发表于 2013-5-11 23:20
时序,本来是在另外一个信号6个脉冲后他的电平才发生变化,结果5个脉冲就变化了。而实际上计数不应该有变化 ...

感觉像是楼主的时序实现的不是很严谨,每次综合以后结果会有点差异。

使用特权

评论回复
7
lwq030736| | 2013-5-12 00:20 | 只看该作者
请加上完整的时序约束

使用特权

评论回复
8
liushachen|  楼主 | 2013-5-12 19:04 | 只看该作者
huangxz 发表于 2013-5-12 00:04
感觉像是楼主的时序实现的不是很严谨,每次综合以后结果会有点差异。

就是这样的,每次综合后,结果多会有些变化

使用特权

评论回复
9
liushachen|  楼主 | 2013-5-12 19:11 | 只看该作者
lwq030736 发表于 2013-5-12 00:20
请加上完整的时序约束

先确定下问题点,是不是因为没有加时序约束造成的啊,不过输入信号的频率不高呀,几十赫兹。有时,对某几个频率的信号,结果表现不同。
先确认下问题点,是否因为时序约束的问题?还有,就是quartus ii 新版本时序约束只能通过sdc文件添加么?有点无从下手的感觉:L。

使用特权

评论回复
10
liushachen|  楼主 | 2013-5-12 19:14 | 只看该作者
lwq030736 发表于 2013-5-12 00:20
请加上完整的时序约束

请教,所谓完整的时序约束指哪些?

使用特权

评论回复
11
huangxz| | 2013-5-12 19:56 | 只看该作者
liushachen 发表于 2013-5-12 19:14
请教,所谓完整的时序约束指哪些?

最起码的管教约束要有吧

使用特权

评论回复
12
liushachen|  楼主 | 2013-5-12 20:14 | 只看该作者
huangxz 发表于 2013-5-12 19:56
最起码的管教约束要有吧

我是用的quartus ii 12.0很少相关的教材。
你所说的管脚约束,是不是指PIN设置里的电平设置,未用管脚弱上拉,对管脚进行Tsu/Tco 的约束.?

使用特权

评论回复
13
huangxz| | 2013-5-12 20:53 | 只看该作者
liushachen 发表于 2013-5-12 20:14
我是用的quartus ii 12.0很少相关的教材。
你所说的管脚约束,是不是指PIN设置里的电平设置,未用管脚弱 ...

"比如1、一个逻辑与由子模块从挪出放到主程序里,其中的一部分管脚输出就变了"
像这种情况,只有你没有指定管脚的时候才会出现(约束包括管脚分配)

使用特权

评论回复
14
liushachen|  楼主 | 2013-5-12 21:15 | 只看该作者
huangxz 发表于 2013-5-12 20:53
"比如1、一个逻辑与由子模块从挪出放到主程序里,其中的一部分管脚输出就变了"
像这种情况,只有你没有指 ...

这个逻辑与的结果是要由一个管脚输出的。
您说的没有指定管脚,难道子模块的输出都要指定管脚?

使用特权

评论回复
15
huangxz| | 2013-5-12 21:38 | 只看该作者
liushachen 发表于 2013-5-12 21:15
这个逻辑与的结果是要由一个管脚输出的。
您说的没有指定管脚,难道子模块的输出都要指定管脚? ...

子模块没有管脚,管脚是指最上层的约束的硬件管脚
你所说的一部分管脚输出变了,是指位置变了还是信号变了?

使用特权

评论回复
16
liushachen|  楼主 | 2013-5-12 21:53 | 只看该作者
huangxz 发表于 2013-5-12 21:38
子模块没有管脚,管脚是指最上层的约束的硬件管脚
你所说的一部分管脚输出变了,是指位置变了还是信号变了? ...

信号变了,有的输出信号没变化,有的信号跳变的时刻发生了变化。关键是TIMEQUEST时序约束还不太会用

使用特权

评论回复
17
GoldSunMonkey| | 2013-5-12 22:45 | 只看该作者
liushachen 发表于 2013-5-12 21:53
信号变了,有的输出信号没变化,有的信号跳变的时刻发生了变化。关键是TIMEQUEST时序约束还不太会用 ...

如果你说的是对的,那么你就是时序有问题

使用特权

评论回复
18
feihong777| | 2013-5-12 22:50 | 只看该作者
看时序吧

使用特权

评论回复
19
liushachen|  楼主 | 2013-5-13 22:57 | 只看该作者
GoldSunMonkey 发表于 2013-5-12 22:45
如果你说的是对的,那么你就是时序有问题

你是说设计存在问题?
设计原理上应该是正确的,因为之前是用原理图设计的,没问题。而且,编译综合也有时序都好的状态。

使用特权

评论回复
20
Backkom80| | 2013-5-14 08:14 | 只看该作者
感觉应该是楼主对时序的设计有点乱,从描述来看可能存在如下情况,例:
1,代码放的位置不同,时序有可能不同。
例:x <= a + b;是放在上一层模块中执行,还是在子模块中执行,时序上有可能相同也有可能不同,端口如是组合逻辑时序上是相同的,如是时序逻辑则会出现时钟节拍上的延时。
2,如果设计中没有对时序进行约束(要全面),会出现楼主所说的情况,只改动一些根逻辑无关的内容(如楼主所说的修改注释等)重新编译后结果不同。原因是约束是指导工程软件按设计者的要求进行综合布局布线等,如没有约束软件则无指导,每次结果会现较大的随意性。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
GoldSunMonkey + 4 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

0

粉丝