verilog - 将可综合的初始值分配给 Verilog 中的寄存器

标签 verilog

我是一名 FPGA 菜鸟,正在尝试学习 Verilog。如何为always block 中的reg“分配”一个值,无论是作为初始值还是作为常量。我正在尝试在下面的代码中做类似的事情。我收到错误,因为 8 位常量不算作输入。我也不想触发时钟始终关闭。我只想将一个寄存器分配给一个特定的值。因为我希望它是可综合的,所以我不能使用初始 block 。多谢。

module top
(
    input wire clk,
    output wire [7:0] led   
 );


reg [7:0] data_reg ; 
always @*
begin
    data_reg = 8'b10101011;
end

assign led = data_reg;

endmodule

最佳答案

您可以将寄存器声明与初始化结合起来。

reg [7:0] data_reg = 8'b10101011;

或者您可以使用初始 block

reg [7:0] data_reg;
initial data_reg = 8'b10101011;

关于verilog - 将可综合的初始值分配给 Verilog 中的寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10005411/

相关文章:

verilog - `timescale 是预处理器指令吗?

verilog - verilog 中的二进制补码

verilog - 如何确保 FPGA 中生成的硬件对于该特定代码段是正确的?

verilog - 这段代码中的程序 block 如何控制时钟输出?

Verilog 三态问题 (Xilinx Spartan 6)

Verilog 'assign' 语句

verilog - 重命名的时钟是同步的吗?

verilog - Verilog中数组初始化错误

verilog - 从命令行使用 Quartus

verilog - Verilog 中有类似 __LINE__ 的东西吗?