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

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

    关注

    31

    文章

    5588

    浏览量

    129051
  • eda
    eda
    +关注

    关注

    72

    文章

    3053

    浏览量

    181498
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66829

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中国研究发布新型混合微电网系统

    该系统核心是管理能源的方法。团队采用调度框架,将多目标分布鲁棒优化(DRO)与实时强化学习(RL)辅助机制结合。能源管理系统(EMS)是运行“大脑”,分布式响应系统(DRO)生成基准调度策略,强化学习(RL)模块实时调整控制信号,让系统适应环境。该研究强调,数学模型解决了多能源多时间尺度协调问题。
    的头像 发表于 11-27 17:05 403次阅读

    【产品介绍】Modelsim:HDL语言仿真软件

    概述ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核
    的头像 发表于 11-13 11:41 195次阅读
    【产品介绍】Modelsim:<b class='flag-5'>HDL</b>语言仿真软件

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRAM接口模块
    的头像 发表于 10-22 17:21 3954次阅读
    如何利用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>在FPGA上实现SRAM的读写测试

    使用Simulink自动生成浮点运算HDL代码(Part 1)

    引言 想要实现浮点运算功能,如果自己写Verilog代码,需要花费较多的时间和精力。好在Simulink HDL Coder工具箱提供了自动代码生成技术。下图展示了HDL Coder如
    发表于 10-22 06:48

    时间尺度耦合建模:多电航空发动机实时仿真中的微秒-毫秒级动态整合技术研究

    多电航空发动机的精确建模是实现高精度控制的基础,其核心挑战在于如何准确描述并整合机械、电气、热力学等多个物理域在不同时间尺度上的动态耦合过程。
    的头像 发表于 09-30 14:21 472次阅读
    多<b class='flag-5'>时间尺度</b>耦合建模:多电航空发动机实时仿真中的微秒-毫秒级动态整合技术研究

    暂态过电压和瞬态过电压的区别是什么?

    Transient Overvoltage, FTOV)常被混淆,但二者在 持续时间、能量大小、产生机制、危害对象 上存在本质区别,核心分界是 “时间尺度” 与 “能量特性”。以下从定义、关键参数、产生源、危害
    的头像 发表于 09-25 16:32 1094次阅读

    无刷直流电机电流测量的探究

    电流进行采样,并利用二阶巴特沃思低通滤波器进行滤波,得到较为平滑的电流,到达有效控制电机的目的。 纯分享帖,点击下方附件免费获取完整资料~~~ *附件:无刷直流电机电流测量的探究.pdf 【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一
    发表于 06-26 13:45

    CET中电技术:储能EMS智能控制系统解决方案

    如何做好远程监控运维,保障储能系统⾼效运⾏,如何充分发挥储能的调节作⽤,在解决电⼒系统多时间尺度平衡 调节问题的同时,最⼤化新能源发电的经济效益,成为投资者关注的重点
    的头像 发表于 06-17 10:02 2368次阅读
    CET中电技术:储能EMS智能控制系统解决方案

    FPGA Verilog HDL语法之编译预处理

    Verilog HDL语言和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的一个组成部分。Verilog
    的头像 发表于 03-27 13:30 1086次阅读
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>语法之编译预处理

    一文详解Verilog HDL

    Verilog HDL(Hardware Description Language)是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。现实生活中多用于专用集成电路
    的头像 发表于 03-17 15:17 3777次阅读
    一文详解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>

    浅谈Verilog和VHDL的区别

    Verilog和VHDL是两种广泛使用的硬件描述语言(HDL),它们用于描述和模拟数字电路系统的行为和结构。这两种语言的主要作用是帮助工程师设计、仿真和验证集成电路(IC)和系统级芯片(SoC)中的硬件模块。
    的头像 发表于 02-17 14:20 2625次阅读
    浅谈<b class='flag-5'>Verilog</b>和VHDL的区别

    Verilog 电路仿真常见问题 Verilog 在芯片设计中的应用

    在现代电子设计自动化(EDA)领域,Verilog作为一种硬件描述语言,已经成为数字电路设计和验证的标准工具。它允许设计师以高级抽象的方式定义电路的行为和结构,从而简化了从概念到硅片的整个设计流程
    的头像 发表于 12-17 09:53 1601次阅读

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog与ASIC设计的关系 Verilog作为一种硬件描述语言(HDL),在ASIC设计中扮演着至关重要的角色。ASIC(Application Specific Integrated
    的头像 发表于 12-17 09:52 1438次阅读

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的Verilog测试平台设计方法及
    的头像 发表于 12-17 09:50 1558次阅读

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 VerilogVerilog 的语法更接近于 C 语言,对于有 C 语言背景的工程师来说,学习曲线较平缓。它支持结构化编程,代码更直观,易于
    的头像 发表于 12-17 09:44 2686次阅读