Re: [問題] 關於verilog signal&varieble問題

看板Electronics作者 (修行)時間16年前 (2009/04/16 05:46), 編輯推噓2(206)
留言8則, 2人參與, 最新討論串10/10 (看更多)
※ 引述《Acme ( )》之銘言: : ※ 引述《sasako (只想把你留在心中)》之銘言: : : 我這樣分,是希望在coding style大家能保持良好的習慣, : : 把sequential和combinational作分開,這樣在debug的時候 : : 會比較容易.. : : 至於你上面寫的這個例子,個人認為就是一個bad example, : : c可以知道會合出DFF,且會是一個簡單的conuter.. : : 至於d他是一個combinational的電路,你將sequential和combinational : : 混在同一個always底下,的確還是可以合成,只是當在寫大電路時, : 基本上 d 並不是 combinational 電路 : 而是一個 有 clk 的 DFF,因為有寫了 posedge clock : 不信的話,您可以合成看看....一定會有 clk : combinational ckt 與 sequential ckt 分開,是很好的 coding style : 但是,有時候,並不一定會比較好閱讀 : 下面這個電路,其實兩個還是合在一起 : /////////// : always @( posedge clk or negedge rst) : if(!rst) test <= 0 ; : else test <= test +1 ; : /////////// : 下面這個,才真的分開 : /////////// : always @(posedge clk or negedge rst) : if(!rst) test <= 0; : else test <= test_pre ; : assign test_pre = test +1 ; : //////////// : 強制分開的話,我覺得對新人很好 : 因為可以避免有人把他當成 c 語言來寫.... : 如果心中先有電路,再把他描述出來,(或是有先紙上作業) : 基本上,會有多少DFF,心中早就知道了 : 而且,combitional ckt 該怎樣,其實也早就知道了... : 所以這兩個分開的寫法,會比較像是 : 心中有電路 --> coding 我覺得心中有電路,哪一種寫法都沒差。 即使是想要用上面第二種分開的寫法, 初學者也不一定都分得清哪裡是combinational/sequential circuits, 三不五時還是來給你個combinational+sequential circuits。 如果都能分別哪些是combinational/sequential circuits, 我想用一個always寫也沒差。 用一個always寫的好處在於可以避免Verilog race condition (simulation-synthesis mismatch)、方便。 我目前只是個學生,沒去過業界。 如果說業界真得就是習慣combinational從sequential circuits分離的寫法, 我也認了。 : : 這就會造成debug上的困擾,至少我在初學者的時候,我曾經也是這樣 : : ,後來當程式寫得越多越大時,就會發現這樣的style實在是不好的... : : 或許剛開始大家可能為了交作業,只想function對就行了,但往後 : : 程式開始複雜時,學長、老師的要求就會是整齊,把每個訊號分清楚, : : 加上註解,這樣以後再回頭看,自己還記得當初在寫什麼,交接學弟 : : 時,至少不會讓人閱讀起來很痛苦... : : 而回到原作者一開始的問題,我覺得可以去參考一下CIC design compiler : : 那本教科書,他甚至舉完例子,還畫出了合成的示意圖,非常容易瞭解.. : : 而坊間的書多半都是解釋"<=" 就是在同時間一起動作,"="則是有次序的 : : 動作,雖然是有次序,但在Wave上是看不出來,不過我的經驗是有時候寫 : : a=a+1; 與 b=a+1; 結果會是不一樣的... : : b=a+1; a=a+1; : : 我相信這每個人都會遲早會碰到..一開始會覺得很奇怪,不過等遇到時就 : : 會開始注意,只能說debug真的是在累積錯誤的經驗...呵呵 -- 西方三聖:http://p8.p.pixnet.net/albums/userpics/8/3/553683/1193661731.jpg
《佛說阿彌陀經》http://web.cc.ncu.edu.tw/~93501025/amtf.doc 十一面觀音咒:http://file.buda.idv.tw/music/DBZFY04.mp3 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.220.219

04/16 09:15, , 1F
你依ksmrt0123大提供那份文件的rule就沒錯了
04/16 09:15, 1F

04/16 09:16, , 2F
你們之間其實有共識,感覺是討論上的誤會... 哈哈
04/16 09:16, 2F

04/16 10:12, , 3F
是啊,我有看k大那分文件。Guideline 12有說如何把
04/16 10:12, 3F

04/16 10:13, , 4F
combinational circuits從sequential circuits分離出來,但它
04/16 10:13, 4F

04/16 10:14, , 5F
沒說一定要這樣做才是一個good style。它還說有時寫在一起很
04/16 10:14, 5F

04/16 10:15, , 6F
方便。那分文件也說分開來寫會有Verilog race的問題。
04/16 10:15, 6F

04/16 10:25, , 7F
嗯,你們倆的誤會就是這呀.. :D 沒強制限定哪種寫法的
04/16 10:25, 7F

04/16 10:26, , 8F
避開上面說的bad coding style就好了
04/16 10:26, 8F
文章代碼(AID): #19vbN5YD (Electronics)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):
文章代碼(AID): #19vbN5YD (Electronics)