99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號
點擊聯系吳工 點擊聯系周老師
您的當前位置:主頁 > 技術文章 >

時序約束教程:違反“時鐘沿前看條件”原則的分析-明德揚科教(mdy-edu.com)

發布時間:2019-12-10   作者:admin 瀏覽量:


違反“時鐘沿前看條件”原則的分析


 

本文為明德揚原創文章,轉載請注明出處!作者:肖肖肖

MDY有一條非常重要的看波形技巧,即“時鐘上升沿前看條件”的技巧,意思就是在時鐘上升沿前,看條件信號,看到什么值就是值。如下圖所示:


這一條技巧,對于剛學習FPGA的人來說,非常之實用。

但是,部分工程師在做仿真時,有時候會出現違反這一原則的奇怪現象。例如下面這個案例。

關于在仿真軟件中,為什么計數器的判定會在不滿足加一條件的時候進行加一操作(如下圖所示)。計數器cnt_col的加1條件是din_vld,按照原則,第4個時鐘上升沿的時候,din_vld應該為0,計數器不應該加1,但事實上是加1了,這是怎么回事?我們舉另一個例子來說明這個問題。

 

功能要求如下:復位后,din_vld 不定時等于1,當din_vld出現3個或超過3個周期的高電平脈沖時,將第三個周期時對應的din值賦給dout,其他時候dout保持不變。

根據功能要求,寫出代碼后用modelsim進行仿真,效果如下圖:


然后發現仿真的波形和我們預期的波形并不一致!!


計數器cntdin_vld == 0 的時候就已經開始計數了。

查看代碼,計數器cnt的加一條件是:add_cnt = din_vld == 1 && flag == 0 。

也就是說,信號din_vld在時鐘上升沿處由01的時候,仿真軟件把信號din_vld的值取為1了。

 

那么會出現這種情況的原因是什么呢?

這里是軟件仿真,是軟件模擬真實的電路情況。但是,軟件模擬是有缺陷的,無論軟件如何模擬,本質上它都是串行執行的代碼,是一條一條指令執行的。

 

在仿真文件里,有兩個initial語句,一個是產生時鐘的,一個是產生din_vld的,如下圖。


按照verilog的語法,這兩個initial是并行執行的。但事實上軟件執行是有先后的。很有可能先執行了din_vld1的代碼,再執行了clk01的代碼,這種情況下,在時鐘的上升沿就會采到din_vld1,因此就會出現案例中的錯誤。

這是與FPGA實際的電路是不符合的,也就是說這個其實是仿真缺陷的問題,而不是設計問題。

雖然不是設計問題,但仿真仍然要繼續,我們需要避免這種情況。如何避免呢?

解決上述問題的方法:我們可以在測試文件中給信號加上一個1ns 的延時,這樣兩個initial語句就絕對不會同時執行。

 

代碼如下圖:


modelsim重新編譯一下再仿真,此時的波形就是功能要求的正確結果。如下圖:

問題解決,更多FPGA相關問題歡迎加Q:1479512800肖肖肖 互相討論!


  •   
  •   
  •   
  •  
  • FPGA教育領域第一品牌
  • 咨詢熱線:020-39002701
  • 技術交流Q群:544453837
主站蜘蛛池模板: 国产2021中文天码字幕 | 小优视频高清视频在线看 | 成人精品视频在线观看播放 | 午夜亚洲国产成人不卡在线 | 国产网站在线免费观看 | 成人黄色免费网址 | 国产伦一区二区三区高清 | 国产精品视频免费一区二区三区 | 亚洲国产精品一区二区不卡 | 又黄又免费的视频 | 亚洲国产欧美自拍 | 九九免费高清在线观看视频 | 亚洲欧美久久久久久久久久爽网站 | 日韩视频在线观看中字 | 人人澡人人澡碰人人看软件 | 国产无套在线播放 | 99视频在线精品自拍 | 久久国产欧美日韩精品免费 | 黄色片三级网站 | 国产精品免费在线播放 | 毛片三级在线观看 | 成人做爰全过程免费看视频 | 丁香六月纪婷婷激情综合 | 国产黄色一级毛片 | 婷婷久久激情综合啪啪 | 啪啪网站色大全免费 | 黄色激情毛片 | 欧美成人a级猛男视频片 | 全午夜免费一级毛片 | chinese国产一区二区 | 国产亚洲精品日韩香蕉网 | 一本之道无吗一二三区 | 国产精品一区久久精品 | 免费看黄色的视频 | 日本二区在线观看 | 又大又粗进出白浆直流动态图 | 国产精品久久久久这里只有精品 | 天堂网果冻传媒 | 日本不卡一区二区三区视频 | 日韩精品一区二区三区免费视频 | 久久国产成人 |