英伟达笔试题目ASIC|英伟达笔试题

  目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。下面就由小编为大家介绍一下英伟达笔试题目-ASIC的文章,欢迎阅读。

  英伟达笔试题目-ASIC篇1

  1. 一段RTL代码,最终的电路面积不一样,请分析所有的可能。

  2. If(a==1’b1)

  $display(“breakpoint1”);

  Else

  $display(“breakpoint2”);

  If(b===1’bz)

  $display(“breakpoint3”);

  Else

  $display(“breakpoint4”);

  如果a.b的输入都为X,请分析结果是什么。

  3. 分析主从端的req/ack信号的timing,给出了R_DATA.ADDR.W_DATA.CTRL.REQ.ACK信号,请画出时序图并分析。

  英伟达笔试题目-ASIC篇2

  4. 给出一个电路图,分析有几个pipe stages,分别的功能是什么。分析从发送数据到接受数据需要几级pipeline.修改电路减少pipeline但是pipe stages不变。

  5. 给出5个人的薪水,其中有三个人的是一样的,请用perl/tcl/c排列出薪水值由大到小,薪水一样的按照姓名的ACSII大小值排列。

  英伟达笔试题目-ASIC篇3

  6. 将下列的C Code转换为RTL code.

  mem[256] = {

  0 6 5 5 4 4 4 4 3 3 3 3 3 3 3 3

  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  } intarith_c::bin(int bit, intprob) {

  int left = 1 + (((high-1)*prob)>>8);

  if (bit) {

  low +=left;

  high -=left;

  } else {

  high =left;

  }

  int shift = norm[high];

  high <<=shift; count += shift;

  return count;

  }

  RTL code

  Module arith(); input clk;

  input reset;//negative async reset

  input bit;

  input [7:0] prob;

  input [31:0] count;

  Output [31:0] count_new; //this one is the 'return count' in C code reg [31:0] low;//reset to 0;

  reg [7:0] high; //reset to 255;

  //fill your RTL here;

  //…