FPGA/IC笔试——联发科

4.1 ASIC流程,说出5个以上环节;Verilog说出5个以上keyword。

img

4.2 用一个mux和一个反相器实现xor,画电路或Verilog代码实现。

img

module xor_rill
(
    input a,
    input b,
    output z
); 
assign z = a?(~b):b;
endmodule
 

4.3 如下图所示:clk到Q的输出延时为T1min<T1<T1max,组合逻辑的延时为:T2min<T2<T2max,时钟周期为T。满足约束条件下,计算寄存器的setup和holdup。

img

T1max + T2max + Tsetup < T; 所以:Tsetup < T-T1max-T2max; T1min + T2min > Tholdup。

 

4.4 如下图所示:根据A的波形,画出B,C的波形,寄存器是同步清零的。

img

 

4.5 十进制的12.8125用二进制的数表示,十六进制的A8D6用八进制的数表示。

12 = 1100; 0.8125 × 4 = 3.25,表示:11.01,所以0.8125=0.1101; 所以,12.8125 = 1100.1101。 A8D6 = 1010100011010110 = 124326。

 

4.6 SV比Verilog强在哪里?OVM、UVM、VMM是什么?

SV支持面向对象的编程,支持断言的语法,支持更多的数据类型。 VMM:Verification Methodology Manual,由ARM和Synopsys提出的,寄存器解决方案RAL机制; OVM:Open Verification Methodology,Mentor和Cadence共同提出,引进了factory机制; UVM:Universal Verification Methodology,通用验证方法学,Accellera提出的,继承了VMM和OVM的优点,克服了二者的缺点,代表了验证方法学的主流,并得到了三大EDA厂商Cadence、Synopsys和Mentor Graphics的支持。

 

4.7 用Python或Perl写程序,在xxx.log中找到fail单词。

my %input_file = "xxx.log";
my $inf;
open($inf,"<".$input_file)||die"cannot open $input_file";
while(<$inf>){
my $input_line =$_;
$input_line =~ m/fail/;
print“匹配的字符:$&\n";}
close $inf;
 

4.8 int b = 100;int *a; a=&b有什么意义?a=b有什么意义?

a=&b定义指针变量a,变量指向整形数据b的地址,printf(“%d”,a)结果为100; a=b表示指针变量a的值为100,a表示一个地址为100的数据。

 

4.9

在这里插入图片描述

 

4.10 cpu cache miss/hit区别 CPU要访问的数据在Cache中有缓存,称为“命中” (Hit),反之则称为“缺失” (Miss)。 当运算器需要从存储器中提取数据时,它首先在最高级的cache中寻找然后在次高级的cache中寻找。如果在cache中找到,则称为命中hit;反之,则称为不命中miss。 11、110序列选择器 画状态图 写verilog代码

在这里插入图片描述

 

 1 module Sequential_Detector(
 2     input       clk,
 3     input       rst_n,
 4     input       in,
 5     output      out
 6 ); 
 7     parameter   s0 = 2'b00,
 8                 s1 = 2'b01,
 9                 s2 = 2'b10;
10     reg [1:0] cur_state,next_state;
11     reg out_r;
12  
13     always_ff(posedge clk,negedge rst_n)begin
14         if(!rst_n)
15             cur_state <= s0;
16         else
17             cur_state <= next_state;
18     end
19  
20     always_comb begin
21         case(cur_state)
22             s0: next_state = (in==1'b1)?s1:s0;
23             s1: next_state = (in==1'b1)?s2:s0;
24             s2: nexe_state = (in==1'b0)?s0:s2;
25             default: nexe_state = s0;
26         endcase
27     end
28  
29     always_ff@(posedge clk,negedge rst_n)begin
30         if(!rst_n)
31             out_r <= '0;
32         else begin
33             case(cur_state)
34                 s0: out_r <= '0;
35                 s1: out_r <= '0;
36                 s2: begin
37                     if(in==0)
38                         out_r <= '1;
39                     else
40                         out_r <= '0;
41                 end
42             endcase
43         end
44  
45 assign out = out_r;
46  
47 endmodule

 

12、一道逻辑推理题 某夜,A、B、C、D四人要过桥,该桥每次只能通行2个人,只有一个手电筒,过桥必须持有手电筒,A、B、C、D四人单独过桥的时间分别为1分钟、2分钟、5分钟、10分钟.现要求四人最短时间完成过桥,不能折返.请问该如何操作?

  答:A和B过桥,A回来,C和D过桥,B回来,A和B再过桥;用时2+1+10+2+2=17min

  分析:如题意描述,四人过桥需去3返2共5次(第1、3、5趟过桥两人、第2、4趟返回一人),由于双人过桥时是以速度较慢那人为准,所以让速度最慢和次慢的两人一起过桥(避免下一次速度次慢的人拉低过桥速度),而对于返回这两次应为耗时较少的人选,所以速度快的两人应先过桥再折返一人。同理:A和B过桥,B回来,C和D过桥,A回来,A和B再过桥;用时2+2+10+1+2=17min

 

posted on 2021-04-28 21:44  一曲挽歌  阅读(869)  评论(0编辑  收藏  举报

导航