Verilog_HDL_课件课件_第1页
Verilog_HDL_课件课件_第2页
Verilog_HDL_课件课件_第3页
Verilog_HDL_课件课件_第4页
Verilog_HDL_课件课件_第5页
已阅读5页,还剩281页未读 继续免费阅读

下载本文档

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

文档简介

1、Verilog 数字系统设计教程数字系统设计教程EDA技术技术一、一、EDA技术课程简介技术课程简介 EDA技术是电气类本科专业基础课,属必修课程。技术是电气类本科专业基础课,属必修课程。EDA (Electronic Design Automation,电子设计自动化,电子设计自动化) 技术技术是指设计者可以利用计算机以及相关应用软件完成电子系统是指设计者可以利用计算机以及相关应用软件完成电子系统的设计工作。电子设计自动化(的设计工作。电子设计自动化(EDA)技术是一个广泛的概)技术是一个广泛的概念,凡在电子设计过程中用到计算机辅助手段的相关步骤都念,凡在电子设计过程中用到计算机辅助手段的相

2、关步骤都可作为可作为EDA的组成部分。电子系统的设计已经无法脱离的组成部分。电子系统的设计已经无法脱离EDA工具的支持,并且依赖性越来越强。掌握工具的支持,并且依赖性越来越强。掌握EDA技术已经成为技术已经成为现代电子设计的基本技能。现代电子设计的基本技能。 常用常用EDA软件有软件有Max+plus、Quartus、Protel 99SE和和EWB等。等。 EDA技术课程介绍技术课程介绍二、二、EDA技术课程内容技术课程内容1、HDL硬件描述语言硬件描述语言2、大规模可编程逻辑器件(、大规模可编程逻辑器件(CPLD/FPGA) 设计设计3、EWB电子线路仿真电子线路仿真4、Protel99电

3、路设计与制板电路设计与制板三、课程内容三、课程内容 本课程主要学习本课程主要学习Verilog HDL硬件描述语言,通过学习硬件描述语言,通过学习能应用该语言进行数字系统的设计。能应用该语言进行数字系统的设计。 学习内容包括:学习内容包括: Verilog的基本知识的基本知识 Verilog语法的基本概念语法的基本概念 模块的结构、数据类型、变量和基本运算符号模块的结构、数据类型、变量和基本运算符号 运算符、赋值语句和结构说明语句运算符、赋值语句和结构说明语句 条件语句、循环语句、块语句与生成语句条件语句、循环语句、块语句与生成语句 结构语句、系统任务、函数语句和显示系统任务结构语句、系统任务

4、、函数语句和显示系统任务 调试用系统任务和常用编译预处理语句调试用系统任务和常用编译预处理语句 初级建模实例初级建模实例EDA技术简介技术简介一、一、EDA的基本概念的基本概念 电子设计自功化电子设计自功化(EDA:Electronic Design Automation)就是利用计算机作为工作平台进行电子自动化就是利用计算机作为工作平台进行电子自动化设计的一项技术。设计的一项技术。 电路设计与仿真电路设计与仿真系统设计与仿真系统设计与仿真PCB设计与校验设计与校验集成电路集成电路IC设计与测试设计与测试数字数字/模拟电路设计模拟电路设计嵌入式系统路设计嵌入式系统路设计数字数字/模拟电路设计模

5、拟电路设计专用集成电路设计专用集成电路设计可编程逻辑器件设计可编程逻辑器件设计EDA技术所涉及的范围:技术所涉及的范围: IP核是集成电路知识产权模块的简称,这里将其定义为:核是集成电路知识产权模块的简称,这里将其定义为:经过预先设计、预先验证,具有相对独立的功能可以重复经过预先设计、预先验证,具有相对独立的功能可以重复使用在使用在SOC(System on Chip)和复杂和复杂ASIC中的电路模块。中的电路模块。通常按照其在设计流通常按照其在设计流程中的位置将程中的位置将IP分为分为软核软核IP硬核硬核IP固核固核IP 软核软核IP(Soft IP)是用可综合硬件描述语言是用可综合硬件描述

6、语言HDL描述的描述的RTL级电路功能块。级电路功能块。 优点:设计周期短,设计投入少,与元器件的生产工艺优点:设计周期短,设计投入少,与元器件的生产工艺无关,增大了无关,增大了IP的灵活性和适应性,用户可对软核的功能及的灵活性和适应性,用户可对软核的功能及参数进行剪裁设置。参数进行剪裁设置。 缺点:在性能上缺点:在性能上(比如时序、面积、功耗等方面比如时序、面积、功耗等方面)有较大有较大的不可预知性。另外,有的软核的不可预知性。另外,有的软核IP 是受知识产权保护的。是受知识产权保护的。软核软核IP硬核硬核IP 硬核硬核IP(Hard IP)是经过布局、布线并针对某一特定工是经过布局、布线并

7、针对某一特定工艺库优化过的网表或是物理级版图,通常是艺库优化过的网表或是物理级版图,通常是GDS的文件的文件形式。形式。 特点:硬核特点:硬核IP在功耗、尺寸等方面部做了充分的优化。在功耗、尺寸等方面部做了充分的优化。硬核硬核IP可靠性高,有着很好的可预知性,能很快的投入使可靠性高,有着很好的可预知性,能很快的投入使用。但由于对工艺的依赖性使得其灵活性和可移植性都较用。但由于对工艺的依赖性使得其灵活性和可移植性都较差。差。固核固核IP 固核固核IP(Firm IP)是已经基于一般工艺库进行了综合和是已经基于一般工艺库进行了综合和布局布局IP核,通常以网表的形式提交客户使用。因此其在结构、核,通

8、常以网表的形式提交客户使用。因此其在结构、面积以及性能的安排上都已进行了优化。面积以及性能的安排上都已进行了优化。 特点:固核特点:固核IP提供了介于软核提供了介于软核IP和硬核和硬核IP之间的一个之间的一个折中方案。比起硬核折中方案。比起硬核IP。它具有较好的灵活性和可移植性。它具有较好的灵活性和可移植性。比起软核比起软核IP它又在性能和面积上有较好的可预知性。它又在性能和面积上有较好的可预知性。微处理微处理器核器核DSP核核USB接口核接口核RAM/ROM核核 上图为一个由微处理器核、数字信号处理器核、存储器上图为一个由微处理器核、数字信号处理器核、存储器核及核及USB接口核等接口核等IP

9、核构成一个片上系统(核构成一个片上系统(SOC)。用户设)。用户设计该系统时,可以自行设计各个功能模块,也可以用计该系统时,可以自行设计各个功能模块,也可以用IP模块模块来构建。来构建。基于基于IP核构成的片上系统核构成的片上系统二、二、EDA的发展概况的发展概况一般认为,一般认为,EDA技术历经了三个发展阶段。技术历经了三个发展阶段。1. CAD阶段阶段2. CAE阶段阶段3. EDA阶段阶段(Computer Aided Design)(Computer Aided Engineering)( Electronic Design Automation )EDA技术的使用包括电子工程师进行电

10、子系统开发的全过程,以及进行技术的使用包括电子工程师进行电子系统开发的全过程,以及进行开发涉及的诸多方面。开发涉及的诸多方面。EDA工具工具系统级设计系统级设计寄存器传输级设计寄存器传输级设计(RTL)版图级设计版图级设计门级设计门级设计EDA工具工具混合电路设计混合电路设计综合与仿真综合与仿真系统级设计系统级设计数字电路设计数字电路设计版图设计版图设计PCB板设计板设计PLD开发开发高速电路设计高速电路设计模拟电路设计模拟电路设计三、三、EDA技术的特征技术的特征EDA技术的主要特征有:技术的主要特征有:(1)硬件采用工作站和)硬件采用工作站和PC机。大型机。大型EDA软件采用软件采用UNI

11、X和和Linux操作系统,而普通操作系统,而普通EDA软件采用软件采用windows操作系统。操作系统。(2)具有)具有IP核模块化设计和可重复利用功能。核模块化设计和可重复利用功能。IP核的规范核的规范化设计和化设计和EDA文档的兼容性,使得不同文档的兼容性,使得不同EDA软件可以相互软件可以相互兼容。兼容。(3)EDA技术采用高级硬件描述语言描述硬件结构、参数技术采用高级硬件描述语言描述硬件结构、参数和功能,具有系统仿真和综合能力。和功能,具有系统仿真和综合能力。2.可编程可编程(PLD)数字系统设计数字系统设计1.印制电路板印制电路板(PCB)设计设计3. IC设计设计(包含(包含FPG

12、A、CPLD、ISP、SOPC等)等)(包含定制(包含定制ASlC,SOC等)等)四、四、EDA应用范围应用范围数字数字IC设计设计模拟模拟IC设计设计 EDA软件的功能可以分为两个大类:设计工具和综合软件的功能可以分为两个大类:设计工具和综合工具。设计工具以人机接口环境为主,综合工具用以处理工具。设计工具以人机接口环境为主,综合工具用以处理设计目标。设计目标。五、五、EDA工具软件简介工具软件简介按使用目的来分:按使用目的来分:EDA软件软件PCB设计工具设计工具PLD设计工具设计工具IC设计工具设计工具按使用平台来分:按使用平台来分:PC机机(windowsLinux)版本版本工作站工作站

13、(UNIX)版本版本按照器件属性来分:按照器件属性来分:数字电路设计工具数字电路设计工具模拟电路设计工具模拟电路设计工具按照设计流程来分:按照设计流程来分:综合工具综合工具验证工具验证工具版图设计工具版图设计工具1. PCB设计工具设计工具 以印制电路板以印制电路板(PCB)为设计目标的设计工具是最基本为设计目标的设计工具是最基本的的EDA软件,国内最为常用的两个软件,国内最为常用的两个PCB软件是软件是Protel和和OrCAD 。2. PLD设计工具设计工具 专门用于专门用于PLD开发的工具一般选用器件开发商提供的开开发的工具一般选用器件开发商提供的开发系统,主要有:发系统,主要有:Alt

14、era公司公司MAX+Plus和和Quartus,Lattice公司的公司的ISPexpert/ispLEVER v3.0,Xinlinx公司的公司的ISE等,其中等,其中Altera公司的开发系统深受业界欢迎。公司的开发系统深受业界欢迎。 最为常用的是最为常用的是Altera公司公司MaxPlus和和Quartus、 Lattice公司的公司的ispLEVER以及以及Xinlinx公司的公司的ISE。 六、六、SOC 系统芯片系统芯片(SOC, System on a Chip)也称为片上系统,是指也称为片上系统,是指把一个完整的系统集成在一个芯片上。把一个完整的系统集成在一个芯片上。 在单

15、一硅芯片上集成在单一硅芯片上集成了数字电路、模拟电路、信号采集和转换电路、存储器、了数字电路、模拟电路、信号采集和转换电路、存储器、MCU、DSP等,实现了一个系统的功能。等,实现了一个系统的功能。SOC芯片芯片MCURAMROMDSPDACADCI/OFLASHUARTSOC芯片上实现信号采集、转换、存储、处理和芯片上实现信号采集、转换、存储、处理和I/O等功能。等功能。七、七、SOPC SOPC(System On a Programmable Chip)称为可编)称为可编程片上系统,它是基于可编程逻辑器件(程片上系统,它是基于可编程逻辑器件(FPGA/CPLD)可重)可重构的构的SOC。

16、 SOPC集成了硬核或软核集成了硬核或软核CPU、DSP、锁相环(、锁相环(PLL)、)、存储器、存储器、I/O接口及可编程逻辑,可以灵活高效的解决接口及可编程逻辑,可以灵活高效的解决SOC方方案,而且设计周期短、设计成本低,一般只需要一台配有案,而且设计周期短、设计成本低,一般只需要一台配有SOPC开发软件的开发软件的PC机和一台机和一台SOPC开发系统,就可以进行开发系统,就可以进行SOPC设计与开发。设计与开发。八、嵌入式系统八、嵌入式系统 嵌入式系统是指嵌入到对象体系中的专用计算机系统,嵌入式系统是指嵌入到对象体系中的专用计算机系统,包括硬件和软件两大部分。硬件包括处理器、存储器、包括

17、硬件和软件两大部分。硬件包括处理器、存储器、I/O接接口和外部设备等。软件包括系统软件和应用软件。口和外部设备等。软件包括系统软件和应用软件。 基于基于SOPC的嵌入式系统结构如图所示。的嵌入式系统结构如图所示。FPGAPIOCPU核核UARTTimerRAMROMPLLIP模块模块DSP存储器存储器LEDLCD键盘键盘通信口通信口 CPU核是嵌入式系统的核心,有硬核和软核之分。核是嵌入式系统的核心,有硬核和软核之分。 嵌入式微处理器软核比硬核使用更加灵活方便。可以根据需嵌入式微处理器软核比硬核使用更加灵活方便。可以根据需要配置输入要配置输入/输出接口(输出接口(PIO)、通信接口()、通信接

18、口(UART)、定时器、定时器(Timer)、片内随机存储器()、片内随机存储器(RAM)、片内只读存储器)、片内只读存储器(ROM),以及实现片内外通信的总线和总线控制器。),以及实现片内外通信的总线和总线控制器。嵌入式微处理器(嵌入式微处理器(CPU核)核)2. 嵌入式锁相环(嵌入式锁相环(PLL) 嵌入式锁相环可以提供先进的时钟管理功能,例如频率嵌入式锁相环可以提供先进的时钟管理功能,例如频率合成、可编程相移、片外时钟输出、可编程占空比、锁定检合成、可编程相移、片外时钟输出、可编程占空比、锁定检测、可编程带宽、输入时钟扩频和支持高速差分信号的输入测、可编程带宽、输入时钟扩频和支持高速差分

19、信号的输入和输出。和输出。3. 嵌入式数字信号处理器(嵌入式数字信号处理器(DSP) 基于基于SOPC技术的技术的FPGA芯片中包含上百个芯片中包含上百个9*9或或18*18位位的嵌入式乘法器,可以实现通用数字信号处理(的嵌入式乘法器,可以实现通用数字信号处理(DSP)功能。)功能。如如FIR滤波器、图像处理和视频处理等。滤波器、图像处理和视频处理等。4. 嵌入式嵌入式IP模块模块 除了可以嵌入以上模块外,还可嵌入其他一些常用数字除了可以嵌入以上模块外,还可嵌入其他一些常用数字电路、放大器、比较器、电路、放大器、比较器、ADC/DAC模块等。在模块等。在IP资源库中,资源库中,有些有些IP模块

20、是免费的,有些是付费。还有些可以用户自行设模块是免费的,有些是付费。还有些可以用户自行设计添加。计添加。PLD器件器件一、一、PLD发展历程发展历程熔丝编程的熔丝编程的PROM和和PLA器件器件 AMD公司公司推出推出PAL器件器件 GAL器件器件 FPGA器器件件 EPLD器器件件 CPLD器器件件 内嵌复杂内嵌复杂功能模块功能模块的的SoPC 二、二、PLD器件分类器件分类PLD简单低密度简单低密度PLD复杂高密度复杂高密度PLDPROMPLAPALGALCPLDFPGAEPLD按集成度来分,按集成度来分,PLD可分为简单低密度可分为简单低密度PLD和复杂高密度和复杂高密度PLD。一般将一

21、般将GAL22V10(500门门750门门 )作为简单)作为简单PLD和高密度和高密度PLD的分水岭的分水岭1.按集成度分类按集成度分类四种简单低密度四种简单低密度PLD的区别:的区别:2. 按编程特点分类按编程特点分类PLD器件按照可以编程的次数可以分为两类:器件按照可以编程的次数可以分为两类:(1) 一次性编程器件(一次性编程器件(OTP,One Time Programmable)(2) 可多次编程器件可多次编程器件OTP类器件的特点是:只允许对器件编程一次,不能修改,类器件的特点是:只允许对器件编程一次,不能修改,而可多次编程器件则允许对器件多次编程,适合于在科研开而可多次编程器件则允

22、许对器件多次编程,适合于在科研开发中使用。发中使用。3. 按编程元件和编程工艺分类按编程元件和编程工艺分类(1)熔丝(熔丝(Fuse)(2)反熔丝(反熔丝(Antifuse)编程元件)编程元件(3)紫外线擦除、电可编程,如紫外线擦除、电可编程,如EPROM。(4)电擦除、电可编程方式,电擦除、电可编程方式,(EEPROM) ),如多数),如多数CPLD(5)快闪存储器(快闪存储器(Flash Memory)(6)静态存储器(静态存储器(SRAM)结构,即采用)结构,即采用SRAM查找表结构,查找表结构,如多数如多数FPGA Altera公司的公司的FPGA/CPLD器件器件1. Stratix

23、 II 系列系列FPGA 2. Stratix系列系列FPGA 3. ACEX系列系列FPGA 4. FLEX系列系列FPGA 5. MAX系列系列CPLD 6. Cyclone系列系列FPGA低成本低成本FPGA 7. Cyclone II系列系列FPGA 8. MAX II系列器件系列器件 9. Altera宏功能块及宏功能块及IP核核 Altera MAX3000A系列的系列的EPM3128A CPLD开发板开发板 第一章第一章 Verilog 的基本知识的基本知识l1.1 1.1 硬件描述语言硬件描述语言HDLHDLl1.2 Verilog HDL1.2 Verilog HDL的历史的

24、历史l1.3 Verilog HDL1.3 Verilog HDL和和VHDLVHDL的产生及发展的产生及发展l1.4 Verilog1.4 Verilog目前的应用情况和适用的设计目前的应用情况和适用的设计l1.5 1.5 采用采用Verilog HDLVerilog HDL设计复杂数字电路的优点设计复杂数字电路的优点l1.6 Verilog HDL1.6 Verilog HDL的设计流程简介的设计流程简介l1.7 1.7 小结小结1.1 硬件描述语言硬件描述语言HDL1.1.概念:概念:硬件描述语言硬件描述语言HDLHDL(Hardware Description Hardware Des

25、cription LanguageLanguage)是一种形式化方法来描述数字电路和系统的语言。)是一种形式化方法来描述数字电路和系统的语言。 HDL是硬件设计人员和是硬件设计人员和EDA软件之间的界面,它主要用于算软件之间的界面,它主要用于算法级、门级到开关级的多种抽象设计层次的数字系统的建模。法级、门级到开关级的多种抽象设计层次的数字系统的建模。2.HDL功能功能:HDL功能功能数字系统仿真、验证数字系统仿真、验证数字系统设计、综合数字系统设计、综合IEEE标准标准Verilog HDLVHDL 3. HDL两种国际标准:两种国际标准:VHDL全称为全称为 VHSIC Hardware D

26、escription Language,其中其中VHSIC为为Very High Speed Integerated Circuit。VHDL中文译名为甚高速集成电路的硬件描述语言。中文译名为甚高速集成电路的硬件描述语言。4. 为什么要用为什么要用HDL 比起传统的原理图设计方法来说,比起传统的原理图设计方法来说,HDL有许多优点,主有许多优点,主要有:要有: (1)用用HDL设计电路能够获得非常抽象级的描述。设计者设计电路能够获得非常抽象级的描述。设计者在电路设计时不必考虑工艺实现的具体细节。在电路设计时不必考虑工艺实现的具体细节。 (2)用用HDL描述电路设计,在设计的前期就可以完成电路描

27、述电路设计,在设计的前期就可以完成电路功能级的验证。功能级的验证。 (3)用用HDL设计电路类似于计算机编程。带有注解的文字设计电路类似于计算机编程。带有注解的文字性描述更有利于电路的开发与调试。性描述更有利于电路的开发与调试。1.2 Verilog HDL的历史的历史1.2.1 什么是什么是Verilog HDL Verilog HDL是硬件描述语言的一种,用于数字系统设是硬件描述语言的一种,用于数字系统设计。设计者可用它进行各种级别的逻辑设计,可用它进行计。设计者可用它进行各种级别的逻辑设计,可用它进行数字逻辑系统的仿真验证、时序分析、逻辑综合。数字逻辑系统的仿真验证、时序分析、逻辑综合。

28、 Verilog-XL诞生诞生 20世纪世纪80年代年代Candence公司公司购买购买Verilog版权版权1989Verilog HDL公开发表公开发表1990Verilog HDL移交给移交给OVI19901999模拟和数字都模拟和数字都适用的适用的Verilog标准公开发表标准公开发表Verilog IEEE1364-1995标准公布标准公布19952005Verilog IEEE1364-2005标准公布标准公布Verilog IEEE1364-2001标准公布标准公布20011.3 Verilog HDL和和VHDL的比较的比较共同点共同点能形式化的抽象表示电路的行为和结构;能形式

29、化的抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。便于文档管理;易于理解和设计重用。区别区别Verilog拥有更广泛的设计群体,成熟的资拥有更广泛的设计群体,成熟的资源也比源也比VHDL丰富;丰富;与与VHDL相比,相比,Veril

30、og HDL容易掌握,与容易掌握,与C语言类似。语言类似。Verilog在系统级抽象方面比在系统级抽象方面比VHDL略差一些,略差一些,而在门级开关电路描述方面比而在门级开关电路描述方面比VHDL强的多。强的多。 VHDL VITAL开关电路级开关电路级逻辑门级逻辑门级寄存器传输级寄存器传输级算法级算法级系统级系统级Verilog图图1.1.2 Verilog HDL与与VHDL建模能力的比较建模能力的比较1.4 Verilog目前的应用情况和适用的设计目前的应用情况和适用的设计 学习硬件描述语言的设计方法,首选学习硬件描述语言的设计方法,首选Verilog HDL。Verilog HDL适用

31、的描述层次:适用的描述层次:1、系统级(、系统级(System)2、算法级(、算法级(Alogrthem)3、寄存器传输级(、寄存器传输级(RTL)4、逻辑级(、逻辑级(Logic)5、门级(、门级(Gate)6、电路开关级(、电路开关级(Switch) System Verilog是是Verilog语言的扩展和延伸,适用于可语言的扩展和延伸,适用于可重用的可综合重用的可综合IP和可重用的验证用的和可重用的验证用的IP设计,以及特大型设计,以及特大型(千万门级以上)基于(千万门级以上)基于IP的系统级设计和验证。的系统级设计和验证。1.5 采用采用Verilog HDL设计复杂数字电路的优点设

32、计复杂数字电路的优点电路的两种基本计算机输入方式:电路的两种基本计算机输入方式:原理图输入原理图输入 (早期使用)(早期使用)硬件描述语言输入硬件描述语言输入原理图设计方法原理图设计方法 : 1.查器件手册查器件手册 2.选择器件选择器件 3.在面包板实验、设计线路板在面包板实验、设计线路板 4.调试、定型调试、定型语言输入与原理图输入方式相比的优点:语言输入与原理图输入方式相比的优点:1、容易把设计移植到不同厂家的不同芯片中去(最大优点、容易把设计移植到不同厂家的不同芯片中去(最大优点是其与工艺无关性);是其与工艺无关性);2、信号位数容易修改,可以很方便的适应不同规模的应用;、信号位数容易

33、修改,可以很方便的适应不同规模的应用;3、Verilog HDL综合器生成标准的电子设计互换格式综合器生成标准的电子设计互换格式(EDIF)文件,独立于所采用的实现工艺,方便文档交换)文件,独立于所采用的实现工艺,方便文档交换与保存;与保存;4、 IP (完成某种功能的设计模块)核重用。(完成某种功能的设计模块)核重用。l软核软核-功能经过验证的、可综合的、实现后电路结构总功能经过验证的、可综合的、实现后电路结构总门数在门数在5000门以上的门以上的Verilog HDL模型。模型。l固核固核-在某一种现场可编程门阵列(在某一种现场可编程门阵列(FPGA)器件上实)器件上实现的,经验证是正确的

34、总门数在现的,经验证是正确的总门数在5000门以上电路结构编码门以上电路结构编码文件。文件。l硬核硬核-在某一种专用半导体集成电路工艺的(在某一种专用半导体集成电路工艺的(ASIC)器件上实现的经验证是正确的总门数在器件上实现的经验证是正确的总门数在 5000门以上的电路门以上的电路结构掩膜。结构掩膜。 1.6 Verilog HDL的设计流程的设计流程1.6.1 Verilog HDL设计方法设计方法Verilog HDL的设计方法主要有两种:的设计方法主要有两种: 自下向上(自下向上(Bottom-Up)的设计方法)的设计方法 自上向下(自上向下(Top-down)的设计方法)的设计方法1

35、.自下向上(自下向上(Bottom-Up)的设计方法)的设计方法系统分解系统分解单元设计单元设计功能块划分功能块划分子系统设计子系统设计系统合成系统合成优点:优点:1.传统设计方法传统设计方法 2.设计子单元电路时间较短设计子单元电路时间较短缺点:缺点:1.容易造成对系统整体功能把握不足容易造成对系统整体功能把握不足 2.必须先完成各个子模块,实现整个系统必须先完成各个子模块,实现整个系统 需较长时间。需较长时间。 3. 对设计人员之间协作要求较高对设计人员之间协作要求较高2. 自顶向下(自顶向下(Top_Down)的设计方法)的设计方法行为设计行为设计结构设计结构设计电路设计电路设计逻辑设计

36、逻辑设计版图设计版图设计 先对整个系统进行方案设计和功能划分,先对整个系统进行方案设计和功能划分,把系统划分成基本单元,然后再把每个基本把系统划分成基本单元,然后再把每个基本单元划分为下一个层次的基本单元,指导可单元划分为下一个层次的基本单元,指导可以直接用元件库中的元件来实现为止。以直接用元件库中的元件来实现为止。优点:优点:1.设计周期初期做好了系统分析设计周期初期做好了系统分析 2.设计的仿真和调试在早期完成,避设计的仿真和调试在早期完成,避免了设计工作的浪费。免了设计工作的浪费。 3. 方便了从系统划分到管理整个项目,方便了从系统划分到管理整个项目,使得超大规模复杂数字电路的设计成为可

37、能。使得超大规模复杂数字电路的设计成为可能。缺点:缺点:1.因采用的综合工具不同,得到的最因采用的综合工具不同,得到的最小单元不一致。小单元不一致。 2.制造成本高。制造成本高。系统级设计系统级设计模块模块B模块模块A模块模块A1模块模块A3模块模块A2模块模块B1模块模块B2模块模块C模块模块C1模块模块C3模块模块C2Top-Down设计思想设计思想模块与系统的关系:模块与系统的关系: 用用Verilog HDL设计有点像搭积木,每个模块都是一设计有点像搭积木,每个模块都是一个积木块,不同的积木块有不同的功能要求(不同模块要个积木块,不同的积木块有不同的功能要求(不同模块要实现不同的功能)

38、,制作每个积木块的过程就是模块编程,实现不同的功能),制作每个积木块的过程就是模块编程,最后把积木块(模块)搭在一起完成整个系统设计。最后把积木块(模块)搭在一起完成整个系统设计。 一个复杂的系统,可以划分成多个小的功能模块。因一个复杂的系统,可以划分成多个小的功能模块。因此系统设计可以按下面此系统设计可以按下面3步进行:步进行:l把系统划分成模块;把系统划分成模块;l规划各个模块的接口;规划各个模块的接口;l对模块编程并连接各模块完成系统设计。对模块编程并连接各模块完成系统设计。1.6.2 HDL设计流程设计流程HDL描述电路描述电路逻辑综合、适配逻辑综合、适配软件模拟和仿真软件模拟和仿真结

39、构满意结构满意功能划分功能划分编程下载编程下载YN结构满意结构满意NY综合综合是指将高层次的设计描述自动转化为较低层次描述的是指将高层次的设计描述自动转化为较低层次描述的过程。过程。综合(综合(Synthesis)行为综合:行为描述(行为综合:行为描述(HDL描述)转换到描述)转换到RTL级描述级描述逻辑综合:逻辑综合:RTL级描述转换到逻辑门级级描述转换到逻辑门级版图综合版图综合(结构综合结构综合) :逻辑门级转换到版图或配置网表:逻辑门级转换到版图或配置网表形式形式综合器综合器是将原理图或是将原理图或HDL描述的电路功能转化为具体电路结描述的电路功能转化为具体电路结构网表的工具。构网表的工

40、具。适配(适配(Fitter)适配器适配器也称结构综合器,功能是将由综合器产生的网表文件也称结构综合器,功能是将由综合器产生的网表文件配置于指定的目标器件中(进行逻辑映射操作),并产生最配置于指定的目标器件中(进行逻辑映射操作),并产生最终的可下载文件。终的可下载文件。 CPLD产生熔丝图文件,即产生熔丝图文件,即JEDEC/POF文件文件 FPGA产生产生Bitstream位流数据文件位流数据文件适配器多由适配器多由FPGA/CPLD生产商提供,因为适配的过程直接生产商提供,因为适配的过程直接与器件的具体结构相关与器件的具体结构相关仿真(仿真(Simulation)仿真也称为模拟,是对所设计

41、电路的功能的验证。仿真也称为模拟,是对所设计电路的功能的验证。仿真仿真功能仿真:又称前仿真,不考虑信号时延等因素的仿真。功能仿真:又称前仿真,不考虑信号时延等因素的仿真。时序仿真:又称后仿真,针对具体器件在完成布局布时序仿真:又称后仿真,针对具体器件在完成布局布线后进行的含时延的仿真。线后进行的含时延的仿真。编程(编程(Program)编程又称下载,是把适配后生成的编程文件装入编程又称下载,是把适配后生成的编程文件装入PLD器件中。器件中。通常将对基于通常将对基于E2PROM工艺的非易失结构工艺的非易失结构CPLD器件的下载称器件的下载称为编程(为编程(Program),而将基于),而将基于S

42、RAM工艺结构的工艺结构的FPGA器件器件的下载称为配置(的下载称为配置(Configure)。)。小结:小结:1)采用)采用Verilog HDL设计方法比采用电路图输入的方法更有设计方法比采用电路图输入的方法更有优越性;优越性;2)在两种符合)在两种符合IEEE标准的硬件描述语言中,标准的硬件描述语言中,Verilog HDL与与VHDL相比更加基础、更易掌握;相比更加基础、更易掌握;3)Verilog HDL可用于复杂数字逻辑电路和系统的总体仿真、可用于复杂数字逻辑电路和系统的总体仿真、子系统仿真和具体电路综合等各个设计阶段。子系统仿真和具体电路综合等各个设计阶段。1.7 小结小结第第2

43、章章 Verilog语法的基本概念语法的基本概念1、用、用Verilog HDL描述的电路设计就是该电路的描述的电路设计就是该电路的Verilog HDL模型,也称为模型,也称为模块(模块(module)。)。3、Verilog模型可以是实际电路的不同级别的抽象。这些抽模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们所对应的模型类型共有以下象的级别和它们所对应的模型类型共有以下5种:种: (1)系统级系统级(systemlevel):用语言提供的高级结构能够用语言提供的高级结构能够实现所设计模块的外部性能的模型。实现所设计模块的外部性能的模型。 (2)算法级算法级(algorithml

44、evel):用语言提供的高级结构能用语言提供的高级结构能够实现算法运行的模型。够实现算法运行的模型。(3)RTL级级(Register Transfer Level):描述数据在寄存器描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型。之间的流动和如何处理、控制这些数据流动的模型。 (4)门级门级(gatelevel):描述逻辑门以及逻辑门之间连接的描述逻辑门以及逻辑门之间连接的模型。模型。(5)开关级开关级(switchlevel):描述器件中三极管和储存节点描述器件中三极管和储存节点以及它们之间连接的模型。以及它们之间连接的模型。这种行为描述语言具有以下功能:这种行为描述语言具有

45、以下功能:l可描述顺序执行或并行执行的程序结构。可描述顺序执行或并行执行的程序结构。l用延迟表达式或事件表达式来明确地控制过程的启动时间。用延迟表达式或事件表达式来明确地控制过程的启动时间。l通过命名的事件来触发其他过程里的激活行为或停止行为。通过命名的事件来触发其他过程里的激活行为或停止行为。l提供了条件、提供了条件、if-else、case、循环程序结构。、循环程序结构。l提供了可带参数且非零延迟时间的任务提供了可带参数且非零延迟时间的任务(task)程序结构。程序结构。l提供了可定义新的操作符的函数结构提供了可定义新的操作符的函数结构(function):l提供了用于建立表达式的算术运算

46、符、逻辑运算符、位运算提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。符。lVerilog HDL语言作为一种结构化的语言也非常适合于门级语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。和开关级的模型设计。 2.1 Verilog模块的基本概念模块的基本概念2.2.1 模块的概念及结构模块的概念及结构 模块(模块(module)是是Verilog HDL语言的基本单元,每语言的基本单元,每个个Verilog HDL设计的系统都是由若干个模块组成的。设计的系统都是由若干个模块组成的。 模块作用模块作用:用于描述某个设计的功能或结构及其与其:用于描述某个设计的功能或结构及其与其

47、他模块通信的外部接口。每个模块都有接口部分,用来描他模块通信的外部接口。每个模块都有接口部分,用来描述与其它模块之间的连接。述与其它模块之间的连接。模块的基本结构如下:模块的基本结构如下:module () 端口说明(端口说明(input ,output,inout) 参数定义(可选)参数定义(可选) 数据类型定义数据类型定义 连续赋值语句(连续赋值语句(assign) 过程块(过程块(initial或或always) 行为描述语句行为描述语句 底层模块实例底层模块实例 任务和函数任务和函数 延时说明块延时说明块endmodule模块名是模块的唯一模块名是模块的唯一的标识符。端口列表的标识符。

48、端口列表是输入输出和双向端是输入输出和双向端口的列表,这些端口口的列表,这些端口用来与其他模块进行用来与其他模块进行连接。连接。数据类型定义部分用数据类型定义部分用来指定模块内用到的来指定模块内用到的数据对象为寄存器型、数据对象为寄存器型、存储器型或线型存储器型或线型过程块包括过程块包括initial和和always两种,行为描两种,行为描述语句只能出现在过述语句只能出现在过程块中。程块中。输出与输入端口间输出与输入端口间的路径延时说明的路径延时说明下面以一个与非门模块来说明模块结构:下面以一个与非门模块来说明模块结构: 输出输出out是输入是输入in1和和in2相与后求反的结果。相与后求反的

49、结果。 module nand (in1, in2, out ) ; /nand 模块模块 input in1, in2 ; /输入端口说明输入端口说明 output out ; /输出端口说明输出端口说明 wire in1, in2, out ; /数据类型定义数据类型定义 assign out = ( in1 & in2 ) ; / 连续赋值语句连续赋值语句 endmodule / 模块结束模块结束nandoutin1in2endmodule表明模块的结束,其后没有分号。表明模块的结束,其后没有分号。 模块是由两部分组成的:模块是由两部分组成的: 一部分描述接口,另一部分描述逻辑功能,即定

50、义输入一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的,电路符号的引脚就是程序模块的接口,是如何影响输出的,电路符号的引脚就是程序模块的接口,而程序模块描述了电路符号所实现的逻辑功能。而程序模块描述了电路符号所实现的逻辑功能。 Verilog HDL程序包括程序包括4个主要部分:端口定义、个主要部分:端口定义、I/O说说明、内部信号声明和功能定义。明、内部信号声明和功能定义。 一、端口定义一、端口定义 模块的端口声明了模块的输入输出口。其格式如下:模块的端口声明了模块的输入输出口。其格式如下: module 模块名模块名(口口1,口,口2,口,口3,口,口4,);二、模块内容二

51、、模块内容 模块的内容包括模块的内容包括: IO说明、内部信号声明和功能定义。说明、内部信号声明和功能定义。 1IO说明的格式说明的格式 输入口:输入口:input 信号位宽信号位宽-1:0 端口名端口名1; input 信号位宽信号位宽-1:0 端口名端口名i; 输出口:输出口:output 信号位宽信号位宽-1:0 端口名端口名1; output 信号位宽信号位宽-1:0 端口名端口名j;输入输出口:输入输出口:inout 信号位宽信号位宽-1:0 端口名端口名1; inout 信号位宽信号位宽-1:0 端口名端口名k; 当同一类信号的位宽相同时,可以合并在一起。例如:当同一类信号的位宽相

52、同时,可以合并在一起。例如: input 2:0 a,b,c;该例中该例中a,b,c三个输入信号的位宽同为三个输入信号的位宽同为3位。位。IO说明也可以写在端口声明语句里。其格式如下:说明也可以写在端口声明语句里。其格式如下:module module_name (input port1,input port2, output port1,output port2);2内部信号说明内部信号说明 在模块内在模块内,除了进行除了进行I/O口说明,还要声明数据类型,口说明,还要声明数据类型,wire和和reg类型变量。类型变量。 如:如:reg width-1:0 R变量变量1,R变量变量2; wi

53、re width-1:0 W变量变量1,W变量变量2; reg为寄存器型变量,为寄存器型变量,wire为连线型变量。为连线型变量。3功能定义功能定义 模块中最重要的部分是逻辑功能定义部分。有模块中最重要的部分是逻辑功能定义部分。有3种方法种方法可以产生模块中所要实现的逻辑功能。可以产生模块中所要实现的逻辑功能。 v1. assign 语句被赋值的变量必须是语句被赋值的变量必须是wire型,操作数可以型,操作数可以是是 wire型、型、reg型。型。v2.总是处于激活状态。总是处于激活状态。v3.可用于描述一个完整的设计。可用于描述一个完整的设计。1) 用用“assign”声明语句(连续赋值语句

54、)声明语句(连续赋值语句) 如:如:assign ab & c; 只需写一个关键词只需写一个关键词“assign”,后面再加一个方程式即,后面再加一个方程式即可。可。“”是逻辑与运算符。是逻辑与运算符。例例:2选选1数据选择器数据选择器 module mux ( out,a,b,sel); input a,b,sel; output out; assign out = (sel=0) ?a : b; endmodule 2)用实例元件用实例元件 (元件调用)元件调用) Verilog HDL内部定义了一些基本门级元件模块。使内部定义了一些基本门级元件模块。使用实例元件的调用语句,不必重新编写这

55、些基本门级元件用实例元件的调用语句,不必重新编写这些基本门级元件模块,直接调用这些模块。模块,直接调用这些模块。 元件调用类似于在电路图输入方式下调入元件图形符元件调用类似于在电路图输入方式下调入元件图形符号来完成设计。这种方式侧重于电路的结构描述。号来完成设计。这种方式侧重于电路的结构描述。使用实例元件的格式:使用实例元件的格式: 门类型关键字门类型关键字 (端口列表);(端口列表);如:如: and #2 u1(q,a,b); Verilog的内置门元件如下图所示:的内置门元件如下图所示:3) 用用“always”过程块(过程赋值语句)过程块(过程赋值语句)用用always过程块来描述逻辑

56、功能,称为行为描述。多用过程块来描述逻辑功能,称为行为描述。多用于描述时序逻辑。于描述时序逻辑。 如:如:always (posedge clk or posedge clr) begin if (clr) q=0; else if(en) qd: end always()语句的括号内表示)语句的括号内表示的是敏感信号或表达式。即当敏感信号或表达式的值发生变的是敏感信号或表达式。即当敏感信号或表达式的值发生变化时,执行化时,执行always块内语句。块内语句。 postedge表示上升沿触发,表示上升沿触发,negedge表示下降沿触发。表示下降沿触发。在功能定义部分可以同时使用这三种表示方法

57、,例如下例:在功能定义部分可以同时使用这三种表示方法,例如下例: module ex (); input ; output .; reg .; assign a=b&c; always (.) begin end and u1(a,b,c); endmodule always语句为顺序语句,内部语语句为顺序语句,内部语句是顺序执行。句是顺序执行。并行执行并行执行 要点总结要点总结 (1)在在Verilog模块中所有过程块模块中所有过程块(如:如:initial块、块、always块块)、连续赋值语句、实例引用都是并行的;连续赋值语句、实例引用都是并行的; (2)它们表示的是一种通过变量名互相连

58、接的关系;它们表示的是一种通过变量名互相连接的关系; (3)在同一模块中这三者出现的先后顺序没有关系;在同一模块中这三者出现的先后顺序没有关系; (4)只有连续赋值语句只有连续赋值语句assign和实例引用语句可以独立于过和实例引用语句可以独立于过程块而存在于模块的功能定义部分。程块而存在于模块的功能定义部分。2.2.2 模块的调用模块的调用 Verilog HDL是通过是通过“模块调用模块调用”或称为或称为“模块实例化模块实例化”的方法实现子模块与高层模块的连接。的方法实现子模块与高层模块的连接。 下面通过一个与门建模来说明模块调用。该模块是通过下面通过一个与门建模来说明模块调用。该模块是通

59、过调用与非门模块来实现的。与非门模块是子模块,而与门是调用与非门模块来实现的。与非门模块是子模块,而与门是顶层模块。顶层模块。 与非门模块程序与非门模块程序NAND1NAND2w1in1outin2AND这个这个AND模块含有两个模块含有两个NAND模块实例,分别是模块实例,分别是NAND1和和NAND2,通过内部连线,通过内部连线w1连接起来,实现与门的逻辑功能。连接起来,实现与门的逻辑功能。module AND (out , in1, in2); /AND模块模块 input in1, in2; /两个输入端口两个输入端口in1和和 in2 output out; /一个输出端口一个输出端

60、口out wire w1; /一个模块内部连线一个模块内部连线wire NAND NAND1 (w1, in1, in2); /*调用(实例化)一个调用(实例化)一个NAND模块模块*/ NAND NAND2 (out, w1, w1); /*调用(实例化)一个调用(实例化)一个NAND模块模块*/endmodule /AND模块结束模块结束 调用模块实例的一般形式为:调用模块实例的一般形式为: () 其中其中是要调用子模块的名称。是要调用子模块的名称。 是传输到子模块的参数值,一般为定义是传输到子模块的参数值,一般为定义的门级时延。的门级时延。 是把子模块调用过来后对他的命名。是把子模块调用

温馨提示

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

评论

0/150

提交评论