三分三

首页 » 常识 » 问答 » EDA技术题库数字系统设计技术
TUhjnbcbe - 2025/2/10 17:32:00

EDA技术题库

目录

EDA技术题库

一.填空题

二.简述题

三、选择题

四、计算题(更全的,就看实验)

一.填空题

1.Verilog的基本设计单元是模块。它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。

2.用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关。而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。

3.在case语句中至少要有一条default语句。

4.已知x=4’b,y=4’,则x的4位补码为4’b,而y的4位的补码为4’b。

5.两个进程之间是并行语句。而在Always中的语句则是顺序语句。

6.综合是将高层次上描述的电子系统转换为低层次上描述的电子系统,以便于系统的具体硬件实现。综合器是能自动将高层次的表述(系统级、行为级)转化为低层次的表述(门级、结构级)的计算机程序。

7.设计输入的方式有原理图、硬件描述语言、状态图以及波形图。

8.IP核是知识产权核或知识产权模块,在EDA技术中具有十分重要的地位。半导体产业的IP定义为用于ASIC或FPGA中的预先设计好的电路功能模块。IP分为软IP、固IP和硬IP。

9.Verilog中常用有两种变量:寄存器型变量(用reg定义)、网线型变量(用wire定义)。

10.两种可编程逻辑结构是基于与-或阵列可编程结构(乘积项逻辑可编程结构)、基于SRAM查找表的可编程逻辑结构。

11.Verilog的端口模式有三种:输入端口、输出端口、双向端口,对应的端口定义关键词分别是:input、output、inout。

12.Verilog中常用有两种变量:寄存器型变量(用reg定义)、网线型变量(用wire定义)。

13.Verilog有两种赋值方式:阻塞式赋值(=)、非阻塞式赋值(=)。

14.Verilog有四种循环语句:for语句、repeat语句、while语句、forever语句。

15.Verilog的描述风格:RTL描述、数据流描述、行为描述、结构描述。

16.从状态机的信号输出方式上分,有Mealy型和Moore型两种状态机;从状态机的描述结构上分,有单过程状态机和多过程状态机;从状态机表达方式上分,有符号化状态机和确定状态编码的状态机;从状态机编码方式上分,有顺序编码状态机、一位热码编码状态机或其他编码方式状态机。

17.四种简单逻辑器件:PROM中固定的与阵列,可编程或阵列;PLA是与阵列、或阵列都可编程;PAL中或阵列固定,与阵列可编程;GAL是或阵列、与阵列都可编程,输入部分增加了输出逻辑同单元(OLMC)。

18.某一纯组合电路输入为in1,in2和in3,输入出为out,则该电路描述中always的事件表达式应写为always

(in1,in2,in3);若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always

(posedgeclk)。

19.

if(a)out1=int1;

elseout1=int2;

当a=1;执行out1=int1;

当a=0;执行out1=int2。

20.4’b2=4’b,4’b2=4’b。

21.下面程序中语句5、6、7、11是并行执行,语句9、10是顺序执行:

1moduleM(……);

2input…….;

3output……;

4rega,b……;

5always

(……..)

6assignf=cd;

7always

(……..)

8begin

9a=…….;

10b=…….;

end

11muxmux1(out,in0,in1);

Endmodule

22.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。

23.可编程器件分为CPLD和FPGA。

24.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL设计当中。

25.目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。

26.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。

27.阻塞性赋值符号为=,非阻塞性赋值符号为=。

28.有限状态机分为Moore和Mealy两种类型。

29.EDA缩写的含义为电子设计自动化(ElectronicDesignAutomation)。

30.状态机常用状态编码有二进制、格雷码和独热码。

31.VerilogHDL中任务可以调用其他任务和函数。

32.系统函数和任务函数的首字符标志为$,预编译指令首字符标志为#。

33.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。

34.大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。

35.操作符有9种类型,其中三目操作符有2个操作符和3个操作数。

36.关键字全是小写,标识符的首字符必须是字母或下划线。

37.数字A=5’b?的?表示z。设B=5’bx1,C=5’b01x11,则操作运算F=B+C的结果F=5bxxxxx。

38.VerilogHDL中保存字符串“Hello”需要40位。

39.声明reg[7:0]data[4:0]表示5个8位的存储单元。

40.

moduletest(q,clk,crt);

outputq;

regq;

inputclk,crt;

always

(posedgeclk)

begin

if(crt==1)

q=~q;

end

Endmodule

41.数据流建模的主要语法结构是assignLHS_target=RHS_expression;语句,采用assign关键字开始。

42.大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。

二.简述题

1.简述自顶向下的设计方法I

答:①从自然语言说明到HDL的系统行为描述;②从HDL的系统行为描述到RTL描述;③从RTL描述到逻辑门级描述;④从门级描述到最终可以物理布线实现的底层电路;(以上可以理解成是逐步综合的过程。)⑤后期设计还包括涉及硬件实现和测试。

2.简述EDA的设计流程

答:①图形输入:a.原理图b.硬件描述语言c.状态图d.波形图;②HDL文本输入﹔③综合;④适配;功能仿真与时序仿真;⑥编程下载;⑦硬件测试

3.简述什么是元件例化

答:元件例化就是引入一种连接关系,将预先设计好的元件,与当前设计模块中的指定端口相连接,从而构成层次化的设计方式。元件例化可以是多层次的,一个调用了较低层次元件的设计模块,也可以被更高层次的设计模块调用,成为高层次设计模块中的一个元件。被例化的元件可以以不同的形式出现,可以是Verilog,设计文件,可以是FPGA元件库中的元件,或者是以别的硬件描述语言设计的元件,还可以是IP核。

4.简要说明仿真时阻塞赋值与非阻塞赋值的区别

非阻塞(non-blocking)赋值方式(b=a):b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成;块内的多条赋值语句在块结束时同时赋值;硬件有对应的电路。阻塞(blocking)赋值方式(b=a):b的值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作;硬件没有对应的电路,因而综合结果未知。阻塞赋值是在该语句结束是立即完成赋值操作;非阻塞赋值是在整个过程块结束是才完成赋值操作。

5.简述if语句的几种主要结构

答:①if(条件表达式)

begin语句块;end

②if(条件表达式)

begin语句块1;end

elsebegin语句块2;end

③if(条件表达式1)

begin语句块1;end

elseif(条件表达式2)begin语句块2;

end…

elseif(条件表达式n)

begin语句块n;end

elsebegin语句块n+1;end

6.简述Moore型和Mealy型状态机的区别-

答:Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore型状态机的输出则仅为当前状态的函数,这类状态机在输入发生变化时还必须等待时钟的到来,时钟状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。

7.画出下面程序段中r(reg型)的仿真波形(6分)

fork

#20r=1’b0;

#10r=1’b1;

#15r=1’b1;

#25r=1’b1;

#5r=1’b0;

Join

8.画出下面程序综合出来的电路图。(7分)

always

(posedgeclk)

begin

q0=~q2;

q1=q0;

q2=q1;

End

9.HA模块程序如下,写出引用HA模块描述FA模块的Verilog,程序。(7分)

moduleHA(A,B,S,C);

inputA,B;

outputS,C;

assign{C,S}=A+B;

endmodule

moduleFA(A,B,Ci,Co,S);

inputA,B,Ci;

outputCo,S;

wireS1,C1,C2;

HAa(A,B,S1,C1);

HAb(S1,Ci,C2,S);

assignCo=C1

C2;

endmodule

10.写出下面程序中变量x,y,cnt,m,q的类型

Assginx=y;

always

(posegdeclk)

begin

cnt=m+1;

q=~q;

end

11.定义如下的变量和常趣:

(1)定义一个名为count的整数;(integercount

(2)定义一个名为ABUS的8位wire总线;(wire[7:0]ABUS)

(3)定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数;(reg[15:0]addressaddress=16d)

(4)定义参数Delay_time,参数值为8;(parameterDelay_time=8)

(5)定义一个名为DELAY的时间变量;(没讲过)

(6)定义一个32位的寄存器MYREG;(reg[31:0]MYREG;)

(7)定义一个容量为,字长为32位的存储器MYMEM,(reg[31:0]MYMEM[:0])

12.下列标识符哪些是合法的,哪些是错误的?

Cout(y),8sum(n),\a*b(y),data(y),\wait(y),initial(n),$1atch(n)

答:

合法的:Cout(y),\wait(y),initial(n),$1atch(n)

错误的:8sum(n),\a*b(y),data(y)

13.下列数字的表示是否正确?

6d18(y),Bx0(y),5b0x(y),da30(n),10’d2(y),hzF(y)

答:

合法的:Bx0(y),da30(n),hzF(y)

错误的:6d18(y),5b0x(y),10’d2(y)

14.简述有限状态机FSM分为哪两类﹖有何区别?有限状态机的状态编码风格主要有哪三种?

答:根据内部结构不同可分为摩尔型状态机和米里型状态机两种。摩尔型状态机的输出只由当前状态决定,而次态由输入和现态共同决定;米里型状态机的输出由输入和现态共同决定,而次态也由输入和现态决定。

状态编码主要有三种:连续二进制编码、格雷码和独热码。

15.简述基于数字系统设计流程包括哪些步骤?

答:包括五个步骤:

(1)、设计输入:将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。

2)、逻辑综合:将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。

(3、布局布线:将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。

(4)、仿真:就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误的过程,包括功能仿真和时序仿真。

(5)、编程配置:将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。

16.程序注解,并说明整个程序完成的功能。

moduleAAA(a,b);//定义模块名为AAA,端口为a,b

outputa;//定义a为输出端口

input[6:0]b;//定义b为输出端口,b为7为二进制数

reg[2:0]sum;//sum为reg型变量,用以统计赞同的人数

integeri;//定义整型变量,i为循环控制变量

rega;//定义a为寄存器变量

always

(b)//过程语句,敏感变量为b

begin//语句块

sum=0;//sum初始值为0

for(i=0;i=6;i=i+1)//for语句,统计b为1的个数

if(b)//条件语句

sum=sum+1;//只要有人投赞成票,则sum加1

if(sum[2])a=1;//若超过4人则表决通过

elsea=0//若不到4人则不通过

三、选择题

1、已知“a=1b’1;b=3b;”那么{a,b}=(C)

(A)4b0

(B)3b

(C)4b

(D)3b

2、在verilog.中,下列语句哪个不是分支语句?(D)

(A)if-else

(B)case

(C)casez

(D)repeat

3、在verilog.语言中,a=4b1.那么a=(D)

(A)4b1

(B)4b

(C)1b1

(D)1b0

4、在verilog.语言中整型数据与(C)位寄存器数据在实际意义上是相同的。

(A)8

(B)16

(C)32

(D)64

5、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中正确的是(C)

A.FPGA全称为复杂可编程逻辑器件;

B.FPGA是基于乘积项结构的可编程逻辑器件;

C.基于SRAM的FPGA器件,在每次上电后必须进行-次配置;

D.在Altera公司生产的器件中,MAX系列属FPGA结构。

6、子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化(B)

①流线设计②资源共享③逻辑优化④串化⑤寄存器配平⑥关键路径法

A.①③⑤

B.②③④

C.②⑤⑥

D.①④⑥

7、下列标识符中,A是不合法的标识符。

A.9moon

B.State0

C.Not_Ack0

D,signall

8、下列语句中,不属于并行语句的是:(D)

A.过程语句

B.asgn语句

C.元件例化语句

D.case语句

9、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;

10、下列标示符哪些是合法的(B)

A、Stime

B、._date

C、8sum

D、mux#

11、如果线网类型变量说明后未赋值,起缺省值是(D)

A、x

B、1

C、0

D、Z

12、现网中的值被解释为无符号数。在连续赋值语句中assignaddr3:0];3;addr被赋与的值是(A)

A、4b1

B、4b0

C、4bxox11

D、4bzz11

13、reg[7:0]memal:0]正确的赋值是(A)

A、mema=3’do.

B、8’d0:

C、1’b1:

D、mema[51[3:01=4’d

14、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是(D)

modulecode(x,v);

moduletop;

parameedelay1=1,delay2=1;

........

code#(1,5)d1(x1,V1);

endmodule

Endmodule

A、(1,1)

B、(5,5)

C、(5,1)

D、(1,5)

15、"a=4b1,be4bx"选出正确的运算结果(B)

A、ab=O

B、ab=1

C、ba=x

D、ba=x

16、时间尺度定义为timescale10ns/ps.选择正确答案(C)

A、时间精度10ns

B、时间单位ps

C、时间精度ps

D、时间精度不确定

17、若a=9,执行Sdisplay(“currentvalue=%0b,a=%0d",a,a)正确显示为(B)

A、currentvalue=,a=09

B、currentvale=,a=9

C、,9

D、currentvl00..10,a=9

18、awaysbegin#5clk=0;#10clk-~ck;end产生的波形(A)

A、占空比1/3

B、dk=1

C、dk≈0

D、周期为10

19、在Verilog.中定义了宏名definesumatb+c下面宏名引用正确的是(A)

A、out=sum+d;

B、out-sum+d;

C、out=sum+d;

D、都正确

20、下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?(A)

(A)开关级

(B)门电路级

(C)体系结构级

(D)寄存器传输级

21、在verilog.中,下列语句哪个不是分支语句?(D)

(A)if-else

(B)case

(C)casez

(D)repeat

22、下列哪些Verilog的基本门级元件是多输出(D)

(A)nand

(B)nor

(C)and

(D)not

23、Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为(B)

(A)supply

(B)strong

(C)pull

(D)weak

24、元件实例语句“noti1#(1:34,2:3:4,1:2:4)Ulout,in,ctrD;"中截至延迟的典型值为(B)

(A)1

(B)2

(C)3

(D)4

25、已知“a=1b1;b=3b;"那么{a,b}=(C)

(A)4b"0

(B)3b

(C)4b

(D)3b

26、根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC)

(A)模块级

(B)门级

(C)开关级

(D)寄存器级

27、在verilog语言中,a=4b1.那么a=(D)

(A)4b1

(B)4)

(C)1b1

(D)1b0

28、在verilog,语言中整型数据与(C)位寄存器数据在实际意义上是相同的。

(A)8

(B)16

(C)32

(D)64

29、状态机编码方式中,其中A占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态。

A.一位热码编码

B.顺序编码

C.状态位直接输出型编码

D.格雷码编码

30、综合是EDA设计流程的关键步骤。在下面对综合的描述中,错误的是(D)

A.综合就是把抽象设计层次中的一.种表示转化成另--种表示的过程。

B.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件。

C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。

D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯-的(即综合结果是唯-的)。

31、规模可编程器件主要有FPGA.CPLD两类,其中CPLD通过_A_实现其逻辑功能。

A.可编程乘积项逻辑

B.查找表(LUT)

C.输入缓冲

D.输出缓冲

32、不完整的IF语句,其综合结果可实现(A)。

A.时序逻辑电路

B.组合逻辑电路

C.双向电路

D.三态控制电路

33、基于EDA软件的FPGA/CPLD设计流程为:原理图/HDL文本输入→(A)→综合→适配一____一编程下载一硬件测试。

A.功能仿真

B.时序仿真

C.逻辑综合

D.配置

34、IP核在EDA技术和开发中具有十分重要的地位:提供用VHDL等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为(A)。

A.软IP

B.固IP

C.硬IP

D.全对

四、计算题(更全的,就看实验)

(1)2/4分频器Verilog描述语句

modulediv_2_4(reset,clk_in,clk2_out,clk4_out);

inputclk_in,reset;

outputclk2_out,clk4_out;

regclk2_out,clk4_out;

always

(posedgeclk_in)//时钟上升沿触发

begin

if(~reset)begin//同步复位

clk2_out=0;

clk4_out=0;

end

elsebegin

clk2_out=~clk2_out;

if(~clk2_out)clk4_out=~clk4_out;

end

end

Endmodule

(2)1/6,10分频参考程序(N=6,10)

modulediv_6(reset,clk_in,clk6_out,clk10_out);

inputclk_in,reset;

outputclk6_out,clk10_out;

regclk6_out,clk10_out;

parameterWIDTH=3;

reg[WIDTH:0]temp1,[WIDTH:0]temp2;

always

(posedgeclk_in)

begin

if(~reset)begin

clk6_out=0;

clk10_out=0;

temp1=2;temp2=4;end//使复位后的第一个时钟

elsebegin//就开始分频

temp1=temp1+1;temp2=temp2+1;

if(temp12)beginclk6_out=~clk6_out;

temp1=0;end

if(temp24)beginclk10_out=~clk10_out;

temp2=0;end

end

end

endmodule

(3)占空比为50%的三分频器Verilog描述程序

modulefen3(clkin,qout1,qout2,clkout);

inputclkin;

outputregqout1,qout2;

outputclkout;wireclkout;

assignclkout=qout1

qout2;

always

(posedgeclkin)

begin:blk1

reg[1:0]cnt;

if(clkin==1b1)begin

if(cnt1)begin

qout1=1b1;

cnt=cnt+1;end

elsebegin

qout1=1b0;

cnt=cnt+1;

if(cnt1)cnt=0;end

end

end

always

(negedgeclkin)

begin:blk2

reg[1:0]cnt;

if(clkin==1b0)begin

if(cnt1)begin

qout2=1b1;

cnt=cnt+1;end

elsebegin

qout2=1b0;

cnt=cnt+1;

if(cnt1)cnt=0;end

end

end

endmodule

(4)由输入信号检测序列Verilong程序

modulemealyfsm(clk,reset,din,dout,cs_state,ns_state);

outputdout;

output[1:0]cs_state,ns_state;

inputclk,reset,din;

regdout;

//用格雷码编码声明状态值

parameter[1:0]s0=2b00,s1=2b01,s2=2b11;

reg[1:0]cs,ns;

assigncs_state=cs,ns_state=ns;

always

(posedgeclk,posedgereset)begin

if(reset==1b1)//异步复位,高电平有效

cs=s0;

else

cs=ns;end

//次态计算及输出信号产生,

always

(cs,din)

case(cs)

s0:begin

dout=1b0;

if(din===1bx)ns=s0;

elsens=(din)?s0:s1;

end

s1:begin

dout=1b0;

ns=(!din)?s1:s2;

end

s2:begin

dout=(din)?1b0:1b1;

ns=(din)?s0:s1;

end

default:begin

dout=1b0;

ns=s0;

end

endcase

endmodule

(5)BCD码编码器程序:采用行为描述实现编码逻辑电路功能

moduleBCD_Enc(in,out);

input[9:0]in;

output[3:0]out;reg[3:0]out;

always

(in)//always过程语句

begin

case(in)

10‘b00__0:out=0;

10‘b00__:out=1;

10‘b00__:out=2;

10‘b00__0:out=3;

10‘b00_0_:out=4;

10‘b00__:out=5;

10‘b00__:out=6;

10‘b00_0_:out=7;

10‘b01__:out=8;

10‘b10__:out=9;

endcase

end

Endmodule

(6)BCD码函数调用

modulebcd_enc(in,out);

input[9:0]in;output[3:0]out;

assignout=func_enc(in);//函数调用

function[3:0]func_enc;//函数定义

input[9:0]in;

case(in)

10b00__0:func_enc=0;

10b00__:func_enc=1;

10b00__:func_enc=2;

10b00__0:func_enc=3;

10b00_0_:func_enc=4;

10b00__:func_enc=5;

10b00__:func_enc=6;

10b00_0_:func_enc=7;

10b01__:func_enc=8;

10b10__:func_enc=9;

endcase

endfunction

endmodule

1
查看完整版本: EDA技术题库数字系统设计技术