- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
module fadder_4 ( input [3:0] i_A, i_B; input i_Cin; output [3:0] o_S; output o_Cout; ); 第二种是顺序接口连接方式 模块名 实例名 (连接线名1, 连接线名2,…); fadder_1 add1(i_A[0],i_B[0],i_Cin,o_S[0],o_Cout); module fadder_1 ( i_A, i_B, i_Cin, o_S, o_Cout ); 不能随意改变端口连接列表中信号的排列顺序,否则会导致错误的连接关系 注意:信号连接类型 模块端口和与之连接的信号的数据类型必须遵循下面的规定: 1.输入端口在模块内部必须为wire型数据,在模块外部可以连接wire或者reg类型数据。 2.输出端口在模块内部可以为wire或reg型数据,在模块外部必须连接到wire型数据。 3.连接的两个端口位宽可以不同,但其仿真结果可能因Verilog仿真器而异,通常会有警告。 以例1.1的全加器为例。模块fadder_4是设计的顶层,4位全加器向下划分为4个较小的1位全加器子模块。模块fadder_1是设计的底层,实现了1位全加器的功能。 顶层模块通过实例化调用4个1位全加器,将其串联在一起构成最终的四位全加器电路。 另一种常见的设计方法是自底向上(Bottom-UP)的设计,它与自顶向下的设计相反。 首先对现有的底层功能模块进行分析和设计,然后使用这些模块来搭建上一层的功能更丰富的模块,直至完成顶层模块的设计。 提示:Verilog HDL并行编程的思想 这是与C语言最本质的区别。即在同一仿真时间各个模块完成计算。 本章小结 从层次化设计的角度出发,介绍Verilog HDL设计的基本方法和概念。 层次化设计方法:自顶向下,自底向上。 Testbench即电路设计的测试模块 * Verilog HDL 数字系统设计及实践 第1章 Verilog层次化设计 学习指南 【知识目标】 (1) 了解Verilog设计中的模块的概念; (2) 了解层次化设计的概念; (3) 了解Testbench的概念。 【技能目标】 (1) 能够描述一个完整的简单模块; (2) 能够通过模块实例化完成层次化的设计。 【重点难点】 (1) 模块实例化的理解; (2) Testbench的概念。 1.1 一个简单的例子——四位全加器的设计 【例1.1】利用Verilog HDL语言和层次化设计方法来设计一个四位全加器电路。 // example_1_1: full adder // 四位的全加器由四个一位的全加器构成。 module fadder_4 ( i_A, i_B, i_Cin, o_S, o_Cout ); input [3:0] i_A, i_B; // 输入端口i_A,i_B input i_Cin; // 输出端口i_Cin output [3:0] o_S; // 输出端口o_S output o_Cout; // 输出端口o_Cout wire Cout_1, Cout_2, Cout_3; // wire型数据Cout_1,Cout_2,Cout_3 1.1 一个简单的例子——四位全加器的设计 // 实例化四个1位的全加器 fadder_1 u_fadder_1_1 ( .i_A(i_A[0]), .i_B(i_B[0]), .i_Cin(i_Cin), .o_S(o_S[0]), .o_Cout(Cout_1) ); fadder_1 u_fadder_1_2 ( .i_A(i_A[1]), .i_B(i_B[1]), .i_Cin(Cout_1), .o_S(o_S[1]), .o_Cout(Cout_2) ); 1.1 一个简单的例子——四位全加器的设计 fadder_1 u_fadder_1_3 ( .i_A(i_A[2]),
文档评论(0)