Verilog 概述.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog HDL与电子设计自动化 讲课:叶以正 李晓明 哈尔滨工业大学微电子中心 硬件描述语言 概念:为了描述硬件电路而专门设计的一种语言。如VHDL、Verilog HDL等 抽象层次 系统级:C等高级语言描述 行为级:模块的功能描述 RTL级:寄存器与组合电路的合成 逻辑门级:基本逻辑门的组合 开关级:晶体管开关的组合 Verilog HDL简介 Verilog是在C语言的基础上发展起来的一种硬件描述语言 由Gateway Automation 于1983年首创,并于1995年成为IEEE标准,即IEEE standard 1364。 Verilog HDL的特点 支持不同抽象层次的精确描述以及混合模拟,如行为级、 RTL级、开关级等 设计、测试、模拟所用的语法都相同 较高层次的描述与具体工艺无关 提供了类似C语言的高级程序语句,如if-else,case,loop等 提供了算术、逻辑、位操作等运算符 包含完整的组合逻辑元件,如and、or、xor等,无需自行定义 支持元件门级延时和元件门级驱动强度 Verilog HDL 概述 Verilog HDL的特点 Verilog框架结构 行为级描述和结构级描述(全加器为例) 开关级描述 测试系统组成 完整的测试文件 Verilog框架结构 ※Verilog HDL是由module模块组成,模块定义关键词 module开始,到关键词 endmodule结束,每条Verilog语句以分号“;”作为结束(块语句、编译向导、endmodule等除外)。 module module_name(Port_list) 端口声明; 数据类型声明; 电路描述; endmodule 例:上升沿D触发器 module dff_pos(data,clk,q); input data,clk; //端口声明 output q; //端口声明 reg q; //数据类型声明 always @(posedge clk) q=data;//电路描述 endmodule Verilog HDL基础知识 基本词法定义 空白符 : 空格(space bar),TAB 键,return键。 注释 (Comment) : “//”或“/*, */”。 Verilog HDL基础知识 数字表示:整数,实数 整数:+/- 位宽 ‘基数符号 数值 位宽:指定整数的大小,以bit为单位。 基数符号:指定整数的基数,可以是b(binary)二进制;o(octal)八进制;d(decimal)十进制;h(hex-adecimal)十六进制。 数值:指定整数的值。 整数: 17 //位宽, 基数符号不写会采用default值 (32bit十进制) 8’d32 //8-bit十进制值为32 8’h12 8’h1A 8’b0001_1100 /* ”_”无特別意义,只是为了方便二进制数易读*/ 8’o37 32’bx // ”x”表unknown 4’b0??? // ”?”表High impedance 实数: 7.2 1.8e-4 //1.8*10-4 9.5E6 Verilog HDL基础知识 字符串与字符变量 字符串为两个双引号“ ”之间的字符,不许跨行 除普通的ASCII字符外,还支持通过前导的控制键(\, %)引入一些特殊字符:如\n(换行),\t(TAB),\\(代表\),\”(代表”),%%(代表%) EX: reg [8*17] stringvar; initial begin stringvar = “This is a string!”; //共17个字符 end Verilog HDL基础知识 取名规则 标识符必须是由a-z, A-Z, 0-9,_, $这些字符組成,最長只能到1024个字符 开头必须由a-z, A-Z或下划线_开头 可以在标识符所取的非法名称前加上反斜杠“\”,并在名称结尾加上空白键,这样就可以用任何可印出的ASCII字符来当作标识符的名称了;而反斜杠和空白键不会被视为标识符的一部分 EX1: module MUX_2(out, a, b, sel); output out; input a, b, sel; not U0(sel_, sel); and U1(a1, a, sel_), U2(b1, b, sel); or U3(out, a1, a2); endmodule EX2: module \

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档