EDA设计技术 教学课件 ppt 作者 杨光永 凌永发_ 第3章 Verilog HDL语言

上传人:E**** 文档编号:89357318 上传时间:2019-05-23 格式:PPT 页数:118 大小:1.25MB
返回 下载 相关 举报
EDA设计技术 教学课件 ppt 作者  杨光永 凌永发_ 第3章 Verilog HDL语言_第1页
第1页 / 共118页
EDA设计技术 教学课件 ppt 作者  杨光永 凌永发_ 第3章 Verilog HDL语言_第2页
第2页 / 共118页
EDA设计技术 教学课件 ppt 作者  杨光永 凌永发_ 第3章 Verilog HDL语言_第3页
第3页 / 共118页
EDA设计技术 教学课件 ppt 作者  杨光永 凌永发_ 第3章 Verilog HDL语言_第4页
第4页 / 共118页
EDA设计技术 教学课件 ppt 作者  杨光永 凌永发_ 第3章 Verilog HDL语言_第5页
第5页 / 共118页
点击查看更多>>
资源描述

《EDA设计技术 教学课件 ppt 作者 杨光永 凌永发_ 第3章 Verilog HDL语言》由会员分享,可在线阅读,更多相关《EDA设计技术 教学课件 ppt 作者 杨光永 凌永发_ 第3章 Verilog HDL语言(118页珍藏版)》请在金锄头文库上搜索。

1、第3章 Verilog HDL语言,EDA设计技术,3.1 Verilog HDL的前世今生,对Verilog HDL影响最大的是Brunel大学开发的HILO-2系统。HILO-2成功地将门级和寄存器传输级的抽象结合起来,还支持校验、仿真、时序分析、失效仿真和测试; 1983年冬, Gateway Design Automation公司设计了Verilog HDL语言; 1988年,当时名不见经传的Synopsys公司将Verilog HDL引入到它的综合工具中;,1989年Gateway Design Automation公司将Verilog HDL的使用权授权给Candence Desi

2、gn Systems公司,该语言立即受到用户、软件供应商的普遍欢迎和推广; 1993年,IEEE成立Verilog HDL标准化工作组,并于1995年颁布标准IEEE 1364-1995,即Verilog-1995; 2001年发布IEEE 1364-2001,即Verilog-2001。 经修订Verilog-1364和SystemVerilog的兼容性,2005年发布Verilog-2005标准。,Verilog HDL的特点,作为一种优秀的硬件描述语言(HDL),Verilog HDL规定了准确的语法和语义,为系统设计提供层次化、规范化、形式化的描述语言规定。 设计者可使用Verilog

3、 HDL丰富的资源,包括逻辑门级原语、用户定义原语、开关级原语和网络逻辑; 可进行器件引脚之间的延时检查和时序检查; 提供网络类型和变量类型,实现不同级别的语义抽象;,以网络或变量表达式进行连续赋值,实现层次建模; 网络或变量的计算结果以变量存储的方式进行过程赋值,实现行为建模; 可设计带输入输出接口、对功能进行描述的模块,模块之间以网络互联,按层次化结构构成系统。 提供程序语言接口(Programming Language Interface,PLI)和Verilog语言接口(Verilog Procedural Interface,VPI),提高Verilog HDL的扩展能力,3.2 标

4、识符与关键字,Verilog HDL的标识符(identifier):可以是任意一组字母、数字、$符号和_(下划线)符号的组合 标识符的第一个字符必须是字母或者下划线。 标识符是区分大小写的。 转义标识符可以在一条标识符中包含任何可打印字符,以反斜线开头,以空白符结尾(空白可以是一个空格、一个制表字符或换行符)。例如:n。,关键字,Verilog HDL定义了一系列保留字,即关键字,注意只有小写的关键字才是保留字。 例如: always always ALWAYS 标识符always是个关键字,而标识符ALWAYS不是关键字,转义标识符always与关键字always并不完全相同。,3.3注释

5、,在Verilog HDL中有两种形式的注释,用于编译控制或添加注释信息。例如下述用于编译控制的注释语句: / * begin /(1) if(Count15)Count = 0; /(2) else Count = Count+1; /(3) end /(4) * / /(5),注释,多行注释从语句(1)的“/*”开始,至空语句(5)结束,即语句(1)至语句(5)不参与编译。 而“/”表示在本行结束的注释,例如: begin /(1) /if(Count15)Count = 0; /(2) else Count = Count+1; /(3) end /(4) 表示语句(2)不参与编译。,简

6、明、准确、清晰的注释行可以增强代码的可读性和可移植性。 在文件的起始部分,应按需注释文件的文件名称、单位名称、日期、作者、所属工程、顶层模块、模块名称及其描述、版权申明、版本及更新记录。,编写注释的基本原则:简明、准确、清晰,例:文件的起始部分注释文件信息,/ Copyright (c) 209-2013, Corporation name / All rights reserved. / THIS SOFTWARE CONTAINS VALUABLE CONFIDENTIAL AND / PROPRIETARY INFORMATION OF SCUT. /-CONTACT- / Websit

7、e : * / Email : * / Phone :* / Fax : * /-PROJECT- / Project : * / Client : *,在模块或语句块的起始部分或关键部分,应明确注释该语句块的相关信息,initial / Clock generator begin clk = 0; #10 forever #10 clk = !clk; end,initial / Test stimulus begin rst = 0; #5 rst = 1; #4 rst = 0; #2000 $stop; end,3.4 格式,Verilog HDL的文本编辑格式采用自由格式,即结构可以

8、跨越多行编写,也可以在一行内编写 always(posedge CLK) begin if(Count15)Count = 0;else Count = Count+1;end 等价于: always(posedge CLK) begin if(Count15)Count = 0; else Count = Count+1; end 在规范化的设计文件中,不要使用连续的空格对齐语句,而采用制表符Tab对语句对齐和缩进,缩进对齐,各种层次化结构或嵌套语句应严格地逐层缩进对齐,每一层缩进一个Tab键。 always(expression0) begin if(expression1) begin

9、statement1; begin statement2; end end else statements; end,3.5数据类型,数据类型:在数字硬件内所有可以用于存储或传输的数据基本单位 网络数据类型和变量数据类型两大类。 两种数据类型代表不同的硬件结构 两种数据类型都不允许重复申明。,网络数据类型,网络数据类型以关键字net为确认符,表示结构性实体的物理连接 无数值储存功能。 若网络数据类型没有连接到驱动源,则输出高阻值z(trireg除外)。 包括逻辑值、矢量与标量、参数、常数、字符串等。,3.5.1 值集合,Verilog HDL规定了四种逻辑值:0、1、z和x,其中,0和1互补。

10、 0:逻辑0或逻辑条件为假 1:逻辑1或逻辑条件为真 z:高阻状态 x:未知逻辑或不确定的逻辑 Z逻辑和x逻辑不区分大小写,例如4b0z1x与4b0Z1X等价,3.5.2 矢量与标量,未指定范围的网络型或寄存器型,当作1位标量处理,无方向性; 矢量是指定范围的多位网络型或寄存器型。 指定范围的左侧以msb常数表达式表示指定范围的最高位 指定范围的右侧以lsb常数表达式表示最低位 指定范围表示为msb:lsb。,例:矢量申明,tri 15:0 busa; / 16位三态总线矢量busa,最高位busa15 /最低位busa0 trireg (small) storeit; / 强度为small的

11、存储结点storeit reg a; / 1位矢量,即标量a reg3:0 v; / 四位矢量v,最高位至最低位依次为 /v3, v2, v1, v0 reg signed 3:0 signed_reg; / 4位矢量signed_reg,范围-8至7 reg -1:4 b; / 6位矢量,最高位为b-1,最低位为b4 wire w1, w2; / 一位网络w1和w2 reg 4:0 x, y, z; / 三个寄存器型矢量x、y和z,注意:矢量地址,定义16位地址总线Bus_Addr: reg 15:0 Bus_Addr1; reg 0:15 Bus_Addr2; 这两个语句的矢量是相反的,由

12、65536个标量地址构成矢量地址;第一个语句的最高位地址是Bus_Addr115,最低位地址是Bus_Addr10;而第二个语句的最高位地址是Bus_Addr20,最低位地址是Bus_Addr215;,矢量表示,矢量可使用1、0、z或x,当总线宽度小于设定宽度时,从最高位开始以1、0、z或x补齐 8bz0x0等价于8bzzzzz0x0; 而8h1等价于8h1111_1111。,3.5.3 数组,数组是相同类型的标量或矢量按一定顺序排列而成的元素的集合,所有的变量类型(包括reg, integer, time, real, realtime)都可以定义为数组。 reg x11:0; /标量数组,

13、定义x0_x11 /共12个寄存器型标量 wire 7:0 y5:0; /矢量数组,定义y0y5共6个 /wire型矢量,每个矢量的总线 /宽度为8位 wire w_array7:05:0; / wire型二维数组w_array /,8*6个元素,1位宽度,存储器:寄存器类型的一维数组,用于对只读存储器(ROM)模型、随机存储器(RAM)模型或寄存器类型文件的建模 存储器中的每一个寄存器按唯一地址进行编址,按地址索引号访问数据。 reg 7:0 mema0:255; /定义一维存储器 mema /256个存储单元,8位宽 /度 reg arrayb7:00:255; /定义二维存储器array

14、b /8行256列,共8*256个 /存储单元,1位宽度,3.5.4 参数,参数是一种常数,既不属于变量类型,也不属于网络类型。 使用参数表达方式可提高程序的可维护性,但不允许重复申明。 有两类参数:模块参数和指定参数,其确认符可使用parameter、localparam或specparam。,3.5.5 字符串,字符串是双引号内、以8位ASCII码值表示一个字符的字符序列集合,被当作无符号的整型常数用于赋值或表达式中。 例如,定义8*12位的寄存器类型字符串: integer 8*12:1 String_logo = “Hello,WORLD!”,3.5.5 网络类型,网络数据类型:Verilog HDL表达信号的一种数据类型,物理意义是具有互连关系的导线,不能保存数据,必须连续地刷新。 Verilog HDL规定了11种网络类型。,3.5.1.1 wire和tri类型,wire为一位网络,tri为多位网络,它们具有相同的表达形式和逻辑真值表。 wire网络是单输入单输出驱动网络,用于单输入门级原语或连续赋值语句的输入,tri网络是多输入单输出网络。,3.5.1.2 trireg类型,trireg用于具有存储能力的三态寄存器类型网络 具有两个状态:驱动状态和保持状态。 当trireg网络处于驱动状态时,至少有一个取值为0、1或x的信号驱动trireg网络

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号