VHDL等同于Verilog localparam

时间:2018-09-12 13:17:54

标签: vhdl verilog

我在verilog模中找到了以下语句:

localparam str2="  Display Demo  ", str2len=16;

在我看来str2是一个字符串值,但是我想知道如何在下面的代码片段中处理它。

always@(write_base_addr)
    case (write_base_addr[8:7])//select string as [y]
    0: write_ascii_data <= 8'hff & (str1 >> ({3'b0, (str1len - 1 - write_base_addr[6:3])} << 3));//index string parameters as str[x]
    1: write_ascii_data <= 8'hff & (str2 >> ({3'b0, (str2len - 1 - write_base_addr[6:3])} << 3));
    2: write_ascii_data <= 8'hff & (str3 >> ({3'b0, (str3len - 1 - write_base_addr[6:3])} << 3));
    3: write_ascii_data <= 8'hff & (str4 >> ({3'b0, (str4len - 1 - write_base_addr[6:3])} << 3));
    endcase

首先将字符串值转换为位值吗? Write_ascii_data只有8位长,在我看来,它不足以完全存储案例处理的最终结果。有什么vhdl等效于localparam字符串吗?

1 个答案:

答案 0 :(得分:0)

Verilog没有字符串类型。字符串文字被转换为等效的ASCII位向量,每个字符8位。因此str2是一个128位向量参数。 RHS表达式将str2左移8位的倍数,并选择一个ASCII字符。