将字符“1”转换为十六进制“4'h0001”

时间:2017-10-06 04:53:23

标签: string system-verilog

我正在尝试将字符串转换为十六进制中的相同值。例如

如果string =“abc123”,则十六进制值也应为24'habc123。 字符串的长度是64,所以我将每个字符转换为十六进制,我将得到64 * 4 = 256位的十六进制值

例如,如果text_o_cplus.getc(i)= a,即97,我应该为它指定一个十六进制值a 4'ha; 但我没有得到适当的方法来做到这一点。这就是我试过的

      int j=255;
      for(int i=text_o_cplus.len();i>0;i--)
      begin
       while(j>=0)
         begin   
            case(text_o_cplus.getc(i))

            48:     begin
                     rev_result[j]=4'b0000;
                     j=j-4; 
                     break;
                     end

   and so on. 

rev_result定义为

       bit [64][4] rev_result;

我试图将其定义为

       bit [255:0] rev_result 

但也没有用。

有人可以建议我如何实现它?

1 个答案:

答案 0 :(得分:2)

使用内置功能:

   bit [255:0] rev_result = text_o_cplus.atohex();