我不是很清楚我記的對不對
印象中 begin end 會常出現於 Always...或者基於Always內的 if....for....
這類的 因此我個人是這樣解讀 Begin end 適用於 所謂的Behavical語法內(就是
由上向下執行的那種 因此有人會說與C的{}很像)
至於assign 這是Data flow的語法 頂多出現 XX?OO:AA這種很像if的語法
不會出現Always或者for當然不會用到Begin end 因為這個只會在描述兩行以上才會有
而assign 這種Data flow的語法 只有一行 因此不會用到
至於Begin end的使用時機 一者語法規定 印象中有幾類好像必用 像generate for..
一者是Behavical中描述超過一行的 要用Begin end 來當{}用
因為這是一年前修課學的 很多都忘囉 如果錯誤請幫忙修正 感恩~
※ 引述《glaxchen (請勿拍打餵食)》之銘言:
: ※ 引述《peterstun (彼得)》之銘言:
: : 有些問題我會參考c語言的寫法
: : 不過verilog中 begin ....end 的使用時機是什麼? 是必須的嗎?
: : 在 assign c=......時就不用
: : 在跑loop時會用到 begin的使用時機是啥呢? 謝謝
: 1. verilog是硬體描述語言,寫法請不要參考C的,就算看起來很像...
: 2. verilog定義了很多語法供不同場合用,像是test bench是要產生pattern
: ,不需要在意是否可合成,因此可以寫的像是高階語言。所以要看你寫的
: 是那一層次的。behavioral、RTL、甚至是cell define等,各有不同。
: 3. 原則上你只要記得多行敘述時,需要begin ... end。而assign通常是一行寫完。
: 其他部分多寫些就會比較清楚,就不詳述了。
: 希望對你有所幫助^^
--
生活中不缺乏美、只是缺乏發現。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.7.209