Verilog 使用一个热信号设置寄存器
我有一组寄存器:Verilog 使用一个热信号设置寄存器,verilog,hdl,Verilog,Hdl,我有一组寄存器:reg[7:0]dataRegs[3:0]我有一个单热信号:reg[3:0]oneHot。我只想将一个值写入由一个热信号指示的寄存器。因此,如果oneHot=4'b0010,则会写入dataRegs[2]。最好的方法是什么 因此,要从特定寄存器读取,我有三态缓冲区,如下所示: for (i=0; i<4; i++) begin output = oneHot[i]?dataRegs[i]:'bz; end 对于(i=0;i当i=0时,仅写入注册表[0]。当i=1时,
reg[7:0]dataRegs[3:0]
我有一个单热信号:reg[3:0]oneHot
。我只想将一个值写入由一个热信号指示的寄存器。因此,如果oneHot
=4'b0010,则会写入dataRegs[2]
。最好的方法是什么
因此,要从特定寄存器读取,我有三态缓冲区,如下所示:
for (i=0; i<4; i++) begin
output = oneHot[i]?dataRegs[i]:'bz;
end
对于(i=0;i当i=0时,仅写入注册表[0]。当i=1时,仅写入注册表[1],以此类推
always @(posedge clk) begin
for (i=0; i<4; i++) begin
if (oneHot[i]) dataRegs[i] <= wdata;
end
end
始终@(posedge clk)开始
对于(i=0;i