- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字逻辑第2版教学课件ppt作者武庆生第8章2014课件.ppt
第八章 硬件描述语言Verilog HDL 8.1 概述 8.2 Verilog HDL基本语法 8.3 Verilog HDL的操作符 8.4 Verilog HDL的语句 8.5 基本逻辑门的Verilog HD 8.6 组合逻辑电路的Verilog HDL实现 8.7 时序逻辑电路的Verilog HDL实现 重点与难点 8.1 概述 8.2 Verilog HDL基本语法 一、5种抽象的级别 2、算法级(Algorithem-level):用高级语言结构实现设计算法的模型。 二、Verilog HDL具有的功能 4、提供了条件(如if_else,case等)循环程序结构; 9、提供了双向通路和电阻器件的原语; 8.2.1 数据类型及常量、变量 一、Verilog HDL中共有19种数据类型。 常量: 数字表达方式有以下3种: 8‘ //位宽为8的数的二进制表示,‘b表示二进制。 8‘ha2 //位宽为8的数的十六进制表示,‘h表示十六进制。 一个数字可以被定义为负数,只需在位宽表达式前加一个减号,减号必须写在数字定义表达式的最前面。注意,减号不可以放在位宽和进制之间,也不可以放在进制和具体的数之间。如: -8‘d5 //这个表达式代表5的补数(用8位二进制表示); 8’d-5 //非法格式 下画线可以用来分隔数的表达以提高程序可读性,但不可以用在位宽和进制处,只能用在具体的数字之间。如: 16‘b1010_1011_1111_1010 //合法 8’b_0011_1010 //非法 一个常量,称为符号常量,即标识符形式的常量。主要是提高程序的可读性和可维护性,格式如下: Module decode(A, F); parameter width=1, polarity=1; ………… Endmodule 网络数据类型表示结构实体(如门)之间的物理连接。网络类型的变量不能储存值,而且它必须受到驱动器(门或连续赋值语句,assign)的驱动。如果没有驱动器连接到网络类型的变量上,则该变量就是高阻的,即其值为z。常用的网络数据类型包括wire型和tri型。如果wire型和tri型变量没有定义逻辑强度(logicstrength),在多驱动源的情况下,逻辑值会发生冲突,从而产生不确定值。下表是wire型和tri型变量的真值表。 一、 wire型 二、reg型 对于reg型数据,其赋值语句的作用就如同改变一组触发器的存储单元的值。在Verilog中有许多构造()来控制何时或是否执行这些赋值语句。这些控制构造用来描述硬件触发器的状态,如时钟上升沿,或用来描述判断逻辑,如多路选择器。 Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM存储器、ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。在Verilog语言中没有多维数组存在。 如:parameter wordsize =16, memsize =256; reg [wordsize-1:0] mem[memsize-1:0], writereg, readreg; 8.3 Verilog的操作符 Verilog HDL语言的操作符范围很广,按功能可以分为以下几类: (6)位运算符(~、|、^、、^~); clock = ~clock;// ~单目取反运算符 c = a | b //|是二目运算符 r = s ? t : u //? : 是三目运算符。 (4)/(除法运算符); (4)^ ——按位异或; (1) ——逻辑与; 在Verilog HDL语言中存在4种算术运算符: “===”和“!==”运算符则不同,它在对操作数进行比较时对某些位的不定值X和高阻值Z也进行比较,两个操作数必须完全一致,其结果才是1,否则为0。 8.3.6 移位运算符 8.3.7 位拼接运算符 位拼接还可以用嵌套的方式来表示。如: {b,{3{a,b}}} //这等同于{b,a,b,a,b,a,b} 8.3.9 优先级别 8.3.10 关键词 8.4 Verilog的语句 8.4.1 赋值语句 2、阻塞(blocking)赋值方式(如b=a); (1)赋值语句执行完后,块才结束; (2)b的值在赋值语句执行结束后立刻就改变; (3)可能会产生意想不到的结果。 clk信号的上升沿到来时,b就等于a,c就等于b。这里用到了两个触发器,最后c应为b原来的值。见下图: 例2:always
文档评论(0)