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是为了举例说明,在实际设计中,对门级不要重新设计成一个模块,同时 对涉及保留字的(不管大小写)相类似的标识符最好不用。
会员服务热线: |
深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved. |
|
深 圳:13410210660 QQ : 317143513 |
|
客服联系: MSN:CaiZH01@hotmail.com E-mail:CaiZH01@163.com |
|
|