Re: [問題] 關於verilog signal&varieble問題
※ 引述《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
04/16 09:15, 1F
→
04/16 09:16, , 2F
04/16 09:16, 2F
→
04/16 10:12, , 3F
04/16 10:12, 3F
→
04/16 10:13, , 4F
04/16 10:13, 4F
→
04/16 10:14, , 5F
04/16 10:14, 5F
→
04/16 10:15, , 6F
04/16 10:15, 6F
推
04/16 10:25, , 7F
04/16 10:25, 7F
→
04/16 10:26, , 8F
04/16 10:26, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):