版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Verilog HDL 公开发表 CADENCE 公司购买 Verilog 版权 1990 1989 1980s Verilog-XL 诞生 模拟和数字都适用的 Verilog 标准 公开发表 1998 ? VerilogHDLIEEE1364 标准 公开发表 有关 VerilogHDL 的全部权利都移交给 OVI(Open Verilog International) 1995 1990 VHDL VITAL 系统级 算法级 寄存器传输级 逻辑门级 开关电路级 行为级 的抽象 VerilogHDL 与 VHDL 建 模 能 力 的 比 较 Verilog系统说明系统说明-设计文档设计文档/
2、算法描述算法描述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图形几何图形行为综合行为综合综合前仿真综合前仿真逻辑综合逻辑综合综合后仿真综合后仿真版图版图系统说明系统说明-设计文档设计文档/算术描述算术描述RTL/功能级功能级-Verilog门级门级/结构级结构级-Verilog版图版图/物理级物理级-几何图形几何图形详细程度详细程度 低低 高高输入输入/仿真速度仿真速度 高高 低低n 行为级行为级n 用功能块之间的数据流对系统进行描述用功能块之间的数据流对系统进行描述n 在需要时在函数块之间进行调度赋值。在需要时在函数块之间进行调度赋值
3、。n RTL级级/功能级功能级n 用功能块内部或功能块之间的数据流和控制信号描述用功能块内部或功能块之间的数据流和控制信号描述系统系统n 基于一个已定义的时钟的周期来定义系统模型基于一个已定义的时钟的周期来定义系统模型n 结构级结构级/门级门级n 用基本单元用基本单元(primitive)或低层元件或低层元件(component)的连接的连接来描述系统以得到更高的精确性,特别是时序方面。来描述系统以得到更高的精确性,特别是时序方面。n 在综合时用特定工艺和低层元件将在综合时用特定工艺和低层元件将RTL描述映射到门描述映射到门级网表级网表absloutabslout 这个行为的描述并没有说明如果
4、输入 a 或 b是三态的(高阻时)输出应该是什么,但有具体结构的真实电路是有一定的输出的。uRTL模块的数据流动必须基于时钟。RTL模块在每个时钟的沿时刻,其变量的值必定是精确的。uRTL模块是可综合的,它是行为模块的一个子集合。outabslselbselanslabcdeabcdeabced标识符空白符:在在verilog HDL内部已经使用的词称为关键字或保留字。内部已经使用的词称为关键字或保留字。:用于定义模块名、端口名、连线、信号名等用于定义模块名、端口名、连线、信号名等 。标识符可。标识符可以是任意一组字母、数字、以是任意一组字母、数字、$符号下划线的组合,但标识符符号下划线的组合
5、,但标识符第一个第一个字符字符必须是必须是字母字母或者或者下划线下划线,且字符不能多于,且字符不能多于1024个。此外还个。此外还区分区分大小写大小写。空白符由空格、换行等组成,仅仅用于分隔标识符,在编空白符由空格、换行等组成,仅仅用于分隔标识符,在编译中被忽略。译中被忽略。01XZ0bufbufbufbufif10、低、伪、逻辑低、地、低、伪、逻辑低、地、VSS、负插入、负插入1 1、高、真、高、真、逻辑逻辑高、电源、高、电源、VDD、正插入、正插入X X、不确定:逻辑冲突无法确定其逻辑值、不确定:逻辑冲突无法确定其逻辑值HiZHiZ、高阻抗、三态、无驱动源、高阻抗、三态、无驱动源 综合编译
6、综合编译器不支持器不支持的的net类型类型abslselbselansloutreg_areg_selreg_b修改前:修改前:module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; reg c, d; reg o2 and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0;endmodule修改后:修改后:module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2;/ re
7、g c, d;/ reg o2 reg o1; and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0;endmodule例:下表以优先级顺序列出了下表以优先级顺序列出了Verilog操作符。注意操作符。注意“与与”操作符的优先级总是比相操作符的优先级总是比相同类型的同类型的“或或”操作符高。本章将对每个操作符用一个例子作出解释。操作符高。本章将对每个操作符用一个例子作出解释。 最高最高最低最低优先级优先级例如:例如:a=4b010;b=4b0010a+ba*ba/ba%b注意注意:在算术运算中,有一个操作数:在算术运算中,有一
8、个操作数为不确定状态,则运算结果都为不确为不确定状态,则运算结果都为不确定状态定状态。!not&and|orn 逻辑操作符的结果为一位逻辑操作符的结果为一位1,0或或x。n逻辑操作符只对逻辑值运算。逻辑操作符只对逻辑值运算。n如操作数为全如操作数为全0,则其逻辑,则其逻辑值为值为falsen如操作数有一位为如操作数有一位为1,则其,则其逻辑值为逻辑值为truen若操作数若操作数只只包含包含0、x、z,则逻辑值为则逻辑值为x逻辑反操作符将操作数逻辑反操作符将操作数的逻辑值取反。例如,的逻辑值取反。例如,若操作数为全若操作数为全0,则其,则其逻辑值为逻辑值为0,逻辑反操,逻辑反操作值为作值
9、为1。非非&与与|或或异或异或 同或同或 同或同或n 当两个操作数位数不同时,位数少的操作数零扩展到相同当两个操作数位数不同时,位数少的操作数零扩展到相同位数。非是单目操作数的,其他都是双目操作数。位数。非是单目操作数的,其他都是双目操作数。a = 4b1011;b = 8b01010011;c = a | b; / a零扩展为零扩展为 8b00001011说明:n一个模块中可以包含多个initial语句,所有语句都是从0时刻开始执行,而且只能执行一次。ninitial语句常用于测试文本中信号的初始化,生成输入仿真波形,监测信号变化等。ninitial语句也可以使用fork-join语
10、句。建议建议:例:例: 数据采样模块数据采样模块 4h5 : out = 4b0001; 4h6 : out = 4b0010; 4h7 : out = 4b0011; 4h8 : out = 4b0000; 4h9 : out = 4b0010; 4ha : out = 4b0100; 4hb : out = 4b0110; 4hc : out = 4b0000; 4hd : out = 4b0011; 4he : out = 4b0110; 4hf : out = 4b1001; default : out=bx; endcase endendmodule例:查找表方式实现22 乘法【例例
11、】用用for 语句描述的七人投票表决器语句描述的七人投票表决器【例例】用用for 语句实现语句实现2 个个8 位数相乘位数相乘includeinclude文件文件设计文件设计文件厂家元件厂家元件库文件库文件输入文件:输入文件:激励和期望激励和期望的输出信号的输出信号输出文件:激输出文件:激励和实际输出励和实际输出的信号的信号编译器编译器仿真器仿真器仿真器仿真器n用用Verilog设计的步骤:设计的步骤:n测试平台的组成测试平台的组成激励激励信号信号需要验证的需要验证的设计设计激励信号激励信号和用于验和用于验证的结果证的结果数据数据需要验证的需要验证的设计设计简单的测试平台简单的测试平台复杂的测
12、试平台复杂的测试平台n施加激励施加激励产生激励并加到设计有很多产生激励并加到设计有很多 种方法。常用的方法:种方法。常用的方法:n从一个从一个initial块中施加线激励块中施加线激励n从一个循环或从一个循环或always块施加激励块施加激励n从一个向量或整数数组施加激励从一个向量或整数数组施加激励n记录一个仿真过程,然后在另一个仿真中回放施加激励记录一个仿真过程,然后在另一个仿真中回放施加激励n 线性激励有以下特性:线性激励有以下特性:n 只有变量的值改变时才列出只有变量的值改变时才列出n 易于定义复杂的时序关系易于定义复杂的时序关系n 对一个复杂的测试,测试基准对一个复杂的测试,测试基准(
13、test bench)可能非常大可能非常大module inline_ tb; reg 7: 0 data_ bus, addr; wire 7: 0 results; DUT u1 (results, data_ bus, addr); initial fork data_bus = 8h00; addr = 8h3f; #10 data_ bus = 8h45; #15 addr = 8hf0; #40 data_ bus = 8h0f; #60 $finish; joinendmodulen 保存在文件中的矢量反过来可以作为激励保存在文件中的矢量反过来可以作为激励module read_
14、file_tb; parameter num_vecs = 256; reg 7:0 data_bus; reg 7:0 stim num_vecs-1:0; integer i; DUT u1 (results, data_bus) initial begin / Vectors are loaded $readmemb (vec. txt, stim); for (i =0; i num_vecs ; i = i + 1) #50 data_bus = stimi; endendmodule/ 激励文件激励文件vec.txt001110000011100100111010001111000
15、011000000101000000110000111100010111000.n 使用矢量文件输入使用矢量文件输入/输出的优点:输出的优点: 激励修改简单激励修改简单 设计反复验证时直接使用工具比较矢量文件。设计反复验证时直接使用工具比较矢量文件。例例1:有启动延时的对称时钟的例子:有启动延时的对称时钟的例子:reg ck;initial begin ck = 0; #( period) forever #( period/2) ck = !ck;endreg go; wire ck;nand #( period/2) u1 (ck, ck, go);initialbegin go = 0;
16、 #(period) go = 1;end注意:注意:在行为描述中,在时间0将CK初始化为0;而在结构描述中,直到period/2才影响CK值。当go信号在时间0初始化时,CK值到period/2才变化。可以使用特殊命令force和release立即影响CK值。产生的波形(假定产生的波形(假定period为为20)例例2:有不规则启动延时的不对称时钟的例子:有不规则启动延时的不对称时钟的例子:注意:注意:在行为描述中,CK值立刻被影响;而在结构描述中,在传播延时后才输出正确波形。产生的波形(假定产生的波形(假定period为为20)reg ck;initial begin #(period +
17、 1) ck = 1; #(period/2 1) forever begin #(period/4) ck = 0; #(3*period/4) ck = 1; endendreg go; wire ck;nand #(3*period/4, period/4) u1(ck, ck, go);initial begin #(period/4 + 1) go = 0; #(5*period/4 1) go = 1;end例例3:在:在test bench中使用中使用task可以压缩重复操作,提高代码可以压缩重复操作,提高代码效率。效率。module bus_ctrl_tb; reg 7: 0
18、data; reg data_valid, data_rd; cpu u1 (data_valid, data,data_rd); initial begin cpu_driver (8b0000_0000); cpu_driver (8b1010_1010); cpu_driver (8b0101_0101); end task cpu_driver; input 7:0 data_in; begin #30 data_valid = 1; wait (data_rd = 1); #20 data = data_ in; wait (data_rd = 0); #20 data = 8hzz; #30 data_valid = 0; end endtaskendmodule n使用使用tasktask产生的波形产生的波形n4 选选1 数据选择器数据选择器(用case 语句描述 )module mux4_1(out,in0,in1,in2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视剧务管理师助理场记聘用合同
- 2024年度艺人经纪服务协议2篇
- 《审计学》全套课件
- 人教版九年级化学第八单元3拓展一三种金属活动性顺序的验证金属与酸反应的图像分析分层作业课件
- 二零二四年度工程安装项目信息安全与保密协议3篇
- 二零二四年度分包方工程勘察设计合同的履行与管理合同3篇
- 员工培训研究现状调查
- 七下英语六单元教育课件
- 钢管采购合同范本简易版
- 2024年度工程款支付连带责任担保合同15篇
- 建筑工程施工现场安全管理处罚规定
- 安徽省合肥市2024年七年级上学期期中数学试卷【附答案】
- 4.1陆地水体间的相互关系课件高中地理人教版(2019)选择性必修一
- 国开学习网《幼儿园课程与活动设计》期末大作业答案(第3套)
- DB11T 854-2023 占道作业交通安全设施设置技术要求
- 浙教版2024-2025学年七年级数学上册第四章 代数式 单元测试(附答案)
- DB11T 585-2020 组织机构、职务职称英文译写通则
- 跨境电商物流运输管理合同
- 教育心理学-形考作业1(第一至三章)-国开-参考资料
- 兵器工业集团招聘笔试题库2024
- 实习生考勤制度
评论
0/150
提交评论