blob: 0dd97daf56f376953702528afb9ce004cf4ed088 [file] [log] [blame]
/* Generated by Yosys 0.9+3743 (git sha1 UNKNOWN, clang 7.0.1-8+deb10u2 -fPIC -Os) */
module register_file(
`ifdef USE_POWER_PINS
vccd1, vssd1,
`endif
clk, d_in, w_in, d_out);
`ifdef USE_POWER_PINS
inout vccd1;
inout vssd1;
`endif
wire _00_;
wire [4095:0] _01_;
wire [63:0] _02_;
wire [4095:0] _03_;
wire [63:0] _04_;
wire [63:0] _05_;
wire _06_;
wire [63:0] _07_;
wire _08_;
wire [63:0] _09_;
wire [191:0] _10_;
wire [4095:0] _11_;
wire [63:0] _12_;
input clk;
input [23:0] d_in;
output [191:0] d_out;
input [71:0] w_in;
reg [63:0] \$mem$\88 [63:0];
reg [63:0] \88 [63:0];
initial begin
\88 [0] = 64'h0000000000000000;
\88 [1] = 64'h0000000000000000;
\88 [2] = 64'h0000000000000000;
\88 [3] = 64'h0000000000000000;
\88 [4] = 64'h0000000000000000;
\88 [5] = 64'h0000000000000000;
\88 [6] = 64'h0000000000000000;
\88 [7] = 64'h0000000000000000;
\88 [8] = 64'h0000000000000000;
\88 [9] = 64'h0000000000000000;
\88 [10] = 64'h0000000000000000;
\88 [11] = 64'h0000000000000000;
\88 [12] = 64'h0000000000000000;
\88 [13] = 64'h0000000000000000;
\88 [14] = 64'h0000000000000000;
\88 [15] = 64'h0000000000000000;
\88 [16] = 64'h0000000000000000;
\88 [17] = 64'h0000000000000000;
\88 [18] = 64'h0000000000000000;
\88 [19] = 64'h0000000000000000;
\88 [20] = 64'h0000000000000000;
\88 [21] = 64'h0000000000000000;
\88 [22] = 64'h0000000000000000;
\88 [23] = 64'h0000000000000000;
\88 [24] = 64'h0000000000000000;
\88 [25] = 64'h0000000000000000;
\88 [26] = 64'h0000000000000000;
\88 [27] = 64'h0000000000000000;
\88 [28] = 64'h0000000000000000;
\88 [29] = 64'h0000000000000000;
\88 [30] = 64'h0000000000000000;
\88 [31] = 64'h0000000000000000;
\88 [32] = 64'h0000000000000000;
\88 [33] = 64'h0000000000000000;
\88 [34] = 64'h0000000000000000;
\88 [35] = 64'h0000000000000000;
\88 [36] = 64'h0000000000000000;
\88 [37] = 64'h0000000000000000;
\88 [38] = 64'h0000000000000000;
\88 [39] = 64'h0000000000000000;
\88 [40] = 64'h0000000000000000;
\88 [41] = 64'h0000000000000000;
\88 [42] = 64'h0000000000000000;
\88 [43] = 64'h0000000000000000;
\88 [44] = 64'h0000000000000000;
\88 [45] = 64'h0000000000000000;
\88 [46] = 64'h0000000000000000;
\88 [47] = 64'h0000000000000000;
\88 [48] = 64'h0000000000000000;
\88 [49] = 64'h0000000000000000;
\88 [50] = 64'h0000000000000000;
\88 [51] = 64'h0000000000000000;
\88 [52] = 64'h0000000000000000;
\88 [53] = 64'h0000000000000000;
\88 [54] = 64'h0000000000000000;
\88 [55] = 64'h0000000000000000;
\88 [56] = 64'h0000000000000000;
\88 [57] = 64'h0000000000000000;
\88 [58] = 64'h0000000000000000;
\88 [59] = 64'h0000000000000000;
\88 [60] = 64'h0000000000000000;
\88 [61] = 64'h0000000000000000;
\88 [62] = 64'h0000000000000000;
\88 [63] = 64'h0000000000000000;
end
always @(posedge clk) begin
if (w_in[71]) \88 [w_in[5:0]] <= w_in[70:7];
end
assign _12_ = \88 [d_in[22:17]];
assign _02_ = \88 [d_in[14:9]];
assign _04_ = \88 [d_in[6:1]];
assign _00_ = { 1'h0, d_in[6:1] } == { 1'h0, w_in[5:0] };
assign _05_ = _00_ ? w_in[70:7] : _04_;
assign _06_ = { 1'h0, d_in[14:9] } == { 1'h0, w_in[5:0] };
assign _07_ = _06_ ? w_in[70:7] : _02_;
assign _08_ = { 1'h0, d_in[22:17] } == { 1'h0, w_in[5:0] };
assign _09_ = _08_ ? w_in[70:7] : _12_;
assign _10_ = w_in[71] ? { _09_, _07_, _05_ } : { _12_, _02_, _04_ };
assign d_out = _10_;
endmodule