Changeset 475
- Timestamp:
- Jul 26, 2013, 3:44:43 PM (11 years ago)
- Location:
- trunk/platforms/tsar_generic_xbar
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_xbar/top.cpp
r468 r475 27 27 // - the disk controller (BDEV) 28 28 // - the multi-channel network controller (MNIC) 29 // - the multi-channel chained buffer dma controller (CHBUF) 29 30 // - the multi-channel tty controller (MTTY) 30 31 // - the frame buffer controller (FBUF) … … 249 250 #define MNIC_SIZE 0x0000080000 // 512 Kbytes (for 8 channels) 250 251 252 #define CHBUF_BASE 0x00B6000000 253 #define CHBUF_SIZE 0x0000004000 // For 16 Channels 254 251 255 // replicated segments : address is incremented by a cluster offset 252 256 // offset = cluster(x,y) << (address_width-x_width-y_width); … … 274 278 #define MNIC_TGTID 6 275 279 #define BROM_TGTID 7 280 #define CHBUF_TGTID 8 276 281 277 282 ///////////////////////////////// … … 499 504 maptabd.add(Segment("seg_mnic", MNIC_BASE, MNIC_SIZE, 500 505 IntTab(cluster(x,y),MNIC_TGTID), false)); 506 maptabd.add(Segment("seg_chbuf", CHBUF_BASE, CHBUF_SIZE, 507 IntTab(cluster(x,y),CHBUF_TGTID), false)); 501 508 maptabd.add(Segment("seg_brom", BROM_BASE, BROM_SIZE, 502 509 IntTab(cluster(x,y),BROM_TGTID), true)); … … 630 637 BROM_TGTID, 631 638 MNIC_TGTID, 639 CHBUF_TGTID, 632 640 BDEV_TGTID, 633 641 MEMC_WAYS, -
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd
r468 r475 67 67 cell_size = parameter.Reference('vci_data_width_int')), 68 68 69 Uses('caba:vci_chbuf_dma', 70 cell_size = parameter.Reference('vci_data_width_int')), 71 69 72 Uses('caba:vci_block_device_tsar', 70 73 cell_size = parameter.Reference('vci_data_width_int')), -
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h
r468 r475 29 29 #include "vci_multi_tty.h" 30 30 #include "vci_multi_nic.h" 31 #include "vci_chbuf_dma.h" 31 32 #include "vci_block_device_tsar.h" 32 33 #include "vci_framebuffer.h" … … 62 63 sc_signal<bool> signal_irq_mnic_rx[8]; // unused 63 64 sc_signal<bool> signal_irq_mnic_tx[8]; // unused 65 sc_signal<bool> signal_irq_chbuf[8]; // unused 64 66 sc_signal<bool> signal_irq_bdev; 65 67 … … 80 82 VciSignals<vci_param_int> signal_vci_ini_mdma; 81 83 VciSignals<vci_param_int> signal_vci_ini_bdev; 84 VciSignals<vci_param_int> signal_vci_ini_chbuf; 82 85 83 86 VciSignals<vci_param_int> signal_vci_tgt_memc; … … 89 92 VciSignals<vci_param_int> signal_vci_tgt_fbuf; 90 93 VciSignals<vci_param_int> signal_vci_tgt_mnic; 94 VciSignals<vci_param_int> signal_vci_tgt_chbuf; 91 95 92 96 // Direct DSPIN signals to local crossbars … … 97 101 DspinSignals<dspin_cmd_width> signal_dspin_cmd_bdev_i; 98 102 DspinSignals<dspin_rsp_width> signal_dspin_rsp_bdev_i; 103 DspinSignals<dspin_cmd_width> signal_dspin_cmd_chbuf_i; 104 DspinSignals<dspin_rsp_width> signal_dspin_rsp_chbuf_i; 99 105 100 106 DspinSignals<dspin_cmd_width> signal_dspin_cmd_memc_t; … … 114 120 DspinSignals<dspin_cmd_width> signal_dspin_cmd_mnic_t; 115 121 DspinSignals<dspin_rsp_width> signal_dspin_rsp_mnic_t; 122 DspinSignals<dspin_cmd_width> signal_dspin_cmd_chbuf_t; 123 DspinSignals<dspin_rsp_width> signal_dspin_rsp_chbuf_t; 116 124 117 125 // Coherence DSPIN signals to local crossbar … … 187 195 dspin_cmd_width, 188 196 dspin_rsp_width>* wt_mnic; 197 198 VciChbufDma<vci_param_int>* chbuf; 199 200 VciDspinTargetWrapper<vci_param_int, 201 dspin_cmd_width, 202 dspin_rsp_width>* wt_chbuf; 203 204 VciDspinInitiatorWrapper<vci_param_int, 205 dspin_cmd_width, 206 dspin_rsp_width>* wi_chbuf; 189 207 190 208 VciBlockDeviceTsar<vci_param_int>* bdev; … … 226 244 size_t tgtid_brom, 227 245 size_t tgtid_mnic, 246 size_t tgtid_chbuf, 228 247 size_t tgtid_bdev, 229 248 size_t memc_ways, -
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
r468 r475 57 57 size_t tgtid_brom, 58 58 size_t tgtid_mnic, 59 size_t tgtid_chbuf, 59 60 size_t tgtid_bdev, 60 61 size_t memc_ways, … … 214 215 if ( io ) 215 216 { 216 nb_direct_initiators = nb_procs + 2;217 nb_direct_targets = 8;217 nb_direct_initiators = nb_procs + 3; 218 nb_direct_targets = 9; 218 219 } 219 220 … … 350 351 351 352 ///////////////////////////////////////////// 353 int mac = 0xBEEF0000; 352 354 mnic = new VciMultiNic<vci_param_int>( 353 355 "mnic", … … 357 359 nic_rx_name, 358 360 nic_tx_name, 359 0, // mac_4 address360 0 ); // mac_2 address361 mac, // mac_4 address 362 0xBABE ); // mac_2 address 361 363 362 364 wt_mnic = new VciDspinTargetWrapper<vci_param_int, … … 364 366 dspin_rsp_width>( 365 367 "wt_mnic", 368 x_width + y_width + l_width); 369 370 ///////////////////////////////////////////// 371 chbuf = new VciChbufDma<vci_param_int>( 372 "chbuf_dma", 373 mtd, 374 IntTab(cluster_id, nb_procs + 2), 375 IntTab(cluster_id, tgtid_chbuf), 376 64, 377 2 * nic_channels ); // Two chbuf dma channel by nic channel 378 379 wt_chbuf = new VciDspinTargetWrapper<vci_param_int, 380 dspin_cmd_width, 381 dspin_rsp_width>( 382 "wt_chbuf", 383 x_width + y_width + l_width); 384 385 wi_chbuf = new VciDspinInitiatorWrapper<vci_param_int, 386 dspin_cmd_width, 387 dspin_rsp_width>( 388 "wi_chbuf", 366 389 x_width + y_width + l_width); 367 390 … … 449 472 xbar_cmd_d->p_local_out[tgtid_fbuf] (signal_dspin_cmd_fbuf_t); 450 473 xbar_cmd_d->p_local_out[tgtid_mnic] (signal_dspin_cmd_mnic_t); 474 xbar_cmd_d->p_local_out[tgtid_chbuf] (signal_dspin_cmd_chbuf_t); 451 475 452 476 xbar_cmd_d->p_local_in[nb_procs+1] (signal_dspin_cmd_bdev_i); 477 xbar_cmd_d->p_local_in[nb_procs+2] (signal_dspin_cmd_chbuf_i); 453 478 } 454 479 … … 477 502 xbar_rsp_d->p_local_in[tgtid_fbuf] (signal_dspin_rsp_fbuf_t); 478 503 xbar_rsp_d->p_local_in[tgtid_mnic] (signal_dspin_rsp_mnic_t); 504 xbar_rsp_d->p_local_in[tgtid_chbuf] (signal_dspin_rsp_chbuf_t); 479 505 480 506 xbar_rsp_d->p_local_out[nb_procs+1] (signal_dspin_rsp_bdev_i); 507 xbar_rsp_d->p_local_out[nb_procs+2] (signal_dspin_rsp_chbuf_i); 481 508 } 482 509 … … 686 713 std::cout << " - MNIC connected" << std::endl; 687 714 715 // CHBUF 716 chbuf->p_clk (this->p_clk); 717 chbuf->p_resetn (this->p_resetn); 718 chbuf->p_vci_target (signal_vci_tgt_chbuf); 719 chbuf->p_vci_initiator (signal_vci_ini_chbuf); 720 for ( size_t i=0 ; i < nic_channels * 2 ; i++ ) 721 { 722 chbuf->p_irq[i] (signal_irq_chbuf[i]); 723 } 724 725 // wrapper tgt CHBUF 726 wt_chbuf->p_clk (this->p_clk); 727 wt_chbuf->p_resetn (this->p_resetn); 728 wt_chbuf->p_dspin_cmd (signal_dspin_cmd_chbuf_t); 729 wt_chbuf->p_dspin_rsp (signal_dspin_rsp_chbuf_t); 730 wt_chbuf->p_vci (signal_vci_tgt_chbuf); 731 732 // wrapper ini CHBUF 733 wi_chbuf->p_clk (this->p_clk); 734 wi_chbuf->p_resetn (this->p_resetn); 735 wi_chbuf->p_dspin_cmd (signal_dspin_cmd_chbuf_i); 736 wi_chbuf->p_dspin_rsp (signal_dspin_rsp_chbuf_i); 737 wi_chbuf->p_vci (signal_vci_ini_chbuf); 738 739 std::cout << " - CHBUF connected" << std::endl; 740 688 741 // BROM 689 742 brom->p_clk (this->p_clk);
Note: See TracChangeset
for help on using the changeset viewer.