微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 编译器指令`timescale问题请教

编译器指令`timescale问题请教

时间:10-02 整理:3721RD 点击:
采用Xilinx VII FPGA为目标器件作设计,在做verilog设计的仿真时,在设计源文件中有编译器指令`timescale,但忘记在testbench中加`timescale。从仿真波形来看,有些信号出现不定态。最明显的是例化的IBUFG期间,输入是很好的时钟信号,输出却是不定态。后来在testbench中加入`timescale,不定态问题解决了。但是仍然不明白其中的原因。
仿真时,testbench模块是顶层模块,其它模块按原设计的top结构被testbench模块调用。按`timescale指令继承性传递的特点,是否只需要在testbench中指定`timescale就可以呢?

编译器指令`timescale问题请教
这个问题比较有意思,没遇到过,不过我觉得可能和ibufg的仿真模型中的时间参数有关,看看ibufg的仿真源代码也许能找到点线索。

编译器指令`timescale问题请教
我觉得在testbench中加timescale就可以了,所有的include文件都会自动使用这个timescale,如果在源代码中再加timescale,编译器会报错或警告。

编译器指令`timescale问题请教
最上层模块的timescale是肯定需要的,否则无法走精确的时序仿真。
下面调用的模块的timescale可以有也可以没有,它们的timescale跟link时的顺序有关,如果自己没有,就用前面link时的timescale,如果自己有,就用自己的。所以没有设timescale的下层模块的scale值就存在随机性。所以为了统一,一般所有模块的timescale要一致。
另外大多数库文件都有timescale,所以要看一下库的scale,看看它的精度,这样才能一致。

问楼上怎样看库的scale!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top