一级成人a毛片免费播放,久久国产成人精品麻豆,亚洲AV无码成人精品区大在线,成人国内精品久久久久影院

產品分類

當前位置: 首頁 >

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

FPGA設計仿真丨FPGA設計應用

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

  • 關鍵詞: 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

推薦產品

更多
一级成人a毛片免费播放,久久国产成人精品麻豆,亚洲AV无码成人精品区大在线,成人国内精品久久久久影院
<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      主站蜘蛛池模板: 欧美国产在线电影| 另类成人小视频在线| 欧美一区激情| 性色一区二区三区| 久久久久青草大香线综合精品| 欧美中文字幕在线观看| 久久久福利视频| 榴莲视频成人在线观看| 欧美gay视频| 欧美日韩一区二区免费在线观看 | 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲午夜免费视频| 欧美一级淫片aaaaaaa视频| 久久精品动漫| 欧美日本在线看| 欧美日韩一级片在线观看| 欧美性大战久久久久久久| 国产精品爽黄69| 一区二区三区在线视频播放| 亚洲国产一区在线观看| 在线视频中文亚洲| 欧美一区二区| 免费的成人av| 欧美日韩国产色视频| 国产精品女人网站| 99成人免费视频| 亚洲欧美久久久| 久久综合国产精品| 欧美美女日韩| 国产午夜精品久久久久久久| 亚洲第一精品影视| 宅男噜噜噜66一区二区| 欧美一区二区三区在线免费观看| 久久一本综合频道| 欧美日韩在线另类| 国外成人在线视频网站| 日韩网站在线观看| 欧美中文字幕久久| 欧美精品网站| 国产一级揄自揄精品视频| 亚洲区第一页|