Verilog se usa muy poco, aquí hay una breve introducción a MyHDL.
El propósito de esta herramienta es escribir código Verilog en Python. Por supuesto, primero debe instalar Python y luego instalar su extensión MYHDL (pip install myhdl), y también es necesaria una herramienta llamada gtkWave.
Hay muchos ejemplos en el sitio web oficial, solo elija uno para presentar, la dirección es:
http://www.myhdl.org/docs/examples/flipflops.html
Haga una introducción simple y rápida, las otras son operaciones similares, código fuente (el nombre del archivo es 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()
En pocas palabras, simular es hacer una simulación para ver si la forma de onda es correcta, y se generará un archivo de forma de onda llamado
test_dff.vcd en el directorio cuando se ejecute
.
Ver la forma de onda es muy simple. Ya sea que use el modo de comando o la interfaz gráfica, el resultado es el mismo. El modo de comando que utilicé:
gtkwave test_dff.vcd ,
En este momento, se abrirá la forma de onda y, después de alejar y ajustar, podrá ver los siguientes resultados:
Convertir es convertir la definición de dff en código verilog. Después de ejecutar, generará un archivo llamado dff.v, su contenido es el siguiente
// 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