首页 > 解决方案 > 如何将 ASCII 码转换为 Verilog 语言中的字符

问题描述

我一直在研究这个,但搜索似乎一无所获。描述起来可能太简单了,但我在这里,挠头......任何帮助将不胜感激。

标签: asciiverilogmodelsim

解决方案


Verilog 知道“字符串”。

单个 ASCII 字符需要 8 位。因此,要存储 8 个字符,您需要 64 位:

wire [63:0] string8;

assign string8 = "12345678";

有一些陷阱:

  • 没有字符串结尾字符(如 C 空字符)
  • 最多的 RHS 字符在位 7:0 中。
    因此 string8[7:0] 将保持 8h'38。(“8”)。
  • 要遍历字符串,您必须使用例如:string[ index +: 8];
  • 与所有 Verilog 向量分配一样:未使用的位因此设置为零
    assign string8 = "ABCD"; // MS bit63:32 are zero
  • 不能使用二维数组:
    wire [7:0] string5 [0:4]; assign string5 = "Wrong";

推荐阅读