- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我运行的代码,它不生成输出 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/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。
你可能知道 Verilog 中的“output reg”,非常有用的功能。 但在 Chisel 中我找不到如何做类似的事情。当我需要寄存器输出时,我应该这样做: package filter impo
你可能知道 Verilog 中的“output reg”,非常有用的功能。 但在 Chisel 中我找不到如何做类似的事情。当我需要寄存器输出时,我应该这样做: package filter impo
我总是使用默认分配来构建我的设计,因为它使我的代码行数更少并且我认为更具可读性。但是,我了解到默认分配有时会很麻烦。如果没有足够的设计空间,工具(Vivado、ISE)可以移除那部分。我的意思是默认赋
我一直有点想制作自己的微处理器..我读过 How can I make my own microcontroller? . 我多次尝试学习一些 Verilog 和 VHDL。但对于我的一生来说,我就是
大家,只是一个关于如何修复以下 Verilog 代码的简单问题,我不断收到错误。有什么建议吗? module bcd_to_seven_seg( B, S); input wire [3:0]B; o
我是一名自学成才的嵌入式开发人员。我主要使用用 C 和 ASM 编程的 AVR,但我也涉足过其他系统。我希望转向更复杂的设备,如 CPLD 和 FPGA,但我不知道从哪里开始。所以我的一个半问题是:
Chisel3 HDL语言是否可以进行形式验证? 如果是,是否有开源软件可以做到这一点? 我知道我们可以使用 Yosys 进行 verilog 形式验证,但是使用 chisel ? 最佳答案 Spac
如何在 HDL 中使用数组(代表总线)? 例如,我有以下代码: /** * 16-bit bitwise And: * for i = 0..15: out[i] = (a[i] and b[i]
我有 2 个模块使用相同的时钟但在不同的文件中,当我在模块 B 中采样来自模块 A 的信号时,在波形仿真中它没有像它应该的那样在一个时钟周期后获得样本,它表明是同一上升沿的样本(适合异步实例化的行为)
我找到了两个不同的来源,它们以两种不同的方式解释了 Verilog HDL 中的惯性延迟。 1) 第一个表示任何短于指定延迟的输入信号都将被忽略。 2) 第二个表示,如果其中一个输入发生变化,输出信号
这是我运行的代码,它不生成输出 HDL 文件: from pygears import gear from pygears.typing import Ufixp, Uint from pygears
假设您正在实现一个带有 cpu、ram、rom 和 mmu 的简单 SoC,以将 ram 和 rom 映射到 cpu 的地址空间。在实例化不同的组件时,这样做会更有意义: ram 和 rom 在 mm
此代码是一个按钮防抖器。但我不明白为什么有两个人字拖: reg PB_sync_0; always @(posedge clk) PB_sync_0 <= ~PB; // invert PB to
看起来快要工作了,只是在第 7 行显然搞砸了? /** * 4-way demultiplexor. * {a,b,c,d} = {in,0,0,0} if sel==00 *
也许这很简单,但我不能简单地找到如何在 Chisel 中获取 UInt() 值的位大小? 我知道如何通过声明设置尺寸: val a = UInt(INPUT, 16) 但是要获得“a”大小,是否有类似
该项目旨在构建一个程序计数器。 具体说明如下: // This file is part of www.nand2tetris.org // and the book "The Elements of
这是一个受此问答对启发的问题:call questa sim commands from SystemVerilog test bench 这些问题询问 Verilog 代码如何控制执行模拟器 (Qu
always 关键字(不是 always @ block )和 之间有什么区别Verilog HDL 中的forever 关键字? always #1 a=!a; forever #1 a=!a; 这
我使用 vi 作为编辑器在 Verilog 中编写了一个模块,现在我想测试它。如果我没有董事会,我有什么选择?我怎样才能给我的模块输入?我在哪里可以看到结果?顺便说一下,我可以访问 VCS。 谢谢。
我是一名优秀的程序员,十分优秀!