gpt4 book ai didi

jinja2 - 如何在 PyGears 中集成 jinja 模块

转载 作者:行者123 更新时间:2023-12-04 08:40:45 24 4
gpt4 key购买 nike

我创建了 jinja 模块作为示例,它看起来像这样

{% from 'snippet.j2' import module with context %}
{% call module() %}
logic [$size(din.data)-1 : 0] res;
assign res = din.data * din.data;
{% if params['half'] %}
assign dout.data = res / 2;
{% else %}
assign dout.data = res;
{% endif %}
assign din.ready = dout.ready;
assign dout.valid = din.valid;
{% endcall %}
我应该如何在 PyGears 中使用这个模块?

最佳答案

好的,我认为这应该可行。
如果我理解正确,您正在尝试为将乘以 1/2(换句话说除以二)的模块创建 Jinja 模板。首先,确保您的 Jinja 文件和模块名称相同(这是必须的,以便 PyGears 知道要使用哪个 Jinja 模板)。
考虑到这一切,假设我们的模块名称是 泥土
Python文件将是这样的:

from pygears import gear, Intf, reg
from pygears.typing import Uint
from pygears.hdl import hdlgen
@gear
def mulh(din: Uint,*,half=False)->b'din*din':
    pass
mulh(Intf(Uint[8]))
hdlgen('/mulh', outdir='.')
此代码将调用您的 Jinja 文件,HDL 输出如下所示:
module mulh
(
    input logic clk,
    input logic rst,
    dti.consumer din, // u8 (8)
    dti.producer dout // u16 (16)
);
    typedef logic [7:0] din_t; // u8
    typedef logic [15:0] dout_t; // u16
    din_t din_s;
    dout_t dout_s;
    assign din_s = din.data;
    assign dout.data = dout_s;
    logic [$size(din.data)-1 : 0] res;
    assign res          = din.data * din.data;
    assign dout.data    = res;
assign din.ready    = dout.ready;
    assign dout.valid   = din.valid;
endmodule
为了更容易描绘这一切,我在下面制作了这张照片
enter image description here

关于jinja2 - 如何在 PyGears 中集成 jinja 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64579058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com