在verilog程序中仿真正确的模块,最后下到芯片上却完全不是那么回事,向大家请教一
- UID
- 161818
- 性别
- 男
|
在verilog程序中仿真正确的模块,最后下到芯片上却完全不是那么回事,向大家请教一
想在FPGA的右半边(module形式)实现个四位计数器,学习用,verilog程序绝对没错(这个程序太简单了,不可能错的),接的是内部时钟。可是下到芯片里后根本没有实现计数的功能,第0位和第1位是同样变化的,前两位也不太对。请用这大概是哪方面的错误? 另外,在用bitgen命令时,有错误: ERRORhysDesignRules:9 - The network <modularCounter/GLOBAL_LOGIC1> is only partially routed. 请大家帮忙给看看是哪里出问题了?谢谢! |
|
|
|
|
|
- UID
- 161818
- 性别
- 男
|
FPGA配置时不是有主动,从动模式吗?一个是外界给它时钟,一个它给外界供时钟,如果它没有的话,它怎么给外界供时钟阿? 我是新人,是不是我理解有问题啊,还请教教我,多谢了! 至于主题,芯片内是有时钟的,我测出来了,可能是片子上接好了吧。 |
|
|
|
|
|
- UID
- 161818
- 性别
- 男
|
引出来看过了,是有时钟的,40mhz。 在verilog程序中核心的不就是下面吗: always @(posedge CLK) count_int <= count_int + 1; 可是结果第0,1位的结果是同步变化的,都是20mhz 第2,3位的结果也不太对。这就根本没有计数的功能吗! 大概是哪里有问题啊? |
|
|
|
|
|
- UID
- 161818
- 性别
- 男
|
应该不是这个问题吧,我在最初时就全部复零了。 我不理解的是第0,1位为什么同步变化,且频率都为20mhz,应该第0位20mhz,第1位10mhz才对嘛,怎么布线也不应该出现这种情况的吗。 是不是和 ERRORhysDesignRules:9 - The network <modularCounter/GLOBAL_LOGIC1> is only partially routed. 这个错误有关呢? |
|
|
|
|
|
- UID
- 161818
- 性别
- 男
|
我用的-d选项,不进行DRC检查,这时就可以生成bit文件了,估计可能是这的问题吧。 |
|
|
|
|
|
- UID
- 131057
- 性别
- 男
|
应该是全局驱动器没有用的原因,很可能缺少BUFG之类的时钟驱动器。 bitgen -d生成的BIT文件可能会不能正常工作或者不能完全正常工作。 |
|
|
|
|
|
- UID
- 131057
- 性别
- 男
|
主要是有些器件有一些比较特殊的潜规则,而这些规则大家不知道。 因此,大家可能会偶尔作出违反这些规则的设计。这些设计原理上没错,需要一些修改才能真正在FPGA中得到实现。 前两天我用V4FX的时候,也碰到bitgen DRC出错的情况。经修改后,DRC PASS,设计真正好用了。 |
|
|
|
|
|
- UID
- 161818
- 性别
- 男
|
问题解决了,是开发工具的问题,我在ISE9.1下就不行,在8.2下就完全OK了,可能是我用的片子比较早了(S3),新的开发工具不太适用吧。Xilinx还不如把产品分层次,分别出开发工具呢,向TI DSP一样,这样也好维护,指向性也强。 |
|
|
|
|
|