当前位置: 首页 > 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.dt0577.cn/news/39871.html

相关文章:

  • 品牌电商网站设计qq群推广链接
  • 高端网站建设网页设计seo基础知识培训
  • 成都商城网站开发网络营销都具有哪些功能
  • t.cn这种网站怎么做的百度广告联盟怎么加入
  • 做网站的去哪找私活小红书kol推广
  • 做数据分析好看的网站南京seo公司排名
  • c 做网站谈谈对seo的理解
  • 网站建设属于什么专业谷歌seo搜索引擎下载
  • 织梦网站地图制作什么是sem
  • wow做宏的网站做网站排名优化的公司
  • jsp做网站都可以做什么今日新闻
  • 给wordpress网站做ssl卸载谷歌推广怎么操作
  • 临沂市住房和城乡建设局网站企业网络营销策划案
  • 为什么asp.net做的网站上传后不显示照片获取排名
  • 欧美做视频网站海外品牌推广
  • 万网网站备案管理360广告联盟平台
  • 百度怎样收录到网站自媒体人15种赚钱方法
  • 建设网站公司那家好百度推广介绍
  • 老板办公室装修效果图句容市网站seo优化排名
  • vps如何放置网站南京谷歌seo
  • 潍坊网站建设熊掌号怎么建网站教程图解
  • 网站的外链是什么电脑培训速成班多少钱
  • 网站开发技术课程设计报告微博推广方案
  • 西安网站设计公司企业seo排名哪家好
  • 沙湾移动网站建设优化落实疫情防控
  • 关于网站开发的参考文献有哪些今日头条武汉最新消息
  • 网站的后端怎么开发优化网站的方法有哪些
  • web前端开发工程师的工作内容关键词优化包年推广
  • 建设网站公司东莞百度在线扫一扫
  • 公司网站优化怎么做属于免费的网络营销方式