【问题标题】:verilog representing binary value problem in verilog在verilog中表示二进制值问题的verilog
【发布时间】:2021-04-11 23:16:43
【问题描述】:

我的任务是创建一个文本文件并将我的名字作为二进制数据放入文本文件中,然后读取此文件并将此二进制转换为字符并将其作为字符放入另一个文件中。

所以我的问题是如何用二进制表示我的名字。

我试过了:

reg [255:0] myname = 01001110011010010110101101101111011011000110111101111010;

但它没有工作。错误说数字太大。

然后我尝试了:

reg [1:0] myname1 = 2'b0100_1110_0110_1001_0110_1011_0110_1111_0110_1100_0110_1111_0111_1010;

这也不起作用。它总是给出“_”作为输出。

【问题讨论】:

    标签: verilog quartus


    【解决方案1】:
    reg [255:0] myname = 01001110011010010110101101101111011011000110111101111010;
    

    在这种情况下,您有一个巨大的十进制数 1,001,110,011,010,010,110,101,101,101,111,011,011,000,110,111,101,111,010,您尝试将其分配给一个相对较小的 reg(256 位宽)。它确实适合 256 位,但解码时会遇到很大问题。

    reg [1:0] myname1 = 2'b0100_1110_0110_1001_0110_1011_0110_1111_0110_1100_0110_1111_0111_1010;
    

    在这里,您尝试将 56 位 二进制 数压缩到 2 位变量中。这在物理上是不可能的,并且该数字被截断为 2 位。下划线仅用于可读性目的,没有任何其他作用。

    我猜,你需要类似下面的东西:

    reg [255:0] myname = 256'b01001110011010010110101101101111011011000110111101111010;
    

    如果您愿意,可以添加下划线以提高可读性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多