vhdl - 是否需要初始化?

标签 vhdl

在VHDL中,创建信号或矢量时是否需要初始化?
如果忘记初始化信号或整数值会怎样?

最佳答案

模拟中,如果不设置初始值,则向量的每个元素都将获得默认值(由VHDL语言规范定义)。对于枚举类型,这是在枚举类型中定义的第一个元素: bool 值将为false,std_logic将为“U”(未定义)。注意,“U”在电路中没有意义。这只是对验证工程师的提示,您不知道触发器在加电时具有哪个值。

合成之后:如果目标技术支持,FPGA合成器将使用您设置为触发器和存储器的“上电”值的初始值!如果该技术不支持强制初始值(对于ASIC),则不知道加电时的初始值。它可以是1或0。(例如,参见http://quartushelp.altera.com/11.0/mergedProjects/hdl/vhdl/vhdl_pro_power_up_state.htm)

两种可能的样式:

  • 选择一个明确的初始值,带有或不带有明确的复位电路(通常用于现代FPGA)
  • 将“U”设置为初始值,并具有适当的复位电路以强制使用已知的复位值

  • 如果您选择第一种,请确保检查您的目标技术是否支持这种样式!

    关于vhdl - 是否需要初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6897143/

    相关文章:

    hardware - 移位寄存器与多路复用器

    vhdl - VHDL 中灵活/通用解码器的想法

    compiler-errors - VHDL错误(预期为简单表达式)

    output - 用于更改输出的 VHDL 内部信号 - 不起作用?

    vhdl - 使用记录类型在 VHDL 中模拟 systemverilog 接口(interface)?

    macos - Mac OS X 上 VHDL/数字逻辑仿真的用途

    VHDL 计数器结果给出 X

    vhdl - 变量是否也需要 VHDL 默认信号分配?

    vhdl - 估计 VHDL 实现所需的面积

    hardware - VHDL 使用数学表达式进行动态切片