在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2086|回复: 4

[求助] 关于SV的一个问题

[复制链接]
发表于 2020-4-25 10:21:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
部分代码如下。m_device_type = t_device_type'(get_val("CC_DEVIE_TYPE")) ,求助大佬这句的意思是什么?
typedef enum{
    EP = 0,
    RC = 1,
    SW = 2,
    DM = 3
    } t_device_type;
//----------------------------------------------------------------------   
// Task call
//-----------------------------------------------------------------------
  initial begin
      enum_test;
  end
//----------------------------------------------------------------------
//task       :      enum_test
//description:     Operation on enumeration
//----------------------------------------------------------------------
    task enum_test;
       t_device_type m_device_type;
       m_device_type = t_device_type'(get_val("CC_DEVIE_TYPE"));
       m_device_type=m_device_type.first;     //Traversal enumeration with "do ...while"
       do
           begin
             $display("m_device_type=%s",m_device_type.name);
             m_device_type=m_device_type.next;
         end
         while(m_device_type!=m_device_type.first);
     endtask


//--------------------------------------
//------------------------------------------------------------------------
//function   :     get_val
//description:     First part, read constraint file
//                 second part, put back parameters
//------------------------------------------------------------------------
function bit[7:0] get_val(string name);
//part1:   
    bit[7:0]params[string];
    string name ,line,sub_line,value_str,out_str;
    bit [7:0] value;
    integer r,file_handle;
    string  short_prod;

       file_handle=$fopen("constraint.v","r");
         if(!file_handle)
         begin
             $display("[%0t] FATAL {%m}: Unable to open file for reading\n", $time);
             return  1 ;
         end
         while (!$feof(file_handle))
         begin
             r = $fgets(line,file_handle);
             if(match_define(line,sub_line))begin
                 value_str="1" ; //default to 1
                 r = $sscanf(sub_line,"`define %s %s",name,value_str);
                 if(str_search(value_str,"h",out_str))
                      r= $sscanf(out_str,"%x",value);
                  else if (str_search(value_str,"b",out_str))
                      r= $sscanf(out_str,"%b",value);
                  else if (str_search(value_str,"d",out_str))
                      r= $sscanf(out_str,"%d",value);
                  else
                      r= $sscanf(out_str,"%d",value);


  params[name]=value;
                  foreach(params)   //check
                  $display("%s,%s,%d",out_str,name,value);
              end
          end
          $fclose(file_handle);
//part2 :put back parameters
        if(params.num()<=0)begin
            $display("[%0t] FATAL {%m}:Can't return value for parameter as the params array has zero content\n", $time);
            $finish;
         end
         if(params.exists(name)) begin
             return params[name];
         end else begin
             return 0 ;
         end
endfunction:get_val

发表于 2020-4-25 20:38:34 来自手机 | 显示全部楼层
函数输入参数为字符串,把返回值强制转换为枚举类型?
 楼主| 发表于 2020-4-25 22:10:57 | 显示全部楼层


阿莹的三石 发表于 2020-4-25 20:38
函数输入参数为字符串,把返回值强制转换为枚举类型?


非常感谢。
发表于 2020-4-25 23:57:14 | 显示全部楼层
这是在搞PCIe啊
 楼主| 发表于 2020-4-26 22:00:13 | 显示全部楼层


是的, 是vip
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-14 18:57 , Processed in 0.020187 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表