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

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

3天内不再提示

记录一下verilog重复例化的两种方式

冬至子 来源:行走的BUG永动机 作者:BUG永动机 2023-05-26 17:36 次阅读

1 for循环方式例化方法

先给出 sub_module

module sub(
    input [7:0] din,
    output logic [7:0] dout
);
    assign dout = din;
endmodule

要将这个module分别例化成u_sub_0u_sub_1,并且每个都例化四次

for循环的实现方式如下

module top(
    input [8*4-1 : 0] din0, 
    input [8*4-1 : 0] din1,
    output logic [8*4-1 : 0] dout0,
    output logic [8*4-1 : 0] dout1
);
    genvar i;
    generate for(i=0; i<4; i++) begin:inst
        sub u_sub_0 (
              //output
              .dout(dout0[i*8 +: 8]),
              //input
              .din(din0[i*8 +: 8])
           );
        
        sub u_sub_1 (
              //output
              .dout(dout1[i*8 +: 8]),
              //input
              .din(din1[i*8 +: 8])
           );
    end
    endgenerate
endmodule

来看看例化后的效果

图片

可以看到,总共4组inst,每组inst中存在两个u_sub

接下来点开inst[0]中的u_sub_0,看看它的信号是什么样的

图片

依次点击,然后到shell界面粘贴内容

图片

此时可以清晰的看到,这个din信号是来自哪里,这也体现了,在begin后命名block的重要性

2 数组的方式例化

同样的 sub_module,同样的例化要求,这次改用数组的方式进行例化

module top(
 input [8*4-1 : 0] din0, 
    input [8*4-1 : 0] din1,
    output logic [8*4-1 : 0] dout0,
    output logic [8*4-1 : 0] dout1
);
    sub u_sub_0 (
       //output
          .dout(dout0),
          //input
          .din(din0)
       );
    
    sub u_sub_1 (
       //output
          .dout(dout1),
          //input
          .din(din1)
       );
endmodule

来看看这次的例化效果

图片

在打印出这种方式的层次化结构

图片

图片

同样有清晰的辨识效果

4 一些其他的技巧

对于二维数组而言,如果想在verdi中将二维数组展开,那么我们需要在dump波形是加上这句话

$fsdbDumpMDA

这样就可以在verdi中展开二维数组

当一个数组范围比较大不方便分析,可以将数组进行分段,操作如下

图片

比如我要将32 bits位宽的din0信号分成8 bits位宽,可以这样设置

图片

效果如下

图片

实现了对信号的拆分

对于一些信号,在这种例化方式下拉信号的波形不是很容易(这个例子一时没想起来 >_<)

要拉出确定的波形可以这样操作

在波形界面按g,会弹出下面这个框

图片

让后需要哪个信号选中即可添加

图片

图片

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

    关注

    1

    文章

    365

    浏览量

    23369
  • dump
    +关注

    关注

    0

    文章

    13

    浏览量

    9513
  • Verilog设计
    +关注

    关注

    0

    文章

    20

    浏览量

    6518
收藏 人收藏

    评论

    相关推荐

    开关量和模拟量是PLC初期使用最多的两种输入输出方式

    开关量和模拟量是大家学习PLC初期使用最多的两种输入输出方式。什么是开关量?什么是模拟量?本文就跟随小编起来了解一下吧。
    的头像 发表于 10-05 09:26 6628次阅读

    两种采样方式

    两种采样方式.....................................
    发表于 08-08 15:04

    两种verilog语言写法的实现问题!求解答~

    在看verilog代码时,看到这样两种表示方法:一种是:“ wirea;assigna=b;”一种是:“wirea=b;”请教各位大神这两种
    发表于 01-29 14:33

    请问IC设计中读写电路的设计中如何实现读写和连续读写两种方式

    请问在IC设计中,有的ic支持读写和连续读写两种方式,比如写的时候,输入个地址,写入数据,重复进行;也可以输入个起始地址,数据依次输入,
    发表于 07-18 15:00

    掌握原理图输入以及Verilog两种设计方法

    过1位全加器的详细设计,掌握原理图输入以及Verilog两种设计方法。
    发表于 11-08 07:57

    SQL语言的两种使用方式

    SQL语言的两种使用方式在终端交互方式使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言嵌入式SQL的实现
    发表于 12-20 06:51

    请问一下无线局域网的两种网络结构是什么?

    请问一下无线局域网的两种网络结构是什么?
    发表于 05-09 16:22

    逆变器的两种电流型控制方式

    逆变器的两种电流型控制方式 摘要:研究分析了逆变器的两种双环瞬时反馈控制方式——电流型准PWM控制方式和三态DPM
    发表于 07-10 11:21 4003次阅读
    逆变器的<b class='flag-5'>两种</b>电流型控制<b class='flag-5'>方式</b>

    开关磁阻电机两种绕组连接方式铁心损耗的有限元计算

    开关磁阻电机两种绕组连接方式铁心损耗的有限元计算
    发表于 01-21 12:07 2次下载

    两种穿戴健身记录仪的方式

    Misfit与时尚珠宝厂商BaubleBar合作推出两种穿戴Misfit Flash的时尚方式。Misfit这周发布了BaubleBar Helena Necklace和BaubleBar
    发表于 04-13 00:33 2086次阅读

    浅析标准的Verilog对语句有两种分组方式

    标准的Verilog对语句有两种分组方式——使用begin…end或fork…join,begin…end中的语句以顺序方式执行,而fork…join中的语句则以并发
    的头像 发表于 09-14 11:02 883次阅读
    浅析标准的<b class='flag-5'>Verilog</b>对语句有<b class='flag-5'>两种</b>分组<b class='flag-5'>方式</b>

    互锁正反转电路的两种实现方式

    有关正反转电路的知识,互锁正反转电路的两种实现方式一种是接触器互锁正反转,一种是按钮互锁正反转,学习
    的头像 发表于 04-27 15:47 1.1w次阅读
    互锁正反转电路的<b class='flag-5'>两种</b>实现<b class='flag-5'>方式</b>

    星三角的两种控制方式

    今天给大家展示一下星三角的两种控制控制方式的电路图,PLC 控制方式以三菱PLC 为
    发表于 05-05 15:53 654次阅读
    星三角的<b class='flag-5'>两种</b>控制<b class='flag-5'>方式</b>

    温湿度记录两种不同的存储方式介绍

    温湿度记录两种不同的存储方式,要怎么操作?
    的头像 发表于 12-20 15:23 803次阅读
    温湿度<b class='flag-5'>记录</b>仪<b class='flag-5'>两种</b>不同的存储<b class='flag-5'>方式</b>介绍

    redis两种持久方式的区别

    的完整性和致性。 Redis提供了两种持久方式:RDB(Redis Database)和AOF(Append Only File)。这两种
    的头像 发表于 12-04 11:12 523次阅读