【问题标题】:How to describe a signed multiplier using the Verilog 1995 standard如何使用 Verilog 1995 标准描述带符号的乘法器
【发布时间】:2022-12-08 03:55:40
【问题描述】:

使用 2001 标准带符号乘法很容易。

wire signed [7:0] A,B;
wire signed [15:0] Y;
assign Y = A*B;

我想知道如何使用没有“签名”关键字的 Verilog 1995 标准来完成此操作。 有没有人记得?

我不知道如何在 1995 年的标准中实现这个

【问题讨论】:

    标签: verilog multiplication


    【解决方案1】:

    您必须明确签署扩展 A 和 B。

    assign Y = {{8{A[7]}},A}*{{8{B[7]}},B};
    

    我不会相信任何不至少实现 Verilog-2001 的工具。

    【讨论】:

      【解决方案2】:

      根据 Sutherland 的文章“Verilog-2001:“Verilog 硬件描述语言的新特性指南”

      “Verilog-1995 只提供一种带符号的数据类型,即整数变量。reg、time 和所有 net 数据类型都是无符号的。整数变量的宽度固定为 32 位(IEEE 标准将整数定义为“至少 32 位” ',但在几乎所有的模拟器中,整数都是 32 位)。在 Verilog-1995 中只有一种带符号的数据类型,大多数带符号的操作被限制为 32 位宽。”

      Wire 是一种网络数据类型。

      再往下一点,他继续说:
      “Verilog-1995 的局限性在于,要对有符号算术建模,只能使用 32 位整数。”

      【讨论】:

        猜你喜欢
        • 2016-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-16
        • 1970-01-01
        相关资源
        最近更新 更多