其他分享
首页 > 其他分享> > 模块例化是怎么进行的?——FPGA学习笔记(四)

模块例化是怎么进行的?——FPGA学习笔记(四)

作者:互联网

最近在学FPGA的时候,总搞不清楚例化两个字是什么意思?什么是模块例化?各个模块例化之后怎么连接的弄得我晕头转向,今天用一个流水灯的程序探究了一下。

首先我们看最底层的三个模块程序:

module smg_scan_module       //数码管选通模块
(
     input sys_clk,          //输入时钟和复位信号
     input rst_n, 
     output [5:0]Scan_Sig    //输出数码管选通信号    为6位数据信号
);
module smg_encode_module              //数码管编码模块
(
	 input sys_clk,               
	 input rst_n,
	 input [3:0]Number_Data,      //输入Number_Data 是一个0-9的数值     为4位数据信号
	 output [7:0]SMG_Data         //输出SMG_Data即8位数码管的操作信号    为8位数据信号
);
module smg_control_module            //数码管控制模块
(
         input sys_clk,                  
	 input rst_n,
	 input [23:0]Number_Sig,     //输入 Number_Sig    为24位数据信号
	 output [3:0]Number_Data     //输出 Number_Data   为4位数据信号
);

这是最底层的,再看上面一层对这三个模块的例化程序

module smg_interface
(
     input                       sys_clk,
	 input                   rst_n,
	 input [23:0]            Number_Sig,
	 output [7:0]            SMG_Data,
	 output [5:0]            Scan_Sig
);
	 smg_control_module U1         
	 (
	          .sys_clk            (sys_clk        ),
		  .rst_n              ( rst_n         ),
		  .Number_Sig         ( Number_Sig    ),    // input - from top
		  .Number_Data        ( Number_Data   )   // output - to U2
	 );
     smg_encode_module U2
	 (
	          .sys_clk             (sys_clk      ),
		  .rst_n               (rst_n        ),
		  .Number_Data         ( Number_Data ),   // input - from U2
		  .SMG_Data            ( SMG_Data    )          // output - to top
	 );
	 smg_scan_module U3
	 (
	          .sys_clk             (sys_clk      ),
		  .rst_n               ( rst_n       ),
		  .Scan_Sig            ( Scan_Sig    )  // output - to top
	 );

如上面程序所示,例化数码管扫描程序为U3,例化数码管编码模块为U2,例化数码管控制模块为U1,

.sys_clk (sys_clk)这句话的意思就是,将这个模块的输入 sys_clk 命名为 sys_clk,

总的意思就是通过对各个小模块的输入输出的例化命名,使这三个模块相连,构成这一层的模块。

 

标签:FPGA,clk,Number,sys,例化,模块,input,Data
来源: https://blog.csdn.net/sy243772901/article/details/84892644