Verilog仿真跨模块调用内部信号的方法

本文介绍了在Verilog仿真实验中如何通过层次化引用的方式在模块间传递信号,无需在RTL部分显式声明端口。作者提供了示例代码,展示了如何在不同层级的子模块间引用信号并进行操作。
摘要由CSDN通过智能技术生成

在Verilog仿真时如果需要调用某子模块中的信号在本模块中使用可以使用层次化引用的方法,而不需要在rtl部分用端口引出来。

引用方式:当前例化模块名.子例化模块名.子子例化模块名.参数 将需要的信号引出。
注意是用例化模块名而不是用子模块名,两者区别如下:
在这里插入图片描述
如示例代码中的有两处分别引用不同子模块中的信号在本模块使用。

`timescale 1ns/1ns
module tb_top();

	wire                     i_rst_n		  ;
	assign i_rst_n	= u_top.u_ctrl.w_sys_rst_n;
	
	reg 		[7:0]		   data_in	;
	reg 					   clr_n	;

	 initial begin
			i_clk 	  = 	1'b1;
		
			clr_n    <= 1'b0	;
			data_in  <=	8'b0	;
		#520
		wait (u_top.u_trig.w_sam_en == 1'b1)begin
			clr_n    <= 1'b1	;
			data_in  <=	8'h5A	;
		end
	
top u_top(							
	.i_ext_clk          (i_clk		),
				
	.o_spi_sclk         (o_spi_sclk ),
	.o_spi_mosi         (o_spi_mosi	),
	.i_spi_miso         (i_spi_miso )
);
//==========================< Clock block >============================
	always 	  	#10		i_clk = ~i_clk;
	
endmodule

实际上有多种层级引用方式:可参考Verilog基础:标识符的向上向下层次名引用

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值