EDA技术教程运算符赋值及结构.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 常用Verilog语法(-) 模块的结构 数据类型和变量 基本的运算符号 貌似极其简单的内容,与大家熟悉的C语言在许多方面类似 但时刻要记住,Verilog是面向硬件的 在学习中逐渐体会和理解新概念新术语 不要困惑于各种较多的新名词 在练习中学习,在学习中理解和提高 5.1 Verilog HDL基本结构 1.Verilog HDL模块的结构 Verilog的基本设计单元是“模块 (block) ” 。 Verilog 模块的结构由在module和endmodule关键词之间的4个主要部分组成: 5.1.1 模块的端口定义 模块的端口定义模块的输入输出口,格式如下 module modele_name ( port1, port2, …) 端口分输入、输出及双向 端口是与其它模块端口联系的标识 例[1]: module adder ( count,sum,a,b,cin ); input [2:0] a,b; input cin; output count; output [2:0] sum; assign {count,sum}=a+b+cin; endmodule 模块引用时端口连接方法 引用时,严格按照模块定义的端口顺序来连接,不用标明原模块定义时规定的端口名。 模块名(连接端口1信号名,连接端口2信号名, …) 使用“.”符号,标明原模块是定义时规定的端口名。 模块名(.端口1名(连接信号1名),.端口1名(连接信号1名),…) 举例 … My DesignMK M1(.sin(SerialIn),.pout(ParallelOut),…); 方法2可以使端口名与被引用模块的端口对应,不必严格按方法1的顺序,程序可读性可移植性好。 1.模块的内容--I/O说明的格式 输入口: input [信号位宽-1:0] 端口名1; input [信号位宽-1:0] 端口名2; … input [信号位宽-1:0] 端口名 i; 输出口: output [信号位宽-1:0] 端口名1; output [信号位宽-1:0] 端口名2; … output [信号位宽-1:0] 端口名 i; 输入/输出口 inout [信号位宽-1:0] 端口名1; inout [信号位宽-1:0] 端口名2; … inout [信号位宽-1:0] 端口名 i; 5.1.2 模块的内容 reg reg[width-1:0] R变量1,R变量2…; Wire wire[width-1:0] W变量1,W变量2…; 5.1.2 模块的内容 3. 逻辑功能定义 在Verilog 模块中有3种方法可以描述电路的逻辑功能: (1)用assign 语句 assign x = ( b ~c ); 5.1.2 模块的内容 (3)用 “always” 块语句 always @(posedge clk) // 每当时钟上升沿到来时执行一遍块内语句 begin if(load) out = data; // 同步预置数据 else out = data + 1 + cin; // 加1计数 end 5.1.2 模块的内容

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档