第2讲 Verilog HDL门级建模.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章内容 门级范例 基本语法 MOS开关 UDP 层次化设计 门级范例——四选一选择器 电路图 模块代码 等价代码 门级建模结构 模块定义 端口声明 内部连线声明 门级调用 模块定义 语法要求 module 模块名(端口名1,端口名2……); …… endmodule 例如: module MUX4x1(Y,A,B,C,D,S1,S0,En_); module abc(a,b,c); module adder(a,b,cin,sum,cout); module test; 标识符的要求 标识符由字母、数字、下划线(_)和美元符($)组成。 标识符是区分大小写的。 标识符的第一个字符必须是字母或下划线,不能以数字或美元符开始。 还有一些Verilog HDL基本语法中使用到的关键字作为保留字 ,不能作为标识符使用,例如module 端口声明 端口列表仅仅是列出了本模块具有哪些端口,但这些端口是输入还是输出并没有定义,这就需要在模块中声明 语法形式: 端口类型 [端口位宽左界:端口位宽右界] 端口名; 端口类型 输入—input 输出—output 双向—inout 宽度 定义一个2位宽度的输入信号a 建议形式 端口连接规则 输入输出必须遵循 门级调用 语法形式 逻辑门类型 实例名称(可选) (端口连接); 例如 基本逻辑门 单输入逻辑门:缓冲器buf和非门not buf 实例名称 (out1,out2,…,outn,in); not 实例名称 (out1,out2,…,outn,in); 例:not n2(out1,out2,in); 门级调用也称为实例化 多输入逻辑门: 与门and、与非门nand 或门or、或非门nor 异或门xor和同或门xnor 范例 三态门 bufif1、bufif0、notif1和notif0 语法 三态门类型 实例名称 (输出信号,输入信号,控制信号); 范例 模块实例化 语法形式 模块名称 实例名称(端口连接); 两种连接方式 按顺序连接 按名称连接 按顺序连接 欲调用此模块 实例化过程 按名称连接 语法形式 .原模块中端口名称(新模块中连接信号名称) 范例 如果有端口悬空 MUX4x1 mymux(y,a,b,c,d,s1, ,en_); //两个逗号间表示没有连接的端口 MUX4x1 mymux(.Y(y), .A(a), .B(b), .C(c), .D(d), .En_(e)); //没有出现的端口就没有连接 内部连线声明 语法形式 wire [线宽-1 : 0] 线名称; 范例 wire a; //定义一位线网a wire [3:0] b;//定义四位线网b 未声明而直接使用时,默认为1位宽 MOS开关 抽象程度更低 nmos 实例名(out , data , ctrl); pmos 实例名(out , data , ctrl); 源极(逻辑1)和地极(逻辑0) supply1 vdd; supply0 gnd; 非门 与非门 测试模块 用户自定义原语UDP and、or、not等逻辑门是Verilog HDL自带的内建语法,对这些门的描述是以原语的形式在Verilog HDL中定义的,即Verilog HDL的内置原语。 在实际设计中,设计者有时需要使用自己编写的原语,Verilog HDL也支持这种语法,这种原语就是用户自定义原语(User- Defined Primitive,UDP)。 UDP基本结构 primitive UDP名称(输出端口,输入端口1,……,输入端口n); output 输出端口名; input 输入端口名; reg 寄存器名; initial //初始化寄存器,这两行在时序UDP中使用 table ……//状态表信息 endtable endprimitive UDP基本规则 1.UDP只能有一个1位的输出端口,输出端口必须在端口列表的第一个位置。不允许有多个输出端口或多位输出端口。如下声明均是违法的: output a,b; //多个输出违法 output [1:0] c; //多位输出违法 2.U

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档