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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM