内容发布更新时间 : 2024/12/27 8:52:12星期一 下面是文章的全部内容请认真阅读。
VerilogHDL硬件描述语言复习
一、
1. Verilog HDL 是在哪一年首次被I E E E标准化的? 答:Verilog HDL是在1995年首次被IEEE标准化的。 2. Verilog HDL支持哪三种基本描述方式?
答:Verilog HDL可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结
构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模
3. Verilog HDL 是由哪个公司最先开发的?
答:Verilog HDL是由Gateway Design Automation公司最先开发的 4. Verilog HDL中的两类主要数据类型什么?
答:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,抽象的数据存储元件。 5. U D P代表什么?
答:UDP代表用户定义原语
6. 写出两个开关级基本门的名称。 答:pmos nmos
7. 写出两个基本逻辑门的名称。 答:and or
8. 在数据流描述方式中使用什么语句描述一个设计? 答:设计的数据流行为使用连续赋值语句进行描述 9. 采用结构描述方式描述1位全加器。 答:
module full_add(a,b,cin,s,co); input a,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); endmodule
10. i n i t i a l语句与always 语句的关键区别是什么? 答: 1) initial语句:此语句只执行一次。
2) always语句:此语句总是循环执行, 或者说此语句重复执行。
11. 采用数据流方式描述2 - 4译码器。 答:
'timescale 1ns/ns
module Decoder2×4(A,B,EN,Z);
input A,B,EN; output [0:3]Z;
而寄存器类型表示1
wire abar,Bbar; assign #1 Abar=~A; assign #1 Bbar=~B;
assign #2 Z[0]=~(Abar&Bbar&EN); assign #2 Z[1]=~(Abar&B&EN); assign #2 Z[2]=~(A&Bbar&EN); assign #2 Z[3]=~(A&B&EN);
endmodule
1 2. 找出下面连续赋值语句的错误。
assign Reset=#2 Sel^WriteBus;
答:不符合连续赋值语句的语法,应该为:assign #2 Reset = ^ WriteBus; 二、
1. 下列标识符哪些合法,哪些非法?
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. 如果线网类型变量说明后未赋值,其缺省值为多少? 答:z
4. Verilog HDL 允许没有显式说明的线网类型。如果是这样,怎样决定线网类型?
答:在Verilog HDL 中,有可能不必声明某种线网类型。在这样的情况下,缺省线网类型为1位 线网。
5. 下面的说明错在哪里? i n t e g e r [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] temp; while(i < 32) begin
temp = mem[i];
mem[i] = mem[63 - i]; mem[63 - i] = temp; i = i + 1; end
2. 假定3 2位总线A d d re s s _ B u s, 编写一个表达式,计算从第11位到第2 0位的归约与非。 答:~& addressBus[20:11]
3. 假定一条总线C o n t ro l _ B u s [ 1 5 : 0 ],编写赋值语句将总线分为两条总线: A b u s [ 0 : 9 ]和B b u s[ 6 : 1 ]。
2
答: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. 使用条件操作符, 编写赋值语句选择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的值为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 Q[0:3]? 如何从两条总线B u s A [ 0 : 3 ]和B u s Y
[ 2 0 : 1 5 ]形成新的总线B u s R [ 1 0 : 1 ] ? 答:BusQ[3:0] = {D, C, B, A}
BusR[10:1] = {BusY[20:15], BusA[3:0]}
四、
1、Verilig HDL提供的内置基本门分为哪几类?
1) 多输入门、2) 多输出门、3) 三态门 2、多输入门与多输出门的区别在哪里?
答:多输入门:and nand nor or xor xnor 这些逻辑门只有单个输出, 1个或多个输入 第一个端口是输出,其它端口是输入。
多输出门有:buf, not 这些门都只有单个输入,一个或多个输出 最后的端口是输入端口,其余的所有端口为输出端口。
3、Verilog HDL内置的mos开关门有哪些? 答:cmos, nmos, pmos, rcmos, rnmos, rpmos 4、门时延值的组成有哪几个值? 答: 1) 上升时延 2) 下降时延 3) 关断时延
5. Verilig HDL提供的内置基本门分为哪几类?
答: 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.要求采用数据流方式设计一个半加器,写出完整的Verilig HDL设计模块。
答:
module half_add(Sum, Cout,A, B); input A, B;
output Sum, Cout; assign Sum=A^B; assign Cout=A&B; endmodule 五、
1、操作符有 按操作数个数分为3 种类型,其中三目操作符有 2 个操作符和 3 个操作数。
2、关键字全是 小 写,标识符的首字符必须是 字母 或 下划线 。
3