<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于verilog的FPGA編程經(jīng)驗總結(jié)

          基于verilog的FPGA編程經(jīng)驗總結(jié)

          作者: 時間:2017-10-13 來源:網(wǎng)絡(luò) 收藏

          用了半個多月的ISE,幾乎全是自學(xué)起來的,碰到了很多很多讓人DT好久的小問題,百度也百不到,后來還是都解決了,為了盡量方便以后的剛學(xué)ISE的童鞋不再因為一些小問題而糾結(jié),把這幾天的經(jīng)驗總結(jié)了一下。好了,廢話不多說,上料!

          本文引用地址:http://www.ex-cimer.com/article/201710/365670.htm

          1.用ISE仿真的時候.所用變量一定要初始化. ISE默認(rèn)初始量為XXXXX, 而Quarters是默認(rèn)為00000的, 其實實際上, 下到里后也是默認(rèn)為0的,只是可以說ISE嚴(yán)謹(jǐn)?shù)昧钊薉T吧.

          比如說用一個累加器, result = A+B+result ,必須保證在某一刻A, B, result都為定值時, 之后的數(shù)據(jù)才不會一直為XXXXX;

          2.所有的中間線(就是module間用來傳遞參數(shù)的信號)都要用wire定義一下. 這個ise一般會提醒的;

          3.任何一個warning都是有用的;

          4.debug時要多把中間變量設(shè)成輸出,然后查看仿真波形;

          5.其實,新版本還是比較好用的.雖然取消了test bench wave 功能. 但是最好學(xué)會編測試文件,后期比test bench wave好用, 而且貌似一旦測試信號太多,test bench wave就不顯示某些輸出了;

          6. warning: Nod ....> is unconnected. 表明...>所在的模塊沒用被執(zhí)行,一般是參數(shù)沒進來, 或者進來的參數(shù)不對(XXXX之類)的原因引起的.

          7.建立rom時候,Error: sinrom cant be resolved. 因為在把程序挪地方的時候,sinrom.ngc文件沒有一同拷過來.

          8.把XXXXX信號處理掉的一個方法可以是: 從信號中隨意選出一位 if (data[0] == 0) ....; else if (data[0] == 1).... else data = 0; 就可以把XXXX信號給清成0000了. 可以很好的解決1中仿真的問題.

          9.如果某一個不是時鐘的信號被當(dāng)作周期信號來用的話,就會出現(xiàn) WARNING:Route:455 - CLK Net:trn_clk_OBUF may have excessive skew. because 0 CLK pins and 1 NON_CLK pins failed to route using a CLK template 不管也行.

          10. 一開始用時不要害怕,用ucf文件配好引腳,直接LOAD,先不用管什么區(qū)域約束,以后進階了再學(xué). .

          11.暫時就記得這些,以后再補充吧.



          關(guān)鍵詞: verilog FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();