0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究爱Verilog HDL的时间尺度`timescale

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2021-06-01 09:55 次阅读

`timescale命令用来说明跟在该命令后的模块的时间单位和时间精度。使用`timescale命令可以在同一个设计里包含采用了不同的时间单位的模块。例如,一个设计中包含了两个模块,其中一个模块的时间延迟单位为ns,另一个模块的时间延迟单位为ps。EDA工具仍然可以对这个设计进行仿真测试。

`timescale 命令的格式如下:

`timescale《时间单位》/《时间精度》

在这条命令中,时间单位参量是用来定义模块中仿真时间和延迟时间的基准单位的。时间精度参量是用来声明该模块的仿真时间的精确程度的,该参量被用来对延迟时间值进行取整操作(仿真前),因此该参量又可以被称为取整精度。如果在同一个程序设计里,存在多个`timescale命令,则用最小的时间精度值来决定仿真的时间单位。另外时间精度至少要和时间单位一样精确,时间精度值不能大于时间单位值。

在`timescale命令中,用于说明时间单位和时间精度参量值的数字必须是整数,其有效数字为1、10、100,单位为秒(s)、毫秒(ms)、微秒(us)、纳秒(ns)、皮秒(ps)、毫皮秒(fs)。这几种单位的意义说明见下表。

时间单位 定义

s 秒(1S)

千分之一秒(10-3S) ms

百万分之一秒(10-6S) us

十亿分之一秒(10-9S) ns

万亿分之一秒(10-12S) ps

千万亿分之一秒(10-15S) fs

下面举例说明`timescale命令的用法。

[例1]:`timescale 1ns/1ps

在这个命令之后,模块中所有的时间值都表示是1ns的整数倍。这是因为在`timescale命令中,定义了时间单位是1ns。模块中的延迟时间可表达为带三位小数的实型数,因为 `timescale命令定义时间精度为1ps.

[例2]:`timescale 10us/100ns

在这个例子中,`timescale命令定义后,模块中时间值均为10us的整数倍。因为`timesacle 命令定义的时间单位是10us。延迟时间的最小分辨度为十分之一微秒(100ns),即延迟时间可表达为带一位小数的实型数。

例3:`timescale 10ns/1ns

module test;

reg set;

parameter d=1.55;

initial

begin

#d set=0;

#d set=1;

end

endmodule

在这个例子中,`timescale命令定义了模块test的时间单位为10ns、时间精度为1ns。因此在模块test中,所有的时间值应为10ns的整数倍,且以1ns为时间精度。这样经过取整操作,存在参数d中的延迟时间实际是16ns(即

1.6×10ns),这意味着在仿真时刻为16ns时寄存器set被赋值0,在仿真时刻为32ns时寄存器set被赋值1。仿真时刻值是按照以下的步骤来计算的。

1) 根据时间精度,参数d值被从1.55取整为1.6。

2) 因为时间单位是10ns,时间精度是1ns,所以延迟时间#d作为时间单位的整数倍为16ns。

3) EDA工具预定在仿真时刻为16ns的时候给寄存器set赋值0 (即语句 #d set=0;执行时刻),在仿真时刻为32ns的时候给寄存器set赋值1(即语句 #d set=1;执行时刻),

注意:如果在同一个设计里,多个模块中用到的时间单位不同,需要用到以下的时间结构。

1) 用`timescale命令来声明本模块中所用到的时间单位和时间精度。

2) 用系统任务$printtimescale来输出显示一个模块的时间单位和时间精度。

3) 用系统函数$time和$realtime及%t格式声明来输出显示EDA工具记录的时间信息

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5032

    浏览量

    117746
  • eda
    eda
    +关注

    关注

    71

    文章

    2540

    浏览量

    170880
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310

原文标题:Verilog HDL 的时间尺度 `timescale

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    有什么好用的verilog HDL编辑工具可用?

    有什么好用的verilog HDL编辑工具可用?最好能集成实时的verilog HDL语法检测、自定义模块识别触发等功能,最好能够免费;
    发表于 04-28 11:00

    Verilog HDL数字集成电路设计方法概述

    电子发烧友网站提供《Verilog HDL数字集成电路设计方法概述.zip》资料免费下载
    发表于 02-03 09:27 2次下载

    #2024,立Flag了嘛? #spinal HDL的基本模块结构

    ]):Unit = { SpinalVerilog(new Demo01)// 生成对应的Verilog HDL文件 } } 生成对应的Verilog HDL // Gener
    发表于 01-21 11:15

    例说Verilog HDL和VHDL区别

    Verilog和VHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的Verilog和VHDL进行了讨论。
    的头像 发表于 12-20 09:03 663次阅读
    例说<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>和VHDL区别

    基于电化学阻抗时间尺度信息的锂离子电池健康状态自适应估计方法

    精准估计健康状态(state of health, SOH)是保证锂离子电池安全、可靠、高效运行的关键之一。内部动力学过程的时间尺度信息与电池健康密切相关,可通过弛豫时间分布 (distribution of relaxation times, DRT) 有效地从宽频阻抗
    的头像 发表于 11-08 10:09 457次阅读
    基于电化学阻抗<b class='flag-5'>时间尺度</b>信息的锂离子电池健康状态自适应估计方法

    Verilog HDL实用精解配套源代码

    轻松成为设计高手Verilog HDL 实用精解 配套源代码。
    发表于 10-09 06:28

    Verilog HDL语言的发展历史和主要能力

    Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL
    发表于 08-29 15:58 0次下载

    二十进制编码器及Verilog HDL描述 Verilog HDL程序的基本结构及特点

    节通过硬件描述语言Verilog HDL对二十进制编码器的描述,介绍Verilog HDL程序的基本结构及特点。
    的头像 发表于 08-28 09:54 1402次阅读
    二十进制编码器及<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>描述 <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>程序的基本结构及特点

    Verilog例程 Verilog HDL程序设计教程

    Verilog大量例程(简单入门到提高)
    发表于 08-16 11:49 0次下载

    使用Verilog HDL描述寄存器的硬件

    刚接触数字集成电路设计,特别是Verilog HDL语言的同学,往往不理解什么时候变量需要设置为wire型,什么时候需要设置成reg型。
    发表于 07-13 15:53 605次阅读
    使用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>描述寄存器的硬件

    Verilog HDL中使用分频器的8位计数器的设计

    电子发烧友网站提供《在Verilog HDL中使用分频器的8位计数器的设计.zip》资料免费下载
    发表于 06-15 10:14 0次下载
    在<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>中使用分频器的8位计数器的设计

    一本Verilog HDL代码对应电路的书,助你快速编写可综合模型

    建立用于RTL综合的Verilog标准化子集。他是贝尔实验室所开发的ArchSyn综合系统的主要设计者之一。他曾为AT&T和Lucent的许多设计师讲授Verilog HDL语言和Verilo
    的头像 发表于 05-26 16:59 987次阅读
    一本<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>代码对应电路的书,助你快速编写可综合模型

    Verilog HDL数字集成电路设计原理与应用

    Verilog HDL数字集成电路设计原理与应用(蔡觉平)西安电子科技大学出版社
    发表于 05-26 15:23 0次下载

    FPGA编程语言之verilog语法1

    Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog
    的头像 发表于 05-22 15:52 599次阅读
    FPGA编程语言之<b class='flag-5'>verilog</b>语法1

    Vivado HDL编写示例

    Vivado 软件提供了HDL编写中常用的示例,旨在帮助初学者更好地理解和掌握HDL编程,这里分享一下verilog代码示例。
    的头像 发表于 05-16 16:58 685次阅读