投稿

ラベル(verilog)が付いた投稿を表示しています

verilog~generate文とfor文による連続モジュールの生成

イメージ
初めに 今回はmoduleを複数一気に生成し、かつそのmoduleに受け渡すパラメータや変数、逆に受け取る変数や信号を別々に扱う方法を紹介したいと思います。 generate文とfor文 今回使う関数はgenerate 文と for 文です。for 文はC言語などでの使い方とそんなに変わりません。generate 文とfor 文を使って、dividerのmoduleを一気に6個生成します。かつその6個のdividerは1,2,3,4,5,6分周をそれぞれ担うような形を作っていきたいと思います。 それでは早速コードを見ていきましょう。 parameter num = 6; wire [num-1:0]div_out; generate genvar k; for (k = 0; k < num; k = k + 1) begin:generate_divider divider #( .div_number (k+1) )divider1( .div_in (clk), .div_out (div_out[k]) ); end endgenerate 順番に見ていきましょう。まず、 parameter num = 6; これはいくつmoduleを生成するかをparameterで宣言しています。 wire [num-1:0]div_out; これはdividerの出力を6bitのワイヤで表現しています。 generate この文より下に生成するmoduleの記述をしていきます。 genvar k; これはgenerate文内で使う変数をgenvarで宣言し、kという変数として定義しています。 for (k = 0; k < num; k = k + 1) ここからがfor文です。かっこの中は(変数の初期値;変数の終わりの条件;変数の変化の条件)のように記述していきます。今回はk=0から1づつ増えて、numつまり6未満までとしていますので、0,1,2,3,4,5のkという表現となります。 ...

Quartus Primeの基本的な使い方(Verilogでの使い方)

イメージ
初めに  こんにちは、Keymaleです。Quartusのバージョンは現在の最新版よりは少し古いですが、参考になると思います。 Quartus Primeの使い方 Quartus Primeを用いたverilogの使い方について説明していこうと思います。 バージョンは18.0を使います。 Quartus PrimeはIntelのホームページから ダウンロードできます。無料のlite editionを使っていきます。 早速Qurtus Primeを開いてみましょう。 こんな画面が表示されます。 次にプロジェクトを作成します。 FileからNew Project Wizardを開いてください。 こんな画像が出てきますのでNextを押しましょう。 真ん中のボックスにプロジェクト名を入れてください。ここではkeymaleと入力しました。すると、自動的にしたのボックスにプロジェクト名と同じものが入力されます。これは、verilogの最上位ファイルの名前になります。これは後ほどまた使います。後から変更もできますが、同じ名前にしておきましょう。Nextを押しましょう。 ここもデフォルトのまま、Empty projectを選択して、Nextを押しましょう。 ここでは、すでにあるverilog及びvhdlファイルをprojectに追加できます。後からでも追加できます。今回は初めてということで、特に何もせずそのままNextを押しましょう。 ここでは作成したverilog等のファイルをFPGAに書き込む際のデバイスを選択できます。これも後から変更できます。今回はデフォルトのままNextを押しましょう。 ここも特にデフォルトのまま変更せず、Nextを押しましょう。 Nextを押してばっかりですが、これでようやく終わりです。Finishボタンを押しましょう。 これでプロジェクトが完成しました。デフォルトだとintel_liteの18というフォルダの直下にプロジェクト名.qpfというプロジェクトファイルができているかと思います。ここに適当にプロジェクト名のフォルダを作り、そこに移動しておきましょう。 次にverilogファイルを作っていきます。FileのNe...