VerilogHDL复习题与答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1VerilogHDL硬件描述语言复习一、1.VerilogHDL是在哪一年首次被IEEE标准化的?答:VerilogHDL是在1995年首次被IEEE标准化的。2.VerilogHDL支持哪三种基本描述方式?答:VerilogHDL可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模3.VerilogHDL是由哪个公司最先开发的?答:VerilogHDL是由GatewayDesignAutomation公司最先开发的4.VerilogHDL中的两类主要数据类型什么?答:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。5.UDP代表什么?答:UDP代表用户定义原语6.写出两个开关级基本门的名称。答:pmosnmos7.写出两个基本逻辑门的名称。答:andor8.在数据流描述方式中使用什么语句描述一个设计?答:设计的数据流行为使用连续赋值语句进行描述9.采用结构描述方式描述1位全加器。答:modulefull_add(a,b,cin,s,co);inputa,b,cin;outputs,co;wireS1,T1,T2,T3;xorX1(S1,a,b),X2(s,S1,cin);andA1(T3,a,b),A2(T2,b,cin),A3(T1,a,cin);orO1(co,T1,T2,T3);endmodule10.initial语句与always语句的关键区别是什么?答:1)initial语句:此语句只执行一次。2)always语句:此语句总是循环执行,或者说此语句重复执行。11.采用数据流方式描述2-4译码器。答:'timescale1ns/nsmoduleDecoder2×4(A,B,EN,Z);inputA,B,EN;output[0:3]Z;2wireabar,Bbar;assign#1Abar=~A;assign#1Bbar=~B;assign#2Z[0]=~(Abar&Bbar&EN);assign#2Z[1]=~(Abar&B&EN);assign#2Z[2]=~(A&Bbar&EN);assign#2Z[3]=~(A&B&EN);endmodule12.找出下面连续赋值语句的错误。assignReset=#2Sel^WriteBus;答:不符合连续赋值语句的语法,应该为:assign#2Reset=^WriteBus;二、1.下列标识符哪些合法,哪些非法?COunT,1_2Many,\**1,Real?,\wait,Initial答:COunT合法,1_2Many非法,\**1,Real?非法,\wait合法,Initial合法2.在VerilogHDL中是否有布尔类型?答:没有3.如果线网类型变量说明后未赋值,其缺省值为多少?答:z4.VerilogHDL允许没有显式说明的线网类型。如果是这样,怎样决定线网类型?答:在VerilogHDL中,有可能不必声明某种线网类型。在这样的情况下,缺省线网类型为1位线网。5.下面的说明错在哪里?integer[0:3]Ripple;答:应该是integerRipple[0:3]6.VerilogHDL有哪几大类数据类型?答:veriloghdl有两大类数据类型:线网类型和寄存器类型。7.VerilogHDL有哪几种寄存器类型?答:有五种不同的寄存器类型:reg、integer、time、real、realtime。三、1.假定长度为64个字的存储器,每个字8位,编写Verilog代码,按逆序交换存储器的内容。即将第0个字与第63个字交换,第1个字与第62个字交换,依此类推。答:reg[7:0]mem[63:0];integeri=0;reg[7:0]temp;while(i32)begintemp=mem[i];mem[i]=mem[63-i];mem[63-i]=temp;i=i+1;end2.假定32位总线Address_Bus,编写一个表达式,计算从第11位到第20位的归约与非。答:~&addressBus[20:11]3.假定一条总线Control_Bus[15:0],编写赋值语句将总线分为两条总线:Abus[0:9]和Bbus[6:1]。3答:Abus=ControlBus[9:0];Bbus=ControlBus[15:10];4.编写一个表达式,执行算术移位,将Qparity中包含的8位有符号数算术移位。答:{Qparity[7-i:0],Qparity[7:8-i]}//左移,i表示移的位数{Qparity[i-1:0],Qparity[7:i]}//右移,i表示移的位数5.使用条件操作符,编写赋值语句选择NextState的值。如果CurrentState的值为RESET,那么NextState的值为GO;如果CurrentState的值为GO,则NextState的值为BUSY;如果CurrentState的值为BUSY;则NextState的值为RESET。答:NextState=(CurrentState==RESET)?Go:(CurrentState==Go?BUSY:RESET)6.如何从标量变量A,B,C和D中产生总线BusQ[0:3]?如何从两条总线BusA[0:3]和BusY[20:15]形成新的总线BusR[10:1]?答:BusQ[3:0]={D,C,B,A}BusR[10:1]={BusY[20:15],BusA[3:0]}四、1、VeriligHDL提供的内置基本门分为哪几类?1)多输入门、2)多输出门、3)三态门2、多输入门与多输出门的区别在哪里?答:多输入门:andnandnororxorxnor这些逻辑门只有单个输出,1个或多个输入第一个端口是输出,其它端口是输入。多输出门有:buf,not这些门都只有单个输入,一个或多个输出最后的端口是输入端口,其余的所有端口为输出端口。3、VerilogHDL内置的mos开关门有哪些?答:cmos,nmos,pmos,rcmos,rnmos,rpmos4、门时延值的组成有哪几个值?答:1)上升时延2)下降时延3)关断时延5.VeriligHDL提供的内置基本门分为哪几类?答:1)多输入门2)多输出门3)三态门4)上拉、下拉电阻5)MOS开关6)双向开关6.假定一条总线Control_Bus[7:0],编写赋值语句将总线分为两条总线:Abus[0:2]和Bbus[4:1]。答:Abus=ControlBus[2:0];Bbus=ControlBus[15:12];7.编写一个表达式,执行算术移位,将Qparity中包含的8位有符号数算术左移3位。答:{Qparity[4:0],Qparity[7:5]}8.要求采用数据流方式设计一个半加器,写出完整的VeriligHDL设计模块。答:modulehalf_add(Sum,Cout,A,B);inputA,B;outputSum,Cout;assignSum=A^B;assignCout=A&B;endmodule五、1、操作符有按操作数个数分为3种类型,其中三目操作符有2个操作符和3个操作数。2、关键字全是小写,标识符的首字符必须是字母或下划线。43、数字A=5’b011?的?表示z。设B=5’b101x1,C=5’b01x11,则操作运算F=B+C的结果F=5'bxxxxx。4、VerilogHDL中保存字符串“Hello”需要5位。5、声明reg[7:0]data[4:0]表示5个8位的存储单元。6、moduletest(q,clk,crt);outputq;regq;Inputclk,crt;always@(posedgeclk)beginif(crt==1)q=~q;endendmodule7、数据流建模的主要语法结构是assignLHS_target=RHS_expression;语句,采用assign关键字开始。8、线网赋值延迟可以通过普通赋值延迟,隐式连续赋值延迟和线网声明延迟三种方法来实现。9、模型引用时,要指定实例名,但硬件和用户定义原语例外。10、语句assign#(2:3:4,5:6:7)port(out,clk,in)中的典型关断延迟是4,最大关断延时是7。11、VerilogHDL语言可以从四个不同的抽象层次描述电路,这四层是开关级、门级、寄存器传送级、算法级12、结构化建模的主要语句是内置门原语和用户定义原语。六、1.门级建模的类型有:(A)or和AND(B)OR和and(C)and和or(D)A、B、C都正确(C)2.VerilogHDL使用的是逻辑是:(A)二值逻辑(B)四值逻辑(C)三值逻辑(D)八种强度(B)3.不属于寄存器类型的是:(A)integer(B)reg(C)wand(D)time(C)4.VerilogHDL语言中,标识符的作用范围是:(A)本模块(B)外部模块(C)所有模块(D)全局模块(A)5.具有多个输出端口的门是:(A)and(B)or(C)nor(D)not(D)七、1、语句内部时延与语句前时延效果是否一样?答:不一样2、当时延表达式为负数时,时延值是如何处理得到?答:取绝对值3、VeriligHDL有几种循环语句?分别采用关键字是什么?答:总共有四种循环语句,分别采用forever、repeat、while、for。八、51.VerilogHDL语言和C语言的结构化语句有何不同?答:1.VerilogHDL是在C语言的基础上发展起来的,保留了C语言的结构特点。2.C语言由函数组成,Verilog由模块(module)组成3.C语言通过函数名及其端口变量实现调用,Verilog也通过模块名和端口变量实现调用4.C语言有主函数main(),Verilog的个module均等价,但必有一个顶层模块,包含芯片系统与外界的所有I/O信号5.C语言是顺序执行,而Verilog的所有module均并发执行6.C语言与Verilog语法相似。2、VerilogHDL语言的操作符类型有哪些?其数据流建模采用什么来描述设计吗?答:算术、逻辑、关系、等价、按位、缩减、移位、拼接、条件数据流建模采用算术与逻辑来描述设计3、VerilogHDL语言的优点是什么?答:VerilogHDL语言的优势:由于它在其门级描述的底层,也就是晶体管开关的描述方面比VHDL等各种其它的HDL语言有更强的功能。所以在复杂数字逻辑电路和系统的设计仿真时更有优势;描述的设计思想、电路结构和逻辑关系清晰明了,并且设计语言简练、易学易用;其模块化分层结构在大规模设计时更能体现出优势。因此可以看出,VerilogHDL语言在EDA设计中相对与其他的各种硬件描述语言更有优势。4、下列例子中,b,c,d的最终值分别是什么?initialbeginb=1’b1;c=1’b0;#10b=1’b0;endinitialbegind=#25{b|c};end答:b=1'b0、c=1'b0、d=1'b05.一位全减器模块wsub具有三个一位输入:x,y和z(前面的借位),两个一位的输出D(差)和B(借位)。计算D和B的逻辑等式如下所示:zyxzyxzyxzyxD........zyzxyxB...写出VerilogHDL数据流描述的该全减器wsub。答:modulewsub(D,B,x,y,x)inputx,y,z;outputD,B;assignD=~x*~y*~z+~x*y*~z+x*~y*~Z+x*y*z;assignB=~x*y+~x*z+y*z;endmodule

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功