gpt4 book ai didi

verilog - 为什么有模块时在verilog中使用函数

转载 作者:行者123 更新时间:2023-12-01 03:17:32 25 4
gpt4 key购买 nike

第 1 部分 :

我总是被告知要使用 Verilog 中的函数来避免代码重复。但是我不能用模块来做到这一点吗?如果我的理解是正确的,那么所有函数都可以在 Verilog 中重写为模块,除了模块不能从 always block 内部实例化。除了,在这种情况下,我总是可以坚持使用模块。我对么?

第 2 部分 :

如果我是正确的,为什么 Verilog 编译器不能以模块得到函数处理的方式编写?我的意思是,为什么编译器不能允许程序员在 n block 内实例化一个模块并停止支持函数?

最佳答案

  • 模块!=功能。它们在verilog中的用法完全不同。

  • 函数其实是 扩展表达式 它用于表达式。它可以用在 'assign' 语句的 rhs 表达式或任何程序 block 内的表达式中。
  • 功能 不能消耗时间。
  • 函数必须返回一个值。

  • 模块用于表示硬件层次结构并包含并发过程 block (可能包含函数)。
  • 模块可能会消耗时间。
  • 模块不能返回值。 (输出端口不是返回值)

  • 潜在地,您可以创建一个替换单个始终 block 内部的函数,并使用返回函数的始终 block 编写等效模块。但就是这样。
  • 你不正确:)。 Verilog 编译器不能以这种方式编写,因为每个 Verilog 编译器都必须遵循一个 Verilog 标准。否则它不会是verilog。
  • 关于verilog - 为什么有模块时在verilog中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955108/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com