FPGA-verilog-数字系统设计考试题
- 格式:doc
- 大小:119.50 KB
- 文档页数:9
FPGA设计实验考试抽测题目[1]FPGA设计实验抽测题目1、试用verilog设计一个基本RS锁存器(用行为描述风格),并用test bench程序测试。
要求:用modelsim进行仿真,给出仿真波形图RS锁存器(行为描述方式)Module part2(Q,R,S,CLK);input CLK,R,S;output Q;wire Rg,Sg,Qa,Qb;assign Rg=CLK&R;assign Sg=S&CLK;assign Qa=~(Rg,Qb);assign Qb=~(Sg,Qa);assign Q=Qa;endmoduletest bench程序测试`include”part2.v”module test;reg Rin,Sin,Clock;wire Outa,Outb;intialbeginRin=0;Sin=0;Clock=0;endalways #50 clock=~clock;always@(posedge clock)begin#1 Rin={$random}%2;#3Sin={$random}%2;endpart1 p(.Qa(Outa),.Qb(Outb),.R(Rin),.S(Sin),.CLK(Clock));endmodule2、试用verilog设计一个基本RS锁存器(用结构描述风格),并用test bench程序测试。
RS锁存器(结构描述方式)Module part1(Q,R,S,CLK);input CLK,R,S;output Q;wire Rg,Sg,Qa,Qb;and(Rg,CLK,R);and (Sg ,S,CLK);nor (Qa,Rg,Qb);nor (Qb,Sg,Qa);assign Q=Qa;endmoduletest bench程序测试。
`include”part1.v”module test;reg Rin,Sin,Clock;wire Outa,Outb;intialbeginRin=0;Sin=0;Clock=0;endalways #50 clock=~clock;always@(posedge clock)begin#1 Rin={$random}%2;#3Sin={$random}%2;endpart1 p(.Qa(Outa),.Qb(Outb),.R(Rin),.S(Sin),.CLK(Clock));endmodule3、试用verilog设计一个带低电平清零的D锁存器(用行为描述风格),并用test bench程序测试。
FPGA习题集及参考答案习题集及参考答案⼀、填空题1.⼀般把EDA技术的发展分为()个阶段。
2.FPGA/CPLD有如下设计步骤:①原理图/HDL⽂本输⼊、②适配、③功能仿真、④综合、⑤编程下载、⑥硬件测试,正确的设计顺序是①()⑤⑥。
3.在EDA⼯具中,能完成在⽬标系统器件上布局布线的软件称为()。
4.设计输⼊完成之后,应⽴即对⽂件进⾏()。
5.基于硬件描述语⾔的数字系统设计⽬前最常⽤的设计⽅法称为()设计法。
6.将硬件描述语⾔转化为硬件电路的过程称为()。
7.IP核在EDA技术和开发中具有⼗分重要的地位,以HDL⽅式提供的IP被称为()IP。
8.SOC系统⼜称为()系统。
SOPC系统⼜称为()系统。
9.将硬核和固核作为()IP核,⽽软核作为()IP核。
10.IP核在EDA技术和开发中具有⼗分重要的地位,以HDL⽅式提供的IP被称为()。
11.HDL综合器就是逻辑综合的过程,把可综合的VHDL/Verilog HDL转化成硬件电路时,包含了三个过程,分别是()、()、()。
12.EDA软件⼯具⼤致可以由五个模块构成,分别是设计输⼊编辑器、()、()、()和()。
13.按仿真电路描述级别的不同,HDL仿真器分为()仿真、()仿真、()仿真和门级仿真。
14.系统仿真分为()、()和()。
15.()仿真是对设计输⼊的规范检测,这种仿真通过只能表⽰编译通过,说明设计满⾜⼀定的语法规范,但不能保证设计功能满⾜期望。
16.()仿真是对综合后的⽹表进⾏的仿真,它验证设计模块的基本逻辑功能,但不带有布局布线后产⽣的时序信息,是理想情况下的验证。
17.()仿真是布局布线后进⾏的后仿真,仿真时考虑了布线延时,和芯⽚实际的⼯作情况更加接近。
18.⽬前Xilinx公司⽣产的FPGA主要采⽤了()配置存储器结构。
19.描述测试信号的变化和测试⼯程的模块叫做()。
20.现代电⼦系统设计领域中的EDA采⽤()的设计⽅法。
21.有限状态机可分为()状态机和()状态机两类。
veriloghdl数字设计与综合答案【篇一:verilog习题选答】txt>答:fpga中,由程序来转换为可烧录的二进制码。
ic设计中,主要是由design-compiler来实现。
2.能否说模块相当于电路图中的功能模块,端口相当于功能模块的 3.assign声明语句,实例元件,always块,这三类描述中哪一种直接与电路结构有关?4.由连续赋值语句(assign)赋值的变量能否是reg型的?答:赋值运算分为连续赋值和过程赋值两种。
(1)连续赋值连续赋值语句只能对线网型变量进行赋值,而不能对寄存器型变量进行赋值,基本的语法结构为:assign #(延时量) 线网型变量名 = 赋值表达式; 一个线网型变量一旦被连续赋值语句赋值后,赋值语句右端赋值表达式的值将持续对赋值变量产生连续驱动,只要右端表达式任一操作数的值发生变化,就会立即触发对赋值变量的更新操作。
(2)过程赋值过程赋值主要用于两种结构化模块(initial和always)中的赋值语句。
在过程块中只能使用过程赋值语句,不能在过程块中出现连续赋值语句,同时过程赋值语句也只能用在过程赋值模块中。
基本的语法结构为:被赋值变量赋值操作符赋值表达式,其中,赋值操作符是“=”或“=”,它分别代表了阻塞赋值和非阻塞赋值类型。
过程赋值语句只能对寄存器类型的变量进行赋值,经过赋值后,上面这些变量的值将保持不变,直到另一条赋值语句对变量重新赋值为止。
5.如果都不带时间延迟、阻塞和非阻塞赋值有何不同?说明它们的不同点?答:代码1:module test(a,b,c,d,y); //两个与逻辑,1个或逻辑input a,b,c,d;output y;reg y,tmp1,tmp2;always @(a or b or c or d)// y的值并不等于当前的tmp1,tmp2相或的值,而是等于上 begin一次运算时tmp1,tmp2相或的值。
相当于一个延迟,在第2 tmp1 = ab; 次always模块运行完后得到想要的y值tmp2 = cd;y = tmp1|tmp2;endendmodule代码2:基本与代码1一样,只是在always的敏感列表中加入了temp1,temp2module test(a,b,c,d,y);input a,b,c,d;output y;reg y,tmp1,tmp2;always @(a or b or c or d or tmp1 or tmp2)//与代码一不同,begintmp1 = ab;tmp2 = cd;y = tmp1|tmp2;endendmodule代码3:在代码2中加进参数j,来帮助判断always模块的运行次数:module test(a,b,c,d,y);input a,b,c,d;output y;reg y,tmp1,tmp2;reg [8:0]j=0;always @(a or b or c or d or tmp1 or tmp2)beginj = j + 1;#5 //这里加了一个延时,方便分析tmp1 = ab;延迟消失了。
西安电子科技大学考试时间分钟试题题号一二三四五六七八九十总分分数1.考试形式:闭(开)卷;2.本试卷共四大题,满分100分。
班级学号姓名任课教师一、选择题(每题2分,共18分)1. 下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?( A )(A) 开关级 (B)门电路级 (C) 体系结构级 (D) 寄存器传输级2.在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B) nor (C) and (D) not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5.元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截至延迟的典型值为( B )(A) 1 (B) 2 (C) 3 (D) 46.已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'101第 2 页共 8 页7.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC )(A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级8.在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'09.在verilog语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 64二、简答题(2题,共16分)1.Verilog HDL语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法(Top-Down)2、自下而上的设计方法(Bottom-Up)3、综合设计的方法2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
verilog考试题西安电⼦科技⼤学考试时间分钟试题1.考试形式:闭(开)卷;2.本试卷共四⼤题,满分100分。
班级学号姓名任课教师⼀、选择题(每题2分,共18分)1. 下⾯哪个是可以⽤verilog语⾔进⾏描述,⽽不能⽤VHDL语⾔进⾏描述的级别?( A )(A) 开关级 (B)门电路级 (C) 体系结构级 (D) 寄存器传输级2.在verilog中,下列语句哪个不是分⽀语句?( D )(A) if-else (B) case (C) casez (D) repeat3.下列哪些Verilog的基本门级元件是多输出( D )(A) nand (B) nor (C) and (D) not4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) supply (B) strong (C) pull (D) weak5.元件实例语句“notif1 #(1:3:4,2:3:4,1:2:4) U1(out,in,ctrl);”中截⾄延迟的典型值为( B )(A) 1 (B) 2 (C) 3 (D) 46.已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1017.根据调⽤⼦模块的不同抽象级别,模块的结构描述可以分为(ABC )(A) 模块级 (B)门级 (C) 开关级 (D) 寄存器级8.在verilog语⾔中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'09.在verilog语⾔中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 64⼆、简答题(2题,共16分)1.Verilog HDL语⾔进⾏电路设计⽅法有哪⼏种(8分)1、⾃上⽽下的设计⽅法(Top-Down)2、⾃下⽽上的设计⽅法(Bottom-Up)3、综合设计的⽅法2.specparam语句和parameter语句在参数说明⽅⾯不同之处是什么(8分)。
20XX—20XX学年度第(X)学期期末考试试卷科目:<<FPGA设计>>(X)卷考试形式:闭卷考试时间:100 分钟院(系)别、班级:姓名:学号:试题区:(试题区必须与答题区同时交回,含答题纸、试题纸、草稿纸的装订试卷不能分拆)一、单项选择题:(20分)1.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是___C___。
A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动。
B.敏感信号参数表中,不一定要列出进程中使用的所有输入信号;C.进程由说明部分、结构体部分、和敏感信号三部分组成;(进程由声明语句、顺序语句、敏感信号列表组成)D.当前进程中声明的变量不可用于其他进程。
2.在一个VHDL设计中idata是一个信号,数据类型为integer,数据范围0 to 127,下面哪个赋值语句是正确的___C___。
(信号赋值符号 <= )A.idata := 32;B.idata <= 16#A0#; (十进制数为:10*16= 160,idata范围为0~127)C.idata <= 16#7#E1;(十进制数为:7*16^1= 112)D.idata := B#1010#;3.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是___C___。
A.FPGA是基于乘积项结构的可编程逻辑器件;(FPGA芯片基于查找表的可编程逻辑结构)B.FPGA是全称为复杂可编程逻辑器件;(FPGA 现场可编程逻辑门阵列,CPLD才是复杂可编程逻辑器件)C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
(MAX7000系列属CPLD结构)4.进程中的变量赋值语句,其变量更新是___A___。
第五章例题例如:if(a>b)out1 = int1;elseout1 = int2;例如:always @( some_event) //虚的字体表示块语句beginif(a>b) out1 = int1;else if (a==b) out1 = int2;else out1 = int3;endif(a>b)beginout1<=int1;out2<=int2;endelsebeginout1<=int2;out2<=int1;end//有时begin_end块语句的不慎使用会改变逻辑行为。
见下例:if(index>0)for(scani=0;scani<index;scani=scani+1)if(memory[scani]>0)begin$display("...");memory[scani]=0;endelse /*WRONG*/$display("error-indexiszero");尽管程序设计者把else写在与第一个if(外层if)同一列上,希望与第一个if对应,但实际上else是与第二个if对应,因为它们相距最近。
正确的写法应当是这样的:if(index>0)beginfor(scani=0;scani<index;scani=scani+1)if(memory[scani]>0)begin$display("...");memory[scani]=0;endendelse /*WRONG*/$display("error-indexiszero");//定义寄存器和参数。
reg [31:0] instruction, segment_area[255:0];reg [7:0] index;reg [5:0] modify_seg1, modify_seg2, modify_seg3; parametersegment1=0, inc_seg1=1,segment2=20, inc_seg2=2,segment3=64, inc_seg3=4,data=128;//检测寄存器index的值if(index<segment2)begininstruction = segment_area[index + modify_seg1];index = index + inc_seg1;endelse if(index<segment3)begininstruction = segment_area[index + modify_seg2];index = index + inc_seg2;endelse if (index<data)begininstruction = segment_area[index + modify_seg3];index = index + inc_seg3;endelseinstruction = segment_area[index];reg [15:0] rega;reg [9:0] result;case(rega)16 'd0: result = 10 'b0111111111;16 'd1: result = 10 'b1011111111;16 'd2: result = 10 'b1101111111;16 'd3: result = 10 'b1110111111;16 'd4: result = 10 'b1111011111;16 'd5: result = 10 'b1111101111;16 'd6: result = 10 'b1111110111;16 'd7: result = 10 'b1111111011;16 'd8: result = 10 'b1111111101;16 'd9: result = 10 'b1111111110;default: result =10 'bx;endcase[例1]:case ( select[1:2] )2 'b00: result = 0;2 'b01: result = flaga;2 'b0x,2 'b0z: result = flaga? 'bx : 0;2 'b10: result = flagb;2 'bx0,2 'bz0: result = flagb? 'bx : 0;default: result = 'bx;endcase[例2]:case(sig)1 'bz: $display("signal is floating");1 'bx: $display("signal is unknown");default: $display("signal is %b", sig);endcase[例3]: reg[7:0] ir;casez(ir)8 'b1???????: instruction1(ir);8 'b01??????: instruction2(ir);8 'b00010???: instruction3(ir);8 'b000001??: instruction4(ir);endcase[例4]: reg[7:0] r, mask;mask = 8'bx0x0x0x0;casex(r^mask)8 'b001100xx: stat1;8 'b1100xx00: stat2;8 'b00xx0011: stat3;8 'bxx001100: stat4;endcase例:always @ (al or d ) // 有锁存器beginif ( al ) q = d;endalways @ (al or d ) // 无锁存器beginif ( al ) q = d;else q = 0;end[例5]:条件语句举例//第一类条件语句if ( !lock ) buffer = data ;if ( enable ) out = in ;//第二类条件语句if (number_queued < MAX_Q_DEPTH)begindata_queue = data ;number_queued = number_queued + 1 ;endelse$display ( " Queue Full. Try again " ) ;//第三类条件语句//根据不同的算术逻辑单元的控制信号alu_control 执行不同的算术运算操作if ( alu_control = = 0 )y = x + z ;else if ( alu_control = = 1 )y = x - z ;else if ( alu_control = = 2 )y = x * z ;else$ display ( " Invalid ALU control signal ");reg [ 1: 0] alu_control ;......case (alu_control)2 'd 0 : y = x + z ;2 'd 1 : y = x - z ;2 'd 2 : y = x * z ;default : $display ( "Invalid ALU control signal ") ;endcase[例6]:使用case语句实现四选一多路选择器module mux4_to_1 (out, i0, i1, i2, i3, s1, s0);// 根据输入/输出图的端口声明output out;input i0, i1, i2, i3;input s1, s0;//把输出变量声明为寄存器类型reg out;//任何输入信号改变,都会引起输出信号的重新计算//使输出out 重新计算的所有输入信号必须写入always @(...)的变量列表中always @(s1 or s0 or i0 or i1 or i2 or i3)begincase ({s1, s0})2'b00: out = i0;2'b01: out = i1;2'b10: out = i2;2'b11: out = i3;default: out = 1'bx;endcaseendendmoduleparameter size=8,longsize=16;reg [size:1] opa, opb;reg [longsize:1] result;begin: multreg [longsize:1] shift_opa, shift_opb;shift_opa = opa;shift_opb = opb;result = 0;repeat(size)beginif(shift_opb[1])result = result + shift_opa;shift_opa = shift_opa <<1;shift_opb = shift_opb >>1;endendbegin: count1sreg[7:0] tempreg;count=0;tempreg = rega;while(tempreg)beginif(tempreg[0]) count = count + 1;tempreg = tempreg>>1;endend[例7]:begin: init_memreg[7:0] tempi;for(tempi=0;tempi<memsize;tempi=tempi+1)memory[tempi]=0;end[例8]:parameter size = 8, longsize = 16;reg[size:1] opa, opb;reg[longsize:1] result;begin:multinteger bindex;result=0;for( bindex=1; bindex<=size; bindex=bindex+1 )if(opb[bindex])result = result + (opa<<(bindex-1));end/*在for语句中,循环变量增值表达式可以不必是一般的常规加法或减法表达式。
veriloghdl数字设计与综合答案【篇一:verilog习题选答】txt>答:fpga中,由程序来转换为可烧录的二进制码。
ic设计中,主要是由design-compiler来实现。
2.能否说模块相当于电路图中的功能模块,端口相当于功能模块的 3.assign声明语句,实例元件,always块,这三类描述中哪一种直接与电路结构有关?4.由连续赋值语句(assign)赋值的变量能否是reg型的?答:赋值运算分为连续赋值和过程赋值两种。
(1)连续赋值连续赋值语句只能对线网型变量进行赋值,而不能对寄存器型变量进行赋值,基本的语法结构为:assign #(延时量) 线网型变量名 = 赋值表达式; 一个线网型变量一旦被连续赋值语句赋值后,赋值语句右端赋值表达式的值将持续对赋值变量产生连续驱动,只要右端表达式任一操作数的值发生变化,就会立即触发对赋值变量的更新操作。
(2)过程赋值过程赋值主要用于两种结构化模块(initial和always)中的赋值语句。
在过程块中只能使用过程赋值语句,不能在过程块中出现连续赋值语句,同时过程赋值语句也只能用在过程赋值模块中。
基本的语法结构为:被赋值变量赋值操作符赋值表达式,其中,赋值操作符是“=”或“=”,它分别代表了阻塞赋值和非阻塞赋值类型。
过程赋值语句只能对寄存器类型的变量进行赋值,经过赋值后,上面这些变量的值将保持不变,直到另一条赋值语句对变量重新赋值为止。
5.如果都不带时间延迟、阻塞和非阻塞赋值有何不同?说明它们的不同点?答:代码1:module test(a,b,c,d,y); //两个与逻辑,1个或逻辑input a,b,c,d;output y;reg y,tmp1,tmp2;always @(a or b or c or d)// y的值并不等于当前的tmp1,tmp2相或的值,而是等于上 begin一次运算时tmp1,tmp2相或的值。
相当于一个延迟,在第2 tmp1 = ab; 次always模块运行完后得到想要的y值tmp2 = cd;y = tmp1|tmp2;endendmodule代码2:基本与代码1一样,只是在always的敏感列表中加入了temp1,temp2module test(a,b,c,d,y);input a,b,c,d;output y;reg y,tmp1,tmp2;always @(a or b or c or d or tmp1 or tmp2)//与代码一不同,begintmp1 = ab;tmp2 = cd;y = tmp1|tmp2;endendmodule代码3:在代码2中加进参数j,来帮助判断always模块的运行次数:module test(a,b,c,d,y);input a,b,c,d;output y;reg y,tmp1,tmp2;reg [8:0]j=0;always @(a or b or c or d or tmp1 or tmp2)beginj = j + 1;#5 //这里加了一个延时,方便分析tmp1 = ab;延迟消失了。
fpga考试试卷一、选择题(每题2分,共20分)1. FPGA代表什么?A. Field Programmable Gate ArrayB. Fixed Programmable Gate ArrayC. Flexible Programmable Gate ArrayD. Free Programmable Gate Array2. FPGA设计中,以下哪个不是基本逻辑单元?A. 逻辑单元(LUT)B. 触发器(FF)C. 乘法器(DSP)D. 存储器块(RAM)3. 在FPGA设计中,以下哪个不是配置存储器?A. 配置ROMB. 配置RAMC. 配置FLASHD. 配置EPROM4. FPGA设计中的时钟资源包括哪些?A. 全局时钟B. 区域时钟C. 局部时钟D. 所有以上选项5. 下列哪个不是FPGA设计中的I/O标准?A. LVTTLB. LVCMOSC. SSTLD. RS-2326. FPGA设计中的同步复位和异步复位有什么区别?A. 同步复位在时钟边沿触发,异步复位在任何时间点触发B. 异步复位在时钟边沿触发,同步复位在任何时间点触发C. 同步复位和异步复位在触发方式上没有区别D. 以上选项都不正确7. 在FPGA设计中,以下哪个不是常用的仿真工具?A. ModelSimB. ISEC. VivadoD. Xilinx8. FPGA设计中的资源利用率包括哪些?A. 逻辑资源利用率B. 存储资源利用率C. I/O资源利用率D. 所有以上选项9. FPGA设计中的功耗主要由哪些因素决定?A. 逻辑资源的使用B. 时钟频率C. I/O引脚的数量D. 所有以上选项10. 在FPGA设计中,以下哪个不是常见的测试方法?A. 功能仿真B. 时序仿真C. 静态仿真D. 硬件测试二、填空题(每题2分,共20分)1. FPGA的全称是_________,它是一种可以通过编程改变其内部逻辑结构的集成电路。
Verilog数字系统设计教程第二版课后练习题含答案练习题1:IGT上的闪光灯设计一个闪光灯电路,该电路使用维托吞尔(Vitold Kern)的交替时间生成器(IGT)控制LED的开关。
闪光灯的频率为每秒2次,LED的工作周期为2ms。
解答module flash(input clk,output reg led);reg[10:0] cnt;// 11 bit counteralways@(posedge clk)begincnt <= cnt +1;endalways@(posedge cnt[10])beginled <=~led;endendmodule练习题2:7段数码管设计一个数字系统,在7段数码管上显示0到9。
解答module seven_segment(input[3:0] digit,output reg[6:0] sseg);parameter COMMON_ANODE =0;// COMMON_ANODE = 1 for commo n anode displayalways@(*)begincase(digit)4'h0: sseg =7'b100_0000;4'h1: sseg =7'b111_1001;4'h2: sseg =7'b010_0100;4'h3: sseg =7'b011_0000;4'h4: sseg =7'b001_1001;4'h5: sseg =7'b001_0010;4'h6: sseg =7'b000_0010;4'h7: sseg =7'b111_1000;4'h8: sseg =7'b000_0000;4'h9: sseg =7'b001_1000;default: sseg =7'b111_1111;endcaseif(COMMON_ANODE ==0)beginsseg =~sseg;endendendmodule练习题3:模数计数器设计一个二进制数模数计数器,输出分别为0到3的二进制数。
Verilog复习题一、填空题1. 用EDA技术进行电子系统设计的目标是最终完成。
2. 可编程器件分为CPLD和FPGA。
3. 随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于Verilog HDL 设计当中。
4. 目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。
5. 完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6. 阻塞性赋值符号为=,非阻塞性赋值符号为<= 。
7.有限状态机分为Moore和Mealy两种类型。
8、EDA9.状态机常用状态编码有二进制、格雷码和独热码。
10.Verilog HDL中任务可以调用其他任务和函数。
11.系统函数和任务函数的首字符标志为$,预编译指令首字符标志为#。
12.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。
13、大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。
二、选择题1、已知“a =1b’1; b=3b'001;”那么{a,b}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b'1012、在verilog中,下列语句哪个不是分支语句?( D )(A) if-else (B) case (C) casez (D) repeat3、Verilog HDL语言进行电路设计方法有哪几种(8分)①自上而下的设计方法(T op-Down)②自下而上的设计方法(Bottom-Up)③综合设计的方法4、在verilog语言中,a=4b'1011,那么 &a=(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'05、在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 646、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是___C____ 。
第1篇1. 简述FPGA的基本概念,与ASIC、CPLD有何区别?2. FPGA主要由哪些基本单元组成?3. FPGA的编程语言有哪些?分别介绍Verilog和VHDL的区别。
4. FPGA的工作原理是什么?5. 简述FPGA的编程过程。
二、FPGA编程语言(Verilog/VHDL)1. Verilog和VHDL中,module和entity的区别是什么?2. Verilog中,initial块和always块有何区别?3. VHDL中,architecture和entity的区别是什么?4. Verilog中,如何定义一个寄存器?5. VHDL中,如何定义一个信号?6. Verilog中,如何定义一个模块?7. VHDL中,如何定义一个实体?8. Verilog中,如何实现一个加法器?9. VHDL中,如何实现一个加法器?10. Verilog中,如何实现一个计数器?11. VHDL中,如何实现一个计数器?三、FPGA设计方法与技巧1. 简述FPGA设计中,模块化设计的重要性。
2. 如何在FPGA设计中实现资源共享?3. 简述FPGA设计中,流水线技术的应用。
4. 简述FPGA设计中,时序约束的重要性。
5. 如何在FPGA设计中,降低资源消耗?6. 如何在FPGA设计中,提高系统性能?7. 简述FPGA设计中,多时钟域同步技术。
8. 如何在FPGA设计中,实现信号的缓冲和驱动?9. 简述FPGA设计中,电源和地线设计的重要性。
10. 如何在FPGA设计中,实现信号的转换和转换器?四、FPGA测试与验证1. 简述FPGA测试的目的。
2. 如何对FPGA进行功能测试?3. 如何对FPGA进行时序测试?4. 如何对FPGA进行性能测试?5. 如何对FPGA进行功耗测试?6. 简述FPGA测试中,仿真测试和硬件测试的区别。
7. 如何在FPGA设计中,实现自测试(BIST)?8. 简述FPGA测试中,边界扫描技术。
西安电子科技大学考试时间分钟试题题号一二三四五六七八九十总分分数1.考试形式:闭(开)卷;2.本试卷共四大题,满分100分。
班级学号姓名任课教师一、选择题(每题2分,共18分)1. 下面哪个是可以用语言进行描述,而不能用语言进行描述的级别?( A )(A) 开关级(B)门电路级(C) 体系结构级(D) 寄存器传输级2.在中,下列语句哪个不是分支语句?( D )(A) (B) (C) (D)3.下列哪些的基本门级元件是多输出( D )(A) (B) (C) (D)4.连线类型的驱动强度说明被省略时,则默认的输出驱动强度为( B )(A) (B) (C) (D)5.元件实例语句“1 #(1:3:4,2:3:4,1:2:4) U1();”中截至延迟的典型值为( B )(A) 1 (B) 2 (C) 3 (D) 46.已知“a =1b’1; 3b'001;”那么{}=( C )(A) 4b'0011 (B) 3b'001 (C) 4b'1001 (D) 3b' 101第 2 页共8 页7.根据调用子模块的不同抽象级别,模块的结构描述可以分为()(A) 模块级(B)门级(C) 开关级(D) 寄存器级8.在语言中,4b'1011,那么(D )(A) 4b'1011 (B) 4b'1111 (C) 1b'1 (D) 1b'09.在语言中整型数据与( C )位寄存器数据在实际意义上是相同的。
(A) 8 (B) 16 (C) 32 (D) 64二、简答题(2题,共16分)1.语言进行电路设计方法有哪几种(8分)1、自上而下的设计方法()2、自下而上的设计方法()3、综合设计的方法2.语句和语句在参数说明方面不同之处是什么(8分)。
1、.语句只能在延时的格式说明块(块)中出现,而语句则不能在延时说明块内出现2、由语句进行定义的参数只能是延时参数,而由语句定义的参数则可以是任何数据类型的参数3、由语句定义的延时参数只能在延时说明块内使用,而由语句定义的参数则可以在模块内(该语句之后)的任何位置说明第 3 页共8 页三、画波形题(每题8分,共16分)1. 根据下面的程序,画出产生的信号波形(8分)();;;0;1;#10 1;0;#10 1;#20 0;#10 0;#10 1;1;第 4 页共8 页2. 根据下面的程序,画出产生的信号波形(8分)1(); ; ;0; #1 1; #2 0; #3 1; #4 0;四、程序设计(4题,共50分)1. 试用语言产生如下图所示的测试信号(12分)9(12); 12; 12; 1=0; 2 =1;第 5 页共8 页0;#15 1=1 #10 1=0; #5 1=1;#10 1=0;#5 2=0; #5 2=1; #25 2=0;#5 ;2.试用语言,利用内置基本门级元件,采用结构描述方式生成如图所示的电路(12分)4x1(012301);3. 试用语言描述:图示为一个4位移位寄存器,是由四个D触发器(分别设为U1,U2,U3,U4)构成的。
FPGA设计实验考试题目(开卷)要求:以下题目除特别说明外,均必须通过硬件测试(即下载至开发板验证),并编写好Test Bench,通过ModelSim仿真,给出其源程序(关键语句必须解释语句含义)、功能仿真图、RTL图(主要图形说明其功能)或状态机图。
其中现场操作50分。
总分100分。
1、设计一个多位数据比较器(测试时以3位为例)2、设计一个投票表决器(测试时以5人为例)3、将开发板上的50MHZ时钟分频为秒脉冲时钟信号module fenp(clk_out,clk_in,reset); output clk_out; input cl k_in; input reset; reg [1:0] cnt; reg clk_out;lways@(posedge clk_in or posedge reset) begin if(reset) begin cnt<=0; clk_out<=0; end else beginif(cnt==24999999) beginclk_out<=!clk_out; cnt<=0; end else cnt<=cnt+1; end end end module系统时钟为50MHz,用Verilog代码怎样将其分频至1/100smodule S20 (clk,rst,clk_out);input clk,rst;output clk_out;reg clk_out;reg [4:0] count1;always@( posedge clk or negedge rst)if ( !rst )begincount1 <= 0;clk_out<= 0;endelsebeginif (count1 < 20)begincount1 <= count1+1;if (count1>=10)clk_out <=1;elseclk_out <=0;endelsecount1 <=0;endendmodule设计一个分频器,要求:占空比为50%的任意奇数次5分频电路。
verilog数字系统设计教程习题答案第二章HDL 既是一种行为描述语言,也是一种结构描述语言。
如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互联的结构模块。
这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。
2.模块的基本结构由关键词module和endmodule构成。
3.一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块构成。
其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。
利用Verilog HDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。
HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的结构和行为、支持逻辑设计中层次与领域的描述、可借用高级语言的精巧结构来简化电路的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。
5.不是6.将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
7.综合工具可以把HDL变成门级网表。
这方面Synopsys工具占有较大的优势,它的Design Compile是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。
另外最近美国又出了一个软件叫Ambit,据说比Synopsys的软件更有效,可以综合50万门的电路,速度更快。
今年初Ambit被Cadence 公司收购,为此Cadence放弃了它原来的综合软件Synergy。
一、填空题(共10分,每空1分)1、变量是在程序运行过程中其值可以改变的量。
变量分为两种,一种类型为线网类型,一般指示硬件电路的物理连接,另一种是 ,对应的是具有状态保持作用的电路元件。
2、Verilog HDL中,如果一个给定的整数没有定义大小(size),缺省为位。
3、Verilog采用四值逻辑系统,0表示低电平,1表示高电平,x表示。
4、实际组合电路中,信号经过不同的路径到达某个门电路的输入端时,有先有后,这种现象称为。
5、有限状态机是由和组合逻辑构成的硬件时序电路;其状态只能在的情况下才能从一个状态转向另一个状态;6、状态机按照输出逻辑可以分为两种,一种称为状态机,其时序逻辑的输出不仅取决于当前状态,还取决于输入;另一种称为状态机,其时序逻辑的输出只取决于当前状态。
7、`timescale用于说明程序中的时间单位和仿真精度,语句`timescale 1ns/100ps中,程序中的仿真精度为8、完成语句,使rand0产生一个(-59,59)的随机数。
reg [23:0] rand0;rand0= ;二、选择题 ( 本题共 2 0 分,每小题 1 分 )1 、任v e r i l o g H D L 的端口声明语句中,用关键字声明端口为双向方向。
A.inoutB.INOUTC.inputD. output2、在V e r i l o g H D L的逻拇运算中,设A=8'b11010001,B=8'b00011001,则表达式"A&B"的结果为。
3A.8'b00010001B.8'b11011001C.8'b11001000D.8'b001101113、已知A=3'b110,B=3'b000,则AIIB结果为A.1B.O 110 D.3'b0014 、已知 A = 4 ' b 1 0 1 0 , 则 & A = ,A.1,0B.1,1 D.0,015、不完整的IF语句,其综合结果可实现:A . 三态控制电路B .条件相或的逻辑电路C.双向控制电路D.时序逻辑电路16、下列关于同步有限状态机的描述错误的是A. 状态变化只能发生在同一个时钟跳变沿;B.状态是否变化要根据输入信号,只要输入条件满足,就会立刻转入到下一个状态。
一、填空题题(共 15 分,每小题 1 分)1、Verilog的基本构建模块是?2、在Verilog中使用的四值逻辑值是:。
3、在verilog中用到的两类过程语句是initial和always。
其不同处是initial ,而always 。
4、在仿真时一般要用接近实际的最大timescale精度。
因精度越高,仿真时间步,仿真时间。
使用适当的精度,可达到精度与仿真时间的平衡。
5、若输出端输出X值,一种可能是输出net上发生,二是由一个传递到net上引起。
6、在posedge事件是指任何可能从低到高的跳变,具体包含:。
7、在用复制操作符复制一个数据时,例{3{‘b1}} 是。
8、在过程块中可以说明过程时序。
过程时序控制有三类,分别是:、、。
9、ASIC是专用集成电路,FPGA是ASIC中的可编程门阵列。
按编程方式不同,FPGA分为,2种。
二、简答题(共 25 分,每小题 5 分)1、简述D触发器的建立时间(setup time)、保持时间(hold time)和亚稳态(metastability)的定义,并说明建立时间裕量和保持时间裕量的含义。
2、请画图说明数字电路设计中的D触发器同步复位与异步复位的区别。
第1页共3页第2页 共3页3、什么是静态时序分析、动态时序仿真?简介各自的优缺点。
4、简述FPGA 等可编程逻辑器件设计流程。
5、赋值语句assign 通常给哪种类型的逻辑建模?过程块语句always 通常给哪种类型的逻辑建模?三、画出下面数据流建模的电路图:(10分)module FA _ Df (A, B, Cin, Sum, Cout ) ;input A, B, Cin;output Sum, Cout ;assign Sum = A ^B ^Cin;assign Cout = (A & Cin) | (B & Cin) | (A & B) ;endmodule四、画出clk, waito, edgeo 信号的波形。