今天依然為大家帶來華為海思晶片崗的真題解析,如有錯漏,歡迎指正哈。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5yNmVjM1kTZwEDZ0YWYyIzYyQGZ4AjNlZDMjVTO3ITOk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)
1. 數字電路設計中,下列哪種手段無法消除競争冒險現象(d)
a. 加濾波電容,消除毛刺
b. 增加備援項消除邏輯冒險
c. 增加選通信号,避開毛刺
d. 降低時鐘頻率
解析:在同步電路中,降低時鐘頻率可以讓寄存器采集資料的時候避開毛刺,因為假定時序路徑延時不變,頻率降低使時鐘沿後移,setup time不變的情況下給了更多的timing margin使毛刺恢複。但與前3個選項相比,這不是從根本上消除毛刺,該毛刺信号還是會被電路傳遞,隻不過降低了setup違例的風險。而在異步電路中,不論時鐘頻率是多少,毛刺都有被下遊寄存器采集的風險。
2. 異步時鐘資料采樣的方法錯誤的是(d)
a. 單bit高頻時鐘脈沖展寬後給低頻時鐘進行采樣
b. 握手信号後再采樣
c. 使用fifo隔離進行多bit的采樣
d. 高頻時鐘直接采樣低頻時鐘的多bit資料
解析:多bit資料存在各bit到達采樣點的時刻不同的問題,直接采樣可能會采集到錯誤的資料。要通過握手或者fifo或者格雷碼轉換單bit等方式進行多bit資料傳輸。
3. 以下不能對多bit的資料總線的時鐘異步處理的是:(c)
a. Dmux synchronizer
b. Gray-code
c. 寄存器同步
d. AFIFO
解析:同上一題,多bit資料總線不能直接用寄存器同步方式進行異步處理。
4. 一個4bit位寬的有符号數a=4’b1001取絕對值後的值為abs(a)=4’b0110(錯誤)
5. 對于兩個位寬相同的無符号數a和b, a>b和a
正确)
6. 組合邏輯電路的特點是輸出信号隻是該時刻輸入信号的函數,它是無記憶功能的。時序邏輯電路的特點是任何時刻産生的穩定輸出信号不僅與該時刻輸入信号有關,而且與它過去的狀态有關(正确)
7. 高的功能覆寫率意味着高的代碼覆寫率(錯誤)
解析:功能覆寫率和代碼覆寫率沒有直接的關系。功能覆寫率主要表征測試點關注信号的翻轉情況。代碼覆寫率包括了:信号翻轉覆寫率,條件覆寫率和代碼行覆寫率。可以想象一個極端場景:DUT是一個CPU,測試點隻觀察CPU裡的加法器。加法器測全了,功能覆寫率高了,但是代碼隻測了冰山一角。
如果反過來表達,高的代碼覆寫率也同樣不意味着高的功能覆寫率。假設DUT是一個8bit無符号加法器,測試兩個向量:a=b=8’b1111_1111,和a=b=8’b0理論上就能基本将代碼覆寫率打滿,但是這隻是所有操作數組合的其中兩個,很明顯功能覆寫率不可能高。
8. 為了發現邏輯缺陷,要想到什麼測什麼,一定要周遊所有可能(錯誤)
解析:頭腦風暴挖掘測試點是必須的,但是要保證測試點是符合規格說明和限制的,并且是可能會發生的場景。
9. 在verilog中,關于函數,不正确的是(d)
a. 函數可以調用其他函數
b. 函數隻能傳回一個值
c. 函數必須至少帶有一個輸入
d. 不能包含任何時延或時延控制
解析:函數是可綜合語句,可以綜合成組合邏輯。a,b,c是正确的,d是錯誤的,都是文法規定,沒有什麼原因可以追溯,當成公理應用即可。
10. 在systemverilog中,任務task可以調用函數function(正确)
11. 下面哪個語句是可以綜合的(c)
a. initial過程塊
b. forever 循環語句
c. for循環語句
d. fork join
解析:for循環語句多用在多bit信号的同類型操作或者遞歸操作上。可以放在組合邏輯always塊中,或者與generate結合使用。Initial, forever和fork join主要用在驗證環境的程序控制上。
12. 同步時序電路和異步時序電路比較,其差異在于後者(c)
a. 沒有觸發器
b. 沒有穩定狀态
c. 沒有統一的時鐘脈沖控制
d. 輸出隻與内部狀态有關
解析:異步時序電路是一種沒有全局時鐘的設計,是以c是正确的。異步時序電路有多種設計方式,有的設計方式會使用到觸發器。并且是有穩定狀态的。輸出與内部狀态和輸入都有關系。是以a,b,d都錯誤。
13. 在子產品執行個體化語句中,懸空端口可通過将端口表達式表示為空白指定為懸空。子產品的輸入端懸空值為(d)
a. 0
b. x
c. 1
d. z
解析:子產品輸入不允許有懸空值。懸空則沒有驅動,為高阻态z。
14. 下列電路中屬于時序邏輯電路的是(b)
a. 譯碼器
b. 計數器
c. 編碼器
d. 資料選擇器
解析:一般來說計數器每個周期統計一次進行累加,需要依賴于前一個周期的狀态。其他三種基本電路都是組合邏輯,不需要依賴于過去的狀态。
15. 以下說法錯誤的有(a)
a. 為了避免wire信号出現x态,最好是在聲明時,賦初始值0
b. 一個子產品例化多次,可以使用generatefor循環減少代碼
c. 子產品例化時,需要将端口顯式列出,即使某個端口未連接配接信号
d. 循環表達式的循環次數必須為常數
解析:如果聲明時将wire信号先賦初始值0,而後使用assign語句,相當于多驅動電路,很明顯是錯的。隻有在組合邏輯的always塊中可以先将輸出信号賦初始值0。
16. 某個狀态下,不關心某個寄存器的輸出值,那麼将其設計為輸出0,可以降低功耗(錯誤)
解析:比起設計為輸出0,降低功耗更好的做法是保持寄存器原值。因為功耗來自于信号toggle,如果在上一狀态寄存器輸出為1,下一狀态下輸出為0,即便0不使用,也産生了1到0的跳變,同樣會有功耗,既然不關心,還不如保持輸出為1。
17. 高頻時鐘域的資料總線(每時鐘周期都變化)傳遞給低頻時鐘域,哪種同步方式正确?(b)
a. 使用握手信号進行同步
b. 使用異步fifo
c. 使用同步fifo
d. 使用打2拍進行同步
解析:c和d很明顯錯誤。多bit資料不能使用打兩拍同步。這道題的難點在于a選項。一般而言握手信号可以用于高頻時鐘域到低頻時鐘域的同步,但是為了保證資料不被漏采,從高頻到低頻握手信号valid_tx需要做信号寬度拓展,至少拓展為1.5個周期的rx時鐘,是以相應的資料data_tx也要保持多個n個tx周期不變,n=1.5*clk_rx/clk_tx。這與題目條件資料總線每周期都變化相沖突。是以隻有b是正确的。
18. 同步電路設計中出現setup time不滿足,不可以采用下面哪種措施解決(d)
a. 減小信号延遲
b. Pipeline
c. 降低時鐘頻率
d. 增加時鐘頻率
解析:setup time是由于時序路徑延遲td+tsetup > tclk,而增加時鐘頻率則減小tclk,保持前兩項不變,相當于惡化了setup time的滿足。
19. 編寫verilog程式時,變量的定義不可與關鍵字沖突(正确)
20. 關于亞穩态描述正确的是(d)
a. 異步邏輯不會産生亞穩态
b. 采用格雷碼能消除亞穩态
c. 亞穩态不會傳遞,是以不會導緻相關邏輯處于不确定态
d. 在時鐘有效延的時候外部資料未穩定,導緻觸發器不能判斷資料電平的狀态
解析(1)請點選:
2020華為海思校招晶片崗真題解析(1)