- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 Verilog-HDL语言 3.1 模块的结构 3.2 数据类型 3.3 运算符和表达式 3.4 语句 3.5 基本逻辑单元描述实例 3.6 测试程序的设计 3.1 模 块 的 结 构 1.模块的结构 Verilog-HDL的基本设计单元是“模块”。一个模块由两部分组成,一部分描述接口,另一部分描述逻辑功能。例如对图3-1所示的电路描述如下: 图3-1 逻辑电路图 module AOI(A,B,C,D,E); // 模块名为AOI ? input A,B,C,D; // 定义模块的输入端口A,B,C,D output E; // 定义模块的输出端口E assign E= ~ ((AB) | (CD)); // 模块内的逻辑描述 endmodule 从上面的例子可知,电路原理图符号的管脚也就是程序模块的端口,程序模块内描述了电路原理图所实现的逻辑功能。 一个Verilog-HDL程序包括四个主要部分:端口定义、I/O说明、内部信号说明和功能定义。 1) 模块的端口 模块的端口定义声明了模块的输入/输出端口。其格式为: module 模块名(端口名1,端口名2,端口名3,...); 2) 模块内容 模块内容包括I/O说明、内部信号声明和功能定义。 信号类型的声明说明信号的数据类型。例如:“reg[7:0] out;”定义out的数据类型为寄存器类型;“inout [2:0] b;”定义inout的数据类型为输入/输出类型。 3) 模块的逻辑功能 模块中最重要的部分是逻辑功能定义。有以下三种方法可以在模块中描述要实现的逻辑功能。 (1) 用“assign”声明语句。 例如:“assign f = ~ ( ( a b ) | ( c d ));”描述了一个与或非门。其中“|”是逻辑或运算符,“”是逻辑与运算符,“~”是逻辑或运算。 (2) 用例化元件。 Verilog-HDL提供了一些基本的逻辑门模块,例如与门(and)、或门(or)等,使用例化元件的语句,就不必重新编写这些基本逻辑门的程序,简化了程序。 使用例化元件的格式为: 门类型关键字 例化名 (端口列表); 例如:“and and4(and_out,a,b,c,d);”描述了四输入与门的逻辑功能。 (3) 用“always”块语句。 例如: always @(postedge clk) begin q = a | b; end 这个例子描述的逻辑功能为:当时钟信号的上升沿到来时,输入信号a 与 b进行逻辑或操作的结果送给输出信号q。 描述时序逻辑时,会经常用到always语句。always @(event expression)语句的括号内表示的是敏感信号或表达式,即当敏感信号或表达式的值发生变化时,执行always块内的语句。 postedge(positive edge上升沿)是一个关键字,用于表示上升沿触发的时序逻辑电路;而negedge(negative edge下降沿)用于表示下降沿触发的时序逻辑电路。 always@(postedge clk)表示时钟信号clk由低电平变到高电平时,执行块内语句。Verilog-HDL的关键字都是由小写字母构成的。 综上所述,一般的Verilog-HDL模块的结构如下: module 顶层模块名(输入/输出端口列表); output 输出端口列表; // 输出端口声明 input 输入端口列表; // 输入端口声明 / *然后定义数据和信号的类型,函数声明。用关键字wire,reg,integer,task和function 定义 */ ? //使用assign语句描述逻辑功能 assign result_signal_name = expression; wire result_signal_name; ? //使用always块描述逻辑功能 always @(event expression) begin // 过程赋值(procedural assignments ) // if语句 // case语句 // whil
您可能关注的文档
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第5 8章_ 第7章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第5 8章_ 第8章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第9 11章_ 第9章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第9 11章_ 第10章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第9 11章_ 第11章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第12 14章_ 第12章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第12 14章_ 第13章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第12 14章_ 第14章.ppt
- 新Photoshop CS5基础与实例教程 教学课件 邓娟 第12 14章_ 封面及目录.ppt
- 新photoshop CS5中文版工作过程导向标准教程 教学课件 朱仁成 项目1 封面及目录.ppt
- 新PLD与数字系统设计 李辉 第4章 ISE 5.1i开发系统.ppt
- 新PLD与数字系统设计 李辉 第5章 设计实例.ppt
- 新PLD与数字系统设计 李辉 封面.ppt
- 新POP广告设计 教学课件 于讴 7473.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第1-3章 第1章.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第1-3章 第2章.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第1-3章 第3章.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第4章 第4章.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第5-6章 第5章.ppt
- 新PowerBuilder技术教程 教学课件 戴士弘 高职 第5-6章 第6章.ppt
最近下载
- 专题03 阅读填空20篇(中考真题+各区名校模拟)2023年广州中考英语冲刺专项训练(解析版).docx VIP
- 产品结构设计课作业.doc VIP
- 临床药物治疗学模拟考试题+答案.docx VIP
- 临床药物治疗学考试题与答案.docx VIP
- 霸碗 盖码饭 智能炒菜机器人 品牌手册(2023Q4版).pdf
- 临床药物治疗学考试题+答案.docx VIP
- 人教版小学三年级体育教案全集全册.doc VIP
- 2011-2016年淮北师范大学《分析化学》考研真题汇总.pdf VIP
- 2011-2016年淮北师范大学《无机化学》考研真题汇总.pdf VIP
- 《小型悬臂起重机结构设计计算》18000字.docx
文档评论(0)