片上可编程逻辑系统设计verilog硬件描述语言

上传人:今*** 文档编号:108176480 上传时间:2019-10-22 格式:DOCX 页数:43 大小:1.39MB
返回 下载 相关 举报
片上可编程逻辑系统设计verilog硬件描述语言_第1页
第1页 / 共43页
片上可编程逻辑系统设计verilog硬件描述语言_第2页
第2页 / 共43页
片上可编程逻辑系统设计verilog硬件描述语言_第3页
第3页 / 共43页
片上可编程逻辑系统设计verilog硬件描述语言_第4页
第4页 / 共43页
片上可编程逻辑系统设计verilog硬件描述语言_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《片上可编程逻辑系统设计verilog硬件描述语言》由会员分享,可在线阅读,更多相关《片上可编程逻辑系统设计verilog硬件描述语言(43页珍藏版)》请在金锄头文库上搜索。

1、目录第一章概述4第二章Verilog硬件描述语言基本知识41硬件描述语言42采用Veilog HDL语言设计复杂数字电路的优点43软核、固核和硬核的概念及其重用44采用硬件描述语言的设计流程54.1自顶向下(Top-Down)设计的基本概念51Verilog描述电路设计的层次62模块的结构62.1模块的端口声明62.2模块内容72.2.1I/O说明格式72.2.2内部信号说明72.2.3功能定义73数据类型及其常量和变量83.1常量83.1.1数字83.1.2参数(parameter)型93.2变量103.2.1wire 型103.2.2reg 型103.2.3memory 型113.3运算符

2、及表达式123.3.1基本算术运算符123.3.2双目位运算符123.3.3缩减运算符133.3.4关系运算符133.3.5等式运算符143.3.6逻辑运算符143.3.7移位运算符153.3.8位拼接运算符163.4赋值语句163.4.1非阻塞(Non_Blocking)赋值方式(b=a;)163.4.2阻塞(Blocking)赋值方式(b=a;)163.5小结173.5.1数据类型的分类173.5.2连续赋值与过程赋值区别17第三章Verilog HDL模块设计模型181概述182元器件级设计模型183行为级设计模型183.1行为模型概述183.2结构化过程183.3块语句203.3.1顺

3、序块(过程块)203.3.2并行块213.3.3命名块213.3.4块嵌套223.4条件语句233.5Case语句243.6循环语句273.7编译指令-timescale293.8过程的时序控制293.8.1延时控制313.8.2事件控制313.8.3事件 or 运算符323.8.4隐含事件清单323.8.5电平敏感事件控制333.8.6赋值语句内时序控制343.9简单数字逻辑电路设计363.9.1多路数据选择器设计363.9.2译码器设计363.9.3寄存器设计363.9.4计数器设计363.9.5同步译码器设计363.9.6状态寄存器及中断控制电路设计36第一章 概述第二章 Verilog

4、硬件描述语言基本知识1 硬件描述语言硬件描述语言HDL(Hardware Description language)是一种描述数字电路和系统的一种语言。硬件描述语言主要有两种:VHDL语言和Verilog语言。到近几年,实际应用情况表明,Verilog语言的应用多与 VHDL语言。Verilog HDL 是硬件描述语言的一种,用于数字电子系统设计。该语言允许设计者进行任何级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。Veilog HDL语言出现于1983年,由Phil Moorby首创。1995年IEEE制定了VerilogHDL 1364-1995标准,2001年IEEE制

5、定了VerilogHDL 1364-2001标准,2005年IEEE制定了System Verilog IEEE 1800-2005标准。2 采用Veilog HDL语言设计复杂数字电路的优点与传统的电路原理图输入法比较,Veilog HDL语言输入法优点:(1) 设计周期短。(2) 设计结果易于在不同的厂家不同的芯片移植,如信号位数容易改变、内部逻辑易于修改。(3) 易于仿真验证:测试平台可用同一种语言来实现。(4) 具有与工艺无关性。3 软核、固核和硬核的概念及其重用软核(Soft Core):功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog模型。固核(Fir

6、m Core):在某一种FPGA器件上实现的、经验证是正确的、电路结构总门数在5000门以上的电路结构的编码文件称为固核。硬核(Hard Core):在某一种专用集成电路工艺的(ASIC)器件上实现的、经验证是正确的、电路结构总门数在5000门以上的电路结构版图称为硬核。重用的概念:所设计的模块及核可以在一个芯片的设计中或在其它芯片的设计中可以被重用,以减小工作量、缩短研制周期。核的最大特点是经过检验的且是正确的。在具体实现手段和工艺技术尚未确定的逻辑设计阶段,软核具有最大的灵活性。软换可以被修改以适应相应的工艺。固核和硬核的灵活性差。4 采用硬件描述语言的设计流程4.1 自顶向下(Top-D

7、own)设计的基本概念第三章 Verilog硬件描述语语法基本概念1 Verilog描述电路设计的层次Verilog模块(模型)是指用Verilog语言描述的电路设计。Verilog模块(模型)可以是实际电路的不同级别抽象。对应不同的级别模型类型共有五种。它们分别是:行为描述:系统级:用语言描述的高级结构能够实现待设计模块的外部性能的模型。算法级:用语言描述的高级结构能够实现算法运行的模型。RTL级:描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型。上述三种模型中,只有RTL级才与逻辑电路有明确对应关系。门级:描述门以及逻辑门之间连接的模型。与逻辑电路有特定的连接关系。开关级:描述

8、器件中晶体管与存储节点以及他们之间的连接模型。2 模块的结构Verilog的基本设计单元是模块(module)。一个模块由两部分组成,一部分描述接口;另一部分描述逻辑功能,即输入时如何影响输出的。模块端口声明模块内容2.1 模块的端口声明模块的端口声明定义了模块的输入输出端口。可理解为集成电路的输入输出引脚。方式1:同时说明端口的方向、位宽、数据类型和端口名称。Module 模块名(IO说明 位宽1-1:0 端口1名称,IO说明 位宽2-1:0 端口2名称,IO说明 端口3名称,IO说明 位宽4-1:0端口4名称);方式2:只说明端口名称。端口的方向、位宽在模块内部说明。Module 模块名(

9、端口1名称,端口2名称,端口3名称,端口4名称);2.2 模块内容模块内容包括:端口的IO说明、内部信号声明、和功能定义。IO说明可以写在端口声明语句中。2.2.1 I/O说明格式输入口:input信号位宽-1:0端口名1输出口:output信号位宽-1:0端口名2输入输出口:inout信号位宽-1:0端口名32.2.2 内部信号说明在模块内部用到的wire(信号线型)和reg(寄存器型)变量说明。reg 信号位宽-1:0寄存器变量名wire 信号位宽-1:0寄存器变量名2.2.3 功能定义模块中最重要的部分是逻辑功能定义。通常有三种方法:(1) 用连续赋值语句assign:描述组合逻辑最常用

10、的方法。如:assign a=b&c;(2) 用实例元件:调用库中的元件或其它模块。如and u1(q,a,b);(3) 用过程块“always”、“initial”块:如 Always(posedge clk)BeginIf(clr=1)r_a=0;elser_a=d;end注意的要点:1) 在Verilog模块中连续赋值语句assign、用实例元件过程块“always”、“initial”多是并行的。2) 它们表示的是通过变量名互联的关系。3) 在同一模块中,这三者的出现没有顺序之分。4) 只有连续赋值语句assign和实例引用语句可以独立于过程快而存在于模块的功能定义部分。3 数据类型及

11、其常量和变量数据类型是用来表示数字电路中的数据储存和传送数据的。Verilog HDL共用19种数据类型。本课程主要介绍四种基本类型:reg、wire、integer、parameter、timer;其它类型都与基本逻辑单元建库有关,与系统设计没有很大关系。3.1 常量常量定义:在程序或电路在工作过程中不能改变的量。3.1.1 数字a. 整数:Verilog HDL中整数有四种进制,十进制、16进制、8进制、二进制。数字表达有三种方法(位宽是指二进制数的位宽):(1)(2) :位宽与具体及其有关,默认最小32位。(3):位宽与具体及其有关,默认最小32位,默认10进制。举例:8b0101101

12、0 8位二进制数8h5a 8位16进制数8d90 8位10进制数h5a 16进制数(默认32位)100(默认32位)b x 和 z 值在数字电路中,x代表不确定值,z代表高祖值。一个x或z代表二进制数的1位,16进制数的1位(由四位二进制数构成),8进制数的1位(由3位二进制数构成)。Z的另一种表示方法是?。举例:8b0x011010 8位二进制数16h0c5x 8位16进制数8b010110z0 8位二进制数16h0c5z 8位16进制数c负数负数表达方式:在数字定义表达时的最前面加一个减号。-8b0x011010 8位二进制数3.1.2 参数(parameter)型在Verilog HDL

13、中,用parameter来定义常量,即利用parameter来并以一个标识符(参数名)并给标识符赋予一个常量。格式如下:parameter 参数名=常数表达式。常数表达式中只能包含常数或已经定义的参数(parameter)。例如: parameter WIDTH=8;parameter e=5.7;parameter a=8h05;parameter msb= WIDTH-1;参数的用途:(1) 提高可读性和可维护性。(2) 在调用了使用了参数的模块时,上层模块可以通过参数传递改变下层模块的参数,提高模块的可重用性, 不使用defparam。(3) 在多层次模块构成的电路中,在一个模块(不一定是上层)可以改变另一个模块的参数,条件是使用defparam。3.2 变量常量定义:在程序或电路在工作过程中可以改变的量。3.2.1 wire 型网络数据类型表示实体(例如门等器件)之间的物理连接。网络类型变量不能用于存储数值,且必须受到驱动器的驱动。若没有驱动器驱动到网络类型的变量上,则该变量的值就是高阻的。真值表wire 型常用来表示用以assign 关键字指定的组合逻辑信号。Verilog程序模块中的输入、输出信号类型在默认时为wire型。wire 型可以用做任何方程式的输入,也可以用作assign 语句或实例远见的输出。wire 型格式如下:

展开阅读全文
相关资源
相关搜索

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

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