- 締切済み
Verilog学習中です。
VHDLは一通り学んだんですが、VerilogHDLの方が一般的だということで VerilogHDLを自力で学習中なのですがわからないことがあり基本的なのですが質問させてください。 VHDLでは信号定義する際に、 signal文で定義すればよいのですが、VerilogHDLではレジスタ型reg、ネット型wireの二種類で定義するという点なのですが・・・ この二つの違いは本を読んで学習して一応だいたいはわかりました。 ですがwire型でしかassign文は書けませんし、reg型でしかalways文、function文は使えないので xor X1 (x2,thcode1[3],thcode1[2]); xor X2 (x1,thcode1[2],thcode1[1]); xor X3 (x0,thcode1[1],thcode1[0]); and X4 (yd[1],x2,x1); and X5 (yd[0],x2,x0); or X6 (sum,yd,mdcode) と書くとX6の箇所のsumにエラーが出てしまいます。 原因はydがwire型、mdcodeがreg型で定義されているからなのですが、後でsum,mdcodeをalways文で使いたいのし、ydをreg型で宣言してもエラーが出てしまいますしどうしたらいいのか困ってます。 誰か解消方法もしくはreg、wire型の混合演算の方法をご存じの方教えていただけませんか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mahaze
- ベストアンサー率29% (217/731)
回答No.1
補足
わかりにくい説明ですいません。 //(out,in1,in2)// の順番になっています。 教えていただいた方法を試してみたいと思いますのでまた、わからないことがありましたらよろしくお願いします。