问题描述
我让我的模块看起来像这样
__mro__
现在,我的顶级模块接口是DTI接口
from pygears import gear
from pygears.typing import Fixp,Tuple
from pygears.lib import add,qround,saturate,drv,collect
from pygears.sim import sim
from pygears.hdl import hdlgen
@gear
def adder(data: Tuple[Fixp[10,32],Fixp[10,32]]):
return add(data[0],data[1]) \
| qround (fract=21) \
| saturate(t=Fixp[11,32])
hdlgen('/adder',outdir='./Example1/adder_hdl',copy_files='True')
既然Vivado希望顶级包装器可以在Verilog中使用,有什么办法告诉PyGears将顶级接口转换为标准端口吗?
解决方法
是的,有办法。
对于hdlgen功能使用参数 toplang ,对于Verilog,将其设置为“ v”。 像这样
hdlgen('/adder',outdir='./Example1/adder_hdl',copy_files='True',toplang='v')
这将产生称为adder_v_wrap的顶级wrepper,并且接口将具有Verilog端口
module adder_v_wrap
(
input clk,input rst,output reg data_ready,input wire data_valid,input wire [63:0] data_data,input wire dout_ready,output reg dout_valid,output wire [31:0] dout_data
);