色另类_婷婷激情四月_亚洲精品无码不卡在线播放he_欧美第七页_精品国产综合区久久久久99_青娱乐极品盛宴在线

產品分類

當前位置: 首頁 >

類型分類:
科普知識
數據分類:

FPGA設計仿真丨FPGA設計應用

發布日期:2022-04-27 點擊率:43

  • 關鍵詞: FPGA
  • 摘要:關于FPGA設計仿真和硬件實測不一致問題的討論

總結了一下個人項目中遇到的類似問題微處理器關于FPGA設計仿真和硬件實測不一致問題的討論, 大家如其遇到可以從以下方面動手檢查bug.

1.存器未給初值;
一個良好的習氣執意每個存器變量都要在reset里面預界說初值. 看下面一個例子:

reg [1:0] unini;
always@(posedge clk or negedge rst)
begin
    if(~rst)
        ;//未給定初值
    else
    begin
         unini<=2'd1;
         if(unini<2'd1)
         a<=b;  
    end
end

這個例子是筆者在做項目標時辰真實經驗的一個bug的一個簡化描繪,現實代碼比這個要復雜得多,當初亦找了半晌最末才發明是存器未給初值這個低級毛病.
對上段代碼,仿真的時辰,在rst之后的第一個clk上升沿,unini是未定態(即modelsim中的紅線), 這個未定態是不稱心鈞座面unini<2'd1這個環境的,因而這個上升沿后a不會被賦值b; 而在第二個時鐘上升沿之后才會滿意環境而舉行a<=b賦值;
只是在硬件實測的時辰,存器里面的值必然是要么是1要么是0(一般默認的初值都是0),因而在第一個時鐘上升沿就會舉行a<=b的賦值,這么就造成了一個仿真結實和實測不相符合的bug.
2.閉塞和非閉塞賦值混用.
閉塞和非閉塞賦值在always里面混用是RTL設計的大忌,即便你很理解閉塞和非閉塞的規律,還是可能性因忽略造成難以發明的bug.看下面一段代碼:

always@(posedge clk or negedge rst)
begin
    if(~rst)
    ...
    else
    begin
        if(a)
            c<=1'b1;//很早就將c賦值為1了
        else if(b)
            c=1'b0; //注釋1
    end
end

reg state;
always@(posedge clk or negedge rst)
begin
    if(~rst)
        state<=1'b0;
    else
    begin
    case(state)
    1'b0:
    begin
         b<=1'b0;
         if(c)
             state<=1'b1;
         ...
     end
     1'b1:
     begin
     ....
         if(...)
         begin
             state<=1'b0;
             b<=1'b1;
             a<=1'b0;
         end
    end
    endcase
end


以上這段代碼亦筆者在真實項目中的一個血的教訓,在注釋1處毛病的應用了閉塞賦值,使得一個bug仿真的時辰沒有仿出來,實測的時辰一個記號一個記號地 查才最末定為到這個點.有趣味的可以仿真一下,如其b在state=1狀態時,clk的一個上升沿置1,state會即刻回到0狀態.此刻在state=0狀態時如其a不為1,b為1,這么應當在下一個時鐘上升沿之前c保全為1,因而state應當即刻轉回1狀態. 只是鑒于之前c=0用了閉塞賦值,在仿真的時辰就state就不會轉回1.而在實測的時辰,固然用了c=0閉塞賦值,只是依然比照<=概括(概括軟件在這種情況下會把=當做<=處置),這么就導致了一個本該在仿真階段揭露的bug未被即時發明.
3.時序收斂問題;
跟隨FPGA效能越來越壯大,時序問題將變得越來越要緊. 值當注重的是,以往時序問題常常因setup time不稱心足,而跟隨fpga能跑的越來越快,hold time violation也會越來越多地涌現.而hold violation首要解決方法有兩種, 率先讓記號跑在全局網絡上,這么固然慢,只是記號的skew也小. 其次可以經過插入LCELL等FPGA內延時原件來解決. 固然時序是個大問題,不度過必然要率先在確定效能準確后再動手動時序這快,你會發明絕大有些仿真經過只是實測不度過的緣故還是代碼的效能有問題,而鑒于一些緣故沒有仿真到.
4.Multi-cornor Simulation
多種情況下仿真. 即興在高端FPGA能做的事實曾經很接近大規模的ASIC電路,而ASIC級別的復雜度的FPGA設計請求的是實測前要舉行完善的效能驗證.譬如碼流動的長 度樣式的多種變更,數據的兩樣輸入速比值等多種情況都要舉行仿真.筆者盡力引薦大家仿真時辰放量用system verilog這種高級仿真言語,其有環境隨機激勵和assertion等效能可以極大增強代碼籠罩比值,十二分有助于發明那種普通定點看波形仿真發明不到的問題.記取一句話,復雜設計的仿真絕對不能拘囿在一點一點看波形,絕大多數數的bug是要編程靠程序主動發明的!!


下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
主站蜘蛛池模板: 国产网曝在线观看视频 | 免费久久 | www.久久久.com| 成人一级黄色大片 | 日日夜夜视频 | 婷婷影音 | 羞羞色院91蜜桃在线观看 | 亚洲AV在线无码播放毛片浪潮 | 91精品国产闺蜜国产在线 | 伊人激情网 | 黄色片免费在线播放 | 日韩在线视频在线 | 91成人亚洲 | 日本综合欧美一区二区三区 | 三极片在线观看 | 免费在线观看黄 | 国产精品不卡一区 | 91探花 | 999久久久国产精品 成人不卡视频 | 天天操 夜夜操 | 91蝌蚪在线播放 | 99久久精品国产一区二区三区 | 一区在线播放 | 欧美伊人久久综合网 | 99久久免费费视频在线观看 | 精品国产一区二区 | 午夜不卡一区二区 | 久久中文字幕网站篠田优 | 欧美调教视频 | 91视频视频 | 成年做羞羞免费观看视频网站 | 色精品国产 | 成人福利在线观看 | 日韩在线播放网址 | 午夜资源 | 一级做a爰片性色毛片视频图片 | 色爱综合区五月小说 | 先锋影音资源网站 | 欧美成人手机视频 | 成人午夜精品一区二区三区 | 一级全黄视频 |