AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 77226339
Accepted
gubang
gubang
Asked: 2023-10-04 10:07:17 +0800 CST2023-10-04 10:07:17 +0800 CST 2023-10-04 10:07:17 +0800 CST

基于SV LRM的reg允许连续指派数测试问题

  • 772

我想根据 SV LRM 计算出一根线/寄存器中连续分配的数量是合法的。

我查看了 verilog 和 SV LRM,它说明了以下内容。

"Continuous assignments shall drive values onto nets or variables" - SV LRM 10.3
这意味着与 verilog 不同,允许对 reg 进行连续分配。
(连续分配应将值驱动到网络上 - verilog LRM 6.1)


"The continuous assignment statement shall place a continuous assignment on a net or variable data type." - SV LRM 10.3.2
这意味着线路/寄存器上的连续分配数量限制为 1。



综合以上两点,
我得出的结论是,wire 和 reg 在 SV 中只能有一个连续分配。


然后我想在Modelsim中检查编译情况。

> testing multi assignments in reg
module test_1;
    reg a;
    assign a = 1;
    assign a = 0;
    
endmodule

控制台:“'a'由多个连续分配驱动”
因此,该编译很好地找到了 reg 上的多重驱动。没什么可抱怨的。

>testing multi assignments on wire
module test_2;
    wire a;
    assign a = 1;
    assign a = 0;
    
endmodule

控制台:“ SVtest.sv 编译成功”
我预计结果会给出错误。
然而,这个编译并没有解决在线多驱动程序的错误。
这意味着 UVA 允许在线双驱动,这与我的预期完全不同。




问题摘要:
我对 SV LRM(线路/寄存器上只允许一次连续分配)的解释是否错误?或者只是模拟器没有严格反映SV LRM?

此外,我之前所做的解释(在verilog中,连续分配只允许在线一次,但不允许在reg上)也是错误的吗?(基于“连续分配应将值驱动到网络上 - verilog LRM 6.1”)

verilog
  • 1 1 个回答
  • 29 Views

1 个回答

  • Voted
  1. Best Answer
    dave_59
    2023-10-04T11:50:27+08:002023-10-04T11:50:27+08:00

    一个网络/电线可以有多个连续的分配,但不能有程序性的分配。一个变量可以有多个过程赋值,或者一个连续赋值。请参见https://blogs.sw.siemens.com/verificationhorizo​​ns /2013/05/03/wire-vs-reg/

    • 1

相关问题

  • 我无法得知哪两个分配驱动器相互冲突

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    使用 <font color="#xxx"> 突出显示 html 中的代码

    • 2 个回答
  • Marko Smith

    为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

    • 1 个回答
  • Marko Smith

    您可以使用花括号初始化列表作为(默认)模板参数吗?

    • 2 个回答
  • Marko Smith

    为什么列表推导式在内部创建一个函数?

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 个回答
  • Marko Smith

    为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)?

    • 4 个回答
  • Marko Smith

    为什么库中不调用全局变量的构造函数?

    • 1 个回答
  • Marko Smith

    std::common_reference_with 在元组上的行为不一致。哪个是对的?

    • 1 个回答
  • Marko Smith

    C++17 中 std::byte 只能按位运算?

    • 1 个回答
  • Martin Hope
    fbrereto 为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 您可以使用花括号初始化列表作为(默认)模板参数吗? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi 为什么列表推导式在内部创建一个函数? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A fmt 格式 %H:%M:%S 不带小数 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python C++20 的 std::views::filter 未正确过滤视图 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute 为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa 为什么库中不调用全局变量的构造函数? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis std::common_reference_with 在元组上的行为不一致。哪个是对的? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev 为什么编译器在这里错过矢量化? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan C++17 中 std::byte 只能按位运算? 2023-08-17 17:13:58 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve