《VerilogHDL复习题与答案.doc》由会员分享,可在线阅读,更多相关《VerilogHDL复习题与答案.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流VerilogHDL复习题与答案【精品文档】第 6 页VerilogHDL硬件描述语言复习一、1. Verilog HDL 是在哪一年首次被I E E E标准化的? 答:Verilog HDL是在1995年首次被IEEE标准化的。2. Verilog HDL支持哪三种基本描述方式? 答:Verilog HDL可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结 构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模3. Verilog HDL 是由哪个公司最先开发的? 答:Verilog HDL是由G
2、ateway Design Automation公司最先开发的4. Verilog HDL中的两类主要数据类型什么? 答:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线, 而寄存器类型表示抽象的数据存储元件。5. U D P代表什么? 答:UDP代表用户定义原语6. 写出两个开关级基本门的名称。 答:pmos nmos7. 写出两个基本逻辑门的名称。 答:and or8. 在数据流描述方式中使用什么语句描述一个设计? 答:设计的数据流行为使用连续赋值语句进行描述9. 采用结构描述方式描述1位全加器。 答:module full_add(a,b,cin,s,co); input a,
3、b,cin; output s,co; wire S1,T1,T2,T3; xor X1(S1,a,b), X2(s,S1,cin); and A1(T3,a,b), A2(T2,b,cin), A3(T1,a,cin); or O1(co,T1,T2,T3); endmodule10. i n i t i a l语句与always 语句的关键区别是什么? 答: 1) initial语句:此语句只执行一次。 2) always语句:此语句总是循环执行, 或者说此语句重复执行。11. 采用数据流方式描述2 - 4译码器。 答: timescale 1ns/ns module Decoder24(
4、A,B,EN,Z); input A,B,EN; output 0:3Z; wire abar,Bbar; assign #1 Abar=A; assign #1 Bbar=B; assign #2 Z0=(Abar&Bbar&EN); assign #2 Z1=(Abar&B&EN); assign #2 Z2=(A&Bbar&EN); assign #2 Z3=(A&B&EN); endmodule1 2. 找出下面连续赋值语句的错误。assign Reset=#2 SelWriteBus; 答:不符合连续赋值语句的语法,应该为:assign #2 Reset = WriteBus;二、1
5、. 下列标识符哪些合法,哪些非法? C O u n T, 1_2 M a n y, *1, R e a l?, wait, Initial 答:COunT合法,1_2 Many非法,*1,Real?非法,wait合法,Initial合法2. 在Verilog HDL中是否有布尔类型? 答:没有3. 如果线网类型变量说明后未赋值,其缺省值为多少? 答:z4. Verilog HDL 允许没有显式说明的线网类型。如果是这样,怎样决定线网类型? 答:在Verilog HDL 中,有可能不必声明某种线网类型。在这样的情况下,缺省线网类型为1位 线网。5. 下面的说明错在哪里?i n t e g e r
6、 0:3 R i p p l e; 答:应该是integer Ripple 0:3 6. Verilog HDL有哪几大类数据类型? 答:verilog hdl 有两大类数据类型:线网类型和寄存器类型。7.Verilog HDL有哪几种寄存器类型? 答:有五种不同的寄存器类型:reg、integer、time、real、realtime。三、1. 假定长度为6 4个字的存储器, 每个字8位,编写Verilog 代码,按逆序交换存储器的内容。即将第0个字与第6 3个字交换,第1个字与第6 2个字交换,依此类推。答:reg 7:0 mem 63:0;integer i = 0;reg 7:0 te
7、mp;while(i 32)begintemp = memi;memi = mem63 - i;mem63 - i = temp;i = i + 1;end2. 假定3 2位总线A d d re s s _ B u s, 编写一个表达式,计算从第11位到第2 0位的归约与非。 答:& addressBus20:113. 假定一条总线C o n t ro l _ B u s 1 5 : 0 ,编写赋值语句将总线分为两条总线: A b u s 0 : 9 和B b u s 6 : 1 。 答:Abus = ControlBus9:0; Bbus = ControlBus15:10;4. 编写一个表
8、达式,执行算术移位,将Qparity 中包含的8位有符号数算术移位。 答:Qparity7-i:0, Qparity7:8-i/左移,i表示移的位数 Qparityi-1:0, Qparity7: i/右移,i表示移的位数5. 使用条件操作符, 编写赋值语句选择N e x t S t a t e的值。如果C u rre n t S t a t e的值为R E S E T, 那么N e x t S t a t e的值为G O;如果C u rre n t S t a t e的值为G O,则N e x t S t a t e 的值为B U S Y;如果C u rre n t S t a t e的值为
9、B U S Y;则N e x t S t a t e的值为R E S E T。答:NextState = (CurrentState = RESET) ? Go : (CurrentState = Go ? BUSY : RESET)6. 如何从标量变量A,B,C和D中产生总线B u s Q0:3? 如何从两条总线B u s A 0 : 3 和B u s Y 2 0 : 1 5 形成新的总线B u s R 1 0 : 1 ?答:BusQ3:0 = D, C, B, A BusR10:1 = BusY20:15, BusA3:0四、1、Verilig HDL提供的内置基本门分为哪几类?1) 多输
10、入门、2) 多输出门、3) 三态门2、多输入门与多输出门的区别在哪里? 答:多输入门:and nand nor or xor xnor 这些逻辑门只有单个输出, 1个或多个输入 第一个端口是输出,其它端口是输入。 多输出门有:buf, not 这些门都只有单个输入,一个或多个输出 最后的端口是输入端口,其余的所有端口为输出端口。3、 Verilog HDL内置的mos开关门有哪些? 答:cmos, nmos, pmos, rcmos, rnmos, rpmos4、门时延值的组成有哪几个值? 答: 1) 上升时延 2) 下降时延 3) 关断时延5. Verilig HDL提供的内置基本门分为哪几
11、类? 答: 1) 多输入门 2) 多输出门 3) 三态门 4) 上拉、下拉电阻 5) MOS开关 6) 双向开关6.假定一条总线Control_Bus7:0,编写赋值语句将总线分为两条总线:Abus 0:2和Bbus 4 : 1 。 答:Abus=ControlBus2:0; Bbus=ControlBus15:12;7. 编写一个表达式,执行算术移位,将Qparity 中包含的8位有符号数算术左移3位。 答:Qparity4:0, Qparity7:58.要求采用数据流方式设计一个半加器,写出完整的Verilig HDL设计模块。答:module half_add(Sum, Cout,A,
12、B);input A, B;output Sum, Cout;assign Sum=AB;assign Cout=A&B;endmodule五、1、操作符有 按操作数个数分为3 种类型,其中三目操作符有 2 个操作符和 3 个操作数。2、关键字全是 小 写,标识符的首字符必须是 字母 或 下划线 。3、数字A=5b011?的?表示 z 。设B=5b101x1,C=5b01x11,则操作运算F=B+C的结果F= 5bxxxxx 。4、VerilogHDL中保存字符串“Hello”需要 5 位。5、声明reg 7:0data4:0表示 5 个 8 位的存储单元。6、module test(q,cl
13、k,crt); output q; reg q; Input clk,crt;always (posedge clk) begin if(crt=1) q=q;end endmodule7、数据流建模的主要语法结构是 assign LHS_target = RHS_expression; 语句 ,采用 assign 关键字开始。8、线网赋值延迟可以通过 普通赋值 延迟, 隐式连续赋值 延迟和 线网声明 延迟三种方法来实现。9、模型引用时,要指定实例名,但 硬件 和 用户定义 原语例外。10、语句assign #(2:3:4,5:6:7)port(out,clk,in)中的典型关断延迟是 4 ,
14、最大关断延时是 7 。11、VerilogHDL语言可以从四个不同的抽象层次描述电路,这四层是 开关级 、 门级 、 寄存器传送级 、 算法级 12、结构化建模的主要语句是 内置门原语 和 用户定义原语 。六、1门级建模的类型有:(A)or和AND (B)OR和and(C)and和or (D)A、B、C都正确 ( C )2VerilogHDL使用的是逻辑是:(A)二值逻辑 (B)四值逻辑 (C)三值逻辑 (D)八种强度 ( B )3不属于寄存器类型的是:(A)integer (B)reg(C)wand (D)time ( C )4VerilogHDL语言中,标识符的作用范围是:(A)本模块 (
15、B)外部模块(C)所有模块 (D)全局模块 ( A )5具有多个输出端口的门是:(A)and (B)or(C)nor (D)not ( D )七、1、 语句内部时延与语句前时延效果是否一样? 答:不一样2、 当时延表达式为负数时,时延值是如何处理得到? 答:取绝对值3、VeriligHDL有几种循环语句?分别采用关键字是什么? 答:总共有四种循环语句,分别采用forever、repeat、while、for。八、1VerilogHDL语言和C语言的结构化语句有何不同? 答:1.Verilog HDL是在C语言的基础上发展起来的,保留了C语言的结构特点。2.C语言由函数组成,Verilog由模块
16、(module)组成3.C语言通过函数名及其端口变量实现调用,Verilog也通过模块名和端口变量实现调用4.C语言有主函数main(),Verilog的个module均等价,但必有一个顶层模块,包含芯片系统与外界的所有I/O信号5.C语言是顺序执行,而Verilog的所有module均并发执行6.C语言与Verilog语法相似。2、VerilogHDL语言的操作符类型有哪些?其数据流建模采用什么来描述设计吗? 答:算术、逻辑、关系、等价、按位、缩减、移位、拼接、条件 数据流建模采用算术与逻辑来描述设计3、VerilogHDL语言的优点是什么? 答: Verilog HDL语言的优势:由于它在
17、其门级描述的底层,也就是晶体管开关的描述方面比VHDL等各种其它的HDL语言有更强的功能。所以在复杂数字逻辑电路和系统的设计仿真时更有优势;描述的设计思想、电路结构和逻辑关系清晰明了,并且设计语言简练、易学易用;其模块化分层结构在大规模设计时更能体现出优势。因此可以看出,Verilog HDL语言在EDA设计中相对与其他的各种硬件描述语言更有优势。 4、下列例子中,b,c,d的最终值分别是什么? initial beginb=1b1;c=1b0;#10 b=1b0;endinitialbegind=#25b|c;end答:b=1b0、c=1b0、d=1b05一位全减器模块wsub具有三个一位输入:x,y和z(前面的借位),两个一位的输出D(差)和B(借位)。计算D和B的逻辑等式如下所示:写出VerilogHDL数据流描述的该全减器wsub。答: module wsub(D,B,x,y,x) input x,y,z;output D,B;assign D=x*y*z+x*y*z+x*y*Z+x*y*z;assign B=x*y+x*z+y*z;endmodule
限制150内