问题标签 [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.
io - 如何在不使用特殊二进制格式的情况下读取 VHDL/modelsim 中的二进制数据
一些背景:
我正在为以太网 MAC 编写 VHDL 测试台。测试台由一个包和一个组合的实体+架构文件组成。我想从我从wireshark导出的二进制文件中读取测试台将发送到MAC的以太网帧。
我正在使用 VHDL 2008 编写,并且正在使用 Mentor 图形模型技术 ModelSim ALTERA vcom 10.0d 编译器。
问题:
到目前为止,我发现的所有在 VHDL/modelsim 中读取二进制数据的解决方案都使用特殊的文件格式,其中 bit_vector 的 1 位由文件中的几个位表示。我希望 VHDL 将二进制文件读入 8 位 bit_vectors。
到目前为止,我最接近的是使用字符类型文件,我可以在其中直接以二进制表示形式编写 8 位 ASCII 字符。
simulation - VHDL/ModelSim - 找不到实体
我正在尝试模拟我的 VHDL 文件,但遇到以下错误:
在尝试仿真之前,我通过 Quartus II 和 ModelSim 编译器成功编译了代码。我的代码中确实有一个 lab1 实体和架构(我什至可以在 Quartus Project Navigator 的 Design Units 选项卡中看到它),所以我不太理解这个错误。有谁知道这是什么原因造成的?
simulation - ModelSim - 模拟按钮按下
我想使用四个按钮作为输入,三个七段 LED 显示器作为输出。两个按钮应通过 16 个 RAM 位置上下移动;另外两个应该增加和减少当前显示的内存位置的内容。我现在正在尝试使用 ModelSim 测试台模拟我的设计,并按下按钮。这是我认为是我的代码的相关部分:
问题是,尽管在我的测试台中初始化了“键”(按钮),ModelSim 仍然将对象列为“UUUU”。这是我的测试台的代码,它位于一个单独的文件中:
有谁知道怎么了?
vhdl - ModelSim - 无法模拟按钮按下
我想使用四个按钮作为输入,三个七段 LED 显示器作为输出。两个按钮应通过 16 个 RAM 位置上下移动;另外两个应该增加和减少当前显示的内存位置的内容。我有以下两个实体:
和
我还有以下测试台,我尝试在其中模拟通过 KEY 按下的按钮:
我的测试台设置如下所示:
为了模拟,我编译了上述所有三个文件,然后模拟了 DE2_TOP_TEST,但结果是我的“KEY”仍然未定义,如下所示(虽然 CLOCK_50 确实获得了我设置的默认值):
有谁知道这是什么原因造成的?
vhdl - VHDL等待多个信号
如果 a 和 b 同时改变它们的值会发生什么,例如 2ns。
进程会触发2次吗?
如果是这样,应该为 a,b 使用哪些值,如果我们要通过 a 事件的进程,b 信号是在那个时候改变了,还是当进程再次为 b 运行时它会改变?
还有声明 c <= a and b after 1ns; 在过程之外,它如何与之后一起工作?如果没有之后,它只是一个 AND 单元,没有延迟。
vhdl - 无法对 VHDL 中的无符号执行逻辑运算?
我在执行逻辑操作时遇到问题unsigned
:
这里有一个错误:
前缀运算符“not”没有可行的条目
s_1,a,b,s_2,s_3,s_4
都是类型unsigned(31 downto 0)
。
我找到了一个转换std_logic_vector
为无符号的代码,以启用逻辑操作,std_logic_vector
如果它不能在无符号上完成,但是这个代码使用numeric_std.all
的时候我认为它与无符号的数据类型发生冲突std_logic_arith
并使无符号的数据类型未知。
现在我不知道如何对 unsigned 执行逻辑操作,也不知道如何转换std_logic_vector
为unsigned
. 有人能帮我吗?
file - 在 ModelSim 中获取内存转储(定期)
如何定期在 ModelSim 中获取内存转储?
我知道如何导出内存数据。有没有办法在 .do 文件中写入命令以每 1000 ns 或每 x 个周期导出一次内存数据?
更新:
感谢您的回答。我现在这样做的方式:
这是在您之前使用 run -all 并且您不知道模拟何时停止的情况下。VHDL 测试用例当然应该有类似的东西
结束模拟(更好的方法见下面的答案,但这有效)
如果您知道模拟将运行多长时间,您也可以使用这种方式:
可以替换“运行 10 ns”
或者,您可以使用指示模拟结束的信号
在do-file中:
modelsim - 是否可以在 modelsim 中创建 IP 地址基数?
有没有办法让ip地址字在wave窗口中以十进制点格式显示?
vhdl - 如果存在两个同名组件,一个在包中,另一个在架构中,哪个优先?
我有一个 VHDL 测试文件 a.vhd。
猫.vhd
因此,在其上运行 modelsim 时,不会出现被覆盖组件的警告/错误。我们是否总是优先考虑在架构中声明的组件,而不是在 package.json 中声明的同名组件。有人能告诉我 LRM 是怎么说的吗?请解释一下。