打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
verilog HDL 结构化建模具体实例
类别:电子综合  
 

5.4 结构化建模具体实例

对一个数字系统的设计,我们采用的是自顶向下的设计方式。可把系统划分成几个功能模

块,每个功能模块再划分成下一层的子模块。每个模块的设计对应一个module ,一个module 设计

成一个verilog HDL 程序文件。因此,对一个系统的顶层模块,我们采用结构化的设计,即顶层模

块分别调用了各个功能模块。下面以一个实例(一个频率计数器系统)说明如何用HDL进行系统

设计。

在该系统中,我们划分成如下三个部分:2输入与门模块,LED显示模块,4位计数器模块。系

统的层次描述如下:

TOP CNT_BCD (CNT_BCD.v)

Sub AND2 CNT_4b HEX2LED

(AND2.v) (CNT_4b.v) (HEX2LED.v)

图9 系统层次描述

顶层模块CNT_BCD,文件名CNT_BCD.v,该模块调用了低层模块 AND2、CNT_4b 和

HEX2LED 。

系统的电路结构图如下:

图10 系统电路框图

2004-08-16 第31页,共41页

版权所有,侵权必究

绝密

Verilog HDL 入门教程请输入文档编号

顶层模块CNT_BCD对应的设计文件 CNT_BCD.v 内容为:

module CNT_BCD (BCD_A,BCD_B,BCD_C,BCD_D,CLK,GATE,RESET) ;

// ------------ PORT declarations --------- //

input CLK;

input GATE;

input RESET;

output [3:0] BCD_A;

output [3:0] BCD_B;

output [3:0] BCD_C;

output [3:0] BCD_D;

wire CLK;

wire GATE;

wire RESET;

wire [3:0] BCD_A;

wire [3:0] BCD_B;

wire [3:0] BCD_C;

wire [3:0] BCD_D;

// ----------- Signal declarations -------- //

wire NET104;

wire NET116;

wire NET124;

wire NET132;

wire NET80;

wire NET92;

// -------- Component instantiations -------//

CNT_4b U0(

.CLK(CLK),

.ENABLE(GATE),

.FULL(NET80),

.Q(BCD_A),

.RESET(RESET)

);

CNT_4b U1(

.CLK(CLK),

.ENABLE(NET116),

2004-08-16 第32页,共41页

版权所有,侵权必究

绝密

Verilog HDL 入门教程请输入文档编号

.FULL(NET92),

.Q(BCD_B),

.RESET(RESET)

);

CNT_4b U2(

.CLK(CLK),

.ENABLE(NET124),

.FULL(NET104),

.Q(BCD_C),

.RESET(RESET)

);

CNT_4b U3(

.CLK(CLK),

.ENABLE(NET132),

.Q(BCD_D),

.RESET(RESET)

);

AND2 U4(

.A0(NET80),

.A1(GATE),

.Y(NET116)

);

AND2 U5(

.A0(NET92),

.A1(NET116),

.Y(NET124)

);

AND2 U6(

.A0(NET104),

.A1(NET124),

.Y(NET132)

);

endmodule

2004-08-16 第33页,共41页

版权所有,侵权必究

绝密

Verilog HDL 入门教程请输入文档编号

注意:这里的AND2是为了举例说明,在实际设计中,对门级不要重新设计成一个模块,同时

对涉及保留字的(不管大小写)相类似的标识符最好不用。