我知道,,我對與電子有關(guān)的所有事情都很著迷,,但不論從哪個角度看,,今天的現(xiàn)場可編程門陣列(FPGA),都顯得“鶴立雞群”,,真是非常棒的器件,。如果在這個智能時代,在這個領(lǐng)域,,想擁有一技之長的你還沒有關(guān)注FPGA,,那么世界將拋棄你,時代將拋棄你,。本公眾號作者ALIFPGA,,多年FPGA開發(fā)經(jīng)驗,所有文章皆為多年學(xué)習(xí)和工作經(jīng)驗之總結(jié),。
邏輯寫多了,,有時候一些基本的錯誤忘了避免了。
昨天設(shè)計邏輯的時候就不小心觸雷了,,有個信號有激勵沒響應(yīng),,后來看了時序報告,有這么一句話,。
這是什么呢,?鎖存器啊,!
最容易產(chǎn)生的是在always(*)語句中,,最后一定是所有分支條件都要描述并賦值。
狀態(tài)機中,,同樣如此,,不但需要有default的狀態(tài),每個狀態(tài)的都要有所有的分支都要賦值。
如果設(shè)計很大,,不容易查的話,,可以打開綜合報告,搜索“LATCH”關(guān)鍵詞,查看是否有鎖存器的產(chǎn)生,,有就趕緊更改設(shè)計。
而時序邏輯綜合結(jié)果必然是觸發(fā)器,,因此不用檢查時序邏輯的分支條件,。所以還是那句話,能用時序邏輯,,就盡量別用組合邏輯,。
當(dāng)然如果是老鳥,這句話可忽略,。
阻塞和非阻塞,,這件事情百分之九十九點九九是筆誤,沒見過開發(fā)者沒事非要冒險試一下“=”跟“<=”的區(qū)別,。
很多人說這兩個沒啥區(qū)別,,這兩個符號啊,沒出事就好,,出事了查起來就煩了,。
所以記好了,組合邏輯里面用=,,時序邏輯里面用<=,,肯定不會錯。
硬件描述語言的坑還是很少的,, 搞來搞去就是組合邏輯,、時序邏輯,一些generat加for循環(huán)就算復(fù)雜的了,,因此這塊能說的不多,。
編程語言不是語言本身,而是每句邏輯之后的電路,,新手入門學(xué)習(xí)的初學(xué)者一定要注意,。