【FPGA学习笔记】Verilog语言的模块化设计

在进行模块化设计中,对于复杂的数字系统,我们一般采用自顶向下的设计方式。可以把系统划分成几个功能模块,每个功能模块再划分成下一层的子模块;每个模块的设计对应一个module,一个module设计成一个Verilog程序文件。因此,对一个系统的顶层模块,我们采用结构化的设计,即顶层模块分别调用了各个功能模块

一、以下以静态数码管显示实验为例简单介绍。

1、底层模块1(计时模块)

module time_count(
	input clk;
	input rst_n;
	output reg flag;
	);
//parameter define 
parameter MAX_NUM =25000000;//计数器最大值
...
endmodule

2、底层模块2(数码管静态显示模块)

module reg_led_static(
	input clk;
	input rst_n;
	input addr_flag;

	output reg [5:0] sel;
	output reg [5:0] sel_led;
	);
    ...
endmodule

3、顶层模块对以上两个模块进行例化

module seg_led_static_top(
	input sys_clk;
	input sys_rst_n;

	output sel;
	output sel_led;
	);
//parameter difine
parameter MAX_SHOW = 25'd25000000;
wire addr_flag;

//*****main code****

//计时器模块例化
time_count #(
	.MAX_NUM (MAX_SHOW)
)u_time_count(	
	.clk (sys_clk),
	.rst_n (sys_rst_n),
	.flag (addr_flag)
);

//数码管显示模块例化
reg_led_static u_reg_led_static(
	.clk (sys_clk),
	.rst (sys_rst_n),

	.addr_flag (addr_flag),
	.sel (sel),
	.sel_led (sel_led)
	);

二、小结
在这里插入图片描述

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值