EDA技术试题库最新版本.doc_第1页
EDA技术试题库最新版本.doc_第2页
EDA技术试题库最新版本.doc_第3页
EDA技术试题库最新版本.doc_第4页
EDA技术试题库最新版本.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA技术题库一填空题1. Verilog的基本设计单元是模块。它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。 2. 用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关。而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。 3 在case语句中至少要有一条default语句。 4. 已知x=4b1001,y=40110,则x的4位补码为4b1111,而y的4位的补码为4b0110 。5. 两个进程之间是并行语句。而在Always中的语句则是顺序语句。6. 综合是将高层次上描述的电子系统转换为低层次上描述的电子系统,以便于系统的具体硬件实现 。综合器是能自动将高层次的表述(系统级、行为级)转化为低层次的表述(门级、结构级)的计算机程序7. 设计输入的方式有原理图、硬件描述语言、状态图以及波形图。 8.按照仿真的电路描述级别的不同,HDL仿真器可以完成:系统级仿真,行为级仿真,RTL级仿真,门级(时序)仿真。按照仿真是否考虑硬件延时分类,可以分为:功能仿真和时序仿真。仿真器可分为基于元件(逻辑门)仿真器和基于HDL语言的仿真器 9. IP核是知识产权核或知识产权模块,在EDA技术中具有十分重要的地位。半导体产业的IP定义为用于ASIC或FPGA中的预先设计好的电路功能模块。IP分为软IP、固IP和硬IP。 10.可编程逻辑器件PLD是一种通过用户编程或配置实现所需逻辑功能的逻辑器件,也就是说用户可以根据自己的需求,通过EDA开发技术对其硬件结构和工作方式进行重构,重新设计其逻辑功能 11.两种可编程逻辑结构是基于与-或阵列可编程结构(乘积项逻辑可编程结构)、基于SRAM查找表的可编程逻辑结构 12.PLD按集成度分类:简单PLD、复杂PLD;按结构分类:基于 “与-或”阵列结构的器件、基于查找表结构的器件;从编程工艺上分类:熔丝型、反熔丝型、EPROM型、EEPROM型、SRAM型、Flash型 13.Verilog的端口模式有三种:输入端口、输出端口、双向端口,对应的端口定义关键词分别是:input、output、inout 14.Verilog中常用有两种变量:寄存器型变量(用reg定义)、网线型变量(用wire定义) 15.Verilog有两种赋值方式:阻塞式赋值(=)、非阻塞式赋值(=) 16.Verilog有四种循环语句:for语句、repeat语句、while语句、forever语句 17.Verilog的描述风格:RTL描述 、数据流描述、行为描述、结构描述 18.从状态机的信号输出方式上分,有Mealy型和Moore型两种状态机;从状态机的描述结构上分,有单过程状态机和多过程状态机;从状态机表达方式上分,有符号化状态机和确定状态编码的状态机;从状态机编码方式上分,有顺序编码状态机、一位热码编码状态机或其他编码方式状态机。 19.四种简单逻辑器件:PROM中固定的与阵列,可编程或阵列;PLA是与阵列、或阵列都可编程;PAL中或阵列固定,与阵列可编程;GAL是或阵列、与阵列都可编程,输入部分增加了输出逻辑同单元(OLMC) 20.CPLD的组成结构:逻辑阵列块(由逻辑宏单元构成)、扩展乘积项(共享和并联)、可编程连线阵列、I/O控制块 21.FPGA的组成结构:逻辑阵列块LAB(由多个逻辑宏单元构成)、嵌入式存储器块、嵌入式硬件乘法器、I/O单元和PLL等模块 。22.某一纯组合电路输入为in1,in2和in3,输入出为out,则该电路描述中always的事件表达式应写为always(in1,in2,in3 );若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always ( posedge clk )。23.在模块中对任务进行了定义,调用此任务,写出任务的调用 mytast(f,g,m,n,p) 。task mytast; 要求:变量的传递关系如下output x,y; ma,nb,pc,xf,yginput a,b,c;.endtask24.if(a) out1=int1; 当a= 1 执行out1=int1else out1=int2; 当a= 0 执行out1=int225.4 b10012= 4b0010 。26.下面程序中语句5、6、7、11是 并行 执行,语句9、10是 顺序 执行 1 module M(); 2 input . ; 3 output ; 4 reg a,b; 5 always(.) 6 assign f=c&d; 7 always(.) 8 begin 9 a=.; 10 b=.; end 11 mux mux1(out,in0,in1); endmodule27.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。28.可编程器件分为CPLD和FPGA。29.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL设计当中。30.目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。31.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。32.阻塞性赋值符号为 = ,非阻塞性赋值符号为 = 。33有限状态机分为Moore和Mealy两种类型。34、EDA缩写的含义为电子设计自动化(Electronic Design Automation)35状态机常用状态编码有二进制、格雷码和独热码。36Verilog HDL中任务可以调用其他任务和函数。37系统函数和任务函数的首字符标志为 $ ,预编译指令首字符标志为 # 。38可编程逻辑器件的优化过程主要是对速度和资源的处理过程。39、大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。二.简答题1.简述自顶向下的设计方法 答:从自然语言说明到HDL的系统行为描述;从HDL的系统行为描述到RTL描述;从RTL描述到逻辑门级描述;从门级描述到最终可以物理布线实现的底层电路;(以上可以理解成是逐步综合的过程。)后期设计还包括涉及硬件实现和测试。 2.简述EDA的设计流程 答:图形输入:a.原理图b.硬件描述语言c.状态图d.波形图;HDL文本输入;综合;适配;功能仿真与时序仿真;编程下载;硬件测试 3.简述过程语句的执行过程 答:由always引导的过程语句结构是Verilog中最常用和最重要的语句结构。任何顺序语句都必须放在过程语句结构中。通常要求将过程语句中所有的输入信号都放在敏感信号表中。(a.用文字or连接所有敏感信号。b.用逗号区分或连接所有敏感信号。c.省略形式,只写成(*),或直接写成 always * ,显然试图通过选择性地列入敏感信号来改变逻辑设计是无效的。)过程语句的执行依赖于敏感信号的变化(发生事件)。当某一敏感信号发生变化,过程语句被启动,内部的所有顺序语句被执行一遍,然后返回过程起始端,再次进入等待状态,直到下一次某一敏感信号发生变化再次进入“启动-运行”状态。过程语句结构是一个不断重复运行的模块。一个模块中可以包含任意个过程语句,过程语句本身属于并行语句,而由过程引导的各类语句属于顺序语句。 4.简述什么是元件例化 答:元件例化就是引入一种连接关系,将预先设计好的元件,与当前设计模块中的指定端口相连接,从而构成层次化的设计方式。元件例化可以是多层次的,一个调用了较低层次元件的设计模块,也可以被更高层次的设计模块调用,成为高层次设计模块中的一个元件。被例化的元件可以以不同的形式出现,可以是Verilog设计文件,可以是FPGA元件库中的元件,或者是以别的硬件描述语言设计的元件,还可以是IP核。 5. 简要说明仿真时阻塞赋值与非阻塞赋值的区别 非阻塞(non-blocking)赋值方式 ( b= a):b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成;块内的多条赋值语句在块结束时同时赋值;硬件有对应的电路。阻塞(blocking)赋值方式 ( b = a):b的值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作;硬件没有对应的电路,因而综合结果未知。 阻塞赋值是在该语句结束是立即完成赋值操作;非阻塞赋值是在整个过程块结束是才完成赋值操作。 6.简述if语句的几种主要结构 答:if(条件表达式) begin 语句块;end if(条件表达式) begin 语句块1;end else begin 语句块2;end if(条件表达式1) begin 语句块1;end else if(条件表达式2) begin 语句块2;end else if(条件表达式n) begin 语句块n;end else begin 语句块n+1;end 7.简述Moore型和Mealy型状态机的区别 答:Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore型状态机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。 8.always语句和initial语句的关键区别是什么?能否相互嵌套?(5分)always语句是循环语句,initial只执行一次。它们不能嵌套。9.画出下面程序段中r(reg型)的仿真波形 (6分) fork #20 r=1 b0; #10 r=1 b1; #15 r=1 b1; #25 r=1 b1; #5 r=1 b0;join10.画出下面程序综合出来的电路图。(7分) always(posedge clk) begin q0=q2; q1= q0; q2= q1; End11.HA模块程序如下,写出引用HA模块描述FA模块的Verilog程序。(7分) module HA(A,B,S,C); input A,B; output S,C; assign C,S=A+B; endmodulemodule FA(A,B,Ci,Co,S);input A,B,Ci;output Co,S;wire Sl,C1,C2;HA a(A,B,Sl,C1);HA b(Sl,Ci,C2,S);assign Co=C1|C2;endmodule12、写出下面程序中变量x,y,cnt,m,q的类型(5分)x为wire型y为reg或wire型cnt为reg型m为reg或wire型q为reg型Assgin x=y; always(posegde clk) begin cnt=m+1; q=q; end13. initial和always预计的关键区别是什么? intial只能用在仿真中,只在0时刻开始执行一次 always可以用在仿真中也可以用在综合中,只要触发条件满足,就会重复执行其中的语句 14. 定义如下的变量和常量: (1)定义一个名为count的整数; (integer count) (2)定义一个名为ABUS的8位wire总线;(wire 7:0 ABUS) (3)定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数128;(reg 15:0 address address = 16d128) (4)定义参数Delay_time, 参数值为8;(parameter Delay_time = 8) (5)定义一个名为DELAY的时间变量;(没讲过) (6)定义一个32位的寄存器MYREG;(reg 31:0 MYREG;) (7)定义一个容量为128,字长为32位的存储器MYMEM;(reg 31:0 MYMEM 127:0) 15. 下列标识符哪些是合法的,哪些是错误的? Cout(y), 8sum(n), a*b(y), _data(y), wait(y), initial(n), $latch(n) 16.下列数字的表示是否正确? 6d18(y), Bx0(y), 5b0x110(y), da30(n), 10d2(y), hzF(y) 17.简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?根据内部结构不同可分为摩尔型状态机和米里型状态机两种。摩尔型状态机的输出只由当前状态决定,而次态由输入和现态共同决定;米里型状态机的输出由输入和现态共同决定,而次态也由输入和现态决定。状态编码主要有三种:连续二进制编码、格雷码和独热码。18.简述基于数字系统设计流程包括哪些步骤?包括五个步骤:、设计输入:将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。 、逻辑综合:将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。 、布局布线:将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。 、仿真:就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误的过程,包括功能仿真和时序仿真。 、编程配置:将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。19.简述Verilog HDL编程语言中函数与任务运用有什么特点?20.简述FPGA与CPLD两种器件应用特点。CPLD与FPGA都是通用可编程逻辑器件,均可在EDA仿真平台上进行数字逻辑电路设计,它们不同体现在以下几方面:FPGA集成度和复杂度高于CPLD,所以FPGA可实现复杂逻辑电路设计,而CPLD适合简单和低成本的逻辑电路设计。、FPGA内主要由LUT和寄存器组成,倾向实现复杂时序逻辑电路设计,而CPLD内主要由乘积项逻辑组成,倾向实现组合逻辑电路设计。、FPGA工艺多为SRAM、flash等工艺,掉电后内信息消失,所以该类型需外配存储器,而CPLD工艺多为EEPROM等工艺,掉电后信息不消失,所以不用外配存储器。、FPGA相对CPLD成本高,但都可以在内都镶嵌硬核和软核,实现片上系统功能。3. 选择题1、已知 “a=1b1;b=3b001;”那么a,b(C)(A)4b0011(B)3b001(C)4b1001(D)3b1012、在verilog中,下列语句哪个不是分支语句?(D)(A)if-else(B)case(C)casez(D)repeat4、在verilog语言中,a=4b1011,那么&a=(D)(A)4b1011(B)4b1111(C)1b1(D)1b05、在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。 (A)8(B)16(C)32(D)646、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是_C_。AFPGA全称为复杂可编程逻辑器件;BFPGA是基于乘积项结构的可编程逻辑器件;C基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D在Altera公司生产的器件中,MAX7000系列属FPGA结构。7.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化_B_。流水线设计资源共享逻辑优化串行化寄存器配平关键路径法ABCD8、下列标识符中,_A_是不合法的标识符。A9moonBState0CNot_Ack_0Dsignall9、下列语句中,不属于并行语句的是:_D_A. 过程语句Bassign语句C元件例化语句Dcase语句6、 10、P,Q,R都是4bit的输入矢量,下面哪一种表达形式是正确的 5)1)input P3:0,Q,R;2)input P,Q,R3:0;3)input P3:0,Q3:0,R3:0;4)input 3:0 P,3:0Q,0:3R;5)input 3:0 P,Q,R;1、下列标示符哪些是合法的(B)A、$timeB、_dateC、8sumD、mux#2、如果线网类型变量说明后未赋值,起缺省值是(D)A、xB、1C、0D、z3、现网中的值被解释为无符号数。在连续赋值语句中,assignaddr3:0=-3;addr被赋予的值是(A)A、4b1101B、4b0011C、4bxx11D、4bzz114、reg7:0mema255:0正确的赋值是(A)A、mema5=3d0,B、8d0;C、1b1;D、mema53:0=4d15、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是(D)modulecode(x,y);moduletop;parameedelay1=1,delay2=1;.code#(1,5)d1(x1,y1);endmoduleendmoduleA、(1,1)B、(5,5)C、(5,1)D、(1,5)6、“a=4b11001,b=4bx110”选出正确的运算结果(B)A、a&b=0B、a&b=1C、b&a=xD、b&a=x7、时间尺度定义为timescale10ns/100ps,选择正确答案(C)A、时间精度10nsB、时间单位100psC、时间精度100psD、时间精度不确定8、若a=9,执行$display(“currentvalue=%0b,a=%0d”,a,a)正确显示为(B)A、currentvalue=1001,a=09B、currentvale=1001,a=9C、1001,9D、currentvale=00001001,a=99、awaysbegin#5clk=0;#10clk=clk;end产生的波形(A)A、占空比1/3B、clk=1C、clk=0D、周期为1010、在Verilog中定义了宏名definesuma+b+c下面宏名引用正确的是(A)A、out=sum+d;B、out=sum+d;C、out=sum+d;D、都正确11.下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?(A)(A)开关级(B)门电路级(C)体系结构级(D)寄存器传输级12.在verilog中,下列语句哪个不是分支语句?(D)(A)if-else(B)case(C)casez(D)repeat13下列哪些Verilog的基本门级元件是多输出(D)(A)nand(B)nor(C)and(D)not14Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为(B)(A)supply(B)strong(C)pull(D)weak15.元件实例语句“notif1#(1:3:4,2:3:4,1:2:4)U1(out,in,ctrl);”中截至延迟的典型值为(B)(A)1(B)2(C)3(D)416已知“a=1b1;b=3b001;”那么a,b(C)(A)4b0011(B)3b001(C)4b1001(D)3b10117.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC)(A)模块级(B)门级(C)开关级(D)寄存器级18在verilog语言中,a=4b1011,那么&a=(D)(A)4b1011(B)4b1111(C)1b1(D)1b019在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。(A)8(B)16(C)32(D)64四.编程题1、设计一奇偶校验位生成电路,输入八位总线信号bus,输出及校验位odd,偶校验位even。(6分)2、设计一个带复位端且对输入时钟clk进行二分频模块,并画出仿真波形。(9分)设计要求:复位信号为同步、高电平有效,时钟的下降沿触发3、设计一带异步复位端、异步置数段(低电平有效)的四位加法计数器,时钟clk上升沿有效),复位信号clr,置数信号load、输入数据data、输出qout。并画出仿真波形。(20分)答案1. module parity(even,odd,bus);output even,odd;input7:0 bus; /奇同偶异assign even=bus;/偶校验用异或assign odd=bus;/奇校验用同或endmodule2. module m2(out,clk,reset);input reset,clk;output out;reg out;always (negedge clk)begin if(reset)out=0;else out=out;endendmodule3. module adder_4(qout,clr,clk,load,data);output3:0 qout;input3:0 data;input load,clr,clk;reg3:0 qout;always (posedge clk or negedge load or negedge clk)begin仿真波形if(!load)qout=data;else if(!clr)qout=0;else qout=qout+1;endendmodule 4. 设计9人表决器 module voter9(pass,vote); output pass; input6:0 vote; reg2:0 sum; integer i; reg pass; always (vote) begin sum=0; for(i=0;i=8;i=i+1) /for语句 if(votei) sum=sum+1; case(sum) 5,6,7,8,9: pass=1; default: pass=0; endcase endmodule 5. 设计一个8位计数器,要求异步复位,下降沿有效。module count8(out,clk rst_); output7:0 out; input clk, rst_; reg 7:0out; always (posedge clk or negedge rst_) if(!rst_) out = 8h0; else out = out+1; endmodule 5.利用有限状态机,以格雷码编译方式设计一个从输出信号序列中检测出101信号的电路图,其方块图、状态图和状态表如图表示。module melay(clk,Din,reset,Qout);input clk,reset;input Din;output Qout;reg Qout;parameter1:0 S0=2b00,S1=2b01,S2=2b11;reg1:0 CS;reg1:0 NS;always (posedge clk or posedge reset) begin if(reset=1b01) CS=S0; else CS=NS; end always (CS or Din) begin case(CS) S0:beign if(Din=1b0) begin NS=S0; Qout=1b0; end else begin NS=S1; Qout=1b0; end end S1:begin if(Din=1b0) begin NS=S2; Qout=1b0; end else begin NS=S1; Qout=1b0; end end S2:beign if(Din=1b0) begin NS=S0; Qout=1b0; end else begin NS=S1; Qout=1b0; end end endcase end endmodule6.程序注解,并说明整个程序完成的功能。moduleAAA(a,b);outputa;input6:0b;reg2:0sum;integeri;rega;always(b)beginsum=0;for(i=0;i=6;i=i+1)if(bi)sum=sum+1;if(sum2)a=1;elsea=0;endendmodule7.设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。端口设定如下:输入端口:CLK:时钟,RST:复位端,EN:时钟使能端,LOAD:置位控制端,DIN:置位数据端;输出端口:COUT:进位输出端,DOUT:计数输出端。module cnt10 (clk,rst,en,loat,cout,dout,data);input clk ;input en ;input rst ;input load ;input 3:0 data ;output 3:0 dout ;output cout ;reg 3:0 q1 ;reg cout ;assign dout = q1;always (posedge clk or negedge rst) beginif (!rst) q1 = 0;else if (en)beginif (!loat) q1 = data;else if (q19) q1 = q1+1;else q1 = 4b0000;endendalways (q1)if (q1=4h9) cout = 1b1;else cout = 1b0;endmodule8.下面是通过case语句实现四选一电路部分程序,将横线上的语句补上,使程序形成完整功能。case(s1,s0)2b00:out=i0;2b01:out=i1;2b10:out=i2;2b11:out=i3;9.标注各语句功能,指出整个程序完成的电路功能。/ 带同步清0/同步置1(低电平有效)的D触发器.module dff_syn(q,qn,d,clk,set,reset); /定义模块为diff_syn, 端口为q,qn,d,clk,set,resetinput d,clk,set,reset; output reg q,qn; /定义端口d,clk,set,reset为输入端口,reg,q,qn为输出端口always (posedge clk) /对clk信号上升沿有效 begin if(reset) begin q=1b0;qn=1b1;end /同步清零,低电平有效else if(set) begin q=1b1;qn=1b0;end /同步置位, 低电平有效else begin q=d; qn=d; end /q输出为d, qn输出为非d; endendmodule /模块结束 10.根据图3给定的两个2位全加器信号关系及实现的4位全加器功能部分程序,在下列部分程序中的横线上填入必要语句,实现4位全加器的完整功能。 /底层4位全加器程序module add2(ai,bi,ci,sum,cout);input 1:0ai,bi;input ci;output 1:0sum; reg 1:0sum;output cout;reg cout;always

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论