作者mitsc (讨厌的Linux系统)
看板Electronics
标题Re: [问题] verilog问题
时间Tue Dec 11 00:37:48 2007
我不是很清楚我记的对不对
印象中 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