问题标签 [icarus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
verilog - Verilog Icarus 给出未定义的值
我正在做一个项目,我在 Icarus Verilog 0.9.7 中设计一个简单的 RISC 机器。
这段代码是模块化的,最后我将把几个组件放在一起,但是我在处理内存控制器时遇到了一个问题。对于我所有的测试值,我得到未定义的输出,或“Z”。我怎样才能解决这个问题?我看不出为什么没有填充这些值的任何原因。
定义内存控制器应该具有的所有行为超出了这个问题的范围,所以我会尽量保持简短并讨论 Verilog 的主题。
这是我当前的 Verilog 代码。工作台有两个文件,mem.sv 和 SrcMemoryController.sv:
mem.sv 目前有效,不是这个问题的根源。无论如何,我都会包括它,以防它有帮助。
这里也是测试台。它可能不需要,但发布它可能会有所帮助。
感谢所有帮助。谢谢!
verilog - 尝试使用 Icarus 编译 SV 文件的断言失败错误
我尝试使用 Icarus 使用其测试平台编译 mux.sv 设计模块,但出现以下错误vvp: array.cc:906: void compile_var2_array(char*, char*, int, int, int, int, bool): Assertion `0' failed.
Aborted (core dumped)
。
下面是测试台的代码片段
我的测试台有什么问题会产生这个错误?
hdl - RisingEdge 示例不适用于 Chisel3 中的模块输入信号
在 Chisel 文档中,我们有一个上升沿检测方法的示例,定义如下:
我的 github项目 blp上提供了所有示例代码。
如果我在声明如下的输入信号上使用它:
有了这个 icarus/cocotb 测试平台:
我永远不会在 io.redge 和 io.fedge 上获得上升脉冲。要获得脉冲,我必须将上升沿的定义更改如下:
这是正常行为吗?
[编辑:我用上面给出的 github 示例修改了源示例]
delay - 如果有条件,icarus verilog 指定不遵守延迟
尝试对具有代表 HCT 设备的延迟的 74245 进行建模。
我发现我在指定块中提供的时间没有得到遵守。
我添加了一条额外的路线 A->C(不是我的原始设计的一部分)来说明延迟可以工作,只是表达式中没有条件,即其他延迟都无效。
如果我在分配上放置延迟内联,那么这总是受到尊重。
我的代码在这里:https ://www.edaplayground.com/x/hDa
有任何想法吗?
我是菜鸟。
verilog - icarus verilog 中的多维数组端口支持
我正在尝试在我的 systemverilog 代码中使用多维数组作为端口。顶部模块是一个 3 维数组,而子模块是一个 2 维数组。一个简化的测试台和设计如下:
设计是
我试图用 icarus verilog 编译这段代码,但它失败并出现以下错误。
这是编译器的错误还是某些功能尚不支持?有没有其他方法可以解决这个问题?我知道我可以扁平化数组,但是,我不想使用它,因为它会使设计更容易出现功能错误。
verilog - 验证;不能在 $display 中使用“字符串”类型
我正在使用 icarus verilog 的最新主分支构建。
我应该期望以下运行吗?
以上给出
但是,如果我通过取消注释上面的行将“x”定义为 reg,那么它会按预期工作......
arrays - 将单行二维数组作为输入传递给verilog中的模块
我想知道是否有任何方法可以将单行二维数组值作为输入传递给 Verilog 中的模块。
假设我的数组是这样定义的:
mod1
具有以下定义:
我使用 icarus verilog 作为我的编译器。当我使用该标志进行编译时-g2012
,它会引发以下错误:
有人可以帮我弄这个吗?
shell - 如何从文件夹中添加除iverilog命令行指令中的一个文件之外的所有文件?
我知道,如果我想包含所有 Verilog 文件,我可以通过添加如下文件来做到这一点:
它获取all_new2文件夹中的所有文件并将testbench.v设置为顶级模块。但是,我希望从此文件夹中排除文件c_functions.v文件。我该怎么做?
verilog - 参数可以可变吗
我知道我们可以使用参数来制作通用模块,并提高代码的可读性。我的问题是我们是否可以将这些参数本身作为变量。像这样的东西:
在这里,我希望p1
将changeingParameterModule 的端口视为parameterModulep1
的参数。这可能吗?
我使用 icarus-verilog 和 Quartus Prime Lite。