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

    文章

    5624

    浏览量

    130635
  • eda
    eda
    +关注

    关注

    72

    文章

    3162

    浏览量

    184113
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68043

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微电网能量平衡理论的优化路径有哪些?

    微电网能量平衡是保障系统安全稳定、高效经济运行的核心,其本质是实现“源、储、荷、网”各单元的动态协同,确保任意时间尺度内能量供给与需求、存储的动态均衡。
    的头像 发表于 03-28 11:53 1787次阅读
    微电网能量平衡理论的优化路径有哪些?

    Simulink模型导出至电力仿真软件的工程实践

    随着新能源并网规模持续扩大,电力系统中电力电子设备占比显著提高,系统动态特性呈现出多时间尺度并存的特点。相较以同步机为主的传统电力系统,新能源并网系统同时包含快速控制、电磁暂态以及较慢的系统响应过程,对仿真模型的准确性和适用性提出了更高要求。
    的头像 发表于 03-13 01:17 1.1w次阅读
    Simulink模型导出至电力仿真软件的工程实践

    Verilog HDL语法学习笔记

    Verilog HDL 语 言 最 初 是 作为 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后来被著名的 Cadence Design Systems 公司收购)模拟器产品开发的硬件建模语言。
    的头像 发表于 03-04 15:04 5952次阅读
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>语法学习笔记

    使用Vivado ILA进行复杂时序分析的完整流程

    HDL 代码中标记待观测信号,添加 (* mark_debug = "true" *) 属性(Verilog)或 keep 属性(VHDL)
    的头像 发表于 02-04 11:28 637次阅读

    FPGA 入门必看:Verilog 与 VHDL 编程基础解析!

    很多开发者第一次接触FPGA,都会有同样的疑问:FPGA是硬件,不是软件,怎么写程序?答案就是用硬件描述语言(HDL),最常用的就是Verilog和VHDL。今天,我们就带你入门,搞清楚FPGA编程
    的头像 发表于 01-19 09:05 838次阅读
    FPGA 入门必看:<b class='flag-5'>Verilog</b> 与 VHDL 编程基础解析!

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

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

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

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

    时间频率标准源有什么功能

    时间频率
    西安同步电子科技有限公司
    发布于 :2025年11月04日 17:58:08

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

    本篇将详细介绍如何利用Verilog HDL在FPGA上实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计SRAM接口模块
    的头像 发表于 10-22 17:21 4642次阅读
    如何利用<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 1101次阅读
    多<b class='flag-5'>时间尺度</b>耦合建模:多电航空发动机实时仿真中的微秒-毫秒级动态整合技术研究

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

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

    ​​FourCastNet 3实现快速精准的大型集合天气预报

    FourCastNet 3(FCN3)是 NVIDIA Earth-2 中最新的 AI 全球天气预报系统。FCN3 首次完美地结合了概率预测能力、计算效率、频谱保真度、集合校准和次季节时间尺度
    的头像 发表于 08-30 15:49 2572次阅读

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

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

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

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