1 for循环方式例化方法
先给出 sub_module
module sub(
input [7:0] din,
output logic [7:0] dout
);
assign dout = din;
endmodule
要将这个module分别例化成u_sub_0和u_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文章
375浏览量
25485 -
dump
+关注
关注
0文章
13浏览量
9707 -
Verilog设计
+关注
关注
0文章
20浏览量
6750
发布评论请先 登录
相关推荐
热点推荐
开关量和模拟量是PLC初期使用最多的两种输入输出方式?
开关量和模拟量是大家学习PLC初期使用最多的两种输入输出方式。什么是开关量?什么是模拟量?本文就跟随小编一起来了解一下吧。
两种verilog语言写法的实现问题!求解答~
在看verilog代码时,看到这样两种表示方法:一种是:“ wirea;assigna=b;”一种是:“wirea=b;”请教各位大神这两种
发表于 01-29 14:33
请问IC设计中读写电路的设计中如何实现读写和连续读写两种方式?
请问在IC设计中,有的ic支持读写和连续读写两种方式,比如写的时候,输入一个地址,写入数据,重复进行;也可以输入一个起始地址,数据依次输入,
发表于 07-18 15:00
SQL语言的两种使用方式
SQL语言的两种使用方式在终端交互方式下使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言嵌入式SQL的实现
发表于 12-20 06:51
两种穿戴健身记录仪的方式
Misfit与时尚珠宝厂商BaubleBar合作推出两种穿戴Misfit Flash的时尚方式。Misfit这周发布了BaubleBar Helena Necklace和BaubleBar
发表于 04-13 00:33
•2349次阅读
浅析标准的Verilog对语句有两种分组方式
标准的Verilog对语句有两种分组方式——使用begin…end或fork…join,begin…end中的语句以顺序方式执行,而fork…join中的语句则以并发
MATLAB/simulink中两种实现建模方式的优势
导读:本期文章主要介绍在MATLAB/simulink中建模时的两种不同实现方式,一种是直接用现成的文件库中的模块进行搭建,一种是用Sfunction代码实现。接下来以电压型磁链观测器
redis两种持久化方式的区别
的完整性和一致性。 Redis提供了两种持久化方式:RDB(Redis Database)和AOF(Append Only File)。这两种
记录一下verilog重复例化的两种方式
评论