Verilog - 笔试题(3)

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

Application Specific Integrated Circuit专用集成电路

 

2.可编程器件分为(FPGA)和(CPLD)。

Field Programmable Gate Array,即现场可编程门阵列,Complex Programmable Logic Device复杂可编程逻辑器件

 

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

 

4.目前国际上较大的PLD器件制造公司有(Altera)和(Xilinx)公司。

 

5.完整的条件语句将产生(组合逻辑)电路,不完整的条件语句将产生(时序逻辑)电路。

 

6.阻塞性赋值符号为(=),非阻塞性赋值符号为(<=)。

 

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

 

10.Verilog HDL中任务可以调用_其他任务_和__函数__。(函数只能调用其他函数)

 

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

 

13、大型数字逻辑电路设计采用的IP核有__软IP__、__固IP___和__硬IP__。

 

1、某一纯组合电路输入为in1,in2和in3,输入出为out,则该电路描述中always的事件表达式应写为always@(in1,in2,in3),若某一时序电路由时钟clk信号上升沿触发,同步高电平复位信号rst清零,该电路描述中always的事件表达是应该写为always@(posedge clk)

 

2、在模块中对任务进行了定义,调用此任务,写出任务的调用mytask(f,g,m,n,p);。

task mytask;                           要求:变量的传递关系如下

output  x,y;                     m——a,n——b,p——c,x——f,y——g

input  a,b,c;

……

endtask

 

3、if(a) out1<=int1; else out1<=int2;     

a=1执行out1<=int1,当a=0或x或z执行out1<=int2

 

4、4’b1001<<2=6’b100100,4’b1001>>2= 4’b0010

 

1、下列标识符哪些是合法的(B)

A、$time    B、_date     C、8sum      D、mux#

只能是下划线或字母开头,D不能有#

 

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

A、x     B、1     C、0     D、z

wire默认为z,reg默认为x

 

3、线网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A)

A、4’b1101   B、4’b0011   C、4’bxx11   D、4’bzz11

 

4、reg [7:0] mema [255:0]正确的赋值是(A)

A、mema[5]=3’d0;         B、8’ d0;  C、1’ b1;   D、mema[5][3:0]=4’d1;

A会把mema[5]的8位都赋值为0,D会把mema[5]的低4位赋值为0001

 

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

module code(x,y);                       module top;

parameter delay1=1,delay2=1;   …………….

………………………………         code #(1,5) d1(x1,y1);

endmodule                                  endmodule

A、(1,1)  B、(5,5)  C、(5,1)  D、(1,5)

 

6、“a=4’b1001,b=4’bx110”选出正确的运算结果(B)

A、a&b=0   B、a&&b=1   C、b&a=x   D、b&&a=x

a&b=4’bx000

 

7、时间尺度定义为timescale 10ns/100ps,选择正确答案(C)

A、时间精度10ns   B、时间单位100ps   C、时间精度100ps  D、时间精度不确定

/左右分别为时延单位和时延精度

 

8、若a=9,执行$display(“current value=%0b,a=%0d”,a,a)正确显示为(B)

A、current value=1001,a=09               B、current value=1001,a=9

C、1001,9                              D、current vale=00…001001,a=9

%0d表示前面不含0

 

9、aways begin #5 clk=0; #10 clk=~clk; end产生的波形(A)

A、占空比1/3    B、clk=1     C、clk=0     D、周期为10

占空比为有效电平在一个周期之内所占的时间比率

 

10、在Verilog中定义了宏名 `define sum a+b+c 下面宏名引用正确的是(C)

A、out=’sum+d;    B、out=sum+d;    C、out=`sum+d;    D、都正确

引用时加`

 

写出下列缩写的中文含义:

ASIC :专用集成电路                   

RTL:寄存器传输级

FPGA:现场可编程门阵列              

SOPC:可编程片上系统

CPLD:复杂可编程逻辑器件  

LPM:参数化模块库(Library of Parameterized Modules)

EDA:电子设计自动化      

IEEE:电气和电子工程师协会(Institute of Electrical and Electronics Engineers)

IP:知识产权核(intellectual property core)          

ISP:在系统可编程(In-System Programmability)

 

1.阻塞赋值与非阻塞赋值的区别?

非阻塞赋值方式b<=a;

各条非阻塞赋值语句的执行没有先后之分,排在前面的语句不会影响到后面语句的执行,各条语句并行执行;

阻塞赋值方式b=a;

各条阻塞赋值语句按照排列顺序依次执行,先计算右端表达式的值,然后立刻将计算的结果赋给左边的变量;

 

2.简述有限状态机FSM分为哪两类?有何区别?有限状态机的状态编码风格主要有哪三种?FSM的三段式描述风格中,三段分别描述什么?

Mealy型,Moore型;

前者输出与输入、当前状态有关,而后者输出只和当前状态有关;

Binary,Gray,One-Hot编码;

三段式分别描述:

第一段同步时序always块,描述状态寄存(次态寄存器迁移到现态寄存器),

第二段组合逻辑always块,描述状态转移条件判断,

第三段描述状态输出;

 

1.用Verilog HDL描述一个带进位输入、输出的4位全加器。

端口:A、B为加数,CIN为进位输入,S为和,COUT为进位输出

module adder4(
  input [3:0] a,b,
  input cin,
  output [3:0] s,
  output cout
);
  assign {cout,s} = a + b + cin;
endmodule

 

2.编写一个带异步清零、异步置位的D触发器。

module dff(
  input clk,set,reset,d,
  output reg q,qn
);
  always @(posedge clk or negedge reset or negedge set) begin
    if(!reset) begin
      q <= 0;
      qn <= 1;
    end
    else if(!set) begin
      q <= 1;
      qn <= 0;
    end
    else begin
      q <= d;
      qn <= ~d;
    end
  end
endmodule

3.设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。

module cnt10(
  input clk,en,rstn,
  output reg [3:0] cnt
);
  always @(posedge clk or negedge rstn) begin
    if(!rstn)
      cnt <= 4'd0;
    else if(en) begin
      if(cnt == 4'd9)
        cnt <= 4'd0;
      else
        cnt <= cnt + 4'd1;
    end
  end
endmodule

1、always语句和initial语句的关键区别是什么?能否相互嵌套?

always语句每当敏感条件列表满足时,就会执行一次;

initial只执行一次;

它们不能嵌套;

  

3、画出下面程序综合出来的电路图。

always@(posedge clk)

begin

    q0<=~q2;

    q1<=q0;

    q2<=q1;

end

Verilog - 笔试题(3)_第1张图片

 

4、HA模块程序如下,写出引用HA模块描述FA模块的Verilog程序。

module HA(A,B,S,C);

  input A,B;

  output S,C;

  assign {C,S}=A+B;

endmodule

Verilog - 笔试题(3)_第2张图片

module FA(

  input A,B,Ci,

  output Co,S

);

  wire S1,C1,C2;

  HA U1(A,B,S1,C1);

  HA U2(S1,Ci,S,C2);

  assign Co = C1 | C2;

endmodule

 

1、设计奇偶校验位生成电路,输入八位总线信号bus,输出奇校验位odd,偶校验位even。

module parity(

  input [7:0] bus,

  output even,odd   

);

  assign even = ^bus; // xor检查1的个数,为奇数输出1,为偶数输出0

  assign odd = ^~bus;

endmodule

2、设计一个带复位端且对输入时钟clk进行二分频模块,并画出仿真波形。

设计要求:复位信号为同步、高电平有效,时钟的下降沿触发

module div2(

  input clk,rst,

  output reg out

);

  always @(negedge clk) begin

    if(rst)

      out <= 1'b0;

    else

      out <= ~out;

  end

endmodule

Verilog - 笔试题(3)_第3张图片

 

3、设计一带异步复位端、异步置数端(低电平有效)的四位加法计数器,时钟clk上升沿有效),复位信号clr,置数信号load、输入数据data、输出qout。

module cnt(

  input clk,clr,load,

  input [3:0] data,

  output reg [3:0] qout

);

  always @(posedge clk or negedge load or negedge clr) begin

    if(!clr)

      qout <= 1'b0;

    else if(!load)

      qout <= data;

    else

      qout <= qout + 4'd1;

  end

endmodule



 

你可能感兴趣的:(数字IC笔试面试)