uisrc 发表于 2016-6-29 09:58:34

AXI4总线 SLAVE部分 的 用户段 谁来解释一下呢?

        // ------------------------------------------
        // -- Example code to access user logic memory region
        // ------------------------------------------

        generate
          if (USER_NUM_MEM >= 1)
          begin
              assign mem_select= 1;
              assign mem_address = (axi_arv_arr_flag? axi_araddr:(axi_awv_awr_flag? axi_awaddr:0));
          end
        endgenerate
             
        // implement Block RAM(s)
        generate
          for(i=0; i<= USER_NUM_MEM-1; i=i+1)
          begin:BRAM_GEN
              wire mem_rden;
              wire mem_wren;
       
              assign mem_wren = axi_wready && S_AXI_WVALID ;
       
              assign mem_rden = axi_arv_arr_flag ; //& ~axi_rvalid
             
              for(mem_byte_index=0; mem_byte_index<= (C_S_AXI_DATA_WIDTH/8-1); mem_byte_index=mem_byte_index+1)
              begin:BYTE_BRAM_GEN
                wire data_in ;
                wire data_out;
                reg byte_ram ;
                integerj;
             
                //assigning 8 bit data
                assign data_in= S_AXI_WDATA[(mem_byte_index*8+7) -: 8];
                assign data_out = byte_ram;
             
                always @( posedge S_AXI_ACLK )
                begin
                if (mem_wren && S_AXI_WSTRB)
                    begin
                      byte_ram <= data_in;
                    end   
                end   
             
                always @( posedge S_AXI_ACLK )
                begin
                if (mem_rden)
                    begin
                      mem_data_out[(mem_byte_index*8+7) -: 8] <= data_out;
                    end   
                end   
                      
          end
          end      
        endgenerate


車欠 发表于 2016-11-7 08:46:43

{:1_153:}
页: [1]
查看完整版本: AXI4总线 SLAVE部分 的 用户段 谁来解释一下呢?