Changeset 26 in XOpenSparcT1 for trunk


Ignore:
Timestamp:
04/04/11 11:58:11 (14 years ago)
Author:
pntsvt00
Message:

checkpoint: baco con store consecutivi

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/T1-CPU/exu/sparc_exu.v

    r6 r26  
    595595assign syndrome[3]=ifu_exu_ren3_s_d && (irf_byp_rs3h_data_d_l_ref!=irf_byp_rs3h_data_d_l_fpga); 
    596596 
    597 assign ILA_DATA[1:0]=ifu_exu_tid_s2; 
    598 assign ILA_DATA[6:2]=ifu_exu_rs1_s; 
    599 assign ILA_DATA[11:7]=ifu_exu_rs2_s; 
    600 assign ILA_DATA[16:12]=ifu_exu_rs3_s; 
    601 assign ILA_DATA[17]=ifu_exu_ren1_s; 
    602 assign ILA_DATA[18]=ifu_exu_ren2_s; 
    603 assign ILA_DATA[19]=ifu_exu_ren3_s; 
    604 assign ILA_DATA[20]=ecl_irf_wen_w; 
    605 assign ILA_DATA[21]=ecl_irf_wen_w2; 
    606 assign ILA_DATA[26:22]=ecl_irf_rd_m_d; 
    607 assign ILA_DATA[31:27]=ecl_irf_rd_g_d; 
    608 assign ILA_DATA[103:32]=byp_irf_rd_data_w; 
    609 assign ILA_DATA[175:104]=byp_irf_rd_data_w2; 
    610 assign ILA_DATA[177:176]=ecl_irf_tid_m; 
    611 assign ILA_DATA[179:178]=ecl_irf_tid_g; 
    612 assign ILA_DATA[182:180]=rml_irf_old_lo_cwp_e; 
    613 assign ILA_DATA[185:183]=rml_irf_new_lo_cwp_e; 
    614 assign ILA_DATA[187:186]=rml_irf_old_e_cwp_e; 
    615 assign ILA_DATA[189:188]=rml_irf_new_e_cwp_e; 
    616 assign ILA_DATA[190]=rml_irf_swap_even_e; 
    617 assign ILA_DATA[191]=rml_irf_swap_odd_e; 
    618 assign ILA_DATA[192]=rml_irf_swap_local_e; 
    619 assign ILA_DATA[193]=rml_irf_kill_restore_w; 
    620 assign ILA_DATA[195:194]=rml_irf_cwpswap_tid_e; 
    621 assign ILA_DATA[197:196]=rml_irf_old_agp; 
    622 assign ILA_DATA[199:198]=rml_irf_new_agp; 
    623 assign ILA_DATA[200]=rml_irf_swap_global; 
    624 assign ILA_DATA[202:201]=rml_irf_global_tid; 
    625 assign ILA_DATA[274:203]=irf_byp_rs1_data_d_l_ref; 
    626 assign ILA_DATA[346:275]=irf_byp_rs2_data_d_l_ref; 
    627 assign ILA_DATA[418:347]=irf_byp_rs3_data_d_l_ref; 
    628 assign ILA_DATA[450:419]=irf_byp_rs3h_data_d_l_ref; 
    629 assign ILA_DATA[522:451]=irf_byp_rs1_data_d_l_fpga; 
    630 assign ILA_DATA[594:523]=irf_byp_rs2_data_d_l_fpga; 
    631 assign ILA_DATA[666:595]=irf_byp_rs3_data_d_l_fpga; 
    632 assign ILA_DATA[698:667]=irf_byp_rs3h_data_d_l_fpga; 
    633 assign ILA_DATA[702:699]=syndrome;// && read_known0; 
    634 assign ILA_DATA[705:703]=current_cwp[2:0]; 
    635 assign ILA_DATA[706]=0; 
    636 assign ILA_DATA[737:707]={cnt[14:0],err_cnt}; 
    637 assign ILA_DATA[738]=rml_irf_swap_local_e && (current_window!=rml_irf_old_lo_cwp_e); 
     597//assign ILA_DATA[1:0]=ifu_exu_tid_s2; 
     598//assign ILA_DATA[6:2]=ifu_exu_rs1_s; 
     599//assign ILA_DATA[11:7]=ifu_exu_rs2_s; 
     600//assign ILA_DATA[16:12]=ifu_exu_rs3_s; 
     601//assign ILA_DATA[17]=ifu_exu_ren1_s; 
     602//assign ILA_DATA[18]=ifu_exu_ren2_s; 
     603//assign ILA_DATA[19]=ifu_exu_ren3_s; 
     604//assign ILA_DATA[20]=ecl_irf_wen_w; 
     605//assign ILA_DATA[21]=ecl_irf_wen_w2; 
     606//assign ILA_DATA[26:22]=ecl_irf_rd_m_d; 
     607//assign ILA_DATA[31:27]=ecl_irf_rd_g_d; 
     608//assign ILA_DATA[103:32]=byp_irf_rd_data_w; 
     609//assign ILA_DATA[175:104]=byp_irf_rd_data_w2; 
     610//assign ILA_DATA[177:176]=ecl_irf_tid_m; 
     611//assign ILA_DATA[179:178]=ecl_irf_tid_g; 
     612//assign ILA_DATA[182:180]=rml_irf_old_lo_cwp_e; 
     613//assign ILA_DATA[185:183]=rml_irf_new_lo_cwp_e; 
     614//assign ILA_DATA[187:186]=rml_irf_old_e_cwp_e; 
     615//assign ILA_DATA[189:188]=rml_irf_new_e_cwp_e; 
     616//assign ILA_DATA[190]=rml_irf_swap_even_e; 
     617//assign ILA_DATA[191]=rml_irf_swap_odd_e; 
     618//assign ILA_DATA[192]=rml_irf_swap_local_e; 
     619//assign ILA_DATA[193]=rml_irf_kill_restore_w; 
     620//assign ILA_DATA[195:194]=rml_irf_cwpswap_tid_e; 
     621//assign ILA_DATA[197:196]=rml_irf_old_agp; 
     622//assign ILA_DATA[199:198]=rml_irf_new_agp; 
     623//assign ILA_DATA[200]=rml_irf_swap_global; 
     624//assign ILA_DATA[202:201]=rml_irf_global_tid; 
     625//assign ILA_DATA[274:203]=irf_byp_rs1_data_d_l_ref; 
     626//assign ILA_DATA[346:275]=irf_byp_rs2_data_d_l_ref; 
     627//assign ILA_DATA[418:347]=irf_byp_rs3_data_d_l_ref; 
     628//assign ILA_DATA[450:419]=irf_byp_rs3h_data_d_l_ref; 
     629//assign ILA_DATA[522:451]=irf_byp_rs1_data_d_l_fpga; 
     630//assign ILA_DATA[594:523]=irf_byp_rs2_data_d_l_fpga; 
     631//assign ILA_DATA[666:595]=irf_byp_rs3_data_d_l_fpga; 
     632//assign ILA_DATA[698:667]=irf_byp_rs3h_data_d_l_fpga; 
     633//assign ILA_DATA[702:699]=syndrome;// && read_known0; 
     634//assign ILA_DATA[705:703]=current_cwp[2:0]; 
     635//assign ILA_DATA[706]=0; 
     636//assign ILA_DATA[737:707]={cnt[14:0],err_cnt}; 
     637//assign ILA_DATA[738]=rml_irf_swap_local_e && (current_window!=rml_irf_old_lo_cwp_e); 
    638638//assign ILA_DATA[699]=(irf_byp_rs1_data_d_l_fpga!=irf_byp_rs1_data_d_l_fpga_d) && (irf_byp_rs1_data_d_l==irf_byp_rs1_data_d_l_d); 
    639639//assign ILA_DATA[700]=(irf_byp_rs2_data_d_l_fpga!=irf_byp_rs2_data_d_l_fpga_d) && (irf_byp_rs2_data_d_l==irf_byp_rs2_data_d_l_d); 
     
    645645   bw_r_irf_fpga1 irf( 
    646646                 
    647                 .current_cwp(current_cwp), 
     647                .current_cwp(current_cwp[11:0]), 
    648648                .so                     (short_scan0_1), 
    649649                .si                     (short_si0), 
  • trunk/T1-CPU/exu/sparc_exu_alu.v

    r6 r26  
    106106 
    107107   // Zero comparison for exu_ifu_regz_e 
    108    sparc_exu_aluzcmp64 regzcmp(.in(byp_alu_rcc_data_e[63:0]), .zero64(exu_ifu_regz_e)); 
     108   sparc_exu_aluzcmp64 regzcmp(.in(byp_alu_rcc_data_e[63:0]), .zero64(exu_ifu_regz_e),.zero32()); 
    109109   assign     exu_ifu_regn_e = byp_alu_rcc_data_e[63]; 
    110110 
  • trunk/T1-common/srams/bw_r_irf.v

    r22 r26  
    13621362          new_agp_d2[1:0] <= new_agp_d1[1:0]; 
    13631363        end 
    1364 /* 
     1364 
     1365// synthesis traslate off 
     1366`ifdef DEBUG 
     1367 
    13651368        always @(posedge clk) begin 
    13661369          if (wr_en) begin 
     
    13851388          end 
    13861389        end 
    1387 */ 
     1390 
     1391// synthesis traslate on 
     1392`endif 
     1393 
    13881394endmodule 
    13891395 
  • trunk/WB/wb_conbus_top.v

    r22 r26  
    137137parameter               s0_addr = 1'b0; // slave 0 address 
    138138 
    139 //address for a 32MB flash from 0x800000ff_f0800000 to 0x800000ff_f0ffffff  
     139//PCX request on 800000ff_f0000020 
     140//address for a 32MB flash from 0x800000ff_f0000000 to 0x800000ff_f07fffff  
    140141//Check address_w  
    141142// 32 MB --> 8 MW X32 bits --> 2^23 --> addr_w=64-23=41  
  • trunk/Xilinx/cachedir.v

    r17 r26  
    3737always @(posedge clock) 
    3838     begin 
    39                 if (enable) 
     39        if (enable) 
    4040         if (wren_a) 
    4141            mem1[address_a] <= data_a; 
     
    4646always @(posedge clock) 
    4747     begin 
    48            if (enable) 
     48        if (enable) 
    4949         if (wren_b) 
    5050            mem2[address_b] <= data_b; 
  • trunk/os2wb/os2wb.v

    r23 r26  
    2424     
    2525    // Core interface  
    26     input      [  4:0] pcx_req, 
     26    input      [  4:0] pcx_req,  
    2727    input              pcx_atom, 
    28     input      [123:0] pcx_data, 
     28    input      [123:0] pcx_data,  
     29     
    2930    output reg [  4:0] pcx_grant, 
    3031    output reg         cpx_ready, 
     
    235236         `TEST_DRAM_1: 
    236237            begin 
    237                $display("INFO: OS2WB: TEST_DRAM_1"); 
     238               //$display("INFO: OS2WB: TEST_DRAM_1"); 
    238239               wb_cycle<=1; 
    239240               wb_strobe<=1; 
     
    245246            if(wb_ack) 
    246247               begin 
    247                $display("INFO: OS2WB: TEST_DRAM_2 at time %d with wb_addr=%x",$time,wb_addr); 
     248               //$display("INFO: OS2WB: TEST_DRAM_2 at time %d with wb_addr=%x",$time,wb_addr); 
    248249                  wb_strobe<=0; 
    249250                  if(wb_addr<`MEM_SIZE-8) 
     
    265266         `TEST_DRAM_3: 
    266267            begin 
    267                $display("INFO: OS2WB: TEST_DRAM_3"); 
     268               //$display("INFO: OS2WB: TEST_DRAM_3"); 
    268269               wb_cycle<=1; 
    269270               wb_strobe<=1; 
     
    274275            if(wb_ack) 
    275276               begin 
    276                   $display("INFO: OS2WB: TEST_DRAM_4 at %t",$time); 
     277                 // $display("INFO: OS2WB: TEST_DRAM_4 at %t",$time); 
    277278                  wb_strobe<=0; 
    278279                  if(wb_addr<`MEM_SIZE-8) 
     
    284285                        //   end 
    285286                        //else  
    286                         //      $display("INFO: OS2WB: TEST_DRAM_4 error in read addres %x at %t",wb_addr,$time); 
    287                               $display("expected %x, obtained  %x",{wb_addr[31:0],wb_addr[31:0]},wb_data_i); 
     287                        //   $display("expected %x, obtained  %x",{wb_addr[31:0],wb_addr[31:0]},wb_data_i); 
    288288                     end 
    289289                  else 
    290290                     begin 
    291                         $display("INFO: OS2WB: INIT_DRAM at %t",$time); 
     291                        //$display("INFO: OS2WB: INIT_DRAM at %t",$time); 
    292292                        state<=`INIT_DRAM_1; 
    293293                        wb_cycle<=0; 
     
    323323                  else 
    324324                     begin 
    325                         $display("INFO: OS2WB: WAKEUP_DRAM at %t",$time); 
     325                        //$display("INFO: OS2WB: WAKEUP_DRAM at %t",$time); 
    326326                        state<=`WAKEUP; 
    327327                        wb_cycle<=0; 
     
    393393         `PCX_REQ_2ND: 
    394394            begin 
     395               $display("INFO: OS2WB: GOT_PCX_REQ_2ND"); 
    395396               pcx_packet_2nd<=pcx_packet; //Latch second packet for atomics 
    396397               if(`DEBUGGING) 
     
    407408               if(pcx_packet_d[111]==1'b1) // Invalidate request 
    408409                  begin 
     410                     $display("INFO: OS2WB: INVALIDATE"); 
    409411                     cpx_packet_1[144]<=1;     // Valid 
    410412                     cpx_packet_1[143:140]<=4'b0100; // Invalidate reply is Store ACK 
     
    423425                  if(pcx_packet_d[122:118]!=5'b01001) // Not INT 
    424426                     begin 
     427                        $display("INFO: OS2WB: PCX_REQ_STEP1"); 
    425428                        wb_cycle<=1'b1; 
    426429                        wb_strobe<=1'b1; 
    427430                        if((pcx_packet_d[122:118]==5'b00000 && !pcx_req_d[4]) || pcx_packet_d[122:118]==5'b00010 || pcx_packet_d[122:118]==5'b00100 || pcx_packet_d[122:118]==5'b00110) 
     431                           begin  
     432                            $display("INFO: OS2WB: load/streadload ecc"); 
    428433                           wb_addr<={pcx_req_d,19'b0,pcx_packet_d[103:64+4],4'b0000}; //DRAM load/streamload, CAS and SWAP always use DRAM and load first  
    429                         else 
     434                           end  
     435                        else 
    430436                           if(pcx_packet_d[122:118]==5'b10000 && !pcx_req_d[4]) 
     437                           begin 
     438                              $display("INFO: OS2WB: ifill"); 
    431439                              wb_addr<={pcx_req_d,19'b0,pcx_packet_d[103:64+5],5'b00000}; //DRAM ifill 
    432                            else 
     440                           end 
     441                           else 
    433442                              if(pcx_packet_d[64+39:64+28]==12'hFFF && pcx_packet_d[64+27:64+24]!=4'b0) // flash remap FFF1->FFF8 
    434443                                 wb_addr<={pcx_req_d,19'b0,pcx_packet_d[103:64+3]+37'h0000E00000,3'b000}; 
     
    446455                  5'b00000://Load 
    447456                     begin 
     457                        $display("INFO: OS2WB: PCX_REQ_STEP1, Load"); 
    448458                        wb_we<=0; 
    449459                        if(!pcx_packet_d[110] && !pcx_packet_d[117]) 
     
    492502                  5'b00001://Store 
    493503                     begin 
     504                        $display("INFO: OS2WB: PCX_REQ_STEP1, Store"); 
    494505                        wb_we<=1; 
    495506                        case({icache_hit,dcache0_hit}) 
     
    538549                  5'b00010://CAS 
    539550                     begin 
     551                        $display("INFO: OS2WB: PCX_REQ_STEP1, CAS"); 
    540552                        wb_we<=0; //Load first 
    541553                        case({icache_hit,dcache0_hit}) 
     
    555567                  5'b00100://STRLOAD 
    556568                     begin 
     569                        $display("INFO: OS2WB: PCX_REQ_STEP1, STRLOAD"); 
    557570                        wb_we<=0; 
    558571                        wb_sel<=8'b11111111; // Stream loads are always 128 bit 
     
    560573                  5'b00101://STRSTORE 
    561574                     begin 
     575                        $display("INFO: OS2WB: PCX_REQ_STEP1, STRSTORE"); 
    562576                        wb_we<=1; 
    563577                        case({icache_hit,dcache0_hit}) 
     
    606620                  5'b00110://SWAP/LDSTUB 
    607621                     begin 
     622                        $display("INFO: OS2WB: PCX_REQ_STEP1, SWAP/LDSTUB"); 
    608623                        case({icache_hit,dcache0_hit}) 
    609624                           8'b00000000:; 
     
    622637                     end 
    623638                  5'b01001://INT 
    624                      if(pcx_packet_d[117]) // Flush 
     639                     begin 
     640                        $display("INFO: OS2WB: PCX_REQ_STEP1, INT"); 
     641                        if(pcx_packet_d[117]) // Flush 
    625642                        cpx_packet_1<={9'h171,pcx_packet_d[113:112],11'h0,pcx_packet_d[64+5:64+4],3'b0,pcx_packet_d[64+11:64+6],30'h0,pcx_packet_d[17:0],46'b0,pcx_packet_d[17:0]}; //FLUSH instruction answer 
    626                      else // Tread-to-thread interrupt 
     643                        else // Tread-to-thread interrupt 
    627644                        cpx_packet_1<={9'h170,pcx_packet_d[113:112],52'h0,pcx_packet_d[17:0],46'h0,pcx_packet_d[17:0]};  
    628                   //5'b01010: FP1 - processed by separate state 
    629                   //5'b01011: FP2 - processed by separate state 
    630                   //5'b01101: FWDREQ - not implemented 
    631                   //5'b01110: FWDREPL - not implemented 
    632                   5'b10000://IFILL 
    633                      begin 
     645                                //5'b01010: FP1 - processed by separate state 
     646                                //5'b01011: FP2 - processed by separate state 
     647                                //5'b01101: FWDREQ - not implemented 
     648                                //5'b01110: FWDREPL - not implemented 
     649                     end 
     650                  5'b10000://IFILL 
     651                     begin 
     652                        $display("INFO: OS2WB: PCX_REQ_STEP1, IFILL"); 
    634653                        wb_we<=0; 
    635654                        if(!pcx_req_d[4]) // not I/O access 
     
    668687               if(wb_ack) 
    669688                  begin 
     689                     $display("INFO: OS2WB: PCX_REQ_STEP1_1 wb_addr = %x",wb_addr); 
    670690                     cpx_packet_1[144]<=1;     // Valid 
    671                      cpx_packet_1[139]<=(pcx_packet_d[122:118]==5'b00000) || (pcx_packet_d[122:118]==5'b10000) ? 1:0;     // L2 always miss on load and ifill 
     691                     cpx_packet_1[139]<=(pcx_packet_d[122:118]==5'b00000) || (pcx_packet_d[122:118]==5'b10000) ? 1:0; // L2 always miss on load and ifill 
    672692                     cpx_packet_1[138:137]<=0; // Error 
    673693                     cpx_packet_1[136]<=pcx_packet_d[117] || (pcx_packet_d[122:118]==5'b00001) ? 1:0; // Non-cacheble is set on store too 
     
    821841                        5'b10000://IFILL 
    822842                           begin 
     843                              $display("INFO: OS2WB: PCX_REQ_STEP1_1, IFILL, wb_addr = %x wb_data_i= %x",wb_addr, wb_data_i); 
     844                              $display("INFO: OS2WB: PCX_REQ_STEP1_1, IFILL, cpx_packet_1 = %x %x",wb_data_i,wb_data_i); 
    823845                              cpx_packet_1[143:140]<=4'b0001; // Type 
    824846                              cpx_packet_2[143:140]<=4'b0001; // Type 
     
    10731095         `CPX_READY_1: 
    10741096            begin 
     1097               $display("INFO: OS2WB: CPX_READY_1"); 
    10751098               cpx_ready<=1; 
    10761099               cpx_packet<=cpx_packet_1; 
     
    10871110         `CPX_READY_2: 
    10881111            begin 
     1112               $display("INFO: OS2WB: CPX_READY_2"); 
    10891113               cpx_ready<=1; 
    10901114               cpx_packet<=cpx_packet_2; 
     
    10931117         `PCX_UNKNOWN: 
    10941118            begin 
     1119               $display("INFO: OS2WB: PCX_UNKNOWN"); 
    10951120               wb_sel<=8'b10100101; // Illegal eye-catching value for debugging 
    10961121               state<=`PCX_IDLE; 
     
    12501275   .enable(dir_en), 
    12511276   .wren_a(icache0_alloc || icache0_dealloc || icache_inval_all || cache_init), 
    1252    .address_a({2'b0,icache_index}), 
     1277   .address_a({2'b00,icache_index}), 
    12531278   .data_a(icache_data), 
    12541279   .q_a(icache0_do), 
    12551280    
    12561281   .wren_b(icache1_alloc || icache1_dealloc || icache_inval_all || cache_init), 
    1257    .address_b({2'b0,icache_index}), 
     1282   .address_b({2'b01,icache_index}), 
    12581283   .data_b(icache_data), 
    12591284   .q_b(icache1_do)  
     
    12641289   .enable(dir_en), 
    12651290   .wren_a(icache2_alloc || icache2_dealloc || icache_inval_all || cache_init), 
    1266    .address_a({2'b0,icache_index}), 
     1291   .address_a({2'b00,icache_index}), 
    12671292   .data_a(icache_data), 
    12681293   .q_a(icache2_do), 
    12691294    
    12701295   .wren_b(icache3_alloc || icache3_dealloc || icache_inval_all || cache_init), 
    1271    .address_b({2'b0,icache_index}), 
     1296   .address_b({2'b01,icache_index}), 
    12721297   .data_b(icache_data), 
    12731298   .q_b(icache3_do)  
  • trunk/sim/flash.v

    r21 r26  
    4242    $readmemh(memfilename, mem); 
    4343    $display("INFO: MEMH %m: Memory initialization completed"); 
     44    //for(i=0; i<=1023; i=i+1) $display("mem_i = %x",mem[i]) ; 
    4445  end 
    4546`endif 
    4647 
    4748assign flash_data = !flash_oen ? data :16'hzzzz; 
    48   
    4949 
    5050always @(posedge flash_clk) begin 
    5151    // Read cycle 
    5252 if (!flash_oen & flash_wen)  
    53                 data <= mem[flash_addr]; 
     53        begin 
     54                //$display("INFO: flash: read from address %x data %x",flash_addr, mem[flash_addr]); 
     55                data <= mem[flash_addr]; 
     56        end 
    5457    else // Write cycle 
    55       if (flash_oen & !flash_wen) mem[flash_addr] <= flash_data; 
    56 end 
     58      if (flash_oen & !flash_wen)  
     59                $display("INFO: flash: write to address %x data %x (now disabled)",flash_addr,flash_data); 
     60                //mem[flash_addr] <= flash_data; FIXME: errouneous spourious writes in flash 
     61      end 
    5762endmodule 
    5863    
  • trunk/sim/simula.do

    r22 r26  
    11#start with: vsim -c -do simula.do 
    22 
     3set DEFINE +define+DEBUG+FPGA_SYN 
     4#+FPGA_NEW_IRF 
     5set INCLUDEDIR +incdir+../T1-common/include/ 
    36vlib work 
    47 
     
    710#Compile all modules# 
    811 
    9 vlog +incdir+../T1-common/include/ ../T1-common/common/*.v 
    10 vlog +incdir+../T1-common/include/ ../Top/*.v 
    11 vlog +incdir+../OC-UART +incdir+../T1-common/include/ ../OC-UART/*.v 
    12 vlog +incdir+../T1-common/include/ ../NOR-flash/*.v 
    13 vlog +incdir+../T1-common/include/ ../os2wb/*.v 
    14 vlog +incdir+../T1-common/include/ ../T1-common/m1/*.V 
    15 vlog +define+FPGA_SYN +incdir+../T1-common/include/ ../T1-common/srams/*.v 
    16 vlog +incdir+../T1-common/include/ ../T1-common/u1/*.V 
    17 vlog +incdir+../T1-common/include/ ../T1-FPU/*.v 
    18 vlog +incdir+../T1-common/include/ +incdir+../WB ../WB/*.v 
    19 vlog +incdir+../T1-common/include/ ../WB2ALTDDR3/*.v 
    20 vlog +incdir+../T1-common/include/ ../Xilinx/*.v 
    21 vlog +incdir+../T1-common/include/ ../T1-CPU/exu/*.v 
    22 vlog +incdir+../T1-common/include/ ../T1-CPU/ffu/*.v 
    23 vlog +incdir+../T1-common/include/ ../T1-CPU/ifu/*.v 
    24 vlog +incdir+../T1-common/include/ ../T1-CPU/lsu/*.v 
    25 vlog +incdir+../T1-common/include/ ../T1-CPU/mul/*.v 
    26 vlog +incdir+../T1-common/include/ ../T1-CPU/rtl/*.v 
    27 vlog +incdir+../T1-common/include/ ../T1-CPU/spu/*.v 
    28 vlog +incdir+../T1-common/include/ ../T1-CPU/tlu/*.v 
     12vlog  $DEFINE $INCLUDEDIR ../T1-common/common/*.v 
     13vlog  $DEFINE $INCLUDEDIR ../Top/*.v 
     14vlog  $DEFINE +incdir+../OC-UART $INCLUDEDIR ../OC-UART/*.v 
     15vlog  $DEFINE $INCLUDEDIR ../NOR-flash/*.v 
     16vlog  $DEFINE $INCLUDEDIR ../os2wb/*.v 
     17vlog  $DEFINE $INCLUDEDIR ../T1-common/m1/*.V 
     18vlog  $DEFINE $INCLUDEDIR ../T1-common/srams/*.v 
     19vlog  $DEFINE $INCLUDEDIR ../T1-common/u1/*.V 
     20vlog  $DEFINE $INCLUDEDIR/ ../T1-FPU/*.v 
     21vlog  $DEFINE $INCLUDEDIR +incdir+../WB ../WB/*.v 
     22vlog  $DEFINE $INCLUDEDIR ../WB2ALTDDR3/*.v 
     23vlog  $DEFINE $INCLUDEDIR ../Xilinx/*.v 
     24vlog  $DEFINE $INCLUDEDIR ../T1-CPU/exu/*.v 
     25vlog  $DEFINE $INCLUDEDIR ../T1-CPU/ffu/*.v 
     26vlog  $DEFINE $INCLUDEDIR ../T1-CPU/ifu/*.v 
     27vlog  $DEFINE $INCLUDEDIR ../T1-CPU/lsu/*.v 
     28vlog  $DEFINE $INCLUDEDIR ../T1-CPU/mul/*.v 
     29vlog  $DEFINE $INCLUDEDIR ../T1-CPU/rtl/*.v 
     30vlog  $DEFINE $INCLUDEDIR ../T1-CPU/spu/*.v 
     31vlog  $DEFINE $INCLUDEDIR ../T1-CPU/tlu/*.v 
    2932 
    3033#Compile files in sim folder (excluding model parameter file)# 
  • trunk/sw/hello.c

    r20 r26  
    22  
    33int main() { 
     4  asm("mov 0x00, %fp \n"); 
    45  register unsigned long* address; 
    56  address = (unsigned long*)0x0000CAC0; 
  • trunk/sw/hello.dump

    r19 r26  
    66 
    770000000000000000 <main>: 
    8    0:   9d e3 bf 40     save  %sp, -192, %sp 
    9    4:   82 10 23 2b     mov  0x32b, %g1 
    10    8:   83 28 70 06     sllx  %g1, 6, %g1 
    11    c:   c2 77 a7 f7     stx  %g1, [ %fp + 0x7f7 ] 
    12   10:   c2 5f a7 f7     ldx  [ %fp + 0x7f7 ], %g1 
    13   14:   05 30 68 30     sethi  %hi(0xc1a0c000), %g2 
    14   18:   84 10 a1 a0     or  %g2, 0x1a0, %g2     ! c1a0c1a0 <main+0xc1a0c1a0> 
    15   1c:   c4 70 40 00     stx  %g2, [ %g1 ] 
    16   20:   82 10 23 2b     mov  0x32b, %g1 
    17   24:   83 28 70 06     sllx  %g1, 6, %g1 
    18   28:   c2 77 a7 f7     stx  %g1, [ %fp + 0x7f7 ] 
    19   2c:   c2 5f a7 f7     ldx  [ %fp + 0x7f7 ], %g1 
    20   30:   05 3e ae 84     sethi  %hi(0xfaba1000), %g2 
    21   34:   84 10 a2 10     or  %g2, 0x210, %g2     ! faba1210 <main+0xfaba1210> 
    22   38:   c4 70 40 00     stx  %g2, [ %g1 ] 
    23   3c:   82 10 20 00     clr  %g1 
    24   40:   83 38 60 00     sra  %g1, 0, %g1 
    25   44:   b0 10 00 01     mov  %g1, %i0 
    26   48:   81 cf e0 08     rett  %i7 + 8 
    27   4c:   01 00 00 00     nop  
     8   4:   bc 10 20 00     clr  %fp 
     9   8:   82 10 23 2b     mov  0x32b, %g1 
     10   c:   a1 28 70 06     sllx  %g1, 6, %l0 
     11  10:   03 30 68 30     sethi  %hi(0xc1a0c000), %g1 
     12  14:   82 10 61 a0     or  %g1, 0x1a0, %g1     ! c1a0c1a0 <main+0xc1a0c1a0> 
     13  18:   c2 74 00 00     stx  %g1, [ %l0 ] 
     14  1c:   82 10 23 2b     mov  0x32b, %g1 
     15  20:   a1 28 70 06     sllx  %g1, 6, %l0 
     16  24:   03 3e ae 84     sethi  %hi(0xfaba1000), %g1 
     17  28:   82 10 62 10     or  %g1, 0x210, %g1     ! faba1210 <main+0xfaba1210> 
     18  2c:   c2 74 00 00     stx  %g1, [ %l0 ] 
     19  30:   82 10 20 00     clr  %g1 
     20  34:   83 38 60 00     sra  %g1, 0, %g1 
     21  38:   b0 10 00 01     mov  %g1, %i0 
     22  3c:   81 cf e0 08     rett  %i7 + 8 
     23  40:   01 00 00 00     nop  
  • trunk/tools/dump2hex.php

    r25 r26  
    66 
    77  // Discard first lines 
    8   for($i=0; $i<7; $i++) fgets($fp); 
     8  for($i=0; $i<8; $i++) fgets($fp); 
    99 
     10  // instruction start at address 10h 
     11  //echo "@ 10\n"; 
     12  echo "// inserisco 16 ff per partire da 10h e scrivo op4,op3,op2,op1 \n"; 
     13  echo "ffff\n"; 
     14  echo "ffff\n"; 
     15  echo "ffff\n"; 
     16  echo "ffff\n"; 
     17  echo "ffff\n"; 
     18  echo "ffff\n"; 
     19  echo "ffff\n"; 
     20  echo "ffff\n"; 
     21  echo "ffff\n"; 
     22  echo "ffff\n"; 
     23  echo "ffff\n"; 
     24  echo "ffff\n"; 
     25  echo "ffff\n"; 
     26  echo "ffff\n"; 
     27  echo "ffff\n"; 
     28  echo "ffff\n"; 
    1029  // Print only the opcodes to stdout 
    1130  while (!feof($fp)) { 
    1231    $line = fgets($fp); 
    13     /*$opcode = substr($line, 8, 8); 
    14     $caratteri = strlen($opcode); 
     32    $opcode1 = substr($line, 6, 2); 
     33    $opcode2 = substr($line, 9, 2); 
     34    $opcode3 = substr($line, 12, 2); 
     35    $opcode4 = substr($line, 15, 2); 
     36    $caratteri = strlen($opcode1); 
    1537    if($caratteri != 0){ 
    16         echo $opcode."\n"; 
    17     }*/ 
    18  
    19     $opcode = substr($line, 6, 2); 
    20     $opcode2 = substr($line, 9, 2); 
    21     $caratteri = strlen($opcode); 
    22     if($caratteri != 0){ 
    23         echo $opcode.$opcode2; 
     38        echo $opcode2.$opcode1; 
     39        //echo $opcode1.$opcode2; 
    2440        echo "\t //".$line; 
    25         $opcode = substr($line, 12, 2); 
    26         $opcode2 = substr($line, 15, 2); 
    27         echo $opcode.$opcode2."\n"; 
     41        echo $opcode4.$opcode3."\n"; 
     42        //echo $opcode3.$opcode4."\n"; 
    2843    } 
    2944    else{ 
Note: See TracChangeset for help on using the changeset viewer.