OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [rtl/] [src_peripheral/] [ni/] [ni_vc_wb_slave_regs.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
/**********************************************************************
2
**      File:  ni_vc_wb_slave_regs.v
3
**      Date:2017-06-11
4
**
5
**      Copyright (C) 2014-2017  Alireza Monemi
6
**
7
**      This file is part of ProNoC
8
**
9
**      ProNoC ( stands for Prototype Network-on-chip)  is free software:
10
**      you can redistribute it and/or modify it under the terms of the GNU
11
**      Lesser General Public License as published by the Free Software Foundation,
12
**      either version 2 of the License, or (at your option) any later version.
13
**
14
**      ProNoC is distributed in the hope that it will be useful, but WITHOUT
15
**      ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
**      or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
17
**      Public License for more details.
18
**
19
**      You should have received a copy of the GNU Lesser General Public
20
**      License along with ProNoC. If not, see <http:**www.gnu.org/licenses/>.
21
**
22
**
23
**      Description:
24
**      NI internal register bank
25
**
26
**
27
*******************************************************************/
28
 
29
// synthesis translate_off
30
`timescale 1ns / 1ps
31
// synthesis translate_on
32
 
33
 
34
 
35
 
36
 
37
 
38
module ni_vc_wb_slave_regs #(
39
    parameter MAX_TRANSACTION_WIDTH =10,
40
    //NoC parameter
41
    parameter DEBUG_EN=1,
42
    parameter EAw=4,
43
    parameter C = 4,    //  number of flit class 
44
    parameter Fpay=32,
45
    parameter DSTPw=4,
46
    parameter WEIGHTw=4,
47
    parameter BYTE_EN=0,
48
    parameter HDw = 8,
49
    parameter CTRL_FLGw=14,
50
    //wishbones  bus  slave  port parameters
51
    parameter Dw            =   32,
52
    parameter S_Aw          =   4
53
 
54
 )(
55
    state_reg_enable,
56
    send_fsm_is_ideal,
57
    receive_fsm_is_ideal,
58
    send_start,
59
    receive_start,
60
    receive_done,
61
    send_done,
62
    receive_vc_got_packet,
63
 
64
 
65
    send_pointer_addr,
66
    be_in,
67
    receive_pointer_addr,
68
    receive_start_index,
69
    receive_start_index_offset,
70
    send_data_size,
71
    receive_max_buff_siz,
72
    dest_e_addr,
73
    pck_class,
74
    weight,
75
    hdr_data,
76
 
77
    burst_size_err,
78
    send_data_size_err,
79
    rcive_buff_ovrflw_err,
80
    crc_miss_match_err,
81
    invalid_send_req_err,
82
 
83
    receive_vc_got_hdr_flit_at_head,
84
    receive_is_busy,
85
    send_is_busy,
86
 
87
    any_err_isr,
88
    got_packet_isr,
89
    packet_is_saved_isr,
90
    packet_is_sent_isr,
91
 
92
    irq,
93
    ctrl_flags,
94
 
95
    s_dat_i,
96
    s_addr_i,
97
    s_stb_i,
98
    s_cyc_i,
99
    s_we_i,
100
//synthesis translate_off
101
//synopsys  translate_off    
102
    current_e_addr,
103
//synopsys  translate_on 
104
//synthesis translate_on
105
 
106
    reset,
107
    clk
108
 );
109
 
110
    function integer log2;
111
      input integer number; begin
112
         log2=(number <=1) ? 1: 0;
113
         while(2**log2<number) begin
114
            log2=log2+1;
115
         end
116
      end
117
    endfunction // log2  
118
 
119
 
120
 
121
 
122
 
123
/*
124
 s_dat_i :
125
        [16:0] dest_e_addr,
126
        [23:16] class,
127
        [31:24] weight,
128
*/
129
    localparam
130
        DST_X_LSB  =0,
131
        CLASS_LSB  =16,
132
        WEIGHT_LSB =24;
133
 
134
            /*
135
                1  :   CTRL_FLAGS
136
                2  :   SEND_DEST_WB_ADDR           // The destination router address
137
                3  :   SEND_POINTER_WB_ADDR,       // The address of data to be sent in byte
138
 Virtual        4  :   SEND_DATA_SIZE_WB_ADDR,     // The size of data to be sent in byte
139
 chanel        5  :   SEND_HDR_DATA_WB_ADDR       //  The header data address
140
 number
141
                8  :   RECEIVE_SRC_WB_ADDR       // The source router (the router which is sent this packet).
142
                9  :   RECEIVE_POINTER_WB_ADDR      // The address pointer of receiver memory in byte
143
                10 :   RECEIVE_DATA_SIZE_WB_ADDR // The size of received data in byte
144
                11 :   RECEIVE_MAX_BUFF_SIZ         // The receiver allocated buffer size in bytes. If the packet size is bigger than the buffer size the rest of it will be discarded
145
                12 :   RECEIVE_START_INDEX_WB_ADDR  // The received data is written on RECEIVE_POINTER_WB_ADDR + RECEIVE_START_INDEX_WB_ADDR. If the write address reach to the end of buffer pointer, it starts at the RECEIVE_POINTER_WB_ADDR.
146
                13 :   RECEIVE_CTRL_WB_ADDR      // The NI receiver control register
147
                14 :   RECEIVE_PRECAP_DATA_ADDR  // The address to the header flit
148
        */
149
 
150
    localparam [S_Aw-1  :   0]
151
        CTRL_FLAGS =1,
152
        SEND_DEST_WB_ADDR =2,
153
        SEND_POINTER_WB_ADDR =3,
154
        SEND_DATA_SIZE_WB_ADDR =4,
155
        SEND_HDR_DATA_WB_ADDR = 5,
156
 
157
        RECEIVE_POINTER_WB_ADDR=9,
158
        RECEIVE_MAX_BUFF_SIZ=11,
159
        RECEIVE_START_INDEX_WB_ADDR=12,
160
        RECEIVE_CTRL_WB_ADDR =13;
161
 
162
 
163
   localparam
164
        WORLD_SIZE = Dw/8,
165
        OFFSETw= log2(WORLD_SIZE),
166
        Cw =  (C>1)? log2(C): 1,
167
        BEw = (BYTE_EN)? log2(Fpay/8) : 1;
168
 
169
 
170
 
171
    input clk,reset;
172
    input state_reg_enable;
173
    input send_fsm_is_ideal,receive_fsm_is_ideal;
174
    input receive_vc_got_packet;
175
    input receive_done;
176
    input send_done;
177
    output  reg [Dw-1   :   0] send_pointer_addr;
178
    output      [BEw-1 : 0 ] be_in;
179
 
180
    output  reg [Dw-1   :   0] receive_pointer_addr;
181
 
182
 
183
    output  [MAX_TRANSACTION_WIDTH-1    :   0] send_data_size;
184
    output  reg [MAX_TRANSACTION_WIDTH-1    :   0] receive_max_buff_siz;
185
    output  reg [MAX_TRANSACTION_WIDTH-1    :   0] receive_start_index;
186
    output  reg [OFFSETw-1 : 0] receive_start_index_offset;
187
    output  reg [EAw-1   :   0]  dest_e_addr;
188
    output  reg [Cw-1   :   0]  pck_class;
189
    output  reg [WEIGHTw-1 :0]  weight;
190
    output  reg send_start, receive_start;
191
    output  reg [HDw-1 : 0] hdr_data;
192
 
193
    input  burst_size_err,  send_data_size_err, rcive_buff_ovrflw_err,crc_miss_match_err,invalid_send_req_err;
194
    input  receive_vc_got_hdr_flit_at_head;
195
    input  receive_is_busy,    send_is_busy;
196
 
197
    output  any_err_isr ,got_packet_isr , packet_is_saved_isr, packet_is_sent_isr;
198
 
199
 
200
    output  irq;
201
    output [CTRL_FLGw-1:0] ctrl_flags;
202
 
203
//synthesis translate_off
204
//synopsys  translate_off    
205
    input   [EAw-1   :   0]  current_e_addr;
206
//synopsys  translate_on     
207
//synthesis translate_on
208
 
209
 
210
//wishbone slave interface signals
211
    input   [Dw-1       :   0]      s_dat_i;
212
    input   [S_Aw-1     :   0]      s_addr_i;
213
    input                           s_stb_i;
214
    input                           s_cyc_i;
215
    input                           s_we_i;
216
 
217
    wire  any_err_isr_en ,got_packet_isr_en , packet_is_saved_isr_en, packet_is_sent_isr_en;
218
 
219
    reg  [EAw-1   :   0]  dest_e_addr_next;
220
    reg  [Cw-1   :   0]  pck_class_next;
221
    reg  [WEIGHTw-1 : 0] weight_next;
222
    reg  [Dw-1   :   0]  send_pointer_addr_next, receive_pointer_addr_next;
223
    reg  [OFFSETw-1 : 0] send_pointer_addr_byte_offset_next, send_pointer_addr_byte_offset;
224
    reg  [OFFSETw-1 : 0] send_data_size_byte_offset_next,send_data_size_byte_offset,receive_start_index_offset_next;
225
    reg  [MAX_TRANSACTION_WIDTH-1    :   0]  send_data_size_reg,send_data_size_next, receive_max_buff_siz_next,receive_start_index_next;
226
    reg  send_start_next;
227
    reg  receive_en,receive_en_next;
228
 
229
 
230
    reg [HDw-1 : 0] hdr_data_next;
231
 
232
 
233
    wire [OFFSETw : 0] add_offsets;
234
    assign add_offsets =send_pointer_addr_byte_offset +  send_data_size_byte_offset;
235
    assign be_in = add_offsets [BEw-1 : 0];
236
 
237
    generate
238
    if(BYTE_EN)begin
239
         wire [1:0] send_offset= (add_offsets==0)? 2'b00 : (add_offsets<=(1<<OFFSETw))? 2'b01 : 2'b10;
240
          /* verilator lint_off WIDTH */
241
         assign send_data_size =  send_data_size_reg+ send_offset;
242
          /* verilator lint_on WIDTH */
243
    end else begin:nbe
244
        assign send_data_size = send_data_size_reg;
245
    end
246
    endgenerate
247
 
248
 
249
     // update control registers   
250
    always @ (*) begin
251
        //default values       
252
        receive_start = 1'b0;
253
        if (receive_fsm_is_ideal & receive_vc_got_packet & receive_en ) begin
254
            receive_start = 1'b1;
255
 
256
        end
257
    end
258
 
259
 
260
 
261
    wire  s_dat_invalid_send_req_err_isr,s_dat_burst_size_err_isr, s_dat_send_data_size_err_isr, s_dat_crc_miss_match_isr, s_dat_rcive_buff_ovrflw_err_isr,
262
          s_dat_got_packet_isr, s_dat_packet_is_saved_isr, s_dat_packet_is_sent_isr,s_dat_got_any_err_int_en,
263
          s_dat_got_packet_int_en, s_dat_packet_is_saved_int_en, s_dat_packet_is_sent_int_en;
264
 
265
 
266
   reg    invalid_send_req_err_isr_next,burst_size_err_isr_next, send_data_size_err_isr_next, crc_miss_match_isr_next, rcive_buff_ovrflw_err_isr_next,
267
          got_packet_isr_next, packet_is_saved_isr_next, packet_is_sent_isr_next,
268
          got_any_err_int_en_next, got_packet_int_en_next, packet_is_saved_int_en_next, packet_is_sent_int_en_next;
269
 
270
   reg    invalid_send_req_err_isr,burst_size_err_isr, send_data_size_err_isr, crc_miss_match_isr, rcive_buff_ovrflw_err_isr,
271
          got_packet_isr, packet_is_saved_isr, packet_is_sent_isr,got_any_err_int_en,
272
          got_packet_int_en, packet_is_saved_int_en, packet_is_sent_int_en;
273
 
274
 
275
   assign {s_dat_invalid_send_req_err_isr,s_dat_burst_size_err_isr, s_dat_send_data_size_err_isr, s_dat_crc_miss_match_isr, s_dat_rcive_buff_ovrflw_err_isr,
276
          s_dat_got_packet_isr, s_dat_packet_is_saved_isr, s_dat_packet_is_sent_isr,s_dat_got_any_err_int_en,
277
          s_dat_got_packet_int_en, s_dat_packet_is_saved_int_en, s_dat_packet_is_sent_int_en}=s_dat_i[CTRL_FLGw-1:2];
278
 
279
 
280
 
281
 
282
   assign any_err_isr_en = (invalid_send_req_err_isr & got_any_err_int_en) |
283
        (burst_size_err_isr & got_any_err_int_en) |
284
        (send_data_size_err_isr & got_any_err_int_en) |
285
        (crc_miss_match_isr & got_any_err_int_en) |
286
        (rcive_buff_ovrflw_err_isr & got_any_err_int_en) ;
287
 
288
   assign any_err_isr = (invalid_send_req_err_isr  | burst_size_err_isr  | send_data_size_err_isr  | crc_miss_match_isr  | rcive_buff_ovrflw_err_isr ) ;
289
 
290
   assign got_packet_isr_en =     (got_packet_isr & got_packet_int_en);
291
   assign packet_is_saved_isr_en =(packet_is_saved_isr & packet_is_saved_int_en);
292
   assign packet_is_sent_isr_en = (packet_is_sent_isr & packet_is_sent_int_en);
293
   assign irq =  got_packet_isr_en | packet_is_saved_isr_en | packet_is_sent_isr_en | any_err_isr_en;
294
 
295
 
296
 
297
 
298
   assign ctrl_flags =
299
          {invalid_send_req_err_isr,burst_size_err_isr, send_data_size_err_isr, crc_miss_match_isr, rcive_buff_ovrflw_err_isr,
300
          got_packet_isr, packet_is_saved_isr, packet_is_sent_isr,got_any_err_int_en,
301
          got_packet_int_en, packet_is_saved_int_en, packet_is_sent_int_en,receive_is_busy, send_is_busy};
302
 
303
    always @ (*) begin
304
        //default values
305
        send_pointer_addr_next= send_pointer_addr;
306
        send_pointer_addr_byte_offset_next=send_pointer_addr_byte_offset;
307
        receive_pointer_addr_next=receive_pointer_addr;
308
        send_data_size_next= send_data_size_reg;
309
        send_data_size_byte_offset_next=send_data_size_byte_offset;
310
        dest_e_addr_next = dest_e_addr;
311
        pck_class_next= pck_class;
312
        weight_next = weight;
313
        send_start_next = 1'b0;
314
        receive_en_next = receive_en;
315
 
316
        receive_max_buff_siz_next = receive_max_buff_siz;
317
        receive_start_index_next=receive_start_index;
318
        receive_start_index_offset_next=receive_start_index_offset;
319
        hdr_data_next = hdr_data;
320
 
321
        //ctrl flags
322
        invalid_send_req_err_isr_next = invalid_send_req_err_isr;
323
        burst_size_err_isr_next = burst_size_err_isr;
324
        send_data_size_err_isr_next = send_data_size_err_isr;
325
        crc_miss_match_isr_next =crc_miss_match_isr;
326
        rcive_buff_ovrflw_err_isr_next =rcive_buff_ovrflw_err_isr;
327
 
328
        got_packet_isr_next =got_packet_isr;
329
        packet_is_saved_isr_next = packet_is_saved_isr;
330
        packet_is_sent_isr_next = packet_is_sent_isr;
331
        got_any_err_int_en_next = got_any_err_int_en;
332
        got_packet_int_en_next = got_packet_int_en;
333
        packet_is_saved_int_en_next = packet_is_saved_int_en;
334
        packet_is_sent_int_en_next = packet_is_sent_int_en;
335
 
336
 
337
 
338
        if (receive_vc_got_packet & receive_en ) begin
339
            receive_en_next = 1'b0;
340
        end
341
 
342
 
343
 
344
        if(s_stb_i  &   s_cyc_i &  s_we_i & state_reg_enable)   begin
345
                case( s_addr_i)
346
                    CTRL_FLAGS:begin
347
                        got_any_err_int_en_next = s_dat_got_any_err_int_en;
348
                        got_packet_int_en_next = s_dat_got_packet_int_en;
349
                        packet_is_saved_int_en_next = s_dat_packet_is_saved_int_en;
350
                        packet_is_sent_int_en_next = s_dat_packet_is_sent_int_en;
351
 
352
                        //reset isr flag when writting 1 
353
                        if(s_dat_invalid_send_req_err_isr)  invalid_send_req_err_isr_next = 1'b0;
354
                        if(s_dat_burst_size_err_isr)        burst_size_err_isr_next = 1'b0;
355
                        if(s_dat_send_data_size_err_isr)    send_data_size_err_isr_next = 1'b0;
356
                        if(s_dat_crc_miss_match_isr)        crc_miss_match_isr_next = 1'b0;
357
                        if(s_dat_rcive_buff_ovrflw_err_isr) rcive_buff_ovrflw_err_isr_next = 1'b0;
358
                        if(s_dat_got_packet_isr)            got_packet_isr_next = 1'b0;
359
                        if(s_dat_packet_is_saved_isr)       packet_is_saved_isr_next = 1'b0;
360
                        if(s_dat_packet_is_sent_isr)        packet_is_sent_isr_next = 1'b0;
361
 
362
 
363
                    end//CTRL_FLAGS
364
 
365
 
366
 
367
 
368
                    SEND_POINTER_WB_ADDR: begin
369
                         if (send_fsm_is_ideal) begin
370
                            send_pointer_addr_next={{OFFSETw{1'b0}},s_dat_i [Dw-1    : OFFSETw]};
371
                            send_pointer_addr_byte_offset_next = s_dat_i[OFFSETw-1: 0];
372
                         end
373
 
374
                    end //SEND_POINTER_WB_ADDR
375
                    SEND_DATA_SIZE_WB_ADDR: begin
376
                        if (send_fsm_is_ideal) begin
377
                            send_data_size_next=s_dat_i [MAX_TRANSACTION_WIDTH + OFFSETw -1 :    OFFSETw];
378
                            send_data_size_byte_offset_next = s_dat_i[OFFSETw-1: 0];
379
                        end
380
 
381
                    end //DATA_SIZE_WB_ADDR
382
                    SEND_DEST_WB_ADDR: begin
383
                        if (send_fsm_is_ideal) begin
384
                            dest_e_addr_next = s_dat_i [EAw+ DST_X_LSB-1    :    DST_X_LSB];
385
 
386
//synthesis translate_off
387
//synopsys  translate_off
388
                        if(DEBUG_EN)begin
389
                                if(s_dat_i [EAw+ DST_X_LSB-1    :    DST_X_LSB] == current_e_addr )begin
390
                                        $display("%t: err: source destination address are identical in: %m",$time);
391
                                end
392
                        end
393
//synopsys  translate_on 
394
//synthesis translate_on
395
 
396
                            pck_class_next= s_dat_i[CLASS_LSB+Cw-1      :  CLASS_LSB];
397
                            weight_next = s_dat_i[ WEIGHT_LSB+WEIGHTw-1 :  WEIGHT_LSB];
398
                            send_start_next = 1'b1;
399
                           end
400
 
401
                    end //SEND_DEST_WB_ADDR
402
 
403
                    SEND_HDR_DATA_WB_ADDR: begin
404
                        if (send_fsm_is_ideal) hdr_data_next = s_dat_i [HDw-1 : 0];
405
 
406
                    end
407
                    RECEIVE_MAX_BUFF_SIZ: begin
408
                        if (receive_fsm_is_ideal) receive_max_buff_siz_next = s_dat_i [MAX_TRANSACTION_WIDTH+ OFFSETw -1 :    OFFSETw];
409
                    end
410
 
411
                    RECEIVE_POINTER_WB_ADDR: begin
412
                        if (receive_fsm_is_ideal) receive_pointer_addr_next= {{OFFSETw{1'b0}},s_dat_i [Dw-1 :   OFFSETw]};
413
                    end //RECEIVE_POINTER_WB_ADDR
414
 
415
                    RECEIVE_START_INDEX_WB_ADDR:begin
416
                        if (receive_fsm_is_ideal) begin
417
                            receive_start_index_next= s_dat_i [MAX_TRANSACTION_WIDTH+ OFFSETw -1 :    OFFSETw];
418
                            receive_start_index_offset_next= s_dat_i [OFFSETw-1 : 0];
419
                        end
420
                    end
421
 
422
 
423
 
424
                    RECEIVE_CTRL_WB_ADDR: begin
425
                        if (receive_fsm_is_ideal) begin
426
                                receive_en_next=1'b1;
427
                        end
428
                    end
429
 
430
                    default :begin
431
 
432
                    end
433
                 endcase//wb_receive_send_addr
434
            end//if
435
 
436
            //isr setting flags
437
            if(invalid_send_req_err) invalid_send_req_err_isr_next = 1'b1;
438
            if(burst_size_err)      burst_size_err_isr_next = 1'b1;
439
            if(send_data_size_err)  send_data_size_err_isr_next = 1'b1;
440
            if(crc_miss_match_err)  crc_miss_match_isr_next = 1'b1;
441
            if(rcive_buff_ovrflw_err) rcive_buff_ovrflw_err_isr_next = 1'b1;
442
            if(receive_vc_got_hdr_flit_at_head)            got_packet_isr_next = 1'b1;
443
            if(receive_done)       packet_is_saved_isr_next = 1'b1;
444
            if(send_done)        packet_is_sent_isr_next = 1'b1;
445
 
446
 
447
 
448
    end// always
449
 
450
 
451
    //synthesis translate_off
452
    //synopsys  translate_off    
453
    always @(posedge clk) begin
454
        if(s_stb_i  &   s_cyc_i &  s_we_i & state_reg_enable & ~receive_fsm_is_ideal ) begin
455
            case(s_addr_i)
456
            SEND_DEST_WB_ADDR, SEND_POINTER_WB_ADDR,
457
            SEND_DATA_SIZE_WB_ADDR,SEND_HDR_DATA_WB_ADDR:
458
                if(~send_fsm_is_ideal) $display("%t: Warning: write on NI sent register %d was not accepted as fsm was not in ideal state. %m!",$time,s_addr_i);
459
            RECEIVE_POINTER_WB_ADDR,  RECEIVE_MAX_BUFF_SIZ,
460
            RECEIVE_START_INDEX_WB_ADDR, RECEIVE_CTRL_WB_ADDR:
461
                if(~receive_fsm_is_ideal) $display("%t: Warning: write on NI receive register %d was not accepted as fsm was not in ideal state. %m!",$time,s_addr_i);
462
            default : begin
463
 
464
            end
465
            endcase
466
        end
467
    end
468
    //synopsys  translate_on     
469
    //synthesis translate_on
470
 
471
 
472
 
473
 
474
    localparam [WEIGHTw-1 : 0] INIT_WEIGHT = 1;
475
 
476
 
477
     //registers assigmnet    
478
`ifdef SYNC_RESET_MODE
479
    always @ (posedge clk )begin
480
`else
481
    always @ (posedge clk or posedge reset)begin
482
`endif
483
        if(reset) begin
484
            send_pointer_addr   <= {Dw{1'b0}};
485
            send_pointer_addr_byte_offset<={OFFSETw{1'b0}};
486
            receive_pointer_addr   <= {Dw{1'b0}};
487
            send_data_size_reg    <= {MAX_TRANSACTION_WIDTH{1'b0}};
488
            send_data_size_byte_offset<={OFFSETw{1'b0}};
489
            receive_max_buff_siz <= {MAX_TRANSACTION_WIDTH{1'b0}};
490
            receive_start_index <= {MAX_TRANSACTION_WIDTH{1'b0}};
491
            receive_start_index_offset<={OFFSETw{1'b0}};
492
            dest_e_addr     <= {EAw{1'b0}};
493
            pck_class  <= {Cw{1'b0}};
494
            weight <= INIT_WEIGHT;
495
            receive_en <= 1'b0;
496
 
497
 
498
            send_start <=1'b0;
499
            hdr_data <= {HDw{1'b0}};
500
 
501
            //ctrl flags
502
            invalid_send_req_err_isr<=1'b0;
503
            burst_size_err_isr<=1'b0;
504
            send_data_size_err_isr<=1'b0;
505
            crc_miss_match_isr<=1'b0;
506
            rcive_buff_ovrflw_err_isr<=1'b0;
507
            got_packet_isr<=1'b0;
508
            packet_is_saved_isr<=1'b0;
509
            packet_is_sent_isr<=1'b0;
510
            got_any_err_int_en<=1'b0;
511
            got_packet_int_en<=1'b0;
512
            packet_is_saved_int_en<=1'b0;
513
            packet_is_sent_int_en<=1'b0;
514
 
515
 
516
        end else begin
517
            send_pointer_addr <= send_pointer_addr_next;
518
            send_pointer_addr_byte_offset<=send_pointer_addr_byte_offset_next;
519
            receive_pointer_addr <= receive_pointer_addr_next;
520
            send_data_size_reg <= send_data_size_next;
521
            send_data_size_byte_offset <= send_data_size_byte_offset_next;
522
            receive_max_buff_siz <= receive_max_buff_siz_next;
523
            dest_e_addr     <= dest_e_addr_next;
524
            receive_start_index<=receive_start_index_next;
525
            receive_start_index_offset<=receive_start_index_offset_next;
526
            pck_class  <= pck_class_next;
527
            weight <= weight_next;
528
            receive_en <=receive_en_next;
529
 
530
            send_start <= send_start_next;
531
            hdr_data <= hdr_data_next;
532
 
533
            //ctrl_flags
534
            invalid_send_req_err_isr        <=invalid_send_req_err_isr_next;
535
            burst_size_err_isr              <=burst_size_err_isr_next;
536
            send_data_size_err_isr          <=send_data_size_err_isr_next;
537
            crc_miss_match_isr              <=crc_miss_match_isr_next;
538
            rcive_buff_ovrflw_err_isr       <=rcive_buff_ovrflw_err_isr_next;
539
            got_packet_isr                  <=got_packet_isr_next;
540
            packet_is_saved_isr             <=packet_is_saved_isr_next;
541
            packet_is_sent_isr              <=packet_is_sent_isr_next;
542
            got_any_err_int_en              <=got_any_err_int_en_next;
543
            got_packet_int_en               <=got_packet_int_en_next;
544
            packet_is_saved_int_en          <=packet_is_saved_int_en_next;
545
            packet_is_sent_int_en           <=packet_is_sent_int_en_next;
546
 
547
        end
548
    end
549
 
550
 endmodule

powered by: WebSVN 2.1.0

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