数字集成电路中时延不可综合与时间单位介绍

问题引出:verilog中连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。3.2 Verilog 时延 | 菜鸟教程

1、综合介绍

在 Verilog 或硬件描述语言(HDL)中,"综合 "(Synthesis)是指将用高级抽象语言(如 Verilog 或 VHDL)描述的行为级或寄存器传输级(RTL)设计 ,转换为具体的门级实现的过程。换句话说,综合工具会将 HDL 描述的逻辑功能映射到硬件结构(如与门、或门、触发器等),并生成一个可实现的硬件电路。

综合的具体含义

  1. 行为描述到硬件实现的映射
    • 在 HDL 中,你可以用高级描述(如 always 块、连续赋值语句等)来定义电路的行为,而不必关心底层硬件的具体实现。
    • 综合工具会根据这些描述,分析出逻辑功能,并将其转换为具体的硬件电路。
  2. 优化和资源分配
    • 综合工具会优化电路,例如减少门电路的数量、降低功耗、提高速度等。
    • 同时,它会根据目标硬件(如 FPGA 或 ASIC)的资源限制,分配逻辑单元和寄存器。
  3. 生成网表(Netlist)
    • 综合的最终输出是一个网表文件,描述了硬件电路中各个逻辑单元(如门、触发器)之间的连接关系。
    • 这个网表可以用于后续的布局布线(Place & Route)和生成比特流文件(如 FPGA 的配置文件)。

为什么延时语句(如 #10)是不可综合的?

延时语句(如 #10)在仿真中用于模拟时间延迟,但它描述的是行为上的延迟,而不是硬件中的实际物理延迟。综合工具无法将这种行为描述映射到具体的硬件电路,因为:

  1. 硬件中没有"时间延迟"的概念
    • 在硬件中,延迟通常由信号的传播路径(如门电路的延迟、布线的延迟)决定,而不是通过编程指定。
    • 延时语句只是仿真工具为了模拟时间行为而引入的,与实际硬件无关。
  2. 综合工具需要明确的逻辑关系
    • 综合工具需要知道信号之间的逻辑关系(如与、或、非等),以便生成硬件电路。
    • 延时语句没有提供逻辑关系,只是描述了时间上的延迟,因此无法被综合。
  3. 目标硬件不支持延时控制
    • 无论是 FPGA 还是 ASIC,都不支持通过编程指定延时。硬件的延迟是由物理特性决定的,而不是通过代码控制的。

总结

  • 综合是将 HDL 描述的行为或逻辑功能,转换为具体硬件电路的过程。
  • 延时语句(如 #10)是不可综合的,因为它们描述的是仿真中的时间行为,而不是硬件中的逻辑关系。
  • 在实际硬件设计中,如果需要控制延迟,应该通过时钟周期、计数器或专用延迟电路(如 PLL)来实现,而不是通过延时语句。

2、时间单位介绍:

1. 定义与换算关系

单位 符号 英文全称 换算关系
s second 基准单位
毫秒 ms millisecond 1 ms = 10⁻³ s = 0.001 s
纳秒 ns nanosecond 1 ns = 10⁻⁹ s = 0.000000001 s
皮秒 ps picosecond 1 ps = 10⁻¹² s = 0.000000000001 s

2. 相邻单位的进率

  • 1 秒(s) = 1,000 毫秒(ms)
  • 1 毫秒(ms) = 1,000,000 纳秒(ns)
  • 1 纳秒(ns) = 1,000 皮秒(ps)

3. 应用场景

  • 秒(s):日常时间计量(如 10 秒、1 分钟 = 60 秒)。
  • 毫秒(ms):计算机响应时间、音频采样率(如 44.1 kHz 采样率对应每采样点 ≈ 22.7 微秒)。
  • 纳秒(ns):高速数字电路、CPU 时钟周期(如 1 GHz 时钟周期 ≈ 1 ns)。
  • 皮秒(ps):超高速电子学、光通信(如光纤中光传播 1 毫米 ≈ 3.3 皮秒)。
相关推荐
一条九漏鱼12 小时前
Verilog divide
fpga开发
0基础学习者12 小时前
按键消抖(用状态机实现)
前端·笔记·fpga开发·verilog·fpga
奋斗的牛马13 小时前
FPGA_modelsim错误总结
fpga开发
Terasic友晶科技13 小时前
Lab Cloud FPGA 硬件在线实验云平台介绍
fpga开发·云平台·资源共享·实验云·fpga 云平台·远程实验
LEEE@FPGA16 小时前
声学测温度原理解释
fpga开发
奋斗的牛马18 小时前
FPGA_DDR错误总结
fpga开发
Terasic友晶科技2 天前
第7篇:Linux程序访问控制FPGA端LEDR<五>
fpga开发·嵌入式系统·de1-soc开发板
FakeOccupational2 天前
fpga系列 HDL:跨时钟域同步 4-phase handshake(四相握手通信协议,请求-确认机制)浅释与代码实现
fpga开发
Terasic友晶科技2 天前
第4篇:Linux程序访问控制FPGA端LEDR<二>
fpga开发·de1-soc开发板·linux嵌入式程序