OpenCores
URL https://opencores.org/ocsvn/ao486/ao486/trunk

Subversion Repositories ao486

[/] [ao486/] [trunk/] [rtl/] [ao486/] [autogen/] [avalon_mem.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfik
//======================================================== conditions
2
wire cond_0 = state == STATE_IDLE;
3
wire cond_1 = read_burst_done_trigger;
4
wire cond_2 = read_line_done_trigger;
5
wire cond_3 = read_code_done_trigger;
6
wire cond_4 = writeburst_do;
7
wire cond_5 = writeline_do;
8
wire cond_6 = readburst_do && ~(readburst_done);
9
wire cond_7 = readline_do && ~(readline_done);
10
wire cond_8 = readcode_do && ~(readcode_done);
11
wire cond_9 = state == STATE_WRITE;
12
wire cond_10 = ~(avm_waitrequest) && counter == 2'd0;
13
wire cond_11 = ~(avm_waitrequest) && counter != 2'd0;
14
wire cond_12 = state == STATE_READ;
15
wire cond_13 = avm_readdatavalid;
16
wire cond_14 = avm_burstcount - { 1'b0, counter } == 3'd1;
17
wire cond_15 = avm_burstcount - { 1'b0, counter } == 3'd2;
18
wire cond_16 = avm_burstcount - { 1'b0, counter } == 3'd3;
19
wire cond_17 = avm_burstcount - { 1'b0, counter } == 3'd4;
20
wire cond_18 = counter == 2'd0;
21
wire cond_19 = avm_burstcount == 3'd4;
22
wire cond_20 = avm_waitrequest == `FALSE;
23
wire cond_21 = state == STATE_READ_CODE;
24
wire cond_22 = counter == 2'd3;
25
wire cond_23 = counter == 2'd2;
26
wire cond_24 = counter == 2'd1;
27
wire cond_25 = counter < 2'd3;
28
//======================================================== saves
29
wire  avm_read_to_reg =
30
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? (      `TRUE) :
31
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? (      `TRUE) :
32
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? (      `TRUE) :
33
    (cond_12 && cond_13 && cond_18)? ( `FALSE) :
34
    (cond_12 && cond_20)? ( `FALSE) :
35
    (cond_21 && cond_13 && cond_18)? ( `FALSE) :
36
    (cond_21 && cond_20)? ( `FALSE) :
37
    avm_read;
38
wire  read_line_done_trigger_to_reg =
39
    (cond_0 && cond_2)? ( `FALSE) :
40
    (cond_12 && cond_13 && cond_18 && cond_19)? ( `TRUE) :
41
    read_line_done_trigger;
42
wire [1:0] counter_to_reg =
43
    (cond_0 && cond_4)? (    writeburst_dword_length - 2'd1) :
44
    (cond_0 && ~cond_4 && cond_5)? (    2'd3) :
45
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? (    readburst_dword_length - 2'd1) :
46
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? (    2'd3) :
47
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? (    2'd3) :
48
    (cond_9 && cond_11)? ( counter - 2'd1) :
49
    (cond_12 && cond_13)? ( counter - 2'd1) :
50
    (cond_21 && cond_13)? ( counter - 2'd1) :
51
    counter;
52
wire [1:0] state_to_reg =
53
    (cond_0 && cond_4)? (      STATE_WRITE) :
54
    (cond_0 && ~cond_4 && cond_5)? (      STATE_WRITE) :
55
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? (      STATE_READ) :
56
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? (      STATE_READ) :
57
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? (      STATE_READ_CODE) :
58
    (cond_9 && cond_10)? (      STATE_IDLE) :
59
    (cond_12 && cond_13 && cond_18)? ( STATE_IDLE) :
60
    (cond_21 && cond_13 && cond_18)? ( STATE_IDLE) :
61
    state;
62
wire [31:0] bus_3_to_reg =
63
    (cond_12 && cond_13 && cond_17)? ( avm_readdata) :
64
    (cond_21 && cond_13 && cond_18)? ( avm_readdata) :
65
    bus_3;
66
wire [31:0] avm_writedata_to_reg =
67
    (cond_0 && cond_4)? (         writeburst_data[31:0]) :
68
    (cond_0 && ~cond_4 && cond_5)? ( writeline_line[31:0]) :
69
    (cond_9 && cond_11)? ( bus_0) :
70
    avm_writedata;
71
wire [31:0] bus_0_to_reg =
72
    (cond_0 && cond_4)? (         { 8'd0, writeburst_data[55:32] }) :
73
    (cond_0 && ~cond_4 && cond_5)? (         writeline_line[63:32]) :
74
    (cond_9 && cond_11)? (         bus_1) :
75
    (cond_12 && cond_13 && cond_14)? ( avm_readdata) :
76
    (cond_21 && cond_13 && cond_22)? ( avm_readdata) :
77
    bus_0;
78
wire [31:0] bus_2_to_reg =
79
    (cond_0 && ~cond_4 && cond_5)? (         writeline_line[127:96]) :
80
    (cond_12 && cond_13 && cond_16)? ( avm_readdata) :
81
    (cond_21 && cond_13 && cond_24)? ( avm_readdata) :
82
    bus_2;
83
wire [3:0] byteenable_next_to_reg =
84
    (cond_0 && cond_4)? (    writeburst_byteenable_1) :
85
    (cond_0 && ~cond_4 && cond_5)? (    4'hF) :
86
    byteenable_next;
87
wire [31:0] bus_1_to_reg =
88
    (cond_0 && ~cond_4 && cond_5)? (         writeline_line[95:64]) :
89
    (cond_9 && cond_11)? (         bus_2) :
90
    (cond_12 && cond_13 && cond_15)? ( avm_readdata) :
91
    (cond_21 && cond_13 && cond_23)? ( avm_readdata) :
92
    bus_1;
93
wire [31:0] avm_address_to_reg =
94
    (cond_0 && cond_4)? (        { writeburst_address[31:2], 2'd0 }) :
95
    (cond_0 && ~cond_4 && cond_5)? (        { writeline_address[31:4], 4'd0 }) :
96
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? (    { readburst_address[31:2], 2'd0 }) :
97
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? (    { readline_address[31:4], 4'd0 }) :
98
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? (    { readcode_address[31:2], 2'd0 }) :
99
    avm_address;
100
wire  avm_write_to_reg =
101
    (cond_0 && cond_4)? (          `TRUE) :
102
    (cond_0 && ~cond_4 && cond_5)? (          `TRUE) :
103
    (cond_9 && cond_10)? (  `FALSE) :
104
    avm_write;
105
wire [31:0] bus_code_partial_to_reg =
106
    (cond_21 && cond_13)? ( avm_readdata) :
107
    bus_code_partial;
108
wire  read_burst_done_trigger_to_reg =
109
    (cond_0 && cond_1)? ( `FALSE) :
110
    (cond_12 && cond_13 && cond_18 && ~cond_19)? (`TRUE) :
111
    read_burst_done_trigger;
112
wire [3:0] avm_byteenable_to_reg =
113
    (cond_0 && cond_4)? (     writeburst_byteenable_0) :
114
    (cond_0 && ~cond_4 && cond_5)? (     4'hF) :
115
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? ( read_burst_byteenable) :
116
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? ( 4'hF) :
117
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? ( 4'hF) :
118
    (cond_9 && cond_11)? ( byteenable_next) :
119
    avm_byteenable;
120
wire [2:0] avm_burstcount_to_reg =
121
    (cond_0 && cond_4)? (     { 1'b0, writeburst_dword_length }) :
122
    (cond_0 && ~cond_4 && cond_5)? (     3'd4) :
123
    (cond_0 && ~cond_4 && ~cond_5 && cond_6)? ( { 1'b0, readburst_dword_length }) :
124
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && cond_7)? ( 3'd4) :
125
    (cond_0 && ~cond_4 && ~cond_5 && ~cond_6 && ~cond_7 && cond_8)? ( 3'd4) :
126
    avm_burstcount;
127
wire  read_code_done_trigger_to_reg =
128
    (cond_0 && cond_3)? ( `FALSE) :
129
    (cond_21 && cond_13 && cond_18)? ( `TRUE) :
130
    read_code_done_trigger;
131
//======================================================== always
132
always @(posedge clk or negedge rst_n) begin
133
    if(rst_n == 1'b0) avm_read <= 1'd0;
134
    else              avm_read <= avm_read_to_reg;
135
end
136
always @(posedge clk or negedge rst_n) begin
137
    if(rst_n == 1'b0) read_line_done_trigger <= 1'd0;
138
    else              read_line_done_trigger <= read_line_done_trigger_to_reg;
139
end
140
always @(posedge clk or negedge rst_n) begin
141
    if(rst_n == 1'b0) counter <= 2'd0;
142
    else              counter <= counter_to_reg;
143
end
144
always @(posedge clk or negedge rst_n) begin
145
    if(rst_n == 1'b0) state <= 2'd0;
146
    else              state <= state_to_reg;
147
end
148
always @(posedge clk or negedge rst_n) begin
149
    if(rst_n == 1'b0) bus_3 <= 32'd0;
150
    else              bus_3 <= bus_3_to_reg;
151
end
152
always @(posedge clk or negedge rst_n) begin
153
    if(rst_n == 1'b0) avm_writedata <= 32'd0;
154
    else              avm_writedata <= avm_writedata_to_reg;
155
end
156
always @(posedge clk or negedge rst_n) begin
157
    if(rst_n == 1'b0) bus_0 <= 32'd0;
158
    else              bus_0 <= bus_0_to_reg;
159
end
160
always @(posedge clk or negedge rst_n) begin
161
    if(rst_n == 1'b0) bus_2 <= 32'd0;
162
    else              bus_2 <= bus_2_to_reg;
163
end
164
always @(posedge clk or negedge rst_n) begin
165
    if(rst_n == 1'b0) byteenable_next <= 4'd0;
166
    else              byteenable_next <= byteenable_next_to_reg;
167
end
168
always @(posedge clk or negedge rst_n) begin
169
    if(rst_n == 1'b0) bus_1 <= 32'd0;
170
    else              bus_1 <= bus_1_to_reg;
171
end
172
always @(posedge clk or negedge rst_n) begin
173
    if(rst_n == 1'b0) avm_address <= 32'd0;
174
    else              avm_address <= avm_address_to_reg;
175
end
176
always @(posedge clk or negedge rst_n) begin
177
    if(rst_n == 1'b0) avm_write <= 1'd0;
178
    else              avm_write <= avm_write_to_reg;
179
end
180
always @(posedge clk or negedge rst_n) begin
181
    if(rst_n == 1'b0) bus_code_partial <= 32'd0;
182
    else              bus_code_partial <= bus_code_partial_to_reg;
183
end
184
always @(posedge clk or negedge rst_n) begin
185
    if(rst_n == 1'b0) read_burst_done_trigger <= 1'd0;
186
    else              read_burst_done_trigger <= read_burst_done_trigger_to_reg;
187
end
188
always @(posedge clk or negedge rst_n) begin
189
    if(rst_n == 1'b0) avm_byteenable <= 4'd0;
190
    else              avm_byteenable <= avm_byteenable_to_reg;
191
end
192
always @(posedge clk or negedge rst_n) begin
193
    if(rst_n == 1'b0) avm_burstcount <= 3'd0;
194
    else              avm_burstcount <= avm_burstcount_to_reg;
195
end
196
always @(posedge clk or negedge rst_n) begin
197
    if(rst_n == 1'b0) read_code_done_trigger <= 1'd0;
198
    else              read_code_done_trigger <= read_code_done_trigger_to_reg;
199
end
200
//======================================================== sets
201
assign readcode_partial_done =
202
    (cond_21 && cond_13 && cond_25)? (`TRUE) :
203
    1'd0;
204
assign writeburst_done =
205
    (cond_0 && cond_4)? (`TRUE) :
206
    1'd0;
207
assign readcode_done =
208
    (cond_0 && cond_3)? (`TRUE) :
209
    1'd0;
210
assign readburst_done =
211
    (cond_0 && cond_1)? (`TRUE) :
212
    1'd0;
213
assign writeline_done =
214
    (cond_0 && ~cond_4 && cond_5)? (`TRUE) :
215
    1'd0;
216
assign readline_done =
217
    (cond_0 && cond_2)? (`TRUE) :
218
    1'd0;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.