>330
木村真也さんの本がいいですよ。トラ技スペシャルNo.95など

教えてください。

Verilogで、functionの練習をしていますが、いくつか教えてください。

1. 変数の記述
・通常のところで wire で繋ぐところを reg で宣言
・regなのに assign は不要で、いきなり a = b; と書く
ようです。
間違いそうで怖いです。

みなさんは、どのようにして間違いを予防していますか?
functionの中の変数だけ特別な変数名にしている、とかです。

2. 引数の順番は、
functionの中身の先頭の input xxxx の順番で引き渡す方法しか できないのでしょうか?
通常のインスタンシエーションのように、hoge ( .a( A ), .b( B ), ...)
のように「組み合わせ」で書けないのでしょうか。

3. 出力
入力はfunctionの先頭でinputを宣言しなければ、function以外からでも値を引っ張ってくるようです。
これもドキドキものだと思いますが、
出力もfunction外部の変数に直接アクセスできるのでしょうか?

functionは、便利なものですが、上記のようにちょっと書き方が違っているので
困惑しています。
よろしくお願いします。