Verilog期末复习.docx

上传人:b****1 文档编号:11003720 上传时间:2023-05-28 格式:DOCX 页数:13 大小:77.51KB
下载 相关 举报
Verilog期末复习.docx_第1页
第1页 / 共13页
Verilog期末复习.docx_第2页
第2页 / 共13页
Verilog期末复习.docx_第3页
第3页 / 共13页
Verilog期末复习.docx_第4页
第4页 / 共13页
Verilog期末复习.docx_第5页
第5页 / 共13页
Verilog期末复习.docx_第6页
第6页 / 共13页
Verilog期末复习.docx_第7页
第7页 / 共13页
Verilog期末复习.docx_第8页
第8页 / 共13页
Verilog期末复习.docx_第9页
第9页 / 共13页
Verilog期末复习.docx_第10页
第10页 / 共13页
Verilog期末复习.docx_第11页
第11页 / 共13页
Verilog期末复习.docx_第12页
第12页 / 共13页
Verilog期末复习.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Verilog期末复习.docx

《Verilog期末复习.docx》由会员分享,可在线阅读,更多相关《Verilog期末复习.docx(13页珍藏版)》请在冰点文库上搜索。

Verilog期末复习.docx

Verilog期末复习

Verilog期末复习

v考试内容:

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

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

▪本课件非考试大纲,切勿仅仅据此复习

v试题类型:

▪填空题:

10空20分

▪简答题:

6道36分

▪程序设计题:

4道44分

复习内容

(一)

v各种数据类型及变量常量

v门级描述

v行为描述(包含多种分支语句)

v数据流级描述

v任务和函数的编写

v系统任务的使用语法

v用户自定义原语

v状态机建模

v层次化建模及语法

v简单的VerilogHDL模块编写和测试

 

VerilogHDL的级别划分

•系统级(system):

用高级语言结构实现设计模块的外部性能的模

•算法级(algorithmic):

用高级语言结构实现设计算法的模型。

•RTL级(RegisterTransferLevel):

描述数据在寄存器之间流动和如何处理这些数据的模型。

•门级(gate-level):

描述逻辑门以及逻辑门之间的连接的模型。

•开关级(switch-level):

描述器件中三极管和储存节点以及它们之间连接的模型。

合法和非法标识符

合法的:

非法的:

shift_reg_a34net

bus2632_m_pmos//不能用数字开头

_a_busa*b_net//不能含有非字母符号*

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

Verilog是大小写敏感的。

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

标识符必须以英语字母(a-z,A-Z)起头,或者用下横线符(_)起头。

其中可以包含数字、$符和下横线符。

特别标识符是用“\”符开始,以空格符结束的标识符。

它可以包含任何可打印的ASCII字符。

例如

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

▪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个四位寄存器组

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

 

▪reg[7:

0]mem[2047:

0]

举例说明数据类型的选择

moduleTADD(A,B,Sum1,Sum2,C,Sum3);

iuputA,B,C;

outputSum1,Sum2;

inoutSum3;

regSum1,Sum2;

…….

endmodule

moduletestbench;

……

TADDT1(D1,D2,D3,D4,D5,D6);

 

vD1:

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

wire/reg线网或寄存器型

vD3:

wire线网型D4:

wire线网型

vD5:

wire/reg线网或寄存器型

vD6:

wire线网型

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

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

▪算术运算符:

返回运算结果

▪关系运算符:

返回逻辑值真假

▪相等运算符:

返回真假,==和!

=只识别1和0,===和!

==能严格识别01xz

▪逻辑运算符:

逻辑与或非,&&||!

返回真假

▪按位运算符:

按位运算,返回结果长度与运算前相同

▪缩减(归约)运算符:

从左至右依次运算,直至最后一位结果,所以最后结果为1位

▪移位运算符:

左移扩位,右移长度不变

▪条件运算符:

条件满足输出冒号前的式子,不满足输出冒号后的式子

▪拼接运算符:

{}注意其中各位必须指明宽度

三类时延值

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

▪上升时延

▪下降时延

▪关闭时延

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

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

如果右端值到达z,那么使用下降时延;否则使用上升时延。

▪assign#4Ask=Quiet||Late;//Onedelayvalue.

▪assign#(4,8)Ask=Quick;//Twodelayvalues.

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

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

`timescale使用举例

▪`timescale1ns/100ps

▪moduleAndFunc(Z,A,B);

▪outputZ;

▪inputA,B;

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

▪endmodule

v编译器指令定义时延以ns为单位,并且时延精度为1/10ns(100ps)。

过程性赋值

v过程性赋值分两类:

▪阻塞性过程赋值=、非阻塞性过程赋值<=

v过程性赋值是仅仅在initial语句或always语句内的赋值,它只能对寄存器数据类型的变量赋值。

表达式的右端可以是任何表达式。

...

连续性赋值与过程性赋值比较

过程赋值

v在always语句或initial语句内出现,执行与周围其它语句有关

v驱动寄存器reg

v使用“=”或“<=”赋值符号

v无assign关键词

连续赋值

v在一个模块内出现

v与其它语句并行执行;在右端操作数的值发生变化时执行

v驱动线网wire

v使用“=”赋值符号

v有assign关键词

 

函数与任务的区别

v

(1)函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己的仿真时间单位。

v

(2)函数不能启动任务,而任务能启动其他任务和函数。

v(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量。

v(4)函数返回一个值,而任务则不返回值

v函数的关键词是function;任务的关键词是task

VerilogHDL中的循环语句和块语句

forever循环

repeat循环

while循环

for循环

顺序块与并行块

运行后下列变量A,B,C,D的二进制值

vreg[7:

0]A,B,C;

vwireD;

vinitial

vB=3’hff;

vinitial

vA=8’bz0;…..

A=zzzzzzz0,B=00000111,C=xxxxxxxx,D=z

赋值时右式左式位数不匹配时:

若左多右少,按低位配齐,高位补零处理,若赋值的最高位为x或z,则向前补齐

若右多左少,按低位配齐,高位舍去处理

 

课堂练习

v

用门级结构建模的方式描述下图所示电路

 

参考解答

modulearch_model(D,A,B,C,Eout);

inputA,B,C,D;

outputEout;

wireA,B,C,D,Abar,Bbar,T1,T2,T3;

notiv1(Abar,A),

iv2(Bbar,B);

andad(T1,D,Abar);

nornr(T3,C,Bbar);

xorxr(T2,A,Bbar);

xnorxn(Eout,T1,T2,T3,C);

endmodule

 

练习:

运用数据流建模描述下图电路

moduleFA_Df(A,B,Cin,Sum,Cout);

inputA,B,Cin;

outputSum,Cout;

wireA,B,c,d,e,f,Cin,Sum,Cout;

assignc=A^B;

assignd=A&Cin;

assigne=B&Cin;

assignf=c&Cin;

assignSum=c^Cin;

assignCout=e|d|f;

endmodule

有限状态机的分类

vMooreFSM(摩尔有限状态机)

▪特点:

MooreFSM的输出只与当前状态有关

▪MooreFSM的描述方法:

采用一个沿触发的always语句及case语句。

vMealyFSM(米里有限状态机)

▪特点:

MealyFSM的输出与当前状态和输入有关。

▪其中Mealy有限状态机又可分为同步Mealy状态机和异步Mealy状态机

千万注意写法!

读程序用国际图形符号绘出门级结构示意图

 

moduleflop(data,clock,clear,q,qb);

inputdata,clock,clear;

outputq,qb;

wirea,b,c,d,e,f,nclock,ndata;

nand#10nd1(a,data,clock,clear),

nd2(b,ndata,clock),

nd4(d,c,b,clear),

nd5(e,c,nclock),

nd6(f,d,nclock),

nd8(qb,q,f,clear);

nand#9nd3(c,a,d),

nd7(q,e,qb);

not#10iv1(ndata,data),

iv2(nclock,clock);

endmodule

1在代码`timescale1ns/100ps中,定义的仿真时间精度是____

2写出在VLSI设计流程中,常用的一种Verilog语言仿真软件的名称

3assign#(4,6,8)Due=&DataBus;语句中,Due变为0的时延是____,Due变为1的时延是___

4十进制数33用8位二进制基数表示为_;用十六进制基数表示为__

5模块的端口有3中类型,分别是______________

6如果要声明一个储存器变量,存储单元大小为16位,一共4096个存储单元,存储单元名称为ram_data,其代码描述为:

____

7VerilogHDL的规定中,内置的多输出门有两种,分别是_____

8Verilog中,可以使用门时延定义内置门中从任何输入到其输出的信号传输时延,一共有三类时延,分别是________

9常用的有限状态机建模有两种,分别是__________

10在行为建模的always语句中,有两种过程性赋值方式分别是(写出名称和符号)__________

11、调用模块(实例化)有两种端口连接方式,方法分别为____。

12、常用的建模级别有_______。

13、行为级建模中使用______语句作为主要的建模语句。

14、按语句的执行顺序来区分,VerilogHDL语句中有__两种类语句块。

15、顺序块和并行块使用两种类型的块语句。

顺序块使用关键字___,而并行块使用关键字____来表示。

16、Verilog设计中可以把在多个地方都使用的部分程序编写成____,在需要的地方调用这些程序,以避免重复编码。

读代码

‘timescale1ns/10ps

ModulePhase(Master_Clk,Slave_Clk);

OutputMaster_Clk,Slave_Clk;

regMaster_Clk;

wireSlave_Clk;

parameterON=2,

tOFF=3,

tPHASE_DELAY=1;

always

begin

#tONMaster_Clk=0;

#tOFFMaster_Clk=1;

End

Assing#tPHASE_DELAYSlave_Clk=Master_Clk;

Endmodule

结构建模

ModuleSADD(A,B,Sum1,Sum2,C,Sum3);

InputA,B,C;

OutputSum1,Sum2;

InoutSum3;

RegSum1,Sum2;

……….

endmodule

(1)指出下列模块实例化语句中各信号D1~D6的信号类型。

 

moduletestbench;

……..

SADDT1(D1,D2,D3,D4,D5,D6);

……….

endmodule

如果在testbench模块中,采用名称关联的方式来实现实例化SADD模块,改怎样来描述?

用门及结构建模的方式描述下图所示电路

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2