网站大量收购独家精品文档,联系QQ:2885784924

第2章HDL指南.PDF

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章HDL指南

下载 第2章 HDL指南 本章提供H D L语言的速成指南。 2.1 模块 模块是Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的 外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述 ; 设计的 数据流行为使用连续赋值语句进行描述 ; 时序行为使用过程结构描述。一个模块可以在另一个 模块中使用。 一个模块的基本语法如下: m o d u l e m o d u l e _ n a m e (p o r t _ l i s t) ; D e c l a r a t i o n s : reg, wire, parameter, input, output, inout, function, task, . . . S t a t e m e n t s : Initial statement Always statement Module instantiation Gate instantiation UDP instantiation Continuous assignment e n d m o d u l e 说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功 能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数 等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性 , 最好将所有的说 明部分放在语句前。本书中的所有实例都遵守这一规范。 图2 - 1为建模一个半加器电路的模块的简单实例。 m o d u l e H a l f A d d e r (A, B, Sum, Carry) ; i n p u t A, B; o u t p u t Sum, Carry; a s s i g n #2 Sum = A ^ B; a s s i g n #5 Carry = A B; e n d m o d u l e 模块的名字是H a l f A d d e r 。 模块有4个端口: 两个输 入端口A 和B ,两个输出端口S u m和C a rry 。由于没有定 义端口的位数, 所有端口大小都为1位;同时, 由于没有 各端口的数据类型说明, 这四个端口都是线网数据类型。 模块包含两条描述半加器数据流行为的连续赋值 图2-1 半加器电路 第2章 HDL指南 5 下载 语句。从这种意义上讲,这些语句在模块中出现的顺序无关紧要,这些语句是并发的。每条 语句的执行顺序依赖于发生在变量 A和B上的事件。 在模块中,可用下述方式描述一个设计: 1) 数据流方式; 2) 行为方式; 3) 结构方式; 4) 上述描述方式的混合。 下面几节通过实例讲述这些设计描述方式。不过有必要首先对 Verilog HDL 的时延作简要 介绍。 2.2 时延 Verilog HDL 模型中的所有时延都根据时间单位定义。 下面是带时延的连续赋值语句实 例。 a s s i g n #2 S u m = A ^ B; # 2指2个时间单位。 使用编译指令将时间单位与物理时间相关联。这样的编译器指令需在模块描述前定义, 如下所示: ` timescale1ns /100ps 此语句说明时延时间单位为 1 n s并且时间精度为 100ps (时间精度是指所有的时延必须被限定在 0 . 1 n s 内) 。 如果此编译器指令所在的模块包含上面的连续赋值语句 , #2 代表2 n s 。 如果没有这样的编译器指令 , Verilog HDL 模拟器会指定一个缺省时间

文档评论(0)

ldj215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档