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



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

關于鎖存器問題的討論

發布時間:2020-03-02   作者:admin 瀏覽量:

很多同學提問到鎖存器的相關問題,說明大家對這方面知識還不是很了解,今天我們就來探討一下。


上面是兩個沒有else的代碼,其等效于下面的代碼。


也就是說,當if條件里面沒有寫else時,默認是表示“保持不變”的意思。
接下來,我們來討論一下,硬件中是如何實現“保持不變”的。

左邊是時序時序邏輯的代碼,右邊是該代碼所對應的硬件電路。特別注意圖中紅色的那個線,那個就是保持不變的“反饋”。由圖中可以看出,當時鐘上升沿的時候,當選擇器的結果賦值給信號b;非上升沿的時候,b一直保持不變,因此紅色線在此期間也是保持不變的。當a為0的時候,選擇器選擇當前b的結果,然后在下一個時鐘上升沿賦給信號b。

由引可見,實現“保持不變”的關鍵在于D寄存器。

眾所周知,組合邏輯代碼是沒有D寄存器的,那么它又是如何實現保持不變呢?這個就會用到鎖存器了。




上圖左邊是組合邏輯代碼,右邊是其電路。為了讓信號b保持不變,就要用到一個叫“鎖存器”的器件。當a為1時,b就會等于1;當a為0時,b會保持不變。

關于鎖存器的危害,可以參考MDY的“FPGA知識大串講”視頻,總之我們知道鎖存器是不好東西的,盡量不要有鎖存器,也就是說組合邏輯里,要讓“if else”條件補全。

常見問題

問1:是不是所有的代碼,if else都需要補全呢?

答:如前面所討論的,對于時序邏輯可以由D寄存器實現“保持不變”,所以時序邏輯是不需要補全的,只有組合邏輯才需要。

問2:是不是只要組合邏輯的if else補充了,就不會生成鎖存器了?

答:不一定。這里的關鍵在于“保持不變”,千萬不要從“代碼層次”來理解,而應該從“功能的層次”來理解,要找準到底有沒有“保持不變”。例如,下面的代碼,雖然else寫上去了,但寫不寫else都是讓b保持不變。所以這仍然會綜合出鎖存器。

問3:是不是組合邏輯不寫else,就一定會生成鎖存器?

答:不一定。這里仍然要從是否包括“保持不變”這個功能來分析。如下面代碼,假設a是1比特信號,其值只有0和1。那么已經涵蓋了所有情況,再不會有其他情況,所以不會出現保持不變的情形,這個時候也不會生成鎖存器。

問4:case不寫default,是否會生成鎖存器?

答:case不寫default,相當于if條件不寫else,其情況分析跟前面3個問題一樣,關鍵在于有沒有“保持不變”的功能。

問5:功能上,我一定要實現“組合邏輯的保持不變”功能,該如何做?

答:通常來說,所謂“組合邏輯的保持不變”,是指“該段代碼”是組合邏輯寫的,但需要與前一個時鐘的值保持不變,如下代碼,這種需求是很正常的。

解決方法,仍然是靠D觸發器來實現“保持不變”的功能。只不過是把一個時序邏輯的ALWAYS寫法,換成組合邏輯+時鐘邏輯的寫法而已,代碼如下。


問6:問題5的擴展,我就是要實現組合邏輯的保持,并且小于一個時鐘周期的。

答:不正常需求,FPGA不會這么設計的。

  •   
  •   
  •   
  •  
  • FPGA教育領域第一品牌
  • 咨詢熱線:020-39002701
  • 技術交流Q群:544453837
主站蜘蛛池模板: 精品欧美一区视频在线观看 | 午夜男人影院 | 1000部羞羞禁止免费观看视频 | 国产亚洲精品成人婷婷久久小说 | 成人黄18免费网站 | 97视频免费播放观看在线视频 | 美女大片高清特黄a大片 | 色在线免费 | 亚洲视频重口味 | 丁香婷婷色综合亚洲小说 | 国产成年人在线观看 | 最新国产v亚洲v欧美v专区 | 国产精品一区二区三区四区 | 国产亚洲精品麻豆一区二区 | 午夜视频成人 | 九九热视 | 日韩不卡视频在线观看 | 涩涩www在线观看免费高清 | 亚洲国产精品线在线观看 | 久久青青草原国产精品免费 | 国产精品久久久精品三级 | 久久亚洲国产高清 | 高清欧美一区二区三区 | 久久亚洲国产欧洲精品一 | 欧美精品一区二区三区四区 | 国产在线欧美精品 | 玖玖国产精品视频 | 国内在线观看精品免费视频 | 三级黄色一级视频 | 好爽快一点视频在线观看 | 亚洲色图p| 成人黄18免费视频 | 国产女人伦码一区二区三区不卡 | 久久www免费人成精品 | 免费看影片的网站入口 | 黄色录像一级带 | 亚洲精品久久久久综合91 | 亚洲精品国产第一区第二区国 | 91精品久久久久久久久中文字幕 | 免费看的黄色 | 高清无遮挡在线观看 |