当前位置:首页 > verilog考卷
1. 下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别( A ) (A) 开关级 (B)门电路级 (C) 体系结构级 (D) 寄存器传输级 2.在verilog中,下列语句哪个不是分支语句( D ) (A) if-else (B) case (C) casez (D) repeat 3.下列哪些Verilog的基本门级元件是多输出( D ) (A) nand (B) nor (C) and (D) not
4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B ) (A) supply (B) strong (C) pull (D) weak
5.元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截至延迟的典型值为( B )(A) 1 (B) 2 (C) 3 (D) 4
6.已知 “a =1b’1; b=3b'001;”那么{a,b}=( C ) (A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'101 7.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC ) (A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级 8.在verilog语言中,a=4b'1011,那么 &a=(D ) (A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'0
9.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。 (A) 8 (B) 16 (C) 32 (D)64 1.Verilog HDL语言进行电路设计方法有哪几种(8分)
1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法 2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。 1、.specparam语句只能在延时的格式说明块(specify块)中出现,而parameter语句则不能在延时说明块内出现2、由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数则可以是任何数据类型的参数3、由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明程序设计(4题,共50分) 1. 试用verilog语言产生如下图所示的测试信号(12分)
clkin1in2051015202530354045module signal_gen9(clk,in1,in2); output in1,in2,clk; reg in1,in2,clk; initial begin
in1=0; in2=1; clk=0; end initial begin
#15 in1=1 ; #10 in1=0; #5 in1=1; #10 in1=0; end initial begin
#5 in2=0; #5 in2=1; #25 in2=0; end always begin
#5 clk=~clk; end endmodule
2.试用verilog语言,利用内置基本门级元件,采用结构描述方式生成如图所示的电路(12分)
ns
D3D2D1D0S2S1T3T2T1T0Z
module MUX4x1(Z,D0,D1,D2,D3,S0,S1); output Z;
inout D0,D1,D2,D3,S0,S1;
and u0 (T0, D0, S0bar, S1bar) , u1(T1, D1, S0bar, S1), u2 (T2, D2, S0, S1bar), u3 (T3, D3, S0, S1) , not u4 (S0bar, S0), u5 (S1bar, S1);
or u6 (Z, T0, T1, T2, T3); endmodule
3. 试用verilog语言描述:图示为一个4位移位寄存器,是由四个D触发器(分别设为U1,U2,U3,U4)构成的。其中seri_in是这个移位寄存器的串行输入;clk为移位时脉冲输入;clr为清零控制信号输入;Q[1]~Q[3]则为移位寄存器的并行输出。(14分)
module d_flop(q,d,clr,clk); output q;
input d,clr,clk; reg q;
always @(clr)
if(!clr) assign q=0; else deassign q;
always @(negedge clk) q=d; endmodule
module shifter(seri_in,clk,clrb,Q); input seri_in,clk,clrb;
output[3:0] Q;
d_flop U1(Q[0],seri_in,clrb,clk), U2(Q[1],Q[0],clrb,clk), U3(Q[2],Q[1],clrb,clk), u4(Q[3],Q[2],clrb,clk); endmodule
一、术语解释(写出下列术语中、英文全称)(每小题3分,总计15分) 1、SOC 系统芯片或片上系统 System On a Chip
2、CPLD 复杂可编程器件 Complex Programmable Logic Device 3、HDL 硬件描述语言 Hardware Describe Language 4、LUT 查找表 LUT,Look Up Table
5、IP Core 知识产权核或知识产权模块 Intellectual Property Core 二、填空题(本大题共15空,每空2分,总计30分)
1. FPGA/CPLD设计输入 图形 输入 、 HDL文本 输入,后这适合大规模的电路设计,有很好的可移植性,可读性强易于交流。
2. EDA仿真分为:① 功能仿真 ,又称前仿真、系统级仿真或行为仿真,用于验证 系统的功能 ;② 时序仿真 ,又称后仿真、电路级仿真,用于验证 系统的时序特性、系统性能 。仿真是系统验证的主要手段,是整个电子设计过程中花费时间最多的环节。
3. 通常,将对CPLD 的下载称为 编程(Program) ,对FPGA中的SRAM进行直接下载的方式称为 配置(Configure) 。
4. 写出右图示F0,F1的表达式。 F0 = F1 =
5. 一个大型的组合电路总延时为100ns,采用流水线将它分两个较小的组合电路,理论最高工作频率可达 20 MHz。
6.在以下的表达式或语句中选出正确的并将其番号填在空格处。 ① 4'b 1001 ^ 'b b0101= 4'b 1100 ;② {3{3'b 101}} = 9'b 101 101 101 ;
A1A0?A1A0
A1A0A1A0?A1A0
HDL建模的方式有:数据流描述方式、行为描述方式、F0F1 结构化描述方式。
三、简答题(本大题共4小题,每小题5分,总计20分)
1、试比较电子系统传统设计方法和采用EDA技术设计方法的区别
答:传统方法采用的是从下至上设计方法,使用的是通用逻辑元、器件,只能在系统硬件设计的后期进行仿真和调试,它的主要设计文件是电原理图;(2分)EDA方法采用的是自上至下设计方法,使用的可编程逻辑器件,在.系统设计的早期即可进行仿真和修改,它有多种设计文件,发展趋势以 HDL描述文件为主,能显著降低硬件电路设计难度。(3分) 2、简述CPLD及FPGA各自特点
答:① CPLD是基于乘积项的可编程结构,即可编程的与阵列和固定的或阵列组成;(1分)而FPGA使用的是可编程的查找表(Look Up Table, LUT), 且大部分FPGA采用的是基于SRAM的查找表逻辑形成结构。(1分)②器件规模FPGA远大于CPLD。(1分)③FPGA更适合时序电路的设计。(1分)④CPLD更适合组合电路的设计。
3、EAB结构特点及实现的主要功能
答:EAB结构特点:嵌入式阵列块(EAB)是FPGA器件内专门用来存储配置数据的结构, 是由一系列的嵌入式RAM单元构成;每个EBA是一个独立的结构, 它具有共同的输入、互连与控制信号;EAB实现的主要功能:EBA可以非常方便地实现一些规模不太大的RAM、ROM、FIFO或双口RAM等功能块的构造;而当EAB用来实现计数器、地址译码器、状态机、乘法器、微控制器以及DSP等复杂逻辑时,每个EAB可以贡献100到600个等效门;EAB可以单独使用,也可组合起来使用。(3分)
4、定义时间单位为1ns,依次执行后面的阻塞性过程赋值表达式:
initial begin
#1 clr=1;
A1A1A0A0 #3 clr=0; #5 clr=1;
end
①画出此时clr的波形图;②如果用非阻塞性赋过程值,请画出对应clr的波形图。 答:①
x 1 ---3分 0 1ns 3ns 5ns 9ns ② 1ns4ns x 1 1 ---2分 1 0 四、利用MAX+PULSII提供的LPM函数用HDL语言设计一个加数、被加数都为8位的无符号运算的加法器。(10分)
1ns 3ns 5ns
被加数
a[8:0和
] c[8:0 加数 解:module myadder(a, b, c, cot); ---1分 ] b[8:0cotinput [8:0]a,b; ---1分 进位 ]
output [8:0]c;
output cot; ---2分
LPM_ADD_SUB
Adder8 (.dataa(a) ,.datab(b),
.result(c),.cout(cot)); --------2分
=\分
defparam =8; 分
endmodule --------1分
五、设计一个带使能的三—八译码器,使能信号en为高电平时真值表如下,en为低电平时输出数据8'b 1111 1111。(12分)
使能信号en为高电平时真值表
d[2:0]输入 y[7:0]输出 d[2:0]输入 y[7:0]输出 3'b 000 8'b 1111 1110 3'b 100 8'b 1110 1111 3'b 001 8'b 1111 1101 3'b 101 8'b 1101 1111 3'b 010 8'b 1111 1011 3'b 110 8'b 1011 1111 3'b 011 8'b 1111 0111 3'b 111 8'b 0111 1111
解:module three-eight(d,en,y); -----------1分 input [2:0]d;
input en; --------------------------1分 output [7:0]y;
reg [7:0]y; ----------------------------------1分
always @(d or en ) -----------------------1分 if (en==1) // 或写为if(en) --------1分
case ( d) --------------------------1分 3'b000:
y=8'b1111 1110;
3'b001:
y=8'b1111 1101; 3'b010:
y=8'b1111 1011; 3'b011:
y=8'b1111 0111;
3'b100: y=8'b1110 1111;
3'b101:
y=8'b1101 1111; 3'b110:
y=8'b1011 1111; 3'b111:
共分享92篇相关文档