您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Verilog期末复习
Verilog期末复习考试内容:凡是课堂讲过的内容都有可能考重点是对基本语法的掌握能力和实际应用能力本课件非考试大纲,切勿仅仅据此复习试题类型:填空题:10空20分简答题:6道36分程序设计题:4道44分复习内容(一)各种数据类型及变量常量门级描述行为描述(包含多种分支语句)数据流级描述任务和函数的编写系统任务的使用语法用户自定义原语状态机建模层次化建模及语法简单的VerilogHDL模块编写和测试VerilogHDL的级别划分•系统级(system):用高级语言结构实现设计模块的外部性能的模•算法级(algorithmic):用高级语言结构实现设计算法的模型。•RTL级(RegisterTransferLevel):描述数据在寄存器之间流动和如何处理这些数据的模型。•门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。•开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。合法和非法标识符合法的:非法的:shift_reg_a34netbus2632_m_pmos//不能用数字开头_a_busa*b_net//不能含有非字母符号*n@263//不能含有非字母符号@Verilog是大小写敏感的。所谓标识别符就是用户为程序描述中的Verilog对象所起的名字。标识符必须以英语字母(a-z,A-Z)起头,或者用下横线符(_)起头。其中可以包含数字、$符和下横线符。特别标识符是用“\”符开始,以空格符结束的标识符。它可以包含任何可打印的ASCII字符。例如以下不正确的标识符名称是Sad_66\32100_a_bus\initial/data_outModule2_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]举例说明数据类型的选择moduleTADD(A,B,Sum1,Sum2,C,Sum3);iuputA,B,C;outputSum1,Sum2;inoutSum3;regSum1,Sum2;…….endmodulemoduletestbench;……TADDT1(D1,D2,D3,D4,D5,D6);D1:wire/reg线网或寄存器型D2:wire/reg线网或寄存器型D3:wire线网型D4:wire线网型D5:wire/reg线网或寄存器型D6:wire线网型运算符(操作符)及表达式VerilogHDL中的运算符可以分为下述类型:算术运算符:返回运算结果关系运算符:返回逻辑值真假相等运算符:返回真假,==和!=只识别1和0,===和!==能严格识别01xz逻辑运算符:逻辑与或非,&&||!返回真假按位运算符:按位运算,返回结果长度与运算前相同缩减(归约)运算符:从左至右依次运算,直至最后一位结果,所以最后结果为1位移位运算符:左移扩位,右移长度不变条件运算符:?:条件满足输出冒号前的式子,不满足输出冒号后的式子拼接运算符:{}注意其中各位必须指明宽度三类时延值对于每个时延定义,总共能够指定三类时延值:上升时延下降时延关闭时延assign#(rise,fall,turn-off)LHS=RHS_expr;如果右端从非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/100psmoduleAndFunc(Z,A,B);outputZ;inputA,B;and#(5.22,6.17)Al(Z,A,B);//规定了上升及下降时延值。endmodule编译器指令定义时延以ns为单位,并且时延精度为1/10ns(100ps)。过程性赋值过程性赋值分两类:阻塞性过程赋值=、非阻塞性过程赋值=过程性赋值是仅仅在initial语句或always语句内的赋值,它只能对寄存器数据类型的变量赋值。表达式的右端可以是任何表达式。...连续性赋值与过程性赋值比较过程赋值在always语句或initial语句内出现,执行与周围其它语句有关驱动寄存器reg使用“=”或“=”赋值符号无assign关键词连续赋值在一个模块内出现与其它语句并行执行;在右端操作数的值发生变化时执行驱动线网wire使用“=”赋值符号有assign关键词函数与任务的区别(1)函数只能与主模块共用同一个仿真时间单位,而任务可以定义自己的仿真时间单位。(2)函数不能启动任务,而任务能启动其他任务和函数。(3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量。(4)函数返回一个值,而任务则不返回值函数的关键词是function;任务的关键词是taskVerilogHDL中的循环语句和块语句forever循环repeat循环while循环for循环顺序块与并行块运行后下列变量A,B,C,D的二进制值reg[7:0]A,B,C;wireD;initialB=3’hff;initialA=8’bz0;…..A=zzzzzzz0,B=00000111,C=xxxxxxxx,D=z赋值时右式左式位数不匹配时:若左多右少,按低位配齐,高位补零处理,若赋值的最高位为x或z,则向前补齐若右多左少,按低位配齐,高位舍去处理课堂练习用门级结构建模的方式描述下图所示电路参考解答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);endmoduleABCAbarBbarEoutDT1T2T3练习:运用数据流建模描述下图电路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有限状态机的分类MooreFSM(摩尔有限状态机)特点:MooreFSM的输出只与当前状态有关MooreFSM的描述方法:采用一个沿触发的always语句及case语句。MealyFSM(米里有限状态机)特点:MealyFSM的输出与当前状态和输入有关。其中Mealy有限状态机又可分为同步Mealy状态机和异步Mealy状态机千万注意写法!ABCinSumCout读程序用国际图形符号绘出门级结构示意图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);endmodulend7iv1nd3nd1nd6nd2nd5nd4iv2nd8cleardataclockndataabcdefqqbnclock1在代码`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/10psModulePhase(Master_Clk,Slave_Clk);OutputMaster_Clk,Slave_Clk;regMaster_Clk;wireSlave_Clk;parameterON=2,tOFF=3,tPHASE_DELAY=1;alwaysbegin#tONMaster_Clk=0;#tOFFMaster_Clk=1;EndAssing#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模块,改怎样来描述?用门及结构建模的方式描述下图所示电路
本文标题:Verilog期末复习
链接地址:https://www.777doc.com/doc-4834741 .html