0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SystemVerilog中的“let”语法

芯片验证工程师 来源:芯片验证工程师 作者:芯片验证工程师 2022-12-05 10:55 次阅读

相比`define的全局scope,“let” 可以只作用在局部scope

“let”和`define一样也是定义了一个文本替换。

define是验证环境开发以及RTL开发过程中的一个非常常用的技巧,但是define是全局的,这是优点也是缺点,很容易就会对其他模块的验证环境产生干扰。

相比来说,“let” 的使用更加安全,因为“let”只会作用到局部。

module example;
 logic r1,r2, r3,r4,clk,clk1;
 let exDefLet = r1 || r2; 
 always @ (posedge clk) begin: ablock
 let exDefLet = r1 & r2; 
 r3=exDefLet; 
 end
 always @ (posedge clk1) begin: bblock
 r4=exDefLet; 
 end
 endmodule

就等价于

module example;
 logic r1,r2, r3,r4,clk,clk1;
 always @ (posedge clk) begin :ablock
 r3=r1 & r2; 
 end
 always @ (posedge clk1) begin: bblock
 r4=r1 || r2 ;
 end
 endmodule

如果我们使用的是`define,而不是“let”。

module example;
 logic r1,r2, r3,r4,clk,clk1;
 `defne exDefLet r1 || r2;
 always @ (posedge clk) begin :ablock
 `defne exDefLet r1 & r2; 
 r3=`exDefLet; 
 end
 always @ (posedge clk1) begin: bblock
 r4=`exDefLet; 
 end
 endmodule

后面的全局define会覆盖前面的define,那上面的例子就等价于

module example;
 logic r1,r2, r3,r4,clk,clk1;
 always @ (posedge clk) begin: ablock
 r3 = r1 & r2; 
 end
 always @ (posedge clk1) begin: bblock
 r4 = r1 & r2; 
 end
endmodule

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1322

    浏览量

    109218
  • System
    +关注

    关注

    0

    文章

    161

    浏览量

    36552
  • LET
    LET
    +关注

    关注

    0

    文章

    11

    浏览量

    10134

原文标题:SystemVerilog中的“let”语法

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    cocotb中的基础语法SystemVerilog中的常用语法对照总结

    对于信号的读取,我们在SystemVerilog中,可以直接读取信号值,而在cocotb中,其为接口变量提供了value方法属性用于获取信号值。
    的头像 发表于 07-21 09:07 3170次阅读
    cocotb中的基础<b class='flag-5'>语法</b>与<b class='flag-5'>SystemVerilog</b>中的常用<b class='flag-5'>语法</b>对照总结

    [启芯公开课] SystemVerilog for Verification

    学快速发展,这些趋势你了解吗?SystemVerilog + VM是目前的主流,在未来也将被大量采用,这些语言和方法学,你熟练掌握了吗?对SoC芯片设计验证感兴趣的朋友,可以关注启芯工作室推出的SoC芯片
    发表于 06-10 09:25

    systemverilog--语法详解

    官方的一个systemverilog详解,很详细。推荐给打算往IC方面发展的朋友。
    发表于 06-02 09:30

    systemverilog------Let's Go

    官方的一个systemverilog详解,很详细。推荐给打算往IC方面发展的朋友。QQ群374590107欢迎有志于FPGA开发,IC设计的朋友加入一起交流。一起为中国的IC加油!!!
    发表于 06-02 09:47

    systemverilog学习教程

    systemverilog的一些基本语法以及和verilog语言之间的区别。
    发表于 04-01 14:24

    使用SystemVerilog来简化FPGA接口的连接方式

    开发,但现在Vivado对SystemVerilog的支持已经比较好了,完全可以使用SystemVerilog写出可综合的FPGA程序,而且FPGA开发只会使用的SystemVerilog
    发表于 01-08 17:23

    SystemVerilog有哪些标准?

    SystemVerilog有哪些标准?
    发表于 06-21 08:09

    刚装IC617建一个systemverilog的cell总是报语法错误怎么去解决?

      如下图,先建一个systemverilog的cell,但是会报错,求帮解决下。写个最简单的也会报语法错误。    
    发表于 06-24 06:24

    SystemVerilog Assertion Handbo

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:08 188次下载

    SystemVerilog的断言手册

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:12 20次下载

    cocotb中的基础语法

    cocotb的出现使得我们能够在做RTL仿真验证时依托Python来进行测试用例的构建,当我们习惯了用Verilog、SystemVerilog来构建测试用例时,切换到cocotb后最直观的方式便是我们能够建立cocotb中的基础语法
    的头像 发表于 07-21 09:18 1642次阅读

    SystemVerilog中带参数的let介绍

    在上面的例子中,“let”中包含2个参数“p”和“q”。
    的头像 发表于 12-05 10:38 747次阅读

    解码国产EDA数字仿真器系列之二 | 如何实现全面的SystemVerilog语法覆盖?

    SystemVerilog语言,是开发仿真器的一个重要任务。   SystemVerilog的发展历程   数字芯片的验证技术是随着Verilog语法的演变而演变的。 最早,Verilog是完全用来描述
    发表于 04-07 14:40 539次阅读
    解码国产EDA数字仿真器系列之二 | 如何实现全面的<b class='flag-5'>SystemVerilog</b><b class='flag-5'>语法</b>覆盖?

    如何实现全面的SystemVerilog语法覆盖

    SystemVeirlog的全面支持是开发商用仿真器的第一道门槛。市面上可以找到不少基于纯Verilog的仿真器,但是真正能完整支持SystemVerilog 的仍然屈指可数。如何全面地支持SystemVerilog语言,是开发仿真器的一个重要任务。
    的头像 发表于 07-14 15:15 362次阅读
    如何实现全面的<b class='flag-5'>SystemVerilog</b><b class='flag-5'>语法</b>覆盖

    javascript的基本语法遵循的标准

    的基本语法。 变量声明与赋值 在JavaScript中,可以使用关键字 var 、 let 或 const 声明变量。其中, var 是旧版的声明方式, let 和 const 是ES6引入的新特性。变量名
    的头像 发表于 12-03 11:35 1462次阅读