1、什麼是競爭和冒險?
在組合邏輯中,門電路輸入信號由於經過路徑不同,到達該門的時間不同,叫做競爭
由於競爭而在輸出時可能產生尖峯毛刺或脈衝叫做冒險(靜態冒險和動態冒險)
1->0->1(靜態1冒險) ; 0->1->0(靜態0冒險)
(當輸入毛刺由單個輸入信號發生變化而造成時)可以通過引入冗餘與項來消除靜態冒險
動態冒險(輸出在到達期望值之前發生了二次或多次變化)可通過消除所有的靜態冒險來避免動態冒險
2、同步復位與異步復位優缺點?
同步復位:復位信號只有在時鐘有效沿到來時才能復位觸發器狀態
- 優點:確保電路是同步的;同步復位能綜合爲更小的觸發器;復位只發生在時鐘沿,可以過濾掉復位信號的毛刺。
- 缺點:使用同步復位容易把復位邏輯綜合到觸發器外部。
異步復位:只要復位信號有效,立即復位觸發器狀態
- 優點:大多數目標器件庫的DFF都有異步復位端口,因此採用異步復位可以節省資源
- 缺點:
1)在復位信號釋放(release)的時候容易出現問題。具體就是說:倘若復位釋放時恰恰在時鐘有效沿附近,就很容易使寄存器輸出出現亞穩態。
2)復位信號容易受到毛刺的影響。
爲了解決異步復位釋放造成的亞穩態:異步復位,同步釋放
reg reg1;
reg reg2;
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
reg1<=0;
reg2<=0;
end
else
begin
reg1<=1
reg2<=reg1;
end
end
復位信號的(recovery time恢復時間)(removal time 去除時間)
recovery time恢復時間:
撤銷復位時,恢復到非復位狀態的電平必須在時鐘有效沿來臨之前的一段時間到來,才能保證時鐘能有效恢復到非復位狀態,此段時間爲recovery time。類似於同步時鐘的setup time。
removal time 去除時間:
復位時,在時鐘有效沿來臨之後復位信號還需要保持的時間爲去除時間removal time(去除時間)。類似同步時鐘hold time
3、阻塞賦值與非阻塞賦值的區別?
- 對於阻塞語句,賦值實時的,計算完右邊馬上賦值給左邊,然後執行下一句,串行執行
- 對於非阻塞語句,賦值不會立即生效,上一句和下一句非阻塞賦值語句並行執行
4、靜態,動態時序模擬的區別
靜態時序分析(STA)通過窮舉方式分析每條路徑的延時
- 確定芯片最高工作頻率
- 檢查時序約束是否滿足
- 分析時鐘質量
動態時序分析(仿真)通過給定輸入信號,模擬設計在器件實際工作時的功能和延時。
5、FPGA和ASIC有什麼區別?
FPGA(Field Programmable Gate Array)作爲ASIC領域半定製電路形式出現
ASIC(application specific integrated circuit)是一種爲專門目的而設計的集成電路
6、會畫CMOS的門電路
7、門控時鐘單元結構是這樣的?如何避免產生毛刺?
解決方案:(將gate信號改爲低電平跳變->增加一個clk爲低時使能的latch即可)
8、如何進行跨時鐘域設計?
不同時鐘域信號間通信需要同步處理,防止亞穩態的傳播
- 單比特信號:兩級同步器(電平、邊沿檢測、脈衝)
- 多比特信號:fifo、雙口ram、握手信號
9、找零狀態機
10、如果要做一個低功耗設計?
- 降低電源電壓
- 門控時鐘clock gating
- 多power域設計
- 優化時鐘樹
- 邏輯優化,減少不必要的翻轉