电子设计自动化讲义2011春_第1页
电子设计自动化讲义2011春_第2页
电子设计自动化讲义2011春_第3页
电子设计自动化讲义2011春_第4页
电子设计自动化讲义2011春_第5页
已阅读5页,还剩470页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微电子中心微电子中心电子设计自动化基础电子设计自动化基础1王晨旭王晨旭微电子中心微电子中心电子设计自动化基础电子设计自动化基础2先修课程1、数字逻辑电路2、计算机原理3、C语言基础微电子中心微电子中心电子设计自动化基础电子设计自动化基础3参考文献1、夏宇闻编著,Verilog数字系统设计教程,北航2、褚振勇等编著,FPGA设计及应用,西电微电子中心微电子中心电子设计自动化基础电子设计自动化基础4第1章 绪论一、背景知识二、电子设计自动化和硬件描述语言三、使用硬件描述语言设计数字系统的流程四、常见EDA工具介绍五、本课程的主要内容微电子中心微电子中心电子设计自动化基础电子设计自动化基础51.1.

2、1 常见的逻辑门第1章 绪论 一、背景知识或门OR或非门NOR非门(反相器)NOT异或门XOR与门AND与非门NAND异或非门XNOR二输入与非门NAND2四驱二输入与非门NAND2X4微电子中心微电子中心电子设计自动化基础电子设计自动化基础61.1.2 D型触发器第1章 绪论 一、背景知识CLKDQQ逻辑功能:(1)置1(2)置0CLKDQ微电子中心微电子中心电子设计自动化基础电子设计自动化基础71.1.2 D型触发器第1章 绪论 一、背景知识CLKDQQCLKDQQD110101Q1D2Q2CLKD1Q1D2Q2微电子中心微电子中心电子设计自动化基础电子设计自动化基础81.1.2 D型触发

3、器第1章 绪论 一、背景知识CLKDQQCLKDQQAB100101说明:1)Launch触发器和Capture触发器2)流水pipeline3)可能有反馈CLKDQQ微电子中心微电子中心电子设计自动化基础电子设计自动化基础91.1.2 D型触发器第1章 绪论 一、背景知识DQQDQQDQQD2 1100CLKD2D1D0D2D1D0D1 0D0 0Q2Q1Q043434X4343微电子中心微电子中心电子设计自动化基础电子设计自动化基础101.1.2 D型触发器第1章 绪论 一、背景知识DQQDQQDQQDQQDQQDQQDQQDQQDQQDQQDQQDQQ8DADBQAQBA7B8ADDCL

4、B1A7画出上图的完整波形图?微电子中心微电子中心电子设计自动化基础电子设计自动化基础111.1.2 D型触发器第1章 绪论 一、背景知识为什么集成电路不可能做得无限快?DQQDQQDQQDQQDQQDQQDQQDQQDQQDQQDQQDQQADD微电子中心微电子中心电子设计自动化基础电子设计自动化基础12第1章 绪论一、背景知识二、电子设计自动化和硬件描述语言三、使用硬件描述语言设计数字系统的流程四、常见EDA工具介绍五、本课程的主要内容微电子中心微电子中心电子设计自动化基础电子设计自动化基础131.2.1 数字系统设计方法的改变第1章 绪论 二、电子设计自动化和硬件描述语言(1)传统设计方

5、法根据触发器,根据触发器,求驱动方程、输出方程求驱动方程、输出方程1200112QQDQDQD21QQC Library微电子中心微电子中心电子设计自动化基础电子设计自动化基础14第1章 绪论 二、电子设计自动化和硬件描述语言(1)传统设计方法2)手工布线1)设计周期长,得到门级描述3)工艺相关性1.2.1 数字系统设计方法的改变CLKDQQ台机电0.25umCMOS假设从零开始设计制作芯片?微电子中心微电子中心电子设计自动化基础电子设计自动化基础15第1章 绪论 二、电子设计自动化和硬件描述语言(2)Modern设计方法1.2.1 数字系统设计方法的改变CLKDQQCLKDQQSynthes

6、isPlace Route微电子中心微电子中心电子设计自动化基础电子设计自动化基础16第1章 绪论 二、电子设计自动化和硬件描述语言(2)Modern设计方法1.2.1 数字系统设计方法的改变A、电路的逻辑功能容易理解;B、把逻辑设计与具体电路的实现分成两个独立的阶段;C、逻辑设计与实现的工艺无关;D、逻辑设计的资源积累可以重复利用;微电子中心微电子中心电子设计自动化基础电子设计自动化基础17第1章 绪论 二、电子设计自动化和硬件描述语言(2)Modern设计方法1.2.1 数字系统设计方法的改变电子设计自动化:EDA(Electronic Design Automation),是借助计算机的

7、高性能,辅助完成电路设计的一种方法学。硬件描述语言:HDL(Hardware Description Language),是一种用形式化方法来描述数字电路和系统,具有时间概念的具有时间概念的并行并行编程语言。编程语言。微电子中心微电子中心电子设计自动化基础电子设计自动化基础18第1章 绪论 二、电子设计自动化和硬件描述语言(2)Modern设计方法1.2.1 数字系统设计方法的改变 微电子中心微电子中心电子设计自动化基础电子设计自动化基础19第1章 绪论 二、电子设计自动化和硬件描述语言(2)Modern设计方法1.2.1 数字系统设计方法的改变微电子中心微电子中心电子设计自动化基础电子设计自

8、动化基础20第1章 绪论 二、电子设计自动化和硬件描述语言1.2.2 常见的HDL微电子中心微电子中心电子设计自动化基础电子设计自动化基础21第1章 绪论 二、电子设计自动化和硬件描述语言1.2.2 常见的HDLVHDL - 比VerilogHDL早几年成为I EEE标准; - 语法/结构比较严格,因而编写出的 模块风格比较清晰; - 比较适合由较多的设计人员合作完成 的特大型项目(一百万门以上)。微电子中心微电子中心电子设计自动化基础电子设计自动化基础22第1章 绪论 二、电子设计自动化和硬件描述语言1.2.2 常见的HDLVerilog HDL - 较多的第三方工具的支持 - 语法结构比V

9、HDL简单 - 较易测试微电子中心微电子中心电子设计自动化基础电子设计自动化基础23第1章 绪论 二、电子设计自动化和硬件描述语言1.2.2 常见的HDLVerilog HDL的发展历史 Verilog HDL 公开发表 CADENCE 公司购买 Verilog 版权 1990 1989 1980s Verilog-XL 诞生 模拟和数字都适用的Verilog 标准公开发表 VerilogIEEE1364 -1995 标准公开发表 有关 VerilogHDL 的全部权利都移交给 OVI( Open Verilog International) 1995Verilog HDL的发展历史 2001

10、 1999 Verilog IEEE1364 -2001 标准公开发表 1990微电子中心微电子中心电子设计自动化基础电子设计自动化基础241.2.3 Verilog的使用领域第1章 绪论 二、电子设计自动化和硬件描述语言微电子中心微电子中心电子设计自动化基础电子设计自动化基础25但与但与 C 语言有根本的区别:语言有根本的区别:- 并行性并行性- 块的含义:块的含义: initial 块块 和和 always块块- 两种赋值语句:两种赋值语句: 阻塞阻塞 赋值赋值 “ = ” 非阻塞赋值非阻塞赋值 “= ”第1章 绪论 二、电子设计自动化和硬件描述语言1.2.3 Verilog与 C 的主要

11、不同点Verilog 有许多语法规则与有许多语法规则与 C 语言一致。语言一致。微电子中心微电子中心电子设计自动化基础电子设计自动化基础26第1章 绪论一、背景知识二、电子设计自动化和硬件描述语言三、使用硬件描述语言设计数字系统的流程四、常见EDA工具介绍五、本课程的主要内容微电子中心微电子中心电子设计自动化基础电子设计自动化基础271.3.1 Top-Down设计思想第1章 绪论 三、使用硬件描述语言设计数字系统的流程微电子中心微电子中心电子设计自动化基础电子设计自动化基础28第1章 绪论 三、使用硬件描述语言设计数字系统的流程微电子中心微电子中心电子设计自动化基础电子设计自动化基础29第1

12、章 绪论一、背景知识二、电子设计自动化和硬件描述语言三、使用硬件描述语言设计数字系统的流程四、常见EDA工具介绍五、本课程的主要内容微电子中心微电子中心电子设计自动化基础电子设计自动化基础301.4.1 模拟仿真工具(1)Cadence公司的Verilog-XL,NC-Verilog, NC-VHDL, NC-SIM(2)Synopsys公司的VCS(3)Mentor子公司Model Tech的Modelsim(4) Aldec公司:Active HDL第1章 绪论 四、常见EDA工具介绍微电子中心微电子中心电子设计自动化基础电子设计自动化基础311.4.2 逻辑综合工具(1)Synopsys

13、公司的Design Compiler第1章 绪论 四、常见EDA工具介绍微电子中心微电子中心电子设计自动化基础电子设计自动化基础321.4.3 FPGA开发工具通常是集成的(包括模拟验证和综合实现等)(1)Altera的MaxplusII、QuatusII(2)Xilinx的ISE还有专门为PLD开发的综合工具(作为第三方工具)(3)Synplify (4)FPGA Compiler II(5)DC-FPGA第1章 绪论 四、常见EDA工具介绍微电子中心微电子中心电子设计自动化基础电子设计自动化基础331.4.4 代码调试工具和代码管理工具Novas公司的Debussy1.4.5 代码管理工具

14、CVS第1章 绪论 四、常见EDA工具介绍微电子中心微电子中心电子设计自动化基础电子设计自动化基础34第1章 绪论一、背景知识二、电子设计自动化和硬件描述语言三、使用硬件描述语言设计数字系统的流程四、常见EDA工具介绍五、本课程的主要内容微电子中心微电子中心电子设计自动化基础电子设计自动化基础351)数字系统的基本结构2)设计数字系统的基本方法、工具、手段 3)Verilog 语言的特点和基本语法4)使用硬件描述语言设计数字逻辑电路5)学习可编程逻辑器件的原理和使用第1章 绪论 五、本课程的主要内容总体目标:微电子中心微电子中心电子设计自动化基础电子设计自动化基础361、绪论、语法(6学时)2

15、、例子、技巧(8学时)3、模拟、验证(4学时)4、综合、后仿真(4学时)5、可编程逻辑器件的基本原理(4学时)6、FPGA工具的使用和FPGA开发(4学时)第1章 绪论 五、本课程的主要内容学时安排:微电子中心微电子中心电子设计自动化基础电子设计自动化基础37第2章 Verilog基本语法一、Verilog是模块化语言二、数据类型、运算符三、行为建模微电子中心微电子中心电子设计自动化基础电子设计自动化基础38module mux21 (out, a, b, sel);input a,b,sel;output out; reg out;always (sel or a or b) begin i

16、f (!sel) out = a;else out = b;endendmodule2.1.1 模块化结构第2章 Verilog基本语法 一、Verilog是模块化语言outabselmux21关键词输入输出声明功能定义部分定义输入如何影响输出类型定义(内部变量声明)模块名端口声明微电子中心微电子中心电子设计自动化基础电子设计自动化基础392.1.1 模块化结构第2章 Verilog基本语法 一、Verilog是模块化语言输入输出声明功能定义部分端口声明abseloutnselselaselbinoutmodule mux21 (out, a, b, sel);input a,b,sel;ou

17、tput out;wire nsel; wire sela; wire selb;endmodule类型定义(内部变量声明)outabsel微电子中心微电子中心电子设计自动化基础电子设计自动化基础402.1.1 模块化结构第2章 Verilog基本语法 一、Verilog是模块化语言1) Verilog模块结构完全嵌在模块结构完全嵌在module 和和endmodule声明语句之间;声明语句之间;从上面的例子可以看出:从上面的例子可以看出:2) Verilog程序包括四个主要部分:程序包括四个主要部分:端口定义端口定义、I/O说明说明、内部信号声明内部信号声明、功能定义功能定义。微电子中心微电

18、子中心电子设计自动化基础电子设计自动化基础412.1.2 Verilog的抽象级别第2章 Verilog基本语法 一、Verilog是模块化语言(1)系统级(system-level) 实现所设计模块的外部性能(2)算法级(algorithm-level) 实现算法运行的模型(3)RTL级(RTL-level) 描述数据在寄存器之间的流动和如何处理、控制这些流动的模型(4)门级(gate-level) 描述逻辑门与逻辑门之间连接的模型。(5)开关级(switch-level) 描述器件中三极管和储存节点以及它们之间连接的模型。微电子中心微电子中心电子设计自动化基础电子设计自动化基础422.1.

19、3 建模的两种描述方式第2章 Verilog基本语法 一、Verilog是模块化语言使用Verilog语言为硬件建模有两种描述方式:(1)行为描述方式behavior description叙述所设计电路的行为方式,功能方式。使用现有的功能去搭建更复杂的功能模块。 (2)结构描述方式structure description微电子中心微电子中心电子设计自动化基础电子设计自动化基础432.1.3 建模的两种描述方式第2章 Verilog基本语法 一、Verilog是模块化语言(1)行为描述方式outabselmodule mux21 (out, a, b, sel);input a,b,sel;

20、output out; reg out;always (sel or a or b) begin if (!sel) out = a;else out = b;endendmodule微电子中心微电子中心电子设计自动化基础电子设计自动化基础442.1.3 建模的两种描述方式第2章 Verilog基本语法 一、Verilog是模块化语言(2)结构描述方式module mux21 (out, a, b, sel);input a,b,sel;output out;wire nsel; wire sela; wire selb;endmoduleabseloutnselselaselboutabse

21、l微电子中心微电子中心电子设计自动化基础电子设计自动化基础452.1.3 建模的两种描述方式第2章 Verilog基本语法 一、Verilog是模块化语言(2)结构描述方式module mux31 (out, a, b, c, sel0 , sel1);input a,b,c,sel0,sel1;output out; wire out;mux21 mux21_1 (.out(temp), .a(a), .b(b), .sel(sel0);mux21 mux21_2 (.out(out), .a(temp), .b(c), .sel(sel1);endmodulemuxthreeabsel0c

22、sel1outtempaboutselaboutsel微电子中心微电子中心电子设计自动化基础电子设计自动化基础462.1.3 建模的两种描述方式第2章 Verilog基本语法 一、Verilog是模块化语言(2)结构描述方式结构描述方式?门级描述?module mux21 (out, a, b, sel);input a,b,sel;output out;wire nsel; wire sela; wire selb;endmoduleabseloutnselselaselboutabsel微电子中心微电子中心电子设计自动化基础电子设计自动化基础472.1.3 建模的两种描述方式第2章 Ver

23、ilog基本语法 一、Verilog是模块化语言(2)结构描述方式module block1(a, b, c, d, e);input a, b, c;output d, e; assign d = a | ( b & c) ;assign e = ( b & c ); endmodule这个描述是结构描述方式?微电子中心微电子中心电子设计自动化基础电子设计自动化基础48mux31absel0csel1outtempaboutselaboutselmux21_1mux21_22.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言module m

24、ux31 (out, a, b, c, sel0 , sel1);input a,b,c,sel0,sel1;output out; wire out;muxtwo mux21_1 (.out(temp), .a(a), .b(b), .sel(sel0);muxtwo mux21_2 (.out(out), .a(temp), .b(c), .sel(sel1);endmoduleabseloutnselselaselb微电子中心微电子中心电子设计自动化基础电子设计自动化基础492.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言层次化的命名方法: mux

25、31.tempmuxthree.mux21_1.u2;mux31absel0csel1outtempaboutselaboutselmux21_1mux21_2abseloutnselselaselb微电子中心微电子中心电子设计自动化基础电子设计自动化基础50ti15tmbU1U3ti2t01ti3mi1mi2bi1bi26mo1bo1bU2bi1bi2bo15mi3module b(bi1,bi2,bo1);input bi1, bi2;output bo1;wire bo1;assign bo1 = bi1 & bi2;endmodulemodule m(mi1,mi2,mi3,

26、mo1);input mi1, mi2; input 4:0 mi3;output 5:0 mo1;reg 5:0 mo1;b u1(); b u2();always (xxx) mo1 = xxx;endmodule2.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言module t(ti1,ti2,ti3, to1);input 4:0 ti3; input ti1,ti2; output to1;endmodulemodule t(ti1,ti2,ti3, to1);input 4:0 ti3; input ti1,ti2; output to1;re

27、g my_mi1, my_mi2;wire 5:0 my_mo1;m u3 (.mi1(), .mi2(), .mo1(my_mo1);endmodule微电子中心微电子中心电子设计自动化基础电子设计自动化基础512.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言Synopsys Design Objects: Verilog Perspective微电子中心微电子中心电子设计自动化基础电子设计自动化基础522.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言Synopsys Design Objects: Verilo

28、g Perspectivemodule mux31 (out, a, b, c, sel0 , sel1);input a,b,c,sel0,sel1;output out; wire out;muxtwo muxtwo1 (.out(temp), .a(a), .b(b), .sel(sel0);muxtwo muxtwo2 (.out(out), .a(temp), .b(c), .sel(sel1);endmodule微电子中心微电子中心电子设计自动化基础电子设计自动化基础532.1.4 模块的层次结构第2章 Verilog基本语法 一、Verilog是模块化语言Synopsys Des

29、ign Objects: Verilog Perspective微电子中心微电子中心电子设计自动化基础电子设计自动化基础542.1.5 Verilog模块小结第2章 Verilog基本语法 一、Verilog是模块化语言 1) Verilog程序是由模块构成的,模块是可进行层次嵌套。 2) 每个模块要进行端口定义,并说明输入输出端口, 然后对模块的功能进行行为逻辑描述。 3) Verilog程序的书写格式自由,一行可以写几个语句, 一个语句也可以分写在多行。 4) 除了endmodule语句外, 每个语句和数据定义的最后必须有分号 5) 可以用/*.*/和/.对Verilog HDL程序的任何

30、部分作注释。微电子中心微电子中心电子设计自动化基础电子设计自动化基础552.1.6 Verilog的基本单元(primitives)第2章 Verilog基本语法 一、Verilog是模块化语言Verilog基本单元提供基本的逻辑功能,基本单元提供基本的逻辑功能,这些逻辑功能是预定义的,用户不需要再定义这这些逻辑功能是预定义的,用户不需要再定义这些基本功能。些基本功能。基本单元是基本单元是Verilog开发库的一部分。开发库的一部分。基本单元库是自下而上的设计方法的一部分。基本单元库是自下而上的设计方法的一部分。微电子中心微电子中心电子设计自动化基础电子设计自动化基础562.1.6 Veril

31、og的基本单元(primitives)第2章 Verilog基本语法 一、Verilog是模块化语言基本单元名称基本单元名称功能功能andornotbufxornandnorxnor Logical And Logical Or Inverter Buffer Logical Exclusive Or Logical And Inverted Logical Or Inverted Logical Exclusive Or Inverted微电子中心微电子中心电子设计自动化基础电子设计自动化基础572.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语

32、言 端口可扩展性1、除了、除了not和和buf的所有基本门可以有多个输入,的所有基本门可以有多个输入, 但只能有一个输出。但只能有一个输出。2、not和和buf门可以有多个输出,但只能有一个门可以有多个输出,但只能有一个 输入。输入。微电子中心微电子中心电子设计自动化基础电子设计自动化基础582.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 端口可扩展性端口可扩展性基本单元引脚的数目由连接到门上的基本单元引脚的数目由连接到门上的net的数量决定。的数量决定。因此当基本单元输入或输出的数量变化时用户不需要重定因此当基本

33、单元输入或输出的数量变化时用户不需要重定义一个新的逻辑功能。义一个新的逻辑功能。微电子中心微电子中心电子设计自动化基础电子设计自动化基础592.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 带条件的基本单元带条件的基本单元Verilog采用的四值逻辑系统采用的四值逻辑系统0, Low, False, Logic Low, Ground, VSS, Negative Assertion1, High, True, Logic High, Power,VDD, VCC, Positive AssertionX Unknown: Occ

34、urs at Logical Which Cannot be Resolved ConflictHiZ, High Impedance, Tri- Stated,Disabled Driver (Unknown)微电子中心微电子中心电子设计自动化基础电子设计自动化基础602.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 带条件的基本单元带条件的基本单元Verilog有四种不同类型的条件有四种不同类型的条件基本单元基本单元这四种基本单元只能有三个这四种基本单元只能有三个port:output, input, enable这些单元由这

35、些单元由enable端口使能。端口使能。n当基本单元使能信号无效时,输出高阻态。当基本单元使能信号无效时,输出高阻态。基本单元名称 功能bufif1 条件缓冲器,逻辑条件缓冲器,逻辑 1 使能使能bufif0 条件缓冲器,逻辑条件缓冲器,逻辑 0 使能使能notif1 条件反相器,逻辑条件反相器,逻辑 1 使能使能notif0 条件反相器,逻辑条件反相器,逻辑 1 使能使能微电子中心微电子中心电子设计自动化基础电子设计自动化基础612.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 带条件的基本单元带条件的基本单元条件条件基本单元有

36、三个端口:输出、数据输入、使能输入基本单元有三个端口:输出、数据输入、使能输入微电子中心微电子中心电子设计自动化基础电子设计自动化基础622.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 基本单元的实例化(基本单元的实例化(instance)(1)在端口列表中,先说明输出端口,然后是输入端口)在端口列表中,先说明输出端口,然后是输入端口 位置对应法位置对应法 and u1 (sa, sel, a); (2)实例化时实例的名字是可选项)实例化时实例的名字是可选项 and (out, in1, in2, in3, in4); / un

37、named instance buf b1 (out1, out2, in); / named instance(3)延时说明是可选项。所说明的延时是固有延时,输出信号经过所说明的延)延时说明是可选项。所说明的延时是固有延时,输出信号经过所说明的延时才变化;没有说明时延时为时才变化;没有说明时延时为0。 notif0 #3 n1 (out, in, cntrl); / delay specified微电子中心微电子中心电子设计自动化基础电子设计自动化基础632.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 基本单元的实例化(基本单

38、元的实例化(instance)module intr_sample; reg A; wire Y; not #10 intrinsic (Y, A); initial begin A = 0; #15 A = 1; #15 A = 0; #8 A = 1; #8 A = 0; #11 A = 1; #10 $finish; endendmodule仿真波形仿真波形固有延时固有延时微电子中心微电子中心电子设计自动化基础电子设计自动化基础642.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 模块的实例化模块的实例化(1)模块实例化时实

39、例)模块实例化时实例必须必须有一个名字。有一个名字。 使用位置映射时,端口次序与模块的说明相同。使用位置映射时,端口次序与模块的说明相同。 使用名称映射时,端口次序与位置无关使用名称映射时,端口次序与位置无关(2)没有连接的输入端口初始化值为)没有连接的输入端口初始化值为x, 所以对于不关心的输入端口通常应连作所以对于不关心的输入端口通常应连作无效值无效值。微电子中心微电子中心电子设计自动化基础电子设计自动化基础652.1.6 Verilog的基本单元第2章 Verilog基本语法 一、Verilog是模块化语言 模块的实例化模块的实例化module comp (o1, o2,

40、i1, i2); output o1, o2; input i1, i2; . . .endmodulemodule test; comp c1 (Q, R, J, K); / Positional mapping comp c2 (.i2(K), .o1(Q), .o2(R), .i1(J); / Named mapping comp c3 (Q, , J, K); / One port left unconnected comp c4 (.i1(J), .o1(Q); / Named, two unconnected portsendmodule名称映射的语法:名称映射的语法:.内部信号(

41、外部信号)内部信号(外部信号)没有连接时通常会产生警告没有连接时通常会产生警告微电子中心微电子中心电子设计自动化基础电子设计自动化基础66第2章 Verilog基本语法一、Verilog是模块化语言二、数据类型、运算符三、行为建模微电子中心微电子中心电子设计自动化基础电子设计自动化基础67第2章 Verilog基本语法 二、数据类型、运算符 术语定义术语定义 注释注释 常量常量 特殊符号特殊符号 标志符标志符 数据类型数据类型 运算符运算符1235467微电子中心微电子中心电子设计自动化基础电子设计自动化基础682.2.1 术语定义第2章 Verilog基本语法 二、数据类型、运算符空白符:空

42、白符: 空格、空格、Tabs及换行及换行Identifier: 标志符,标志符,Verilog中对象(如模块或端中对象(如模块或端 口)的名字口)的名字Lexical:语言中的字或词汇。:语言中的字或词汇。LSB:最低有效位:最低有效位(Least Significant Bit)MSB:最高有效位:最高有效位(Most Significant Bit)微电子中心微电子中心电子设计自动化基础电子设计自动化基础69第2章 Verilog基本语法 二、数据类型、运算符 术语定义术语定义 注释注释 常量常量 特殊符号特殊符号 标志符标志符 数据类型数据类型 运算符运算符1235467微电子中心微电子

43、中心电子设计自动化基础电子设计自动化基础702.2.2 注释第2章 Verilog基本语法 二、数据类型、运算符module mux21(out, a, b, sel); / Port declarations output out; input sel, / control input b, /* data inputs */ a; /* The netlist logic selects input ”a” when sel = 0 and it selects ”b” when sel = 1. */ not u1(nsel, sel); and u2(a1, a, nsel); / W

44、hat does this line do? and u3(b1, b, sel); or u4(out, a1, b1);endmoduleVerilog格式自由格式自由使用空白符可提高可读性及代码使用空白符可提高可读性及代码组织。组织。Verilog忽略空白符除非用于分开忽略空白符除非用于分开其它的语言标记。其它的语言标记。微电子中心微电子中心电子设计自动化基础电子设计自动化基础71第2章 Verilog基本语法 二、数据类型、运算符 术语定义术语定义 注释注释 常量常量 特殊符号特殊符号 标志符标志符 数据类型数据类型 运算符运算符1235467微电子中心微电子中心电子设计自动化基础电子

45、设计自动化基础722.2.3 常量第2章 Verilog基本语法 二、数据类型、运算符整数常量和实数常量整数常量和实数常量整数表示为:整数表示为: 其中其中 size :大小,由二进制数表示的位数大小,由二进制数表示的位数(bit)表示。缺省为表示。缺省为32位位 base:数基,可为数基,可为2(b)、8(o)、10(d)、16(h)进制。缺省为进制。缺省为10进制进制 value:是所选数基内任意有效数字,包括是所选数基内任意有效数字,包括X、Z。实数常量可以用十进制或科学表示法表示。实数常量可以用十进制或科学表示法表示。科学表示法表示方式:科学表示法表示方式: , 表示:表

46、示: 尾数尾数10指数指数Note(对于整数常量):(对于整数常量):(1)数字中()数字中(_)忽略,便于查看)忽略,便于查看(2)数基)数基(base) 字母无大小写之分字母无大小写之分微电子中心微电子中心电子设计自动化基础电子设计自动化基础732.2.3 常量第2章 Verilog基本语法 二、数据类型、运算符整数常量和实数常量整数常量和实数常量12 unsized decimal (zero-extended to 32 bits)h83a unsized hexadecimal (zero- extended to 32 bits)8b1100_ 0001 8-bit

47、binary64hff01 64-bit hexadecimal (zero- extended to 64 bits)9o17 9-bit octal32bz01x Z-extended to 32 bits3b1010_ 1101 3-bit number, truncated to 3b1016.3 decimal notation32e- 4 scientific notation for 0.00324.1E3 scientific notation for 4100微电子中心微电子中心电子设计自动化基础电子设计自动化基础742.2.3 常量第2章 Verilog基本语法 二、数据类

48、型、运算符 字符串字符串Verilog中没有字符串数据类型,字符串大多用于显示信息中没有字符串数据类型,字符串大多用于显示信息的命令中。的命令中。1)字符串要在一行中用双引号括起来,也就是不能跨行。)字符串要在一行中用双引号括起来,也就是不能跨行。”This is a normal string”2)字符串中可以使用转义)字符串中可以使用转义(escape)符,如符,如t n”This string has a t tab and ends with a new linen”3)可以使用格式符)可以使用格式符(如如%b)在仿真时产生格式化输出:在仿真时产生格式化输出:”This

49、string formats a value: val = %b”微电子中心微电子中心电子设计自动化基础电子设计自动化基础752.2.3 常量第2章 Verilog基本语法 二、数据类型、运算符 字符串字符串格式符格式符%h%o%d%b%c%s%v%m%thexoctdecbinACSIIstringstrengthmoduletime转义符转义符tn”tab换行反斜杠双引号ASCII representation of above格式符%0d表示没有前导0的十进制数微电子中心微电子中心电子设计自动化基础电子设计自动化基础76第2章 Verilog基本语法 二、数据类型、运算符

50、术语定义术语定义 注释注释 常量常量 特殊符号特殊符号 标志符标志符 数据类型数据类型 运算符运算符1235467微电子中心微电子中心电子设计自动化基础电子设计自动化基础772.2.4 标志符第2章 Verilog基本语法 二、数据类型、运算符 合法的标志符合法的标志符1)标识符是用户在描述时给)标识符是用户在描述时给Verilog对象起的名字对象起的名字2)标识符必须以字母)标识符必须以字母(a-z, A-Z)或或( _ )开头,后面可以是开头,后面可以是字字 母、数字或母、数字或_。3)最长可以是)最长可以是1023个字符个字符4)标识符区分大小写,)标识符区分大小写,sel

51、和和SEL是不同的标识符是不同的标识符module mux21 (out, a, b, sel); output out; input a, b, sel; not not1 (nsel, sel); and and1 (a1, a, nsel); and and2 (b1, b, sel); or or1 (out, a1, b1);endmodule微电子中心微电子中心电子设计自动化基础电子设计自动化基础782.2.4 标志符第2章 Verilog基本语法 二、数据类型、运算符 合法的标志符合法的标志符有效标识符举例:有效标识符举例: shift_reg_a busa_ind

52、ex _bus3无效标识符举例:无效标识符举例: 34net / 开头不是字母或开头不是字母或_ a*b_net / 包含了非字母包含了非字母,数字或数字或_ n238 / 包含了非字母包含了非字母,数字或数字或_Verilog区分大小写,所有区分大小写,所有Verilog关键词使用小写字母。关键词使用小写字母。微电子中心微电子中心电子设计自动化基础电子设计自动化基础792.2.4 标志符第2章 Verilog基本语法 二、数据类型、运算符 转义标志符转义标志符1 1)转义标识符是用)转义标识符是用 “ “” ” 符开始,符开始,以空格符结束以空格符结束的标识符。它的标识符。它可

53、以包含任何可打印的可以包含任何可打印的ASCIIASCII字符。字符。2 2)但)但“”符和空格并不算是标识符的一部分。符和空格并不算是标识符的一部分。3 3)转义标识符往往是由)转义标识符往往是由RTLRTL级源代码或电路图类型的设计输入经级源代码或电路图类型的设计输入经过综合器过综合器自动综合生成的网表结构型自动综合生成的网表结构型Verilog Verilog 语句中的标识符语句中的标识符。举例说明:举例说明:#sel , carry3 , A,B ,#sel , carry3 , A,B ,Top.3inst .net1 , Top.3inst .net1 , /在层次模块中的标识名微

54、电子中心微电子中心电子设计自动化基础电子设计自动化基础802.2.4 标志符第2章 Verilog基本语法 二、数据类型、运算符 转义标志符转义标志符微电子中心微电子中心电子设计自动化基础电子设计自动化基础81第2章 Verilog基本语法 二、数据类型、运算符 术语定义术语定义 注释注释 常量常量 特殊符号特殊符号 标志符标志符 数据类型数据类型 运算符运算符1235467微电子中心微电子中心电子设计自动化基础电子设计自动化基础822.2.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 #特殊符号特殊符号 “ “#” #” 常用来表示延迟

55、:常用来表示延迟:1 1)在过程赋值语句时表示延迟。)在过程赋值语句时表示延迟。例:initial begin #10 rst=1; #50 rst=0; end2 2)在门级实例引用时表示延迟。)在门级实例引用时表示延迟。例: not #1 not1(nsel, sel); and #2 and2(a1, a, nsel);3 3)在模块实例引用时表示参数传递)在模块实例引用时表示参数传递微电子中心微电子中心电子设计自动化基础电子设计自动化基础832.2.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 $符号指示这是系统任务和函数符号指示这是系统任务和

56、函数例如:例如:$finish$stop微电子中心微电子中心电子设计自动化基础电子设计自动化基础842.2.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 编译指导编译指导(Compiler Directives) 符号说明一个编译指导符号说明一个编译指导这些编译指导使仿真编译器进行一些特殊的操作这些编译指导使仿真编译器进行一些特殊的操作编译指导一直保持有效直到被覆盖或解除编译指导一直保持有效直到被覆盖或解除resetall复位所有的编译指导为缺省值,应该在其它复位所有的编译指导为缺省值,应该在其它编译指导之前使用编译指导之前使用微电子中心微电子中心电子

57、设计自动化基础电子设计自动化基础852.2.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 编译指导编译指导(Compiler Directives) 1)文本替换)文本替换(substitution) - definedefine提供了一种简单的文本替换的功能提供了一种简单的文本替换的功能在编译时在编译时替换替换。可提高描述的可读性。可提高描述的可读性。define define not_delay #1define and_delay #2define or_delay #1module mux21 (out, a, b, sel); output

58、out; input a, b, sel; not not_delay not1( sel_, sel); and and_delay and1( a1, a, sel_); and and_delay and2( b1, b, sel); or or_delay or1( out, a1, b1);endmodule使用使用not_delay定义定义not_delay #1 #2 #2 #1微电子中心微电子中心电子设计自动化基础电子设计自动化基础86n解除定义的宏,使用解除定义的宏,使用 undef macro_namen使用编译指导使用编译指导define,可以,可以n提高描述的可读性提高

59、描述的可读性n定义全局设计参数,如延时和矢量的位数。这些参数可以定义在同一定义全局设计参数,如延时和矢量的位数。这些参数可以定义在同一位置。这样,当要修改设计配置时,只需要在一个地方修改。位置。这样,当要修改设计配置时,只需要在一个地方修改。n定义定义Verilog命令的简写形式命令的简写形式 define vectors_ file /usr1/chrisz/library/vectors define results_ file / usr1/chrisz/library/resultsn可以将可以将define放在一个文件中,与其它文件一起编译。放在一个文件中,与其它文件一起编译。2.2

60、.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 编译指导编译指导(Compiler Directives) 1)文本替换)文本替换(substitution) - define微电子中心微电子中心电子设计自动化基础电子设计自动化基础872.2.5 特殊符号特殊符号第2章 Verilog基本语法 二、数据类型、运算符 编译指导编译指导(Compiler Directives) 2)文本包含)文本包含(inclusion) - includen编译指导编译指导include在当前内容中插入一个文件在当前内容中插入一个文件 格式:格式: include “”如如in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论