gpt4 book ai didi

programming-languages - verilog 中的位切片

转载 作者:行者123 更新时间:2023-12-05 01:45:33 33 4
gpt4 key购买 nike

我怎么写 wdata[((8*j)+7) : (8*i)] = $random;在verilog编程语言中? ,其中 i 和 j 是 reg 类型变量。 Modelsim 给出了恒定范围变量的错误。我怎么能以正确的方式写它。

最佳答案

您应该从硬件的角度来思考解决方案。

这是一种解决方案。希望对您有所帮助。

module temp(clk);
input clk;
reg i, j;
reg [23:0] register, select;
wire [23:0] temp;

initial
begin
i = 'd1;
j = 'd1;
end

generate
for(genvar i = 0; i<24; i++)
begin
assign temp[i] = select[i] ? $random : register[i];
end
endgenerate

always @ (posedge clk)
begin
register <= temp;
end

always @ *
begin
select = (32'hffff_ffff << ((j<<3)+8)) ^ (32'hffff_ffff << (i<<3));
end
endmodule

关于programming-languages - verilog 中的位切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41484219/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com