Verilog期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);//规定了上升及下降时延值。