- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语言的主要特点—模块端口(module ports) 端口在模块名字后的括号中列出 端口可以说明为input, output及inout 端口等价于硬件的引脚(pin) 注意模块的名称DFF,端口列表及说明 模块通过端口与外部通信 语言的主要特点 模块实例化(module instances) module DFF (d, clk, clr, q, qb); .... endmodule module REG4( d, clk, clr, q, qb); output [3: 0] q, qb; input [3: 0] d; input clk, clr; DFF d0 (d[ 0], clk, clr, q[ 0], qb[ 0]); DFF d1 (d[ 1], clk, clr, q[ 1], qb[ 1]); DFF d2 (d[ 2], clk, clr, q[ 2], qb[ 2]); DFF d3 (d[ 3], clk, clr, q[ 3], qb[ 3]); endmodule 语言的主要特点 可以将模块的实例通过端口连接起来构成一个大的系统或元件。 在上面的例子中,REG4有模块DFF的四个实例。注意,每个实例都有自己的名字(d0, d1, d2, d3)。实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。 实例中端口的次序与模块定义的次序相同。 模块实例化与调用程序不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。 模块实例化(module instances) 一个完整的简单例子 test fixture 被测试器件DUT是一个二选一多路器。测试装置(test fixture)提供测试激励及验证机制。 Test fixture使用行为级描述,DUT采用门级描述。下面将给出Test fixture的描述、DUT的描述及如何进行混合仿真。 DUT 被测器件 (device under test) module MUX2_1 (out, a, b, sel); // Port declarations output out; input a, b, sel; wire out, a, b, sel; wire sel_, a1, b1; // The netlist not (sel_, sel); and (a1, a, sel_); and (b1, b, sel); or (out, a1, b1); endmodule 注释行 已定义的 Verilog基本单元的实例 a, b, sel是输入端口,out是输出端口。所有信号通过这些端口从模块输入/输出。 另一个模块可以通过模块名及端口说明使用多路器。实例化多路器时不需要知道其实现细节。这正是自上而下设计方法的一个重要特点。模块的实现可以是行为级也可以是门级,但并不影响高层次模块对它的使用。 多路器由关键词module和endmodule开始及结束。 Test Fixture template module testfixture; // Data type declaration // Instantiate modules // Apply stimulus // Display results endmodule 为什么没 有端口? 由于testfixture是最顶层模块,不会被其它模块实例化。因此不需要有端口。 Test Fixture — 如何说明实例 module testfixture; // Data type declaration // Instantiate modules MUX2_1 mux (out, a, b, sel); // Apply stimulus // Display results endmodule 多路器实例化语句 MUX的实例化语句包括: 模块名字:与引用模块相同 实例名字:任意,但要符合标记命名规则 端口列表:与引用模块的次序相同 Test Fixture —过程(procedural block) 所有过程在时间0执行一次 过程之间是并行执行的 过程语句有两种: initial :只执行一次 always :循环执行 Test Fixture —过程(procedural block) 通常采用过程语句进行行为级描述。test fixture的激励信号在一个过程语句中描述。 过程语句的
文档评论(0)