




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 Verilog1 Verilog描述的一般结构描述的一般结构2 Verilog HDL2 Verilog HDL基础知识基础知识3 3 设计举例设计举例4 4 层次化设计方法举例层次化设计方法举例Verilog HDLPLISDF Verilog HDL 是一种描述电子设计的硬件描述语言是一种描述电子设计的硬件描述语言; 编程语言接口编程语言接口(PLI)是是Verilog仿真器和一种编程语言仿真器和一种编程语言(如(如C语言)之间路径和数据结构的接口语言)之间路径和数据结构的接口; 标准延时格式标准延时格式(SDF:standard delay format)是模型反是模型反标延时信息用
2、的文件格式。标延时信息用的文件格式。(1) Verilog HDL的组成部分的组成部分Verilog程序由关键词程序由关键词module和和enmodule进行定义。进行定义。 module name (ports); port declarationsdata type declarationsfunctionalitytiming specificationendmoduleVerilog HDL 大小写敏感大小写敏感(2) Verilog程序的结构程序的结构Verilog程序的组成部分程序的组成部分endmodulemodule Name,port list, port declarat
3、ions(if ports present)parameters(optional),),Declarations of wires, regs and other variablesData flow statements( assign )Alawys and initial blocks,All behavioral statements go in these blocks.Instantiation of lower level modulesTasks anf functions这这5个组件的排列顺序是任意的,可个组件的排列顺序是任意的,可以选择其中的一个或几个组件构成一以选择其中
4、的一个或几个组件构成一个个Verilog程序程序简单简单Verilog实例:实例:2 Verilog HDL 基础知识基础知识空白符:空白符:空格、空格、TABTAB键、换行符及换页符键、换行符及换页符注释行注释行:单行注释、多行注释:单行注释、多行注释标识符取名规则标识符取名规则:必须是由字母或下划线开头,长度小必须是由字母或下划线开头,长度小10241024字符字符后续部分可以是字母、数字、下划线后续部分可以是字母、数字、下划线以反斜杠以反斜杠“”开头,以空白符结尾的任何字符开头,以空白符结尾的任何字符序列序列 标识符区分大、小写标识符区分大、小写关键词关键词:Verilog HDL 内部
5、已使用的词。内部已使用的词。关键词都是小写。关键词都是小写。四种逻辑状态: 0逻辑零、逻辑非、低电平逻辑零、逻辑非、低电平1逻辑逻辑1、逻辑真、高电平、逻辑真、高电平x或或X不确定的逻辑状态不确定的逻辑状态z或或Z高阻态高阻态常量及其表示方法常量及其表示方法三类常量:整数、实数、字符串1.整数基数格式表示:+/-09, af, AF, x, X, z, Z, ?, _H or h十六进制十六进制09, _D or d十进制十进制07, x, X, z, Z, ?, _O or o八进制八进制0, 1, x, X, z, Z, ?, _B or b二进制二进制合法的表示值合法的表示值基数符号基数
6、符号数制数制2.实数两种表示方法:十进制记数法 例:10.2 科学记数法 例:3.1e23.字符串:为两个双引号“ ”之间的字符, 字符串不允许跨行变量的数据类型变量的数据类型1.1.连线类型(连线类型(Net-type)Net-type)2.2.寄存器类型(寄存器类型( Register-type)Register-type)3.3.标量与矢量标量与矢量标量:线宽只有一条的连线,位数只有一位的寄存器标量:线宽只有一条的连线,位数只有一位的寄存器矢量:线宽大于一条的连线,位数大于一位的寄存器矢量:线宽大于一条的连线,位数大于一位的寄存器4.4.标量类矢量与矢量类矢量标量类矢量与矢量类矢量标量类
7、矢量:可以按位或进行部分位赋值的矢量标量类矢量:可以按位或进行部分位赋值的矢量矢量类矢量:不能按位或进行部分位赋值的矢量,只矢量类矢量:不能按位或进行部分位赋值的矢量,只 能作为一个统一的整体进行能作为一个统一的整体进行?:条件运算符条件运算符 连接运算符连接运算符逻辑移位运算符逻辑移位运算符=, !=, =, !=相等与全等运算符相等与全等运算符, =关系运算符(双目)关系运算符(双目)!, &, |逻辑运算符逻辑运算符&, &, |,|, , or 缩位运算符缩位运算符(单目单目),&,|,or位运算符位运算符+, -, *, /, %算术运算符算术运算符所含运算符所含运算符运算符分类运算
8、符分类运算符的优先级运算符的优先级! * / %+ - = != = !=& & | |&|?:最低优先级最低优先级最高优先级最高优先级 多输入门:多输入门:and、nand、or、nor、xor、xnor 只有单个输出只有单个输出,1个或多个输入个或多个输入多输出门:多输出门:not、buf 允许有多个输出允许有多个输出,但只有一个输入但只有一个输入三态门:三态门:bufif0、bufif1、notif0、notif1 有一个输出有一个输出,一个数据输入和一个控制输入一个数据输入和一个控制输入原型在VerilogHDL语言中已预定义了门级原型 and n-input AND gate nan
9、d n-input NAND gate or n-input OR gate nor n-input NOR gate xor n-input exclusive OR gate xnor n-input exclusive NOR gate buf n-output buffer not n-output inverter bufif0 tri-state buffer; Io enable bufif1 tri-state buffer; hi enable notif0 tri-state inverter; Io enable notif1 tri-state inverter; hi
10、 enable例例1 1 用用Verilog HDL语言描述一个上升沿语言描述一个上升沿D D触发器。触发器。 module dff (q,clk,data); output q; input clk,data; reg q; always (posedge clk) q = data; endmodule 端口类端口类型说明型说明数据类型说明数据类型说明功能描述功能描述(行为描述)(行为描述)句尾句尾分号分号模块模块名名3 Verilog的设计举例的设计举例Verilog HDL行为描述方法过程块的组成:过程块的组成: 过程语句过程语句(事件控制敏感表)事件控制敏感表) begin (:块名
11、:块名) 块内局部变量说明块内局部变量说明 一条或多条过程赋值或高级程序语句一条或多条过程赋值或高级程序语句 end在在always下面使用的高级程序语句下面使用的高级程序语句(1)if-else 条件语句 if (条件表达式) 块语句1 else if (条件表达式2) 块语句2 . else if (条件表达式n) 块语句n else 块语句n+1(2)case 语句case (敏感表达式) 值1:块语句1 值2:块语句2 值n: 块语句n default:块语句n+1endcase (3)for循环语句 for (表达式1;表达式2;表达式3)块语句module mux2_1(out1,
12、 a, b, sel) ; output out1; input a, b; input sel; assign out1= sel ? b : a;endmodule数据流描述abselout1module mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel; assign out1=(sel & b) | (sel & a);endmodule数据流描述例例2 2 用用Verilog HDL语言描述语言描述2 2选选1 1的数据选择器。的数据选择器。module mux2_1(out1, a, b, sel) ; out
13、put out1; input a, b; input sel; reg out1;always (sel or a or b) begin if (sel) out1 = b; else out1 = a; endendmodulemodule mux2_1(out1, a, b, sel) ; output out1; input a, b; input sel; reg out1;always (sel or a or b)begin case (sel) 1b0 : out1 = a; 1b1 : out1 = b; endcaseendendmodule行为描述module mux2
14、_1(out1,a,b,sel); output out1; input a,b,sel; not (sel_, sel); and (a1, a, sel_); and (b1, b, sel); or (out1, a1, b1);endmodule结构描述结构描述行为描述方式:行为描述方式: 一般使用下述语句描述,可以对组合、时序逻一般使用下述语句描述,可以对组合、时序逻辑电路建模。辑电路建模。 1 1)initialinitial 语句语句 2 2)alwaysalways 语句语句小结:小结:数据流描述方式:数据流描述方式: 一般使用一般使用assignassign语句描述,主要用于
15、对组合逻语句描述,主要用于对组合逻辑电路建模。辑电路建模。结构描述方式:结构描述方式: 一般使用一般使用PrimitivePrimitive(内部元件)、自定义的(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。下层模块对电路描述。主要用于层次化设计中。4 4 层次化设计方法举例层次化设计方法举例acibsumcoacibsumcoacibsumcoacibsumcoresultcarryr1cir24-bitAdder例例3 请用层次化的方法设计一个请用层次化的方法设计一个4位全加器,框图如下:位全加器,框图如下:4-bit Adder(add4.v)1-bit Adder(a
16、ddbit.v)1-bit Adder(addbit.v)1-bit Adder(addbit.v)1-bit Adder(addbit.v)实现方案如下:实现方案如下:module addbit (a, b, ci, sum, co); input a, b, ci; output sum, co; wire a, b, ci, sum, co, n1, n2, n3; xor (n1, a, b,); xor (sum, n1, ci); and (n2, a, b); and (n3, n1, ci); or (co, n2, n3); endmodule 一些一些Verilog原型原型
17、(Primitive)列出结构化的元件列出结构化的元件并按网表连接并按网表连接 1. 底层模块底层模块1位全加器实例:位全加器实例:模块的调用方法模块的调用方法基本方式:基本方式: 模块名模块名 调用名(端口名表项)调用名(端口名表项)调用方式一:位置对应调用方式调用方式一:位置对应调用方式调用方式二:端口名对应调用方式调用方式二:端口名对应调用方式调用方式三:存在不连接端口的调用方式调用方式三:存在不连接端口的调用方式(未连PORT允许用(,)号空出其位置)2. 顶层模块调用底层模块实例顶层模块调用底层模块实例通过位置关联通过位置关联models add4 (result, carry, r
18、1, r2, ci); output 3:0 result; output carry; input 3:0 r1, r2; input ci; wire 3:0 r1, r2, result; wire ci, carry, c1, c2, c3; addbit u1 (r10, r20, ci, result0, c1); addbit u2 (r11, r21, c1, result1, c2); addbit u3 (r12, r22, c2, result2, c3); addbit u4 (r13, r23, c3, result3, carry); endmodule modul
19、e addbit (a, b, ci, sum,co); input a, b, ci; output sum, co; endmodule Structural or behavioral modelOrder must match exactly3. 顶层模块调用底层模块实例顶层模块调用底层模块实例通过名字关联通过名字关联注意:该描述应严格保持名字的一致!注意:该描述应严格保持名字的一致!module add4 (result, carry, r1, r2, ci); output 3:0 result; output carry; input 3:0 r1, r2; input ci;
20、wire 3:0 r1, r2 , result; wire ci, carry, c1, c2 c3; addbit u0 (.co(c1) , .sum(result0), .ci(ci),.b(r20),.a(r10); addbit u1 (.co(c2) , .sum(result1), .ci(c1),.b(r21),.a(r11); addbit u2 (.co(c3) , .sum(result2), .ci(c2),.b(r22),.a(r12); addbit u3 (.co(carry), .sum(result3), .ci(c3),.b(r23),.a(r13);en
21、dmodulehere names must match exactlyPORT连接的规则连接的规则* *input:input:符号内部总是符号内部总是net,net,外部可连外部可连netnet和和regreg数据类型数据类型* *output:output:其内部可为其内部可为netnet或或reg,reg,而外部必须连各种而外部必须连各种netnet数据类型数据类型* *inouts:inouts:它的内外都用它的内外都用netnet且只能连各种且只能连各种netnet数据类型数据类型module top; module dev (a, b, c); inputs outputs net reg or netnetreg or netnetcbazyxinoutsnet例例4 四位异步二进制计数器的设计四位异步二进制计数器的设计 (原理图原理图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业劳动合同书
- 2025房地产交易合同样本范本
- 2025年上海迪士尼购物卡合同
- 小学校长竞聘试题及答案
- 2025年初中圆形知识题库及答案
- 法语模拟试题及答案
- 遴选公务员面试真题及答案
- 2025终止办公室租赁合同(无欠费)
- 2025年公务员面试模拟题深度解析与答题思路梳理
- 2025年安全生产法规知识招聘考试模拟试题集
- 人教版三年级上数学第二单元《含括号的混合运算》课时练习卷(含答案)
- 湖南美术出版社二年级美术上册学期教学计划
- 医疗器械培训计划和记录
- 2025年上海市中考语文试题含解析
- 化工厂产品品质管理制度
- 新生儿外科伤口护理
- 教堂12项管理制度
- 踝关节骨折护理
- 华为视觉识别规范手册中文版
- 三氧注射治疗技术规范与应用
- “临床营养科建设与管理指南”实施细则-I级标准化临床营养科建设示范基地
评论
0/150
提交评论