- 1、本文档共133页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
逻辑电路及verilog-HDL
逻辑电路及Verilog HDL简介2.4.1 Verilog HDL基础知识一.Verilog 模块的结构 Verilog HDL以模块集合的形式来描述数字系统。 “模块”(module)是Verilog 程序的基本设计单元,用于描述某个设计的功能、结构、与其他模块通信的外部端口。 先通过三个简单的Verilog程序,直观地认识Verilog模块的结构。&&modulemux2x1_gate (a0, a1, s,y);output y;input a0, a1, s;not i0(sn, s);and i1(a0_sn, a0, sn);and i2(a1_s, a1, s);or i3( y,a0_sn, a1_s);endmodule例1:根据电路结构建模//模块名、端口列表//声明y为输出端口//声明a0, a1, s为输入端口//调用内置“非”门元件//调用内置“与”门元件//调用内置“与”门元件//调用内置“或”门元件&&modulemux2x1_dataflow(a0,a1,s,y);output y;input a0,a1,s; assign y = ( ~s a0) | (s a1) ;endmodule例2:根据逻辑表达式建模定义同上采用逻辑表达式进行逻辑功能的描述&modulemux2x1_behavioral_if_else(a0,a1,s,y);& input a0,a1,s; output y; reg y;always @ (s or a0 or a1 ) if ( s ) y = a1; else y = a0;endmodule例3:根据电路行为建模定义always中的赋值变量 只要信号a0, a1, s中有一个发生变化,就执行下面的语句。在这里已看不出电路的结构,而是一种电路行为的描述。module 模块名 (端口列表);Verilog 模块基本结构端口定义input 输入端口output 输出端口……数据类型说明wireregparameter……逻辑功能定义assignalways语言内置门元件调用…endmodule1. 模块声明 Verilog 模块结构完全包含在module和endmodule关键字之间。模块声明的格式:module 模块名 (端口1,端口2、….);……endmodule2. 端口(Port)定义 端口是模块与外界或其他模块进行连接和通信的信号线,对模块的输入、输出端口要进行明确的定义,格式如下:定义输入input 〈[向量位宽]〉 端口名1,端口名2,…… 端口名n;定义输出output 〈[向量位宽]〉 端口名1,端口名2,…… 端口名n;3. 数据类型和信号类型的声明 每个端口除声明为输入、输出,还要声明其数据类型是连线型(wire)还是寄存器型(reg),若没有声明,综合器默认为是wire型。特别提示:输入不能声明为reg型! 模块中用到的节点信号(连线)也必须进行数据类型的定义。用wire将信号定义为连线型;用reg将信号定义为寄存器型;用parameter定义符号常量。4. 逻辑功能定义 模块中最核心的部分是逻辑功能定义。下面介绍几种基本方法。(1 )用“assign”持续赋值语句进行逻辑功能的定义例如:assign F=~((AB)|(CD)) ; “assign”语句一般用于组合逻辑的赋值,称为持续赋值方式。是一种基于逻辑表达式的逻辑功能描述方式。在前面的例2中,就是采用这种方式建立电路模型。(2) 调用内置元件(元件例化)描述电路结构调用Verilog HDL中提供的动态元件“画”电路图。例如:and myand3 ( out, a, b, c ) ;调用门元件,构造一个名为myand3的三输入与门。and c1 ( F, in1, in2 ) ;调用门元件,构造一个名为c1的二输入与门。 前面例1中,通过调用门元件,进行信号的相互连接,构造电路的模型。(3) 用 “always”过程块描述电路的逻辑功能module MUX2_1 (out, a, b, sel); // Port declarations output out; input a, b, sel; wire out, a, b, sel; wire sel_, a1, b1; reg out; always @ (sel or a or b ) if ( ! sel ) out = a; else out = b;endmodule注释行多路器由关键词module和endmodule开始及结束。a, b, sel是输入端口,out是输出端口。所有信号通过这些端口从模块输入
您可能关注的文档
最近下载
- 第20课 五四运动与中国共产党的诞生必修中外历史纲要上 (2).pptx VIP
- 久谦-中信产业基金第三方物流及快递投资目标筛选项目 v3.6-20120118.pptx VIP
- 《景观生态学》全套教学课件.ppt
- 幼儿园公开招聘教职员工简章.pdf
- 2023年财务分析题库完整版.doc
- CJJ∕T 135-2009 (2023年版) 透水水泥混凝土路面技术规程.pdf
- 第二章第五节 跨学科实践:制作隔音房间模型-人教版2024物理八年级上学期.pptx
- [股市论谈]53万打天下(53万实盘帐户天天更新).t
- 第9课 创新增才干-【中职专用】2024年中职思想政治《哲学与人生》金牌课件(高教版2023·基础模块).pptx VIP
- 纲要(上)第20课 五四运动与中国共产党的诞生课件(共23张PPT).pptx VIP
文档评论(0)