Verilog是一种用于模拟电子系统的硬件描述语言(HDL)。它最常用于数字逻辑芯片的设计,验证和实现。
二进制 - BCD 转换器在 sim 中工作,但在 FPGA 上不起作用
我定义了一个二进制到 BCD 转换器以在 Basys 3 开发板上使用。在仿真中,结果符合预期,并且完全遵循时序。 我将 BCD 转换器包含在顶部模块中,
Verilog 二进制 - BCD 转换器在 sim 中工作,但在 FPGA 上不起作用
我定义了一个二进制到 BCD 转换器以在 Basys 3 开发板上使用。在仿真中,结果符合预期,并且完全遵循时序。 我将 BCD 转换器包含在顶部模块中,
我正在写一些SV代码。我有“定义值”,我想从终端使用 +define 来跟随“define ENV_TOP”。当我检索 ru 的值时,该值应该位于 config_db 块中...
SystemVerilog 标准是否允许与 Verilog 文件混合?
SystemVerilog 标准是否允许将 SystemVerilog 文件 (.sv) 与 Verilog 文件 (.v) 混合?
系统verilog标准是否允许将系统verilog文件(.sv)与verilog文件(.v)混合?
我正在编写一个测试台,我试图在其中定义一个位流,如下所示: `定义序言 (10'b1010101011) `定义 FUNC_ENERGY (4'b0001) reg bit_stream_tb = {`PREAMBLE, `FUNC_ENERGY, 1'b1}; ...
为什么我在测试平台模块驱动程序和监视器中通过设计后没有得到输出?
这是我的设计和测试平台环境代码。 这是设计模块: 模块 router_1x3 ( 输入线时钟, 输入线第一, 输入线[7:0] data_in, // 8位数据输入 输入线...
为什么我在测试台模块驱动程序和监视器中通过槽设计后没有得到输出?
这是我的设计和测试平台环境代码。 这是设计模块: 模块 router_1x3 ( 输入线时钟, 输入线第一, 输入线[7:0] data_in, // 8位数据输入 输入线...
为什么我在 SV Testbench 模块驱动程序和监视器中通过槽设计后没有得到输出?
这里我附上了sv中的设计和测试平台环境代码: 这是设计模块 // 在这里编写你的设计代码 // 在这里编写你的设计代码 模块 router_1x3 ( 输入线时钟, 输入线第一,
对于除法运算符“/”是否可以合成不是 2 的幂的常量值,我看到了一些混合的答案,所以我继续使用 Synopsys 进行尝试...
`包括“fa.v” 模块 FAn(a,b,s,c); 参数大小=4; 输入[size-1:0]a; 输入[大小-1:0]b; 输出 reg [size-1:0]s; 输出c; 线[尺寸:0] cin; 根瓦尔一世; 对于(i=0;i `include "fa.v" module FAn(a,b,s,c); parameter size=4; input [size-1:0]a; input [size-1:0]b; output reg [size-1:0]s; output c; wire [size:0] cin; genvar i; for(i=0;i<size;i=i+1)begin FA(.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+1])); end assign c=cin[size]; endmodule 在实例化行中 FA(.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+1])); 在第一次迭代中,我传递 cin[0] 信号 (cin(cin[0]))....因为我没有为wire[size:0]cin cin[0]分配任何值,默认值应该是“z”正确,但它在第一个实例化中取零(0)并将信号 0 传递给 FA 模块 您的模拟器有问题。 cin[0] 应该是 z 而不是 0。 在EDA Playground上的模拟表明是z。 表明您的模拟器存在问题的另一个迹象是以下行: FA(.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+1])); 该行在模块名称后面缺少强制实例名称 (FA)。 你的模拟器应该给你一个编译错误。 解决此问题的一种方法是添加一个名称,如 dut: FA dut (.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+1])); 也可以使用任何合法的 Verilog 标识符。
电线的默认值为Z,但在第一次实例化时它取0。(这是怎么可能的)。下面我将附上我的代码
`包括“fa.v” 模块 FAn(a,b,s,c); 参数大小=4; 输入[size-1:0]a; 输入[大小-1:0]b; 输出 reg [size-1:0]s; 输出c; 线[尺寸:0] cin; 根瓦尔一世; 对于(i=0;i `include "fa.v" module FAn(a,b,s,c); parameter size=4; input [size-1:0]a; input [size-1:0]b; output reg [size-1:0]s; output c; wire [size:0] cin; genvar i; for(i=0;i<size;i=i+1)begin FA(.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+1])); end assign c=cin[size]; endmodule 在实例化行 FA(.a(a[i]),.b(b[i]),.cin(cin[i]),.s(s[i]),.c(cin[i+ 1]));在第一次迭代中,我传递 cin[0] 信号 (cin(cin[0]))....因为我没有为wire[size:0]cin cin[0] 分配任何值,默认值应该是“z”对但它在第一个实例化中取零(0)并将信号 0 传递给 FA 模块 您的模拟器有问题。 cin[0] 应该是 z 而不是 0。 在EDA Playground上的模拟表明是z。
是否可以将线路作为默认输入,但不能默认声明模块内部信号? 据我了解 `default_nettype` 控件 输入和输入输出端口的端口类型(如
我在公共模块中使用参数化类型。 有没有办法说: if( type == TYPE1 ) 以一种方式分配结构 else if( type == TYPE2 ) 指定另一种方式 我在一代中想象这个......
有人建议我如何获取不带“.”的实例化名称。像“genblk1.name” 如果我使用generate for循环来创建更多模块实例化。 我想要像 addr_1,a... 这样的实例化名称
错误(10170):quartus(HDL)中的 HDL 语法错误
任何人都可以看到我的代码有什么问题吗? 我复制了文章中的代码,但是里面的代码运行没有错误。 这是错误: 模块开方#( 参数 WIDTH=8, // 根的宽度...
我的Verilog代码存储在C:\FA中。共有三个文件: FA.v、fa.vvp、TM_FA.v 我按照书上的步骤操作。 iverilog -o fa.vvp vvp fa.vvp 结束 getwave fa.vcd & 当我使用 getwave fa.vcd &am...
我正在学习VHDL,我遇到了一个有趣的问题。 我创建了一个具有 Beh2 架构的实体 Sklop: 实体 Sklop 是 港口 ( x:以位为单位; y:以位为单位...
我有一个整数参数数组,例如: 参数整数 PAR_ARR[3:0] = '{ 12, 34, 56, 78 } 我想通过VPI读取参数数组的值。 这是我观察到的: vpi_get(vpiTy...
我正在分享一个简单的 SystemVerilog 代码,其中三元运算由于归约或 ("|b") 运算而行为不当。我知道许多其他解决方法。我只是想知道什么...