【发布时间】:2015-12-09 15:11:38
【问题描述】:
我有一组多个寄存器,地址范围从 0x20 到 0x60。如果处理器想在任何时候读取这些寄存器中的任何一个,我必须发送相应的寄存器数据。现在我正在使用 case 语句,指定所有寄存器地址并将寄存器数据分配给数据总线。
我们可以在代码行方面做任何简化吗?
例如
always @(posedge clk) begin
if (!fpga_rst) begin
dataout <= 16'd0;
end
else if (!rd_en) begin
case (reg_addr)
0x0012: dataout <= fpga_ver_reg;
0x0014 : dataout <= act0_reg;
0x0016 : dataout <= act1_reg;
0x0018 : dataout <= list0_reg;
0x001A : dataout <=list1_reg;
0x001C : dataout <= dr_reg;
0x001D : dataout <= dr0_reg;
0x001F : dataout <= dr1_reg;
0x0020 : dataout <= dr2_reg;
e.t.c
0x0040 : dataout <= cr2_reg;
end case
【问题讨论】: