河北大学课程考核试卷2008——2009学年第一学期2006级电气类专业(类)考核科目EDA技术课程类别必修考核类型考查考核方式闭卷类别A一、选择题:1、下列标示符哪些是合法的(B)A、$timeB、_dateC、8sumD、mux#2、如果线网类型变量说明后未赋值,起缺省值是(D)A、xB、1C、0D、z3、现网中的值被解释为无符号数。在连续赋值语句中,assignaddr[3:0]=-3;addr被赋予的值是(A)A、4’b1101B、4’b0011C、4’bxx11D、4’bzz114、reg[7:0]mema[255:0]正确的赋值是(A)A、mema[5]=3’d0,B、8’d0;C、1’b1;D、mema[5][3:0]=4’d15、在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=4’b11001,b=4’bx110”选出正确的运算结果(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=00…001001,a=99、awaysbegin#5clk=0;#10clk=~clk;end产生的波形(A)A、占空比1/3B、clk=1C、clk=0D、周期为1010、在Verilog中定义了宏名`definesuma+b+c下面宏名引用正确的是(C)A、out=’sum+d;B、out=sum+d;C、out=`sum+d;D、都正确二、填空题:(共15分,每小题3分)1、某一纯组合电路输入为in1,in2和in3,输入出为out,则该电路描述中always的事件表达式应写为always@(in1,in2,in3);若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always@(posedgeclk)。2、在模块中对任务进行了定义,调用此任务,写出任务的调用mytast(f,g,m,n,p)。taskmytast;要求:变量的传递关系如下outputx,y;m——a,n——b,p——c,x——f,y——ginputa,b,c;…….endtask3、if(a)out1=int1;当a=1执行out1=int1elseout1=int2;当a=0执行out1=int24、4’b10012=4’b100100,4’b10012=4’b0010。5、下面程序中语句5、6、7、11是并行执行,语句9、10是顺序执行1moduleM(……);2input…….;3output……;4rega,b……;5always@(……..)6assignf=c&d;7always@(……..)8begin9a=…….;10b=…….;end11muxmux1(out,in0,in1);endmodule四、简答题:(共30分)1、always语句和initial语句的关键区别是什么?能否相互嵌套?(5分)always语句是循环语句,initial只执行一次。它们不能嵌套。2、画出下面程序段中r(reg型)的仿真波形(6分)fork#20r=1’b0;#10r=1’b1;#15r=1’b1;#25r=1’b1;#5r=1’b0;join3、画出下面程序综合出来的电路图。(7分)always@(posedgeclk)beginq0=~q2;q1=q0;q2=q1;end4、HA模块程序如下,写出引用HA模块描述FA模块的Verilog程序。(7分)moduleHA(A,B,S,C);inputA,B;outputS,C;assign{C,S}=A+B;endmodulemoduleFA(A,B,Ci,Co,S);inputA,B,Ci;outputCo,S;wireSl,C1,C2;HAa(A,B,Sl,C1);HAb(Sl,Ci,C2,S);assignCo=C1|C2;endmodule5、写出下面程序中变量x,y,cnt,m,q的类型(5分)Assginx=y;always@(posegdeclk)begincnt=m+1;q=~q;end五、编程题:(6分)1、设计一奇偶校验位生成电路,输入八位总线信号bus,输出及校验位odd,偶校验位even。(6分)2、设计一个带复位端且对输入时钟clk进行二分频模块,并画出仿真波形。(9分)设计要求:复位信号为同步、高电平有效,时钟的下降沿触发3、设计一带异步复位端、异步置数段(低电平有效)的四位加法计数器,时钟clk上升沿有效),复位信号clr,置数信号load、输入数据data、输出qout。并画出仿真波形。(20分)五题答案1.moduleparity(even,odd,bus);outputeven,odd;input[7:0]bus;//奇同偶异assigneven=^bus;//偶校验用异或assignodd=^~bus;//奇校验用同或endmodule2.modulem2(out,clk,reset);inputreset,clk;outputout;regout;always@(negedgeclk)beginx为wire型y为reg或wire型cnt为reg型m为reg或wire型q为reg型if(reset)out=0;elseout=~out;endendmodule3.moduleadder_4(qout,clr,clk,load,data);output[3:0]qout;input[3:0]data;inputload,clr,clk;reg[3:0]qout;always@(posedgeclkornegedgeloadornegedgeclk)beginif(!load)qout=data;elseif(!clr)qout=0;elseqout=qout+1;endendmodule仿真波形