modelsim相关内容

Verilog-端口的非法输出或输出端口连接(&Q;)

这是我第一次使用Verilog编码,也是我第一次使用StackExchange查询!如果我在这个岗位上没有使用任何礼仪,请提前原谅我。 我艰难地通过了一些已经在这里发布的类似问题,但我不知道如何将这些解决方案应用到我自己的代码中…… 我不确定为什么在尝试运行模拟时收到上述错误,也不确定如何修复它。请告知?:) 我已经在下面附上了我的源代码,以及测试平台模块和我在尝试运行模拟时收到的错 ..
发布时间:2022-07-02 20:18:35 其他开发

使用非静态信号名称的循环中过程调用

在一些测试台代码中,我使用一个过程来处理信号。然后,我在不同的信号上按顺序多次使用这个过程。只要我显式定义信号,这就可以很好地工作;只要我索引循环中的信号,它就会失败 (vcom-1450)形式“%s”的实际(索引名称)不是静态信号名称。 为什么这是不可能的,我如何解决它? 或许我可以将其移至for ... generate,但随后我希望do_something以定义良好的顺序被调用。 ..
发布时间:2022-07-01 22:56:41 其他开发

行为到结构转换问题 VHDL

我为行为类型的 Rabin Miller 算法设计了素性测试.我使用函数来创建我的模块.不幸的是,当我尝试通过 Quartus 用我的 Altera 套件合成它时,我意识到该函数没有合成.在这里,我将编写我的整个程序,我真的需要您帮助至少给我一些提示以将其更改为结构性,因为它是我的高级设计项目.这是我的程序: 库 ieee;使用 ieee.std_logic_1164.all;使用 ieee. ..
发布时间:2021-09-17 19:53:28 其他开发

VHDL 在modelsim 加载设计中出现仿真致命错误

(是的,我知道有一种更简单的方法,是的,我的教授要求很长.)以下是我的 1 位加法器/减法器的代码. library ieee;使用 ieee.std_logic_1164.all;实体 FA1Bit 是端口(x,y,Cin:在 std_logic 中;操作:在 std_logic 中;S, Cout: out std_logic);结束 FA1Bit;FA1Bit 的架构 FA1Bit_arc ..
发布时间:2021-09-17 19:52:56 其他开发

函数中缺少 EOF

我有这个 VHDL 代码,它应该可以用作带有查找表的正弦发生器. 我不断收到错误“函数中缺少 EOF",或者在modelsim 中只是“语法错误". 我有一些在线教程中的语法,它似乎是正确的.怎么了? function WAVE(X : integer) -- 这里是错误标记返回整数是变量 foo:整数;开始带 X 选择foo := 0 时 0, 4 时 1, 7 时 2, 11 时 ..
发布时间:2021-09-17 19:52:33 其他开发

通用加法器“推理架构":模拟错误

所以,我必须创建一个带有进位和进位的通用 N 位加法器.到目前为止,我已经制作了两种完全可用的架构,一种使用 generate 函数,一种使用 rtl 描述,如下所示: 实体: library ieee;使用 ieee.std_logic_1164.all;使用 ieee.numeric_std.all;实体 adder_n 是泛型(N:整数:=8);港口 (a,b: 在 std_logi ..
发布时间:2021-09-17 19:52:30 其他开发

Modelsim/读取信号值

在我的模拟中,我希望能够以读写方式访问项目中任何位置的信号.为了获得写入权限,我使用了modelsim_lib 库中的“signal_force"过程.但是为了获得读取权限,我还没有找到相应的功能. signal_force 适合我的需求的原因是我正在处理输入文本文件,所以我有来自“字符串"或“行"变量的信号的名称和值,我可以直接给出这些变量到函数.我不能使用“init_signal_spy ..
发布时间:2021-09-17 19:52:18 其他开发

VHDL - DE0 - QUARTUS II PLL 未在 modsim 中显示输出

嗨,我正在尝试使用锁相环为 VGA 控制器生成时钟.我运气不好,决定制作自己的时钟,然后工作正常.我让 VGA 控制器工作.回到 PLL,虽然我仍然无法选择 PLL 来为我提供输出.我做了一个小测试模型来模拟它. 图书馆IEEE;使用 IEEE.std_logic_1164.ALL;实体 PLL4 是港口 (时钟:在 std_logic 中;a : IN std_logic;第一个:在 s ..
发布时间:2021-09-17 19:50:19 其他开发

Quartus II 仅在仿真中使用文件

我想在 Quartus 中运行模拟.所以我在“分配"菜单中分配了一个测试平台.我的测试平台包括我的 DUT(D) 和一个额外的组件 (E),它仅用于仿真(因此该组件包含不可合成的语句).如果我从 Testbench 中删除 E,我的模拟就会运行,但是当我想在我的 Testbench 中包含 E 时,我从 modelsim 中得到错误: my_testbench.vhd(197): (vcom- ..
发布时间:2021-09-17 19:49:52 其他开发

为什么我不能在常量声明中调用函数,它是在 ModelSim 的同一个包中定义的?

我有一个 VHDL 包,它定义了一个函数(前向声明)和一个常量.常量的值由该函数计算,函数体位于包体中. 到目前为止,ModelSim/QuestaSim 是唯一不喜欢此代码的工具.它需要 2 个包,因此主体在常量声明之前被解析. 包测试是函数 mytest(param : boolean ) 返回布尔值;常量值:布尔值:= mytest(TRUE);结束包;包体测试是函数 mytest( ..
发布时间:2021-09-17 19:49:20 其他开发

VHDL - 为什么直接在函数上使用长度属性会产生警告?

我有一个 VHDL 函数,它返回一个记录的 std_logic_vector 表示,我想要该 std_logic_vector 的长度.我可以直接在函数上使用 length 属性.为什么这会在 ModelSim 中产生警告?我在邀请微妙的问题吗?谷歌搜索警告文本没有发现任何我认为有帮助的内容. my_function_returns_slv(my_record)'length; ** 警告:. ..
发布时间:2021-09-17 19:49:11 其他开发

在 VHDL Modelsim 中调试迭代限制错误

我正在为 Modelsim 上的 d 触发器编写 VHDL 代码,但在尝试模拟时出现错误: 错误:(vsim-3601) 在 400 ps 时达到迭代限制. 我不确定这意味着什么,但我已经查看了我的大部分源代码以查找错误,但没有成功.谁能猜出可能是什么问题? 解决方案 此错误通常表示 ModelSim 陷入无限循环.在 VHDL 中,当一个信号被放置在敏感列表中并且这个信号在这 ..
发布时间:2021-09-17 19:46:49 其他开发

VHDL n 位桶形移位器

我有一个使用行为架构的 32 位桶形移位器.现在我需要将其转换为 n 位移位器.我面临的问题是 for 循环存在某种限制,我必须将常量作为标记值. 以下是我的代码 图书馆IEEE;使用 IEEE.std_logic_1164.all;实体 bshift 是 -- 桶形移位器端口(左:在 std_logic 中;- '1' 代表左边,'0' 代表右边逻辑:在 std_logic 中;-- ' ..
发布时间:2021-09-17 19:46:32 其他开发

信号分配如何在进程中工作?

我了解到信号在遇到表达式时不会立即改变,而是在过程结束时改变.在此示例中: ...信号 x,y,z : 位;...过程(y)开始x<=y;z<=不是x;结束过程; 这个例子是这样说的: 如果信号 y 发生变化,那么将在 x 上安排一个事件,使其与 y 相同.此外,在 z 上安排了一个事件,使其与 x 相反.问题是,z 的值会与 y 的值相反吗?当然,答案是否定的,因为在执行第二条语句时, ..
发布时间:2021-09-17 19:45:16 其他开发

如何在verilog中使用环境变量或命令行设置宏的值?

我想在运行时使用环境变量在 Verilog 中定义一个宏. 例如,我想仅在 DEBUG 宏定义为 1 时才将一些文本打印到文件中. `定义调试0...if(DEBUG) $fwrite(file,"调试信息"); 从命令行运行模拟或使用环境变量时,如何将 DEBUG 的定义覆盖为 1? 或者,我可以保持宏未定义并使用 ifdef `ifdef(DEBUG) $fwrite(fil ..
发布时间:2021-09-17 19:28:34 其他开发

Modelsim 中的参数问题

最近我遇到了以下问题:在 Quartus 软件中,我将 Verilog 模块定义如下: module module_name(输入 [w1-1:0] in1,输入 [w2-1:0] in2,输出 [w1-1:0] out1);参数 w1 = 16;参数 w2 = 8;...结束模块 这个模块编译没有任何问题.但是,当我尝试在 Modelsim(-Altera) 10.3d 中模拟该代码时,出现 ..
发布时间:2021-09-17 19:26:16 其他开发