`timescale的理解
来源:互联网 发布:js文件加密 编辑:程序博客网 时间:2024/04/29 08:51
在实际应用过程中,如网口IP CORE调试过程中,就会出现不同文件的module在不同的时间单位和精度的情况之下,因此,有必要对这个问题进行深入透彻地了解和分析。下面进行详细分析。
I. 在顶层文件里instantiates each module,本身不写`timescale命令,但据说对modelsim的默认情况是`timescale 1ps/1ps,现看看波形图和各模块程序:
待测信号
Posedge time
`timescale
延迟时间表达式
b, d, f
5 ns
NONE
NONE
A
5 ns + 1.6 ns
1ns / 100ps
#1.55
C
5 ns + 1.55 ns
1ns / 10ps
#1.55
e
5 ns + 0.16 ns
100ps / 10ps
#1.55
分析:top文件完全没有干涉各模块的时间单位和精度。
程序如下:
// top.v文件,无` timescale
module top(a,b,c,d,e,f
);
output a,c,e;
input b,d,f;
timescale_t t_1(.A(a),.B(b));
timescale_tt t_2(.C(c),.D(d));
timescale_ttt t_3(.E(e),.F(f));
endmodule
//timescale_t.v文件
`timescale1ns / 100ps
module timescale_t(
A,B
);
output A;
input B;
assign #1.55 A = B;
endmodule
//timescale_tt.v文件
`timescale1ns / 10ps
module timescale_tt(
C,D
);
output C;
input D;
assign #1.55 C = D;
endmodule
//timescale_ttt.v文件
`timescale 100ps / 10ps
module timescale_ttt(
E,F
);
output E;
input F;
assign #1.55 E = F;
endmodule
II. 在顶层文件里写上`timescale 1ns/1ps,其他设置和程序不变,看看波形图:
待测信号
Posedge time
`timescale
延迟时间表达式
b, d, f
5 ns
1ns / 1ps
NONE
A
5 ns + 1.660 ns
1ns / 100ps
#1.55
C
5 ns + 1.550 ns
1ns / 10ps
#1.55
E
5 ns + 0.160ns
100ps / 10ps
#1.55
分析:可见如果顶层写明了`timescale命令,那么它将会影响其模块内部各子模块的精度,而不会对时间单位产生任何影响。但是,如果top.v中的时间精度比某个子模块的大,程序将如何处理呢?答案是,结果和I中的一样!
III. 在顶层文件的各实例化文件前面写上不同的`timescale,其他不变,看看效果:
显示,在一个module内部不可以编写`timescale命令!程序如下:
`timescale 1ns/100ps
module top(a,b,c,d,e,f
);
output a,c,e;
input b,d,f;
`timescale 1ns / 100ps
timescale_t t_1(.A(a),.B(b));
`timescale 1ns / 10ps
timescale_tt t_2(.C(c),.D(d));
`timescale 100ps / 10ps
timescale_ttt t_3(.E(e),.F(f));
endmodule
对书中和网上疯狂转载的一段话进行修正:
“一个设计中的多个模块带有滋生的`timescale指令,模拟器总是定位在所有模块的最小时延精度上。”
这里的所有模块,指的是跟模块和某一个子模块相比较,并采用二者之间最小的精度,对于多个并行的子模块而言,它们是不会相互干扰对方的精度的。
- `timescale的理解
- timescale的理解
- 对`timescale的深入理解
- [Unity基础]对Time.timeScale的一些理解
- `timescale
- Timescale
- timeScale
- verilog中的timescale的解析
- Time.TimeScale的一些结论
- verilog里的timescale以及国际单位制前缀
- 使 Spine 忽略 TimeScale 的影响
- 【Unity】使用Time.timeScale暂停游戏的时候的一些问题
- Unity中的Time和Time.timeScale对协程的yield的影响
- 关于MP4 fileformat中 duration及timescale相关的几个地方
- 难道是timescale惹的祸?(播放暂停动画为何不出现)
- 【Unity3D游戏开发】Time.timeScale=0暂停游戏的情况下播放动画 (七)
- timescale problem in systemverilog
- 关于`timescale(转载)
- 20 个强大的 Sublime Text 插件
- 留心更换刹车油
- 访问Android硬件
- SSLSocketFactory 的创建
- shell 生成2000万行的TXT文本
- `timescale的理解
- Bug概述
- 【Android 应用开发】Android 数据存储 之 SQLite数据库详解
- Flappy bird模式值得追捧么?
- 字符串链接和字符串匹配
- 迷你MVVM框架 avalonjs 入门教程
- 精彩的人生不必苛求完美
- iPad 上有哪些实用得令人惊艳的 App?
- wpa_supplicant软件架构分析 .