Verilog_MyHDLの使用

Verilogはほとんど使用されていません。ここでは、MyHDLの簡単な紹介を示します。

このツールの目的は、PythonでVerilogコードを作成することです。もちろん、最初にPythonをインストールしてから、その拡張機能MYHDL(pip install myhdl)をインストールする必要があります。また、gtkWaveというツールも必要です。

公式ウェブサイトには多くの例があります。紹介するものを1つ選択してください。アドレスは、http//www.myhdl.org/docs/examples/flipflops.htmlです

簡単で簡単な紹介をしてください、他は同様の操作、ソースコードです(ファイル名はflip-flop_tb.pyです)

from myhdl import *
from random import randrange

def dff(q, d, clk):

    @always(clk.posedge)
    def logic():
        q.next = d

    return logic


def test_dff():

    q, d, clk = [Signal(bool(0)) for i in range(3)]

    dff_inst = dff(q, d, clk)

    @always(delay(10))
    def clkgen():
        clk.next = not clk

    @always(clk.negedge)
    def stimulus():
        d.next = randrange(2)

    return dff_inst, clkgen, stimulus


def simulate(timesteps):
    tb = traceSignals(test_dff)
    sim = Simulation(tb)
    sim.run(timesteps)

def convert():
    q, d, clk = [Signal(bool(0)) for i in range(3)]
    toVerilog(dff, q, d, clk)

simulate(2000)

convert()

簡単に言うと、simulateは、波形が正しいかどうかを確認するためのシミュレーションを実行することであり実行時に
test_dff.vcdという名前の
波形ファイルがディレクトリに生成されます。

波形の表示は非常に簡単です。コマンドモードを使用する場合でも、グラフィカルインターフェイスを使用する場合でも、結果は同じです。使用したコマンドモードは次のとおりです。

gtkwave test_dff.vcd、

このとき、波形が開き、ズームアウトして調整すると、次のような結果が得られます。

 

Convertは、dffの定義をVerilogコードに変換することです。実行後、dff.vというファイルが生成されます。内容は次のとおりです。

// File: dff.v
// Generated by MyHDL 0.11
// Date: Tue Oct 13 14:52:37 2020

`timescale 1ns/10ps

module dff (
    q,
    d,
    clk
);

output q;
reg q;
input d;
input clk;

always @(posedge clk) begin: DFF_LOGIC
    q <= d;
end

endmodule

 

 

 

おすすめ

転載: blog.csdn.net/tanmx219/article/details/109051262