FPGAをはじめてみる(9)verilogの説明をすこし-1 | コンピューターの勉強会・研修ネタ

コンピューターの勉強会・研修ネタ

 コンピューターの勉強会や研修の元になりそうなネタの話を書きます。

前回までで(Niosは複雑なので、ちょっと置いておいて)
検証までの流れはやったので、ここで、verilogの説明を少しだけしておきます。


今回は、サンプルで作ったSW_LEDについて
  SW1をおすと、LEDの0番目がつき、
  SW2をおすと、LEDの1番目がつき、
  SW3をおすと、LEDの2番目がつく。


ソースコードは青字のとおり


module SW_LED(
input SW1,
input SW2,
input SW3,
output LEDG0,
output LEDG1,
output LEDG2
);

assign LEDG0 = ~SW1;
assign LEDG1 = ~SW2;
assign LEDG2 = ~SW3;

endmodule



プログラムの構成は、


module SW_LED(入出力宣言);

  変数宣言(今回は無い)

  実際の処理、操作

endmodule


moduleではじまり、endmoduleでおわる。

■入出力宣言

この入出力の宣言を、
input SW1,
input SW2,
  input SW3,
  output LEDG0,
  output LEDG1,
  output LEDG2

と書いている。見ての通り、入力がinput,出力がoutput
この宣言だと1ビット(0,1)で、数ビット必要な場合は
  input [2:0] BTN
のように、ビット幅を[ : ]で書く。
具体的に、SW1が、FPGAのどのピンのことを示すかは、
ピン配置で指定する。



■変数宣言
 外部に対してはinput,outputだけど、
 内部的に変数を持ちたい場合、
 wire(一時的)、reg(記憶しておく)変数を宣言する
 今回はなし。



■実際の処理、操作

 論理回路を書く

   回路の内容としては、組み合わせ回路と順序回路に、
   書き方については、assign、function、alwaaysがあるんだけど、

 それは、次回以降にくわしく。
 階層構造にも出来る。




ということで、次回から、「実際の処理、操作」の部分。