gpt4 book ai didi

python - PyGears 不生成输出 HDL 文件

转载 作者:行者123 更新时间:2023-12-04 18:43:53 25 4
gpt4 key购买 nike

这是我运行的代码,它不生成输出 HDL 文件:

from pygears import gear
from pygears.typing import Ufixp, Uint
from pygears.sim import call
from pygears.lib import drv, collect


@gear
def gain(din: Uint[8], *, val) -> Uint[8]:
return din * Ufixp[0, 8](val)

res = []

drv_din = drv(t=Uint[8],seq=[3,2,5])

gain(drv_din, val=0.5, __sim__='verilator') \
| collect(result=res)

最佳答案

PyGears 只会在仿真需要或通过 hdlgen() 直接指示生成 HDL 文件时生成。功能(参见下面的示例)。在您的情况下,您确实指定了 gain模块应该使用 Verilator HDL 模拟器进行模拟,但您从未调用模拟器来执行。换句话说,您需要调用sim()脚本末尾的函数,你应该像这样导入它:from pygears import sim但是,当 PyGears 没有提供存储文件的文件夹时,它会自动在您的操作系统的临时文件夹中创建一个(/tmp 用于 Ubuntu)。为了生成脚本的本地文件,您应该通过 resdir 指定它。 sim() 的参数功能:

from pygears import gear
from pygears.typing import Ufixp, Uint
from pygears.sim import sim
from pygears.lib import drv, collect


@gear
def gain(din: Uint[8], *, val) -> Uint[8]:
return din * Ufixp[0, 8](val)


res = []

drv_din = drv(t=Uint[8], seq=[3, 2, 5])

gain(drv_din, val=0.5, __sim__='verilator') \
| collect(result=res)

sim(resdir='./output')
另一方面,如果您只对 HDL 文件感兴趣,而不需要运行仿真,您可以调用 hdlgen()直接(在前面的示例中也称为幕后):
from pygears import gear, Intf
from pygears.typing import Ufixp, Uint
from pygears.hdl import hdlgen


@gear
def gain(din: Uint[8], *, val) -> Uint[8]:
return din * Ufixp[0, 8](val)


gain(Intf(Uint[8]), val=0.5)

hdlgen('/gain', outdir='./output')
请注意我是如何删除所有验证组件( drv()collect() 等)的,因为我没有使用此脚本模拟任何内容。这只是提供一个最小的例子, hdlgen()可以在所有验证组件都存在的情况下在第一个示例中调用。

关于python - PyGears 不生成输出 HDL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63061927/

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