Verilog期末复习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Verilog期末总复习

考试时间:

▪2010年12月15日星期三上午8:00—9:35随堂考 考试内容:

▪凡是课堂讲过的内容都有可能考

▪重点是对基本语法的掌握能力和实际应用能力

▪本课件不规划考试大纲,切勿仅仅据此复习 试题类型:

▪填空40%

▪简答读代码画波形等40%

▪综合写代码题20%

复习内容(一)

第一章

▪ 1.1绪论,硬件描述语言VerilogHDL的发展和特点

▪ 1.2 超大规模集成电路设计流程

第二章简单的Verilog HDL模块和测试

第三章

▪ 3.1数据类型及变量常量

▪ 3.2运算符和表达式

▪ 3.3数据流建模

▪ 3.4 门级结构描述

▪ 3.5行为建模和块语句

▪ 3.6过程性赋值语句

▪ 3.7条件语句和循环语句

▪ 3.8系统任务和函数

▪ 3.9结构建模、编译预处理及用户定义原语 第四章有限状态机和可综合风格的VerilogHDL

▪ 4.1 有限状态机建模(一)

▪ 4.2 采用有限状态机高级建模(二)

▪ 4.3编码规范和可综合代码

第五章可重用设计、可综合设计

Verilog HDL的应用

•系统级(system): 用高级语言结构实现设计模块的外部性能的模

•算法级(algorithmic): 用高级语言结构实现设计算法的模型。

•RTL级(Register Transfer Level): 描述数据在寄存器之间流动和如何处理这些数据的模型。

•门级(gate-level): 描述逻辑门以及逻辑门之间的连接的模型。

•开关级(switch-level): 描述器件中三极管和储存节点以及它们之间连接的模型。

合法和非法标识符

合法的:非法的:

shift_reg_a 34net

bus263 2_m_pmos //不能用数字开头

\32100 a*b_net //不能含有非字母符号*

_a_bus n@263 //不能含有非字母符号@

\initial

Verilog 是大小写敏感的。所谓标识别符就是用户为程序描述中的Verilog 对象所起的名字。

标识符必须以英语字母(a-z, A-Z)起头,或者用下横线符(_ )起头。其中可以包含数字、$符和下横线符。

特别标识符是用“\”符开始,以空格符结束的标识符。它可以包含任何可打印的ASCII字符。

例如

以下不正确的标识符名称是

▪Sad_66

▪\32100

▪_a_bus

▪\initial

▪/data_out

▪Module

▪2_m_pmos

存储器memory型变量

存储器memory型

用一个寄存器数组来对存储器建模。

格式: reg [msb:lsb] 存储器名[upper1:lower1];

如:

reg [3:0] MyMem [63:0]; // 64个四位寄存器组

如果要声明一个存储器变量,存储单元大小为8位,一共2048个存储单元,存储单元名称为mem,代码描述为:

▪reg [7:0] mem[2047:0]

举例说明数据类型的选择

module TADD(A, B, Sum1, Sum2, C,Sum3 );

iuput A,B,C;

output Sum1,Sum2;

inout Sum3;

reg Sum1,Sum2;

…….

endmodule

module testbench;

……

TADD T1(D1,D2,D3,D4,D5,D6);

D1:wire/reg 线网或寄存器型D2: wire/reg线网或寄存器型

D3:wire线网型D4: wire线网型

D5: wire/reg 线网或寄存器型

D6: wire线网型

运算符(操作符)及表达式

Verilog HDL中的运算符可以分为下述类型:

▪算术运算符,关系运算符

▪相等运算符

▪逻辑运算符

▪按位运算符

▪缩减(归约)运算符

▪移位运算符:

▪表达式8’b0010_x011<<2的计算结果是8’b10x0_1100

▪条件运算符

▪连接和复制运算符

三类时延值

对于每个时延定义,总共能够指定三类时延值:

▪上升时延

▪下降时延

▪关闭时延

assign #(rise, fall, turn-off) LHS = RHS_expr ;

如果右端从非0向量变化到0向量,那么就使用下降时延。如果右端值到达z,那么使用下降时延;

否则使用上升时延。

▪assign #4 Ask = Quiet | | Late; // One delay value.

▪assign # (4,8) Ask = Quick ; // Two delay values.

▪assign # (4,8,6) Arb = &DataBus; // Three delay values.

▪Arb变为0的时延是8; Arb变为1的时延是4。

`timescale使用举例

▪` timescale 1ns/100ps

▪module AndFunc(Z,A,B);

▪output Z;

▪input A,B;

▪and #(5.22,6.17) Al(Z,A,B);//规定了上升及下降时延值。

相关文档
最新文档