问题标签 [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.
signals - Modelsim 和 GHDL 无法将 vhdl 用户定义的信号类型转储到 vcd 中?
我正在尝试从由 modelsim 或 ghdl 执行的模拟中转储内部信号。一切正常使用:
对于 modelsim,添加 vhdl 源,然后全部编译:
对于 GHDL
我可以看到模拟信号,但不是全部。信号定义为
从 vcd 中省略。这种行为在 modelsim 和 ghdl 中很常见。
我可以在 ghdl-generated vcd 看到以下行
Modelsim 只是悄悄地忽略了这些信号
有解决方法吗?选择?
message - ModelSim 消息查看器为空
我目前正在使用 Modelsim 10.1 和 ISE 13.4 并运行一个非常简单的测试台。所有代码都是VHDL。
前几天我在使用 VHDL 的语句时遇到了麻烦assert
:错误和警告输出到成绩单。但是,消息查看器中没有消息,并且波形窗口内没有消息指示器。如果这很重要,我会从 ISE 内部开始我的模拟。
我想我可能错过了打开消息日志或其他东西的开关,但谷歌搜索数小时没有带来任何结果。是否有任何设置会阻止消息被记录到消息查看器,尽管被打印到脚本中?
我已经找到了Simulate->Runtime Options-->Message Severity
。但是,那里的一切都未检查。勾选任何复选框会产生不打印到脚本的预期行为,但消息查看器中仍然没有任何消息的迹象。
谢谢你的时间,
罗伯特
编辑:
好吧,经过更多的摆弄和摆弄,我终于找到了它。
必须将msgmode
和displaymsgmode
选项设置为至少both
具有良好的消息指示符。这似乎是在我公司早期 ModelSim 版本的默认配置中完成的。
我希望像我这样无知的人发现这个答案有帮助:)
counter - 有没有更好的方法来用更少的“if 语句”在 VHDL 代码中重写 BCD_counter?
我刚刚开始在modelsim中学习VHDL,所以如果我正在做的事情看起来真的很菜,我提前道歉。
基本上我想要创建的是一个可合成的 VHDL 代码,用于一位向上/向下 BCD 计数器。当“启用”为“1”时,计数器将计数,否则保持不变。初始化输入“Init”时,计数器根据“Direction”输入的值设置为 0 或 9。(当“方向”为“1”时,它是一个向上计数器)。
我只是想知道除了连续使用 100 个 if 和 else 之外,是否还有更好的工具可以用于此工作。
这是我的代码,我现在正在为它编写一个测试平台,所以我还不确定这是否会起作用。因此,如果您碰巧也发现了一些错误,请为我指出。
提前非常感谢,这是我的代码
verilog - Verilog 连续仿真
verilog 中是否有特殊的开始和结束关键字允许模拟继续运行直到遇到结束关键字?我知道这将无法合成;但是,我只想将其用于测试目的。verilog 中的 $finish 关键字也退出了 modelsim。
arrays - 使用 ModelSim 在 Verilog 中创建数组
我正在尝试使用下面的代码在 ModelSim 中使用 Verilog 中的数组声明一个 1MB 内存模型。我还需要在地址空间中有地址 0x80020000。
上面的代码编译得很好,但是当我尝试模拟它时它给出了以下错误:
但是,如果我将内存索引从 7FEF_FFFF 初始化为 7FFF_FFFF,这也应该是 1 MB,一切都很好,我可以在模拟中看到分配的内存。如果我将范围从 7FEF_FFFF 修改为 8000_0000,我现在在编译期间会出现内部数据大小溢出。为什么内存的结束范围在错误(2的补码)中显示为-2146828288(FFFF FFFF 800A 0000)?
我在网上看到的所有示例都显示较小的记忆,即 256 个单词,所以 reg [7:0] MEMORY [0:255]) 所以我不确定我的逻辑是否有问题,或者问题是否与我机器上的硬件。我正在使用 32 位版本的 Modelsim 并且有 4 GB 的 RAM。
file-io - Verilog I/O 读取字符
每当我尝试使用 I/O 进行 verilog 的任何操作时,我似乎都会遇到一些问题。Modelsim 要么抛出某些函数不支持的函数,要么什么都不做。我只需要逐个字符地读取文件并通过端口发送每一位。谁能帮忙
tcl - Tcl 二进制循环。二进制增量
我正在尝试为我的解码器模块(modelsim 中的 verilog)编写一个 tcl 脚本,我需要将 'din' 输入值从 000 循环到 111
这就是我现在想出的。
由于某些我不知道如何绕过的类型问题,它不起作用。我在做什么错,在 tcl 中增加二进制数字的正确方法是什么?
modelsim - 有没有办法通过 TCL API 在 ModelSim 中切换叶子名称?
我正在寻找一种在 GUI 模式下在 ModelSim 视图中切换网络叶子名称的方法。换句话说,相当于按下“切换叶子名称<->全名”按钮:
我知道添加短名称的方式。例如,我一直在使用这样的代码:
但是,对于一个快速的模拟脚本草图,当我想为一个看起来太多而无法输入的模块添加所有信号时,我就这样做了:
默认情况下,它在“刺激”组下显示全名。我找不到add
在叶子名称和全名之间切换的函数参数或另一个函数。鉴于 ModelSim 有多么强大,很难相信它没有这个 API 或其他简单的方法来实现我想要的。那么有没有办法,它是什么?
importerror - ModelSim PE 学生版 10.1c(STD_LOGIC 错误)
我正在尝试在我的 VHDL 代码中使用 STD_LOGIC。它不会编译,因为我在该port(.....)
部分中尝试使用的 STD_LOGIC 不起作用。我知道问题是因为我没有导入 IEEE 库。我尝试导入它,但没有成功。
如何将 IEEE 库正确导入 ModelSim 中的 VHDL 程序?
vhdl - 是否可以在 ModelSim 中编写仿真验证程序?
我正在使用ModelSim来设计和模拟 CPU 架构。对于像我这样了解这一点的人,您可能也知道,在尝试处理您面前的所有这些信号时,验证仿真数据确实很困难。
有没有办法自动运行模拟并执行一些验证程序,以查看我获得的数据是否正确?
例如,我有一个组件,当被一个信号刺激时,在下一个时钟,它会返回否定的信号。我想验证这一点。如何?(当然无需手动检查屏幕上的信号)。
谢谢