问题标签 [modelsim]

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.

0 投票
2 回答
68329 浏览

verilog - Verilog 和有什么区别!和〜?

所以最终让我坚持了好几天的错误是一段应该评估为 False 评估为 True 的代码。我的初始代码类似于:

即如果 x 不是 ONE 并且 y 不是 ONE 则做一些事情。单步调试调试器,我意识到即使 x 为 1,if 语句中的表达式仍然为 TRUE,并且执行了后续代码。

但是,当我将声明更改为:

并尝试过:

未评估 if 语句中的代码,这是预期的行为。我知道 ~ 是按位否定和 ! 逻辑否定,但 (~x && ~y) 和 (!x && !y) 不应该评估为同一件事吗?恐怕代码库太大,所以我不能在这里粘贴,但这是我为使代码按预期工作所做的唯一更改。谢谢。


作为回应,针对以下评论之一,我创建了一个测试用例来测试这种行为:

奇怪的是,打印了“第一个案例执行”以确认我观察到的原始行为。

0 投票
2 回答
2234 浏览

vhdl - ModelSim VHDL 真实仿真时间估计

我想通过测试台获得模型的 VHDL 仿真时间。我在ModelSim工作,知道ModelSim的profiler支持性能分析,但这不是我想要的信息。

耗时不是模拟步骤,而是在我的电脑上实时运行。我正在寻找 VHDL 中的句子或 ModelSim 或其他第三方工具中的命令。

0 投票
1 回答
550 浏览

vhdl - modelsim 中的后门级仿真

我正在尝试为流水线处理器进行后门级模拟。我有 vhdl 格式的网络列表,我现在需要再次模拟它以确保功能在合成之后正确。问题是我有 2 个 RAM,一个用于指令,另一个用于数据,在后门级模拟中,我无法查看内存列表视图并将指令和数据加载到我的 2 个 RAM 中。当它们被翻译成触发器和多路复用器时,如何将我的数据插入到 RAM 中?

提前致谢。

0 投票
3 回答
5239 浏览

simulation - 基于 xilinx/modelsim 的综合/仿真的编译器指令的自动标志?

我有一个大型 Verilog 项目,我正在将其合成到 xilinx fpga 并在 modelsim 中进行模拟。有几个模块我想模拟所述模块的一个版本并合成另一个。例如,我有一个参数化的复位去抖动器,它计算几毫秒。显然,对于模拟来说,这很烦人,所以在我模拟之前,我将去抖动计数更改为 10 个时钟周期。目前我有一个标志(`define SIMULATION),我将其注释掉以进行综合。然后在我的模块中,我利用像'ifdef 这样的编译器指令来编译不同版本的 deouncer,具体取决于综合/模拟:

虽然这行得通,但每次从 modlesim 切换到 ISE 时,我都需要注释掉“定义仿真”。我经常忘记,浪费时间等等。

是否有一种自动方法来确定正在使用的工具?例如,我可以说ifdef XILINX orifdef MODELSIM 之类的话,而不是我的 `ifdef SIMULATION hack?非常感谢!

0 投票
1 回答
1465 浏览

performance - 高密度脂蛋白。比较器的性能

我正在 vhdl - 比较器上创建小芯片块。
用途:QuartusII、ModelSim,在 Cyclone ii 上进行仿真。

我有一些不同的并行和顺序实现。但在某些情况下,并行工作比顺序更糟糕。而且我找不到最好的方法。

一些不同的实现:

带生成(时间-18.5ns)

最后一部分 - 它是比较T和的逻辑表示H

进行中(时间-35ns)

可能有人知道更好的方法。

如果我改变它就不起作用

为什么?

我在例子上研究了一些基本的东西,并意识到芯片有特殊输入数据大小的逻辑和计算块。它比较或计算大小从最小值到特定最大值的信号的逻辑运算常量时间。它同时比较 BIT/BIT 或 BIT_VECTOR(7 down to 0)/BIT_VECTOR(7 down to 0) - 大约 9ns。为什么这么长时间?有人可以解释一下吗?

0 投票
1 回答
913 浏览

verilog - 生成块没有为连线分配任何值

我是 verilog 的新手,我正在尝试编写某些乘数,但是当我运行我的测试台时,它并没有显示太多。看起来生成块没有为部分分配任何值。这是一个屏幕:

在此处输入图像描述

和代码:

更改了代码中的名称,因此对于英语用户来说更熟悉。

请告诉我我做错了什么。

0 投票
1 回答
4341 浏览

arrays - 在 VHDL 中处理 std_logic 向量数组中的特定位

我是 VHDL 新手。我的问题是我似乎无法找到从 std_logic_vector 数组中写入或读取的正确语法。我这样初始化数组:

我尝试这样解决它:

或者 :

但我得到一个错误,例如:

错误 (10409):Median_Filter.vhd(45) 处的 VHDL 类型转换错误:文本或符号“11_samples_in”附近对象的转换类型必须匹配目标对象的 std_logic_vector 类型

我在网上搜索并没有发现任何有用的东西。

非常感谢你的帮助 。

0 投票
1 回答
1907 浏览

verilog - 是否需要在 Verilog 中对扩展 0 位进行签名?

简单的 32 位寄存器:

但是,valueA定义为 10 位线 [9:0]。

是否valueA需要 22 个扩展的 0 位?

IE:

还是编译器在 ModelSim 中执行此操作?

0 投票
2 回答
2724 浏览

simulation - 在 modelsim 中运行时序仿真

我在 Verilog 中创建了一个小型设计,现在我想运行时序仿真。因为我知道如何处理 VHDL 文件,所以我想我会(几乎)以同样的方式来做。不幸的是,这并不容易。

我已经编译了我的设计并收到了 .sdo 和 .vho 文件。但是当我尝试运行 testbench 时,我收到错误:

看起来 Quartus 12.1 创建了 VHDL 文件,而我想模拟 Verilog 设计(并且 Quartus 同时只支持一个 VHDL)。所以我尝试了另一种方法,将 .sdo 文件添加为 SDF,然后通过“开始模拟”运行模拟。但它也显示错误(几乎与上面相同)。那么我该如何绕过它呢?或者也许还有另一种为 Verilog 设计运行时序仿真的方法?

0 投票
3 回答
7593 浏览

vhdl - VHDL 相等运算符:std_logic 和 std_ulogic 的不同行为

我有两个设计:

在 Modelsim 中强制 a 具有“00”而 b 具有“0L”表明 o 变为“0”。所以L不被解释为0,“00”=“0L”是假的。好的。

但是当我采用相同的设计并添加

到列表中,行为是不同的。然后 "00" = "0L" 返回真,所以 L IS 与 0 相同(0 变为 '1')。包括未签名的包,即使“0X”=“0Z”返回true。

谁能解释为什么?