Verilog复习题一、填空题1.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。2.可编程器件分为CPLD和FPGA。3.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL设计当中。4.目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。5.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。6.阻塞性赋值符号为=,非阻塞性赋值符号为=。7.有限状态机分为Moore和Mealy两种类型。8、EDA缩写的含义为电子设计自动化(ElectronicDesignAutomation)9.状态机常用状态编码有二进制、格雷码和独热码。10.VerilogHDL中任务可以调用其他任务和函数。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、VerilogHDL语言进行电路设计方法有哪几种(8分)①自上而下的设计方法(Top-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____。A.FPGA全称为复杂可编程逻辑器件;B.FPGA是基于乘积项结构的可编程逻辑器件;C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。7.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化___B______。①流水线设计②资源共享③逻辑优化④串行化⑤寄存器配平⑥关键路径法A.①③⑤B.②③④C.②⑤⑥D.①④⑥8、下列标识符中,_____A_____是不合法的标识符。A.9moonB.State0C.Not_Ack_0D.signall9、下列语句中,不属于并行语句的是:____D___A.过程语句B.assign语句C.元件例化语句D.case语句10、P,Q,R都是4bit的输入矢量,下面哪一种表达形式是正确的5)1)inputP[3:0],Q,R;2)inputP,Q,R[3:0];3)inputP[3:0],Q[3:0],R[3:0];4)input[3:0]P,[3:0]Q,[0:3]R;5)input[3:0]P,Q,R;11、请根据以下两条语句的执行,最后变量A中的值是___①___。reg[7:0]A;A=2'hFF;①8'b0000_0011②8'h03③8'b1111_1111④8'b1111111112.基于EDA软件的FPGA/CPLD设计流程为:原理图/HDL文本输入→综合→_____→→适配→编程下载→硬件测试。正确的是B。①功能仿真②时序仿真③逻辑综合④配置⑤分配管脚A.③①B.①⑤C.④⑤D.④②三、EDA名词解释(10分)ASIC专用集成电路RTL寄存器传输级FPGA现场可编程门阵列SOPC可编程片上系统CPLD复杂可编程逻辑器件LPM参数可定制宏模块库EDA电子设计自动化IEEE电子电气工程师协会IP知识产权核ISP在线系统可编程三、简答题1、简要说明仿真时阻塞赋值与非阻塞赋值的区别非阻塞(non-blocking)赋值方式(b=a):b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成;块内的多条赋值语句在块结束时同时赋值;硬件有对应的电路。阻塞(blocking)赋值方式(b=a):b的值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作;硬件没有对应的电路,因而综合结果未知。阻塞赋值是在该语句结束是立即完成赋值操作;非阻塞赋值是在整个过程块结束是才完成赋值操作。2、简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?根据内部结构不同可分为摩尔型状态机和米里型状态机两种。摩尔型状态机的输出只由当前状态决定,而次态由输入和现态共同决定;米里型状态机的输出由输入和现态共同决定,而次态也由输入和现态决定。状态编码主要有三种:连续二进制编码、格雷码和独热码。3、简述基于数字系统设计流程包括哪些步骤?包括五个步骤:⑴、设计输入:将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。⑵、逻辑综合:将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。⑶、布局布线:将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。⑷、仿真:就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误的过程,包括功能仿真和时序仿真。⑸、编程配置:将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。4、简述VerilogHDL编程语言中函数与任务运用有什么特点?函数和任务都能独立完成相应电路功能,通过在同一模块中的调用实现相应逻辑电路功能。但它们又有以下不同:⑴、函数中不能包含时序控制语句,对函数的调用,必须在同一仿真时刻返回。而任务可以包含时序控制语句,任务的返回时间和调用时间可以不同。⑵、在函数中不能调用任务,而任务中可以调用其它任务和函数。但在函数中可以调用其它函数或函数自身。⑶、函数必须包含至少一个端口,且在函数中只能定义input端口。任务可以包含0个或任何多个端口,且可以定义input、output和inout端口。⑷、函数必须返回一个值,而任务不能返回值,只能通过output或inout端口来传递执行结果。5、简述FPGA与CPLD两种器件应用特点。CPLD与FPGA都是通用可编程逻辑器件,均可在EDA仿真平台上进行数字逻辑电路设计,它们不同体现在以下几方面:⑴FPGA集成度和复杂度高于CPLD,所以FPGA可实现复杂逻辑电路设计,而CPLD适合简单和低成本的逻辑电路设计。⑵、FPGA内主要由LUT和寄存器组成,倾向实现复杂时序逻辑电路设计,而CPLD内主要由乘积项逻辑组成,倾向实现组合逻辑电路设计。⑶、FPGA工艺多为SRAM、flash等工艺,掉电后内信息消失,所以该类型需外配存储器,而CPLD工艺多为EEPROM等工艺,掉电后信息不消失,所以不用外配存储器。⑷、FPGA相对CPLD成本高,但都可以在内都镶嵌硬核和软核,实现片上系统功能。2、简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?FSM的三段式描述风格中,三段分别描述什么?(本题6分)答:Mearly型,Moore型;前者与输入与当前状态有关,而后者只和当前状态有关;Binary,Gray,One-Hot编码;分别为状态保存,状态切换,输出;四、计算题1、利用有限状态机,以格雷码编译方式设计一个从输出信号序列中检测出101信号的电路图,其方块图、状态图和状态表如图表示。Din=0Din=1S0=00SO,OS1,0S1=01S2,0S1,0S2=11S0,0S1,1下一状态NS和输出Qout目前状态CSmodulemelay(clk,Din,reset,Qout);inputclk,reset;inputDin;outputQout;regQout;parameter[1:0]S0=2'b00,S1=2'b01,S2=2'b11;reg[1:0]CS;reg[1:0]NS;always@(posedgeclkorposedgereset)beginif(reset==1'b01)CS=S0;elseCS=NS;endalways@(CSorDin)begincase(CS)S0:beignif(Din==1'b0)beginNS=S0;Qout=1'b0;endelsebeginNS=S1;Qout=1'b0;endendS1:beginif(Din==1'b0)beginNS=S2;Qout=1'b0;endelsebeginNS=S1;Qout=1'b0;endendS2:beignif(Din==1'b0)beginNS=S0;Qout=1'b0;endelsebeginNS=S1;Qout=1'b0;endendendcaseendendmodule4、下面是通过case语句实现四选一电路部分程序,将横线上的语句补上,使程序形成完整功能。case({s1,s0})2’b00:out=i0;2’b01:out=i1;2’b10:out=i2;2’b11:out=i3;4、根据图3给定的两个2位全加器信号关系及实现的4位全加器功能部分程序,在下列部分程序中的横线上填入必要语句,实现4位全加器的完整功能。2位加法器aibicisumcout2位加法器aibicisumcoutsum4(3..2)))cout4a(1..0)b(1..0)cc0a(3..2)b(3..2)sum4(1..0)图3//底层4位全加器程序moduleadd2(ai,bi,ci,sum,cout);input[1:0]ai,bi;inputci;output[1:0]sum;reg[1:0]sum;outputcout;regcout;always@(ai,bi,ci){cout,sum}=ai+bi+ci;endmodule//顶层8位全加器程序modulefadd4(a,b,c,sum4,cout4);input[3:0]a,b;inputc;output[3:0]sum4outputcout4;wirec0;add4U1(a[1:0],b[1:0],c,c0,sum4[1:0]);add4U2(a[3:0],b[3:0],c0,count4,sum4[3:0]);endmodule5、根据下列给定的仿真输入输出波形图2,说明完成此功能的电路是什么功能电路?并写出对应的VerilogHDL描述程序(图中clk,clr为输入,q,c为输出)。4进制加法计数器modulecounter(clk,clr,q,c)inputclk,clr;outputret[1:0]q;outputc;always@(posedgeclkornegedgeclr)beginif(~clr)q=2’h0;elsebeginif(2’h3==q)q=2’h0;elseq=q+2’h1;endendassignc=(2’h3==q)endmodule6、采用结构描述方法设计一个二进制数字半加器,输入数据ai与bi,并将和输出到so,进位输出到co,给出详细设计过程。输入输出aibisoco0000011010101101aibicobiaibiaibiaiso,由输入输出逻辑表达式,采用与门and和异或门xor进行结构描述的程序如下:(6分)modulehadd(ai,bi,so,co);inputai,bi;outputso,co;xor(so,si,ci);and(co,ai,bi);endmodule6、采用结构描述方法设计一个二进制数字比较器,比较输入数据a与b的大小,并分别输出到x,y和z,给出详细设计过程。bazbayababx,,not(not_a,a);not(not_b,b);and(ab,a,b);a