当前位置: 首页 > news >正文

建网站 陕西牛人网络科技电商运营工作内容

建网站 陕西牛人网络科技,电商运营工作内容,前端网站做中 英文,青岛做网站多少钱关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用,但是一直有一个模糊的概念困扰着我,今天刚好有时间来搞清楚并记录下来。 关于fucntion的返回值的问题: function integer clog2( input logic[255:0] value);for(cl…

关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用,但是一直有一个模糊的概念困扰着我,今天刚好有时间来搞清楚并记录下来。

关于fucntion的返回值的问题:

function integer clog2( input logic[255:0] value);for(clog2 = 0; value>0; clog2= clog2+1)value = value>>1;clog2 = clog2-1;
//      param = clog2-1;
//      return 8;
endfunction
logic[3:0] param;
initial
begin$display("==========start print sim result============");$display("clog2 = %b",clog2(256'b1000));$display("============end print sim result=============");
//  $display("param = %b",param);
end

上述function vcs编译之后打印的结果为:

==========start print sim result============
clog2 = 00000000000000000000000000000011
============end print sim result=============

function中如果没有return语句(这是systemverilog增加的特性),那么默认返回与函数名相同的变量作为函数的返回值;

如果以下面的方式code:

function integer clog2( input logic[255:0] value);for(clog2 = 0; value>0; clog2= clog2+1)value = value>>1;clog2 = clog2-1;
//      param = clog2-1;return 8;
endfunction
logic[3:0] param;
initial
begin$display("==========start print sim result============");$display("clog2 = %b",clog2(256'b1000));$display("============end print sim result=============");
//  $display("param = %b",param);
end

那么编译之后打印的结果是什么呢?

==========start print sim result============
clog2 = 00000000000000000000000000001000
============end print sim result=============

看到了吧,function会以return语句声明的值作为函数的返回值;

这里还有两个小case需要注意一下,就是for()语句是连同它下面的value = value>>1;作为执行单元的,执行完了之后才会执行下一个;那行的语句。

还有这里要另外注意:

function 返回值的类型:

void:如果你想调用函数并且忽略它的返回值,可以使用void进行声明函数类型,比如函数只用来打印一些想要的信息:

function void load_array();int len = 32'b0;if(len<=0)begin$display("bad len");end// return;
endfunction 
//int arry[];
initial
begin$display("====================================");$display("this is the load array function's print");load_array();$display("====================================");//$display("load_array = %d",load_array());
end

打印结果:

====================================
this is the load array function's print
bad len
====================================

但是你如果把这句解开:

 $display("load_array = %d",load_array());

那就会报错了,因为这里使用了load_array()的返回值,但是void函数是没有返回值的。

报错:

Void functions cannot be used in contexts which require return values

 函数类型还有logic,int,static,automatic,数组,结构体等等类型;

Systemverilog中static、automatic区别_automatic变量-CSDN博客

 

http://www.hrbkazy.com/news/33405.html

相关文章:

  • 如何快速创建网站上海百度seo公司
  • 网站空间管理站内推广有哪些具体方式
  • 长沙圭塘网站建设公司网站开发流程的8个步骤
  • wordpress 显示分类名称福州短视频seo服务
  • 网站路径优化怎么做石家庄关键词排名提升
  • 专门做汽车动力性测试的网站汕头网站制作设计
  • 网站建设方案撰写竞价排名的定义
  • 广州派出所门户网站域名免费注册
  • 高端定制网站建设制作怎样在百度做广告宣传
  • 腾虎广州网站建设怎样交换友情链接
  • 百度网盟 网站定向投放最佳的搜索引擎
  • 沧州网站建设培训产品怎么在网上推广
  • 怎么做网站百度网址是多少 百度知道
  • 做新闻网站犯法吗百度账号登陆入口
  • 益阳做网站接app推广接单平台
  • 青岛栈桥景点介绍windows清理优化大师
  • 私域运营软件学seo网络推广
  • 深圳做棋牌网站建设网络推广怎么做?
  • 关于节约化建设网站的表态发言谷歌排名优化入门教程
  • 如何做网站的自由撰稿人网站服务器ip查询
  • 初学网站建设家电企业网站推广方案
  • 上海平台网站建设费用怎么写网站
  • 企业网站管理系统添加教程整站优化网站
  • 著名设计师网站优化 保证排名
  • 电子商务网站制作步骤水果店推广营销方案
  • 商品网站建设设计思路网站免费搭建平台
  • 苏州吴江做网站google搜索排名优化
  • 有哪些做的好的小众网站云搜索
  • 做网站导出用什么色彩模式邯郸今日头条最新消息
  • 盐城企业做网站多少钱汉中网络推广