WO2020177283A1 - Axi2wb bus bridge implementation method and device, equipment and storage medium - Google Patents

Axi2wb bus bridge implementation method and device, equipment and storage medium Download PDF

Info

Publication number
WO2020177283A1
WO2020177283A1 PCT/CN2019/103674 CN2019103674W WO2020177283A1 WO 2020177283 A1 WO2020177283 A1 WO 2020177283A1 CN 2019103674 W CN2019103674 W CN 2019103674W WO 2020177283 A1 WO2020177283 A1 WO 2020177283A1
Authority
WO
WIPO (PCT)
Prior art keywords
axi
data
write
read
address
Prior art date
Application number
PCT/CN2019/103674
Other languages
French (fr)
Chinese (zh)
Inventor
于锦辉
Original Assignee
苏州浪潮智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏州浪潮智能科技有限公司 filed Critical 苏州浪潮智能科技有限公司
Publication of WO2020177283A1 publication Critical patent/WO2020177283A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Definitions

  • This application relates to the technical field of chip design, and in particular to an AXI2WB bus bridge implementation method, device, equipment and storage medium.
  • SoC System on Chip
  • SoC chips are generally composed of multiple IP modules, such as embedded CPUs, DSPs, various functional modules, storage modules, and external interface modules.
  • the master module and the slave module are connected by an on-chip bus to complete the transfer of control signals and data signals.
  • the most widely used SoC bus protocol is ARM's AMBA (Advanced Microcontroller Bus Architecture) bus protocol.
  • the AMBA bus protocol includes AXI (Advanced eXtensible Interface) and AHB (Advanced High-performance). Bus, advanced high-performance bus), APB (Advanced Peripheral Bus, advanced peripheral bus) and other bus protocols.
  • AXI bus protocol has the fastest transmission rate, but it is also the most complex. It is a high-performance, high-bandwidth, low-latency chip
  • the internal bus can meet the needs of ultra-high performance and complex SoC design.
  • the existing RISC-V SoC system is based on the existing open source RISC-V core verilog RTL code, and independently adds related peripherals to the MMIO (Memory-mapped I/O) interface.
  • MEMIO Memory I/O, storage I/O
  • DDR Double Data Rate, double rate
  • the RISC-V SoC system implementation environment is the xilinux FPGA development board.
  • the MMIO interface of the RISC-V SoC system uses the AXI bus protocol.
  • the peripheral interface needs to be encapsulated into the AXI protocol. Due to the large number of AXI bus protocol signals, when the number of peripherals is large, the interface of each peripheral needs to be encapsulated into an AXI interface, resulting in work The amount is large and the work efficiency is low.
  • the purpose of this application is to provide an AXI2WB bus bridge implementation method, device, equipment, and storage medium to implement the conversion from the AXI bus protocol to the WB (Wishbone) bus protocol.
  • An AXI2WB bus bridge implementation method including:
  • the multiple of the bit width of the AXI write data and the bit width of the WB write data determine the number of WB transmissions required for the current AXI write data
  • the AXI write address is converted to the WB write address of the WB write operation according to the AXI write address channel signal, and the AXI write data is converted into the AXI write data according to the AXI write data channel signal.
  • the WB write data of the second WB write operation is performed based on the WB write address and the WB write data; until the number of WB write operations reaches the number of WB transmissions required for the AXI write data.
  • the converting the AXI write address into the WB write address of the WB write operation according to the AXI write address channel signal includes:
  • wb_waddr awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
  • w_data_cnt is the number of valid data wdata transferred by the current AXI write address
  • w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata
  • addr_addend is the number of WB data bytes
  • awaddr_ff is the latched aligned AXI write Address
  • wb_waddr is the WB write address
  • data_width is the width of the AXI data byte.
  • the converting the AXI write data into the WB write data of the WB write operation according to the AXI write data channel signal includes:
  • wb_dat_o (wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
  • wb_dat_o is WB write data
  • wdata_ff is latched AXI write data.
  • the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, based on the WB read address and The WB reads data, and executes this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
  • the conversion of the AXI read address to the WB read address of the WB read operation according to the AXI read address channel signal includes:
  • wb_raddr araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
  • r_data_cnt is the number of effective data rdata that needs to be transferred at the current AXI read address
  • r_wb_transfer_cnt is the number of WB read operations completed under the current effective data rdata that needs to be transferred
  • addr_addend is the number of WB data bytes
  • araddr_ff is the latched alignment
  • AXI read address wb_raddr is the WB read address
  • data_width is the AXI data byte width.
  • the converting WB read data into AXI read data includes:
  • rdata wb_dat_i ⁇ (data_width*addr_addend*(r_wb_transfer_cnt-1));
  • wb_dat_i is WB read data.
  • An AXI2WB bus bridge realization device including:
  • the latch unit is used to align the AXI write address when monitoring the AXI write address channel signal is valid, and latch the AXI write address channel signal; when monitoring the AXI write data channel signal is valid, latch the AXI write data Channel signal
  • the adaptation unit is used to determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data;
  • the control unit is configured to convert the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal for each WB write operation, and convert the AXI write address according to the AXI write data channel signal
  • the write data is converted into the WB write data of the WB write operation, and the WB write operation is executed based on the WB write address and the WB write data; until the number of WB write operations reaches the WB transmission required by the AXI write data frequency.
  • the latch unit is also used to perform alignment processing on the AXI read address when monitoring that the AXI read address channel signal is valid, and latch the AXI read address channel signal;
  • the adaptation unit is further configured to determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
  • the control unit is also used to convert the AXI read address to the WB read address of the WB read operation, and convert the WB read data to AXI read data according to the AXI read address channel signal for each WB read operation, And based on the WB read address and the WB read data, perform this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
  • An AXI2WB bus bridge implementation device including:
  • Memory used to store computer programs
  • the processor is used to implement the steps of any one of the foregoing AXI2WB bus bridge implementation methods when executing the computer program.
  • a computer-readable storage medium having a computer program stored on the computer-readable storage medium, and when the computer program is executed by a processor, implements the steps of any one of the above-mentioned AXI2WB bus bridge implementation methods.
  • Figure 1 is a schematic diagram of the implementation structure of the AXI2WB bus bridge in an embodiment of the application
  • FIG. 2 is a schematic diagram of the AXI bus protocol reading channel in an embodiment of the application.
  • FIG. 3 is a schematic diagram of the AXI bus protocol writing channel in an embodiment of the application.
  • FIG. 5 is an implementation flowchart of an implementation method of an AXI2WB bus bridge in an embodiment of the application
  • Figure 6 is a schematic diagram of the AXI write address channel processing flow in an embodiment of the application.
  • Figure 7 is a schematic diagram of the AXI write data channel processing flow in an embodiment of the application.
  • FIG. 8 is a schematic diagram of a WB write operation processing flow in an embodiment of the application.
  • FIG. 9 is a schematic diagram of the AXI write response channel processing flow in an embodiment of the application.
  • FIG. 10 is a schematic diagram of the AXI read address channel processing flow in an embodiment of the application.
  • Figure 11 is a schematic diagram of the AXI read data channel processing flow in an embodiment of the application.
  • FIG. 12 is a schematic diagram of a WB read operation processing flow in an embodiment of the application.
  • FIG. 13 is a schematic structural diagram of an AXI2WB bus bridge implementation device in an embodiment of the application.
  • Fig. 14 is a schematic structural diagram of an AXI2WB bus bridge implementation device in an embodiment of the application.
  • the core of this application is to provide an implementation method of the AXI2WB bus bridge to realize the conversion from the AXI bus protocol to the WB (Wishbone, an on-chip bus) bus protocol, so that the AXI bus can mount related peripherals with the WB protocol interface.
  • WB Wired Asynchronous Receiver/Transmitter
  • GPIO General Purpose Input Output, universal input/output
  • AXI2WB bus bridge is used to connect AXI Convert the bus protocol to the WB bus protocol, and then mount low-speed peripherals that do not require high speed, such as peripherals such as GPIO and UART.
  • WB arbitrates WB_Arbiter to determine which peripheral is currently communicating, S is Slave, from Interface, M is Master, main interface, AXI2WB bus bridge can include address alignment module Addr_Align, bit width adaptation module Width_Adapt and flow control module Flow_Ctrl.
  • the AXI protocol is based on burst transmission, and defines 5 independent transmission channels: read address channel, read data channel, write address channel, write data channel, write response channel, as shown in Figure 2 and Figure 3 respectively .
  • AXI is a data transmission protocol based on the VALID/READY handshake mechanism.
  • the transmission source uses VALID to indicate that the address/control signal and data are valid, and the destination uses READY to indicate that it can accept information.
  • Read/write address channel Each of read and write transmissions has its own address channel, and the corresponding address channel carries the address control information for the corresponding transmission.
  • the read data channel carries the read data and read response signals, including the data bus (8/16/32/64/128/256/512/1024bit) and the read response signal indicating the completion of the read transfer.
  • the write data channel The data information of the write data channel is considered to be buffered, and the "master" can initiate a new write transmission without waiting for the "slave” to confirm the last write transmission.
  • the write channel includes a data bus (8/16...1024bit) and a byte line (used to indicate the validity of the 8bit data signal).
  • Write response channel "Slave” uses the write response channel to respond to write transmission. All write transfers require the completion signal of the write response channel.
  • the WB protocol has only one channel, and read and write operations cannot be performed at the same time. As shown in FIG. 4, the signals required for the WB protocol read and write operations are shared except for data, and the meaning of each signal is the general meaning in the prior art, which will not be repeated in the embodiment of the application.
  • the data width of the AXI protocol is 32-bit, 64-bit, 128-bit, etc.
  • the data width of the WB protocol is up to 32-bits, and data bit width matching is required.
  • the AXI protocol has address alignment rules.
  • the address signal and byte strobe signal cannot be directly transferred to the WB protocol, and a certain conversion is required before they can be transferred to the WB protocol.
  • an implementation flowchart of an AXI2WB bus bridge implementation method provided by an embodiment of this application, the method may include the following steps:
  • the implementation method of the AXI2WB bus bridge provided by the embodiments of the present application can be applied to the AXI2WB bus bridge.
  • All are referred to as the bus bridge below.
  • the bus bridge can monitor the AXI write address channel, AXI write data channel, and AXI write response channel. When monitoring that the AXI write address channel signal is valid, the AXI write address can be aligned, and the AXI write address channel signal can be latched.
  • the bus bridge judges whether the signal wdata_valid indicating whether the currently latched write data is valid, the signal bresp_valid indicating whether the currently latched feedback is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low If not, it can be repeated to determine whether the signal wdata_valid indicating whether the currently latched write data is valid, the signal bresp_valid indicating whether the current latched feedback is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low If yes, then further judge whether awvalid and awready are both high at the same time, if yes, you can confirm that the AXI write address channel signal is valid, otherwise, you can repeat the step of judging whether awvalid and awready are both high at the same time, and after confirming that AXI write When the address channel signal is valid, AXI write address alignment can be performed.
  • awready can be set to 0, and the signal awaddr_valid indicating whether the currently latched write address is valid or not is set high, as shown in FIG. 6. Further, if the AXI is judged If the wlast signal is high, awready is set to 1, and the signal awaddr_valid, which indicates whether the currently latched write address is valid, is set to 0.
  • the bus bridge When the bus bridge monitors the AXI write address channel and the AXI write data channel, if it monitors that the AXI write data channel signal is valid, it can latch the AXI write data channel signal.
  • the AXI signal awaddr_valid indicating whether the currently latched write address is valid is high, and wvalid and wready are both high at the same time, it is determined that the AXI write data channel signal is valid.
  • the bus bridge can determine whether the AXI signal awaddr_valid indicating whether the currently latched write address is valid is high. If not, the number of AXI write operations data_cnt can be 0. If it is, it can be further judged whether wvalid and wready are both high at the same time. If it is high at the same time, it can be determined that the AXI write data channel signal is valid. Otherwise, the step of judging whether wvalid and wready are both high can be repeated.
  • S530 Determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data.
  • a macro definition switch can be preset to select the bit width of AXI and WB. According to the multiple of the bit width of the AXI write data and the bit width of the WB write data, determine the number of WB transmissions required for the current AXI write data. That is, the number of WB transmissions tranfer_conv required for an AXI write data wdata.
  • bit width of AXI and WB can be easily selected, and the intermediate variable addr_addend in the control logic code can be controlled to realize the design of the AXI2WB bus bridge with different bit widths without major changes to the code.
  • the AXI write address is converted to the WB write address of the WB write operation, and the data channel signal is written according to the AXI , Convert the AXI write data into the WB write data of the WB write operation, and execute the WB write operation based on the WB write address and WB write data.
  • the AXI write address can be converted to the WB write address of the WB write operation according to the following formula:
  • wb_waddr awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
  • w_data_cnt is the number of valid data wdata transferred by the current AXI write address
  • w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata
  • addr_addend is the number of WB data bytes
  • awaddr_ff is the latched aligned AXI write Address
  • wb_waddr is the WB write address
  • data_width is the width of the AXI data byte.
  • wb_dat_o (wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
  • wb_dat_o is WB write data
  • wdata_ff is latched AXI write data.
  • each WB write operation is executed until the number of WB write operations reaches the number of WB transmissions required for AXI write data.
  • the bus bridge determines whether the signal awaddr_valid indicating whether the currently latched write address is valid and the signal wdata_valid indicating whether the currently latched write data is valid are both high and indicating whether the currently latched read address is Whether the valid signal araddr_valid is low, if they are all, then pull up the read and write transmission distinguishing signal wb_we_o, data cycle signal wb_stb_o, bus cycle signal wb_cyc_o, and start a WB write operation, otherwise, repeat the judgment and indicate the current latched write
  • the step of whether the signal awaddr_valid indicating whether the address is valid and the signal wdata_valid indicating whether the currently latched write data is valid are both high and whether the signal araddr_valid indicating whether the currently latched read address is valid are low.
  • the bus bridge can determine whether the WB response signal wb_ack_i is high, and if so, determine whether the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if not, add 1 to the number of WB write operations wb_transfer_cnt, and repeat the judgment Whether the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if yes, complete all WB write operations, pull down the read and write transfer distinguishing signal wb_we_o, data cycle signal wb_stb_o, and bus cycle signal wb_cyc_o.
  • the bus bridge judges that the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, it sets wready to 1, and sets the signal wdata_valid, which indicates whether the currently latched write data is valid, to 0, as shown in Figure 7.
  • the bus bridge When the bus bridge is performing a WB write operation, it judges whether the AXI bvalid and bread signals of the AXI write response channel are both high at the same time. If so, it sets bvalid to 0, and further judges whether the AXI wlast signal is high, and if it is, it sets bvalid to 1, as shown in Figure 9.
  • the method may further include the following steps:
  • Step 1 When monitoring that the AXI read address channel signal is valid, align the AXI write address and latch the AXI read address channel signal;
  • Step 2 Determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
  • Step 3 For each WB read operation, according to the AXI read address channel signal, the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, based on the WB read address and WB To read data, perform this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
  • the bus bridge can monitor the AXI read address channel and the AXI read data channel. When monitoring that the AXI read address channel signal is valid, the AXI read address can be aligned, and the AXI read address channel signal can be latched.
  • the bus bridge judges whether the signal awaddr_valid indicating whether the currently latched write address is valid, the signals wdata_valid and invalid indicating whether the currently latched write data is valid, and the signal araddr_valid indicating whether the currently latched read address is valid. All are low, if not, you can repeat the execution of the signal awaddr_valid that indicates whether the currently latched write address is valid, the signals that indicate whether the currently latched write data is valid, wdata_valid, bvalid, and the signals that indicate whether the currently latched read address is valid. The step of whether the signal araddr_valid is low. If it is, it is further judged whether arvalid and areready are both high at the same time.
  • arrivey can be set to 0, and the signal araddr_valid, which indicates whether the currently latched read address is valid, is set high, as shown in FIG. 10. If it is judged that the number of WB read operations wb_transfer_cnt is equal to the number of required WB transfers, transfer_conv, set arrivey to 1, the signal araddr_valid, which indicates whether the currently latched read address is valid, is set to 0, and rlast is set to 1.
  • the current can be determined according to the multiple of the bit width of the AXI read data and the bit width of the WB read data The number of WB transmissions required for AXI to read data. That is, the number of WB transmissions tranfer_conv required for an AXI read data rdata.
  • the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, and based on the WB read address and WB read data, Perform this WB read operation.
  • the AXI read address can be converted to the WB read address of the WB read operation according to the following formula:
  • wb_raddr araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
  • r_data_cnt is the number of valid data rdata that needs to be transferred at the current AXI read address
  • r_wb_transfer_cnt is the number of WB read operations completed under the current valid data rdata that needs to be transferred
  • addr_addend is the number of WB data bytes
  • araddr_ff is the alignment of the latch
  • AXI read address wb_raddr is the WB read address
  • data_width is the AXI data byte width.
  • rdata wb_dat_i ⁇ (data_width*addr_addend*(r_wb_transfer_cnt-1));
  • wb_dat_i is WB read data.
  • each WB read operation is performed until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
  • the bus bridge judges the signal awaddr_valid that indicates whether the currently latched write address is valid, the signal wdata_valid that indicates whether the currently latched write data is valid, and the signal araddr_valid that indicates whether the currently latched read address is valid.
  • the bus bridge can determine whether the WB response signal wb_ack_i is high, if it is, then determine whether the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if not, add 1 to the number of WB read operations wb_transfer_cnt, and repeat the judgment Whether the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv step, if yes, complete all WB read operations, pull down the read and write transfer distinguishing signal wb_we_o, data cycle signal wb_stb_o, bus cycle signal wb_cyc_o, make WB read operation The number of times is 0.
  • the bus bridge judges that the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, it sets the read data channel rvalid to 1, increases the number of AXI read operations data_cnt by 1, as shown in Figure 11, and can further determine the AXI read data channel signal Whether it is valid, that is, whether rvalid and rready are both high at the same time, if so, set rvalid to 0, and add 1 to the number of AXI read operations data_cnt.
  • the embodiments of the present application also provide an AXI2WB bus bridge implementation device.
  • the AXI2WB bus bridge implementation device described below and the AXI2WB bus bridge implementation method described above can be referenced correspondingly.
  • the device includes the following units:
  • the latch unit 1301 is used to align the AXI write address when monitoring that the AXI write address channel signal is valid, and latch the AXI write address channel signal; when it monitors that the AXI write data channel signal is valid, latch the AXI write Data channel signal;
  • the adaptation unit 1302 is configured to determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data;
  • the control unit 1303 is used to convert the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal for each WB write operation, and convert the AXI write data to the AXI write data channel signal according to the AXI write data channel signal.
  • the WB write data of the WB write operation is executed, and the WB write operation is executed based on the WB write address and the WB write data; until the number of WB write operations reaches the number of WB transmissions required for the AXI write data.
  • control unit 1303 is specifically configured to:
  • wb_waddr awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
  • w_data_cnt is the number of valid data wdata transferred by the current AXI write address
  • w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata
  • addr_addend is the number of WB data bytes
  • awaddr_ff is the latched aligned AXI write Address
  • wb_waddr is the WB write address
  • data_width is the width of the AXI data byte.
  • control unit 1303 is specifically configured to:
  • wb_dat_o (wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
  • wb_dat_o is WB write data
  • wdata_ff is latched AXI write data.
  • the latch unit 1301 is also used to perform alignment processing on the AXI read address when monitoring that the AXI read address channel signal is valid, and latch the AXI read address channel signal;
  • the adaptation unit 1302 is further configured to determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
  • the control unit 1303 is also used for each WB read operation, according to the AXI read address channel signal, convert the AXI read address to the WB read address of the WB read operation, convert the WB read data to AXI read data, and based on WB Read address and WB read data, execute this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
  • control unit 1303 is specifically configured to:
  • wb_raddr araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
  • r_data_cnt is the number of valid data rdata that needs to be transferred at the current AXI read address
  • r_wb_transfer_cnt is the number of WB read operations completed under the current valid data rdata that needs to be transferred
  • addr_addend is the number of WB data bytes
  • araddr_ff is the alignment of the latch
  • AXI read address wb_raddr is the WB read address
  • data_width is the AXI data byte width.
  • control unit 1303 is specifically configured to:
  • rdata wb_dat_i ⁇ (data_width*addr_addend*(r_wb_transfer_cnt-1));
  • wb_dat_i is WB read data.
  • the embodiment of the present application also provides an AXI2WB bus bridge implementation device, as shown in FIG. 14, including:
  • the memory 1401 is used to store computer programs
  • the processor 1402 is used to implement the steps of the AXI2WB bus bridge implementation method when executing computer programs.
  • the embodiments of the present application also provide a computer-readable storage medium with a computer program stored on the computer-readable storage medium.
  • the computer program is executed by a processor, the steps of the AXI2WB bus bridge implementation method are implemented. .
  • the steps of the method or algorithm described in the embodiments disclosed in this document can be directly implemented by hardware, a software module executed by a processor, or a combination of the two.
  • the software module can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or all areas in the technical field. Any other known storage medium.

Abstract

An AXI2WB bus bridge implementation method and device, equipment and a storage medium, the method comprising the following steps: latching an AXI write address channel signal and an AXI write data channel signal; determining the number of WB transmissions required for current AXI write data according to the magnifications of AXI write data bit width and WB write data bit width (S530); for each one-time WB write operation, converting the AXI write address into a WB write address for the one-time WB write operations, converting the AXI write data into WB write data for the one-time WB write operations, and on the basis of the WB write address and WB write data, executing one-time WB write operations until the number of WB write operations reaches the number of WB transmissions required for the AXI write data (S540). The present method may implement the design of a high-speed cache-free AXI2WB bus bridge suitable for use inside of an FPGA.

Description

AXI2WB总线桥实现方法、装置、设备及存储介质AXI2WB bus bridge realization method, device, equipment and storage medium
本申请要求于2019年03月06日提交中国专利局、申请号为201910168109.9、发明名称为“AXI2WB总线桥实现方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of a Chinese patent application filed with the Chinese Patent Office, the application number is 201910168109.9, and the invention title is "AXI2WB bus bridge realization method, device, equipment and storage medium" on March 6, 2019. The entire content is by reference Incorporated in this application.
技术领域Technical field
本申请涉及芯片设计技术领域,特别是涉及一种AXI2WB总线桥实现方法、装置、设备及存储介质。This application relates to the technical field of chip design, and in particular to an AXI2WB bus bridge implementation method, device, equipment and storage medium.
背景技术Background technique
目前,SoC(System on Chip,片上系统)已经成为大规模数字集成电路设计的主流技术。SoC芯片一般由多个IP模块构成,如嵌入式CPU、DSP、各功能模块、存储模块、外部接口模块等。主模块与从模块之间由片上总线相连接,以完成控制信号和数据信号的传递。应用较为广泛的SoC总线协议是ARM公司的AMBA(Advanced Microcontroller Bus Architecture,高级微处理器总线架构)总线协议,AMBA总线协议包括AXI(Advanced eXtensible Interface,高级可扩展接口)、AHB(Advanced High-performance Bus,高级高性能总线)、APB(Advanced Peripheral Bus,高级外围总线)等总线协议,其中AXI总线协议传输速率最快,但也最为复杂,是一种面向高性能、高带宽、低延迟的片内总线,可以满足超高性能和复杂的SoC设计的需求。At present, SoC (System on Chip) has become the mainstream technology for large-scale digital integrated circuit design. SoC chips are generally composed of multiple IP modules, such as embedded CPUs, DSPs, various functional modules, storage modules, and external interface modules. The master module and the slave module are connected by an on-chip bus to complete the transfer of control signals and data signals. The most widely used SoC bus protocol is ARM's AMBA (Advanced Microcontroller Bus Architecture) bus protocol. The AMBA bus protocol includes AXI (Advanced eXtensible Interface) and AHB (Advanced High-performance). Bus, advanced high-performance bus), APB (Advanced Peripheral Bus, advanced peripheral bus) and other bus protocols. Among them, the AXI bus protocol has the fastest transmission rate, but it is also the most complex. It is a high-performance, high-bandwidth, low-latency chip The internal bus can meet the needs of ultra-high performance and complex SoC design.
现有的RISC-V SoC系统在现有开源RISC-V core的verilog RTL代码基础上,在MMIO(Memory-mapped I/O,内存映射I/O)接口自主添加了相关外设,在MEMIO(Memory I/O,存储I/O)接口添加了DDR(Double Data Rate,双倍速率)作为SoC的内存。该RISC-V SoC系统实现环境为xilinux FPGA开发板。The existing RISC-V SoC system is based on the existing open source RISC-V core verilog RTL code, and independently adds related peripherals to the MMIO (Memory-mapped I/O) interface. In MEMIO ( Memory I/O, storage I/O) interface adds DDR (Double Data Rate, double rate) as SoC memory. The RISC-V SoC system implementation environment is the xilinux FPGA development board.
为了提高处理器速率,该RISC-V SoC系统的MMIO接口采用了AXI总线协议。将外设直接挂载到AXI总线上时,需要对外设接口封装成AXI 协议,由于AXI总线协议信号繁多,当外设数量较多时,每一个外设的接口都需要封装成AXI接口,导致工作量很大,工作效率较低。In order to increase the processor speed, the MMIO interface of the RISC-V SoC system uses the AXI bus protocol. When the peripheral is directly mounted on the AXI bus, the peripheral interface needs to be encapsulated into the AXI protocol. Due to the large number of AXI bus protocol signals, when the number of peripherals is large, the interface of each peripheral needs to be encapsulated into an AXI interface, resulting in work The amount is large and the work efficiency is low.
发明内容Summary of the invention
本申请的目的是提供一种AXI2WB总线桥实现方法、装置、设备及存储介质,以实现AXI总线协议到WB(Wishbone)总线协议的转换。The purpose of this application is to provide an AXI2WB bus bridge implementation method, device, equipment, and storage medium to implement the conversion from the AXI bus protocol to the WB (Wishbone) bus protocol.
为解决上述技术问题,本申请提供如下技术方案:To solve the above technical problems, this application provides the following technical solutions:
一种AXI2WB总线桥实现方法,包括:An AXI2WB bus bridge implementation method, including:
在监听到AXI写地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI写地址通道信号;When monitoring that the AXI write address channel signal is valid, the AXI write address is aligned, and the AXI write address channel signal is latched;
在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号;When monitoring that the AXI write data channel signal is valid, latch the AXI write data channel signal;
根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数;According to the multiple of the bit width of the AXI write data and the bit width of the WB write data, determine the number of WB transmissions required for the current AXI write data;
针对每一次WB写操作,根据所述AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,并基于所述WB写地址和所述WB写数据,执行该次WB写操作;直至WB写操作次数达到所述AXI写数据需要的WB传输次数。For each WB write operation, the AXI write address is converted to the WB write address of the WB write operation according to the AXI write address channel signal, and the AXI write data is converted into the AXI write data according to the AXI write data channel signal. The WB write data of the second WB write operation is performed based on the WB write address and the WB write data; until the number of WB write operations reaches the number of WB transmissions required for the AXI write data.
在本申请的一种具体实施方式中,所述根据所述AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,包括:In a specific implementation manner of the present application, the converting the AXI write address into the WB write address of the WB write operation according to the AXI write address channel signal includes:
根据以下公式将AXI写地址转换为该次WB写操作的WB写地址:Convert the AXI write address to the WB write address of this WB write operation according to the following formula:
wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
其中,w_data_cnt为当前AXI写地址传输的有效数据wdata个数;w_wb_transfer_cnt为当前有效数据wdata下已完成的WB写操作次数;addr_addend为WB数据字节个数;awaddr_ff为锁存的对齐后的AXI写地址;wb_waddr为WB写地址;data_width为AXI数据字节宽度。Among them, w_data_cnt is the number of valid data wdata transferred by the current AXI write address; w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata; addr_addend is the number of WB data bytes; awaddr_ff is the latched aligned AXI write Address; wb_waddr is the WB write address; data_width is the width of the AXI data byte.
在本申请的一种具体实施方式中,所述根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,包括:In a specific implementation manner of the present application, the converting the AXI write data into the WB write data of the WB write operation according to the AXI write data channel signal includes:
根据以下公式将所述AXI写数据转换为该次WB写操作的WB写数据:Convert the AXI write data into the WB write data of this WB write operation according to the following formula:
wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt–1)));wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
其中,wb_dat_o为WB写数据;wdata_ff为锁存的AXI写数据。Among them, wb_dat_o is WB write data; wdata_ff is latched AXI write data.
在本申请的一种具体实施方式中,还包括:In a specific implementation of this application, it further includes:
在监听到AXI读地址通道信号有效时,将AXI读地址做对齐处理,并锁存AXI读地址通道信号;When monitoring that the AXI read address channel signal is valid, the AXI read address is aligned and the AXI read address channel signal is latched;
根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;Determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
针对每一次WB读操作,根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于所述WB读地址和所述WB读数据,执行该次WB读操作;直至WB读操作次数达到所述AXI读数据需要的WB传输次数。For each WB read operation, according to the AXI read address channel signal, the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, based on the WB read address and The WB reads data, and executes this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
在本申请的一种具体实施方式中,所述根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,包括:In a specific implementation manner of the present application, the conversion of the AXI read address to the WB read address of the WB read operation according to the AXI read address channel signal includes:
根据以下公式将AXI读地址转换为该次WB读操作的WB读地址:Convert the AXI read address to the WB read address of this WB read operation according to the following formula:
wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
其中,r_data_cnt为当前AXI读地址需要传输的有效数据rdata个数;r_wb_transfer_cnt为当前需要传输的有效数据rdata下已完成的WB读操作次数;addr_addend为WB数据字节个数;araddr_ff为锁存的对齐后的AXI读地址;wb_raddr为WB读地址;data_width为AXI数据字节宽度。Among them, r_data_cnt is the number of effective data rdata that needs to be transferred at the current AXI read address; r_wb_transfer_cnt is the number of WB read operations completed under the current effective data rdata that needs to be transferred; addr_addend is the number of WB data bytes; araddr_ff is the latched alignment The following AXI read address; wb_raddr is the WB read address; data_width is the AXI data byte width.
在本申请的一种具体实施方式中,所述将WB读数据转换为AXI读数据,包括:In a specific implementation manner of the present application, the converting WB read data into AXI read data includes:
根据以下公式将WB读数据转换为AXI读数据:Convert WB read data to AXI read data according to the following formula:
rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt–1));rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt-1));
其中,wb_dat_i为WB读数据。Among them, wb_dat_i is WB read data.
一种AXI2WB总线桥实现装置,包括:An AXI2WB bus bridge realization device, including:
锁存单元,用于在监听到AXI写地址通道信号有效时,将AXI写地址 做对齐处理,并锁存AXI写地址通道信号;在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号;The latch unit is used to align the AXI write address when monitoring the AXI write address channel signal is valid, and latch the AXI write address channel signal; when monitoring the AXI write data channel signal is valid, latch the AXI write data Channel signal
适配单元,用于根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数;The adaptation unit is used to determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data;
控制单元,用于针对每一次WB写操作,根据所述AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,并基于所述WB写地址和所述WB写数据,执行该次WB写操作;直至WB写操作次数达到所述AXI写数据需要的WB传输次数。The control unit is configured to convert the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal for each WB write operation, and convert the AXI write address according to the AXI write data channel signal The write data is converted into the WB write data of the WB write operation, and the WB write operation is executed based on the WB write address and the WB write data; until the number of WB write operations reaches the WB transmission required by the AXI write data frequency.
在本申请的一种具体实施方式中,In a specific implementation of this application,
所述锁存单元,还用于在监听到AXI读地址通道信号有效时,将AXI读地址做对齐处理,并锁存AXI读地址通道信号;The latch unit is also used to perform alignment processing on the AXI read address when monitoring that the AXI read address channel signal is valid, and latch the AXI read address channel signal;
所述适配单元,还用于根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;The adaptation unit is further configured to determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
所述控制单元,还用于针对每一次WB读操作,根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于所述WB读地址和所述WB读数据,执行该次WB读操作;直至WB读操作次数达到所述AXI读数据需要的WB传输次数。The control unit is also used to convert the AXI read address to the WB read address of the WB read operation, and convert the WB read data to AXI read data according to the AXI read address channel signal for each WB read operation, And based on the WB read address and the WB read data, perform this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
一种AXI2WB总线桥实现设备,包括:An AXI2WB bus bridge implementation device, including:
存储器,用于存储计算机程序;Memory, used to store computer programs;
处理器,用于执行所述计算机程序时实现上述任一项所述AXI2WB总线桥实现方法的步骤。The processor is used to implement the steps of any one of the foregoing AXI2WB bus bridge implementation methods when executing the computer program.
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述AXI2WB总线桥实现方法的步骤。A computer-readable storage medium having a computer program stored on the computer-readable storage medium, and when the computer program is executed by a processor, implements the steps of any one of the above-mentioned AXI2WB bus bridge implementation methods.
应用本申请实施例所提供的技术方案,可以实现适用于FPGA内部的高速无缓存AXI2WB总线桥设计,在处理器外设设计过程中可以降低外设开发的难度,对搭建基于RISC-V处理器的SoC系统具有突破性意义,有 助于CPU自主研发的进程,且本申请适用于多种位宽的总线转换,具有通用性。Applying the technical solutions provided by the embodiments of this application can realize the design of a high-speed cacheless AXI2WB bus bridge suitable for FPGA internals, which can reduce the difficulty of peripheral development in the process of processor peripheral design, and is useful for building RISC-V processors. The SoC system has breakthrough significance, which is helpful to the process of independent research and development of CPU, and this application is suitable for bus conversion with multiple bit widths, and has universality.
附图说明Description of the drawings
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly describe the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings that need to be used in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only These are some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative work.
图1为本申请实施例中AXI2WB总线桥实现结构示意图;Figure 1 is a schematic diagram of the implementation structure of the AXI2WB bus bridge in an embodiment of the application;
图2为本申请实施例中AXI总线协议读通道示意图;2 is a schematic diagram of the AXI bus protocol reading channel in an embodiment of the application;
图3为本申请实施例中AXI总线协议写通道示意图;FIG. 3 is a schematic diagram of the AXI bus protocol writing channel in an embodiment of the application;
图4为本申请实施例中WB主从互联信号示意图;4 is a schematic diagram of WB master-slave interconnection signals in an embodiment of the application;
图5为本申请实施例中一种AXI2WB总线桥实现方法的实施流程图;FIG. 5 is an implementation flowchart of an implementation method of an AXI2WB bus bridge in an embodiment of the application;
图6为本申请实施例中AXI写地址通道处理流程示意图;Figure 6 is a schematic diagram of the AXI write address channel processing flow in an embodiment of the application;
图7为本申请实施例中AXI写数据通道处理流程示意图;Figure 7 is a schematic diagram of the AXI write data channel processing flow in an embodiment of the application;
图8为本申请实施例中WB写操作处理流程示意图;FIG. 8 is a schematic diagram of a WB write operation processing flow in an embodiment of the application;
图9为本申请实施例中AXI写响应通道处理流程示意图;9 is a schematic diagram of the AXI write response channel processing flow in an embodiment of the application;
图10为本申请实施例中AXI读地址通道处理流程示意图;FIG. 10 is a schematic diagram of the AXI read address channel processing flow in an embodiment of the application;
图11为本申请实施例中AXI读数据通道处理流程示意图;Figure 11 is a schematic diagram of the AXI read data channel processing flow in an embodiment of the application;
图12为本申请实施例中WB读操作处理流程示意图;FIG. 12 is a schematic diagram of a WB read operation processing flow in an embodiment of the application;
图13为本申请实施例中一种AXI2WB总线桥实现装置的结构示意图;FIG. 13 is a schematic structural diagram of an AXI2WB bus bridge implementation device in an embodiment of the application;
图14为本申请实施例中一种AXI2WB总线桥实现设备的结构示意图。Fig. 14 is a schematic structural diagram of an AXI2WB bus bridge implementation device in an embodiment of the application.
具体实施方式detailed description
本申请的核心是提供一种AXI2WB总线桥实现方法,实现AXI总线协议到WB(Wishbone,一种片内总线)总线协议的转换,使得AXI总线 上可以挂载接口为WB协议的相关外设,如UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)、GPIO(General Purpose Input Output,通用输入/输出)等,如图1所示,为AXI2WB总线桥实现结构示意图,通过AXI2WB总线桥将AXI总线协议转换成WB总线协议,再挂载对速率要求不高的低速外设,如挂载有GPIO和UART等外设,通过WB仲裁WB_Arbiter确定当前通信的是哪个外设,S为Slave,从接口,M为Master,主接口,AXI2WB总线桥可以包括地址对齐模块Addr_Align、位宽适配模块Width_Adapt和流控模块Flow_Ctrl。The core of this application is to provide an implementation method of the AXI2WB bus bridge to realize the conversion from the AXI bus protocol to the WB (Wishbone, an on-chip bus) bus protocol, so that the AXI bus can mount related peripherals with the WB protocol interface. Such as UART (Universal Asynchronous Receiver/Transmitter), GPIO (General Purpose Input Output, universal input/output), etc., as shown in Figure 1, is a schematic diagram of the realization of the AXI2WB bus bridge. AXI2WB bus bridge is used to connect AXI Convert the bus protocol to the WB bus protocol, and then mount low-speed peripherals that do not require high speed, such as peripherals such as GPIO and UART. WB arbitrates WB_Arbiter to determine which peripheral is currently communicating, S is Slave, from Interface, M is Master, main interface, AXI2WB bus bridge can include address alignment module Addr_Align, bit width adaptation module Width_Adapt and flow control module Flow_Ctrl.
首先说明一下AXI协议和WB协议的不同之处:First explain the difference between the AXI protocol and the WB protocol:
第一,AXI协议是基于burst的传输,并且定义了5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道,分别如图2和图3所示。First, the AXI protocol is based on burst transmission, and defines 5 independent transmission channels: read address channel, read data channel, write address channel, write data channel, write response channel, as shown in Figure 2 and Figure 3 respectively .
AXI协议每个通道可同时进行。AXI是基于VALID/READY握手机制的数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。Each channel of the AXI protocol can be carried out simultaneously. AXI is a data transmission protocol based on the VALID/READY handshake mechanism. The transmission source uses VALID to indicate that the address/control signal and data are valid, and the destination uses READY to indicate that it can accept information.
读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息。Read/write address channel: Each of read and write transmissions has its own address channel, and the corresponding address channel carries the address control information for the corresponding transmission.
读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024bit)和指示读传输完成的读响应信号。Read data channel: The read data channel carries the read data and read response signals, including the data bus (8/16/32/64/128/256/512/1024bit) and the read response signal indicating the completion of the read transfer.
写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,“主”无需等待“从”对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16…1024bit)和字节线(用于指示8bit数据信号的有效性)。Write data channel: The data information of the write data channel is considered to be buffered, and the "master" can initiate a new write transmission without waiting for the "slave" to confirm the last write transmission. The write channel includes a data bus (8/16...1024bit) and a byte line (used to indicate the validity of the 8bit data signal).
写响应通道:“从”使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号。Write response channel: "Slave" uses the write response channel to respond to write transmission. All write transfers require the completion signal of the write response channel.
而WB协议只有一个通道,读写操作不能同时进行。如图4所示,WB协议读写操作必选的信号除了数据外都是共用的,其中各个信号含义均为现有技术中的通用含义,本申请实施例对此不再赘述。The WB protocol has only one channel, and read and write operations cannot be performed at the same time. As shown in FIG. 4, the signals required for the WB protocol read and write operations are shared except for data, and the meaning of each signal is the general meaning in the prior art, which will not be repeated in the embodiment of the application.
第二,AXI协议数据位宽有32位、64位、128位等,WB协议数据位 宽最高为32位,需要进行数据位宽匹配。Second, the data width of the AXI protocol is 32-bit, 64-bit, 128-bit, etc., and the data width of the WB protocol is up to 32-bits, and data bit width matching is required.
第三,AXI协议有地址对齐的规则,地址信号与字节选通信号不能直接传递给WB协议,需要进行一定转换才可传递给WB协议。Third, the AXI protocol has address alignment rules. The address signal and byte strobe signal cannot be directly transferred to the WB protocol, and a certain conversion is required before they can be transferred to the WB protocol.
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。In order to enable those skilled in the art to better understand the solution of the application, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative work shall fall within the protection scope of this application.
参见图5所示,为本申请实施例所提供的一种AXI2WB总线桥实现方法的实施流程图,该方法可以包括以下步骤:Referring to FIG. 5, an implementation flowchart of an AXI2WB bus bridge implementation method provided by an embodiment of this application, the method may include the following steps:
S510:在监听到AXI写地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI写地址通道信号。S510: When it is monitored that the AXI write address channel signal is valid, the AXI write address is aligned, and the AXI write address channel signal is latched.
本申请实施例所提供的AXI2WB总线桥实现方法可以应用于AXI2WB总线桥,为方便描述,以下均简称为总线桥。The implementation method of the AXI2WB bus bridge provided by the embodiments of the present application can be applied to the AXI2WB bus bridge. For the convenience of description, all are referred to as the bus bridge below.
在实际应用中,总线桥可以对AXI写地址通道、AXI写数据通道、AXI写响应通道进行监听。在监听到AXI写地址通道信号有效时,可以将AXI写地址做对齐处理,并锁存AXI写地址通道信号。In practical applications, the bus bridge can monitor the AXI write address channel, AXI write data channel, and AXI write response channel. When monitoring that the AXI write address channel signal is valid, the AXI write address can be aligned, and the AXI write address channel signal can be latched.
具体的,可以通过以下步骤确定AXI写地址通道信号是否有效:Specifically, you can determine whether the AXI write address channel signal is valid through the following steps:
在监听到指示当前锁存的写数据是否有效的信号wdata_valid、指示当前锁存的反馈是否有效的信号bresp_valid和指示当前锁存的读地址是否有效的信号araddr_valid均为低的情况下,awvalid和awready同时为高时,确定AXI写地址通道信号有效。When the signal wdata_valid indicating whether the currently latched write data is valid, the signal bresp_valid indicating whether the currently latched feedback is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low, awvalid and awready When it is high at the same time, confirm that the AXI write address channel signal is valid.
如图6所示,总线桥判断指示当前锁存的写数据是否有效的信号wdata_valid、指示当前锁存的反馈是否有效的信号bresp_valid和指示当前锁存的读地址是否有效的信号araddr_valid是否均为低,如果否,则可以重复执行判断指示当前锁存的写数据是否有效的信号wdata_valid、指示当前锁存的反馈是否有效的信号bresp_valid和指示当前锁存的读地址是否有效的信号araddr_valid是否均为低的步骤,如果是,则进一步判断awvalid和awready是否同时为高,如果是,则可以确定AXI写地址通道信号有效, 否则,可重复执行判断awvalid和awready是否同时为高的步骤,在确定AXI写地址通道信号有效时,可进行AXI写地址对齐。As shown in Figure 6, the bus bridge judges whether the signal wdata_valid indicating whether the currently latched write data is valid, the signal bresp_valid indicating whether the currently latched feedback is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low If not, it can be repeated to determine whether the signal wdata_valid indicating whether the currently latched write data is valid, the signal bresp_valid indicating whether the current latched feedback is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low If yes, then further judge whether awvalid and awready are both high at the same time, if yes, you can confirm that the AXI write address channel signal is valid, otherwise, you can repeat the step of judging whether awvalid and awready are both high at the same time, and after confirming that AXI write When the address channel signal is valid, AXI write address alignment can be performed.
在本申请实施例中,在锁存AXI写地址通道信号之后,可以将awready置0,将指示当前锁存的写地址是否有效的信号awaddr_valid置高,如图6所示,进一步,如果判断AXI wlast信号为高,则将awready置1,将指示当前锁存的写地址是否有效的信号awaddr_valid置0。In the embodiment of the present application, after the AXI write address channel signal is latched, awready can be set to 0, and the signal awaddr_valid indicating whether the currently latched write address is valid or not is set high, as shown in FIG. 6. Further, if the AXI is judged If the wlast signal is high, awready is set to 1, and the signal awaddr_valid, which indicates whether the currently latched write address is valid, is set to 0.
S520:在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号。S520: When monitoring that the AXI write data channel signal is valid, latch the AXI write data channel signal.
总线桥在对AXI写地址通道和AXI写数据通道监听过程中,如果监听到AXI写数据通道信号有效,则可以锁存AXI写数据通道信号。When the bus bridge monitors the AXI write address channel and the AXI write data channel, if it monitors that the AXI write data channel signal is valid, it can latch the AXI write data channel signal.
具体的,可以通过以下步骤确定AXI写数据通道信号是否有效:Specifically, you can determine whether the AXI write data channel signal is valid through the following steps:
在监听到AXI写操作次数data_cnt为0、AXI的指示当前锁存的写地址是否有效的信号awaddr_valid为高,且wvalid与wready同时为高时,确定AXI写数据通道信号有效。When the number of AXI write operations data_cnt is 0, the AXI signal awaddr_valid indicating whether the currently latched write address is valid is high, and wvalid and wready are both high at the same time, it is determined that the AXI write data channel signal is valid.
如图7所示,总线桥在AXI写操作次数data_cnt为0时,可以判断AXI的指示当前锁存的写地址是否有效的信号awaddr_valid是否为高,如果否,则可以令AXI写操作次数data_cnt为0,如果是,则可以进一步判断wvalid与wready是否同时为高,如果同时为高,则可以确定AXI写数据通道信号有效,否则可以重复执行判断wvalid与wready是否同时为高的步骤。As shown in Figure 7, when the number of AXI write operations data_cnt is 0, the bus bridge can determine whether the AXI signal awaddr_valid indicating whether the currently latched write address is valid is high. If not, the number of AXI write operations data_cnt can be 0. If it is, it can be further judged whether wvalid and wready are both high at the same time. If it is high at the same time, it can be determined that the AXI write data channel signal is valid. Otherwise, the step of judging whether wvalid and wready are both high can be repeated.
在本申请实施例中,在锁存AXI写数据通道信号之后,还可以将wready置0,将指示当前锁存的写数据是否有效的信号wdata_valid置1,AXI写操作次数data_cnt加1,如图7所示。In the embodiment of the present application, after latching the AXI write data channel signal, you can also set wready to 0, set the signal wdata_valid indicating whether the currently latched write data is valid, and increase the number of AXI write operations data_cnt by 1, as shown in the figure 7 shown.
S530:根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数。S530: Determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data.
在本申请实施例中,可以预先设置宏定义开关以选择AXI和WB的位宽。根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数。即一个AXI写数据wdata需要的WB传输次数tranfer_conv。In the embodiment of the present application, a macro definition switch can be preset to select the bit width of AXI and WB. According to the multiple of the bit width of the AXI write data and the bit width of the WB write data, determine the number of WB transmissions required for the current AXI write data. That is, the number of WB transmissions tranfer_conv required for an AXI write data wdata.
通过宏定义开关可以很方便地选择AXI与WB的位宽,控制逻辑代码中的中间变量addr_addend,实现不同位宽的AXI2WB总线桥设计,无需对代码进行大的改动。Through the macro definition switch, the bit width of AXI and WB can be easily selected, and the intermediate variable addr_addend in the control logic code can be controlled to realize the design of the AXI2WB bus bridge with different bit widths without major changes to the code.
S540:针对每一次WB写操作,根据AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据AXI写数据通道信号,将AXI写数据转换为该次WB写操作的WB写数据,并基于WB写地址和WB写数据,执行该次WB写操作;直至WB写操作次数达到AXI写数据需要的WB传输次数。S540: For each WB write operation, according to the AXI write address channel signal, the AXI write address is converted to the WB write address of the WB write operation, and the AXI write data is converted to the WB write operation according to the AXI write data channel signal Based on the WB write address and WB write data, execute this WB write operation; until the number of WB write operations reaches the number of WB transfers required for AXI write data.
在确定当前AXI写数据需要的WB传输次数后,可以针对每一次WB写操作,根据AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据AXI写数据通道信号,将AXI写数据转换为该次WB写操作的WB写数据,并基于WB写地址和WB写数据,执行该次WB写操作。After determining the number of WB transmissions required for the current AXI write data, for each WB write operation, according to the AXI write address channel signal, the AXI write address is converted to the WB write address of the WB write operation, and the data channel signal is written according to the AXI , Convert the AXI write data into the WB write data of the WB write operation, and execute the WB write operation based on the WB write address and WB write data.
具体的,可以根据以下公式将AXI写地址转换为该次WB写操作的WB写地址:Specifically, the AXI write address can be converted to the WB write address of the WB write operation according to the following formula:
wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
其中,w_data_cnt为当前AXI写地址传输的有效数据wdata个数;w_wb_transfer_cnt为当前有效数据wdata下已完成的WB写操作次数;addr_addend为WB数据字节个数;awaddr_ff为锁存的对齐后的AXI写地址;wb_waddr为WB写地址;data_width为AXI数据字节宽度。Among them, w_data_cnt is the number of valid data wdata transferred by the current AXI write address; w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata; addr_addend is the number of WB data bytes; awaddr_ff is the latched aligned AXI write Address; wb_waddr is the WB write address; data_width is the width of the AXI data byte.
根据以下公式将AXI写数据转换为该次WB写操作的WB写数据:Convert AXI write data into WB write data of this WB write operation according to the following formula:
wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt–1)));wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
其中,wb_dat_o为WB写数据;wdata_ff为锁存的AXI写数据。Among them, wb_dat_o is WB write data; wdata_ff is latched AXI write data.
基于WB写地址和WB写数据,执行每一次的WB写操作,直至WB写操作次数达到AXI写数据需要的WB传输次数。Based on the WB write address and WB write data, each WB write operation is executed until the number of WB write operations reaches the number of WB transmissions required for AXI write data.
具体的,如图8所示,总线桥判断指示当前锁存的写地址是否有效的信号awaddr_valid和指示当前锁存的写数据是否有效的信号wdata_valid是否均为高且指示当前锁存的读地址是否有效的信号araddr_valid是否为低, 如果均为是,则拉高读写传输区分信号wb_we_o、数据周期信号wb_stb_o、总线周期信号wb_cyc_o,开始一次WB写操作,否则,重复执行判断指示当前锁存的写地址是否有效的信号awaddr_valid和指示当前锁存的写数据是否有效的信号wdata_valid是否均为高且指示当前锁存的读地址是否有效的信号araddr_valid是否为低的步骤。进一步的,总线桥可以判断WB响应信号wb_ack_i是否为高,如果是,则判断WB写操作次数wb_transfer_cnt是否等于需要的WB传输次数transfer_conv,如果否,则将WB写操作次数wb_transfer_cnt加1,重复执行判断WB写操作次数wb_transfer_cnt是否等于需要的WB传输次数transfer_conv的步骤,如果是,则完成所有的WB写操作,拉低读写传输区分信号wb_we_o、数据周期信号wb_stb_o、总线周期信号wb_cyc_o。Specifically, as shown in FIG. 8, the bus bridge determines whether the signal awaddr_valid indicating whether the currently latched write address is valid and the signal wdata_valid indicating whether the currently latched write data is valid are both high and indicating whether the currently latched read address is Whether the valid signal araddr_valid is low, if they are all, then pull up the read and write transmission distinguishing signal wb_we_o, data cycle signal wb_stb_o, bus cycle signal wb_cyc_o, and start a WB write operation, otherwise, repeat the judgment and indicate the current latched write The step of whether the signal awaddr_valid indicating whether the address is valid and the signal wdata_valid indicating whether the currently latched write data is valid are both high and whether the signal araddr_valid indicating whether the currently latched read address is valid are low. Further, the bus bridge can determine whether the WB response signal wb_ack_i is high, and if so, determine whether the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if not, add 1 to the number of WB write operations wb_transfer_cnt, and repeat the judgment Whether the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if yes, complete all WB write operations, pull down the read and write transfer distinguishing signal wb_we_o, data cycle signal wb_stb_o, and bus cycle signal wb_cyc_o.
总线桥在判断WB写操作次数wb_transfer_cnt等于需要的WB传输次数transfer_conv时,将wready置1,将指示当前锁存的写数据是否有效的信号wdata_valid置0,如图7所示。When the bus bridge judges that the number of WB write operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, it sets wready to 1, and sets the signal wdata_valid, which indicates whether the currently latched write data is valid, to 0, as shown in Figure 7.
总线桥在进行WB写操作时,判断AXI写响应通道的AXI bvalid与bready信号是否同时为高,如果是,则将bvalid置0,进一步判断AXI wlast信号是否为高,如果是,则将bvalid置1,如图9所示。When the bus bridge is performing a WB write operation, it judges whether the AXI bvalid and bread signals of the AXI write response channel are both high at the same time. If so, it sets bvalid to 0, and further judges whether the AXI wlast signal is high, and if it is, it sets bvalid to 1, as shown in Figure 9.
在本申请的一个实施例中,该方法还可以包括以下步骤:In an embodiment of the present application, the method may further include the following steps:
步骤一:在监听到AXI读地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI读地址通道信号;Step 1: When monitoring that the AXI read address channel signal is valid, align the AXI write address and latch the AXI read address channel signal;
步骤二:根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;Step 2: Determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
步骤三:针对每一次WB读操作,根据AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于WB读地址和WB读数据,执行该次WB读操作;直至WB读操作次数达到AXI读数据需要的WB传输次数。Step 3: For each WB read operation, according to the AXI read address channel signal, the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, based on the WB read address and WB To read data, perform this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
在本申请实施例中,总线桥可以对AXI读地址通道、AXI读数据通道进行监听。在监听到AXI读地址通道信号有效时,可以将AXI读地址做对齐处理,并锁存AXI读地址通道信号。In the embodiment of the present application, the bus bridge can monitor the AXI read address channel and the AXI read data channel. When monitoring that the AXI read address channel signal is valid, the AXI read address can be aligned, and the AXI read address channel signal can be latched.
具体的,可以通过以下步骤确定AXI读地址通道信号是否有效:Specifically, you can determine whether the AXI read address channel signal is valid through the following steps:
在监听到指示当前锁存的写地址是否有效的信号awaddr_valid、指示当前锁存的写数据是否有效的信号wdata_valid、bvalid、指示当前锁存的读地址是否有效的信号araddr_valid均为低的情况下,arvalid和arready同时为高时,确定AXI读地址通道信号有效。When the signal awaddr_valid indicating whether the currently latched write address is valid, the signals wdata_valid and bvalid indicating whether the currently latched write data is valid, and the signal araddr_valid indicating whether the currently latched read address is valid are all low, When arvalid and areready are both high at the same time, it is determined that the AXI read address channel signal is valid.
如图10所示,总线桥判断指示当前锁存的写地址是否有效的信号awaddr_valid、指示当前锁存的写数据是否有效的信号wdata_valid、bvalid和指示当前锁存的读地址是否有效的信号araddr_valid是否均为低,如果否,则可以重复执行判断指示当前锁存的写地址是否有效的信号awaddr_valid、指示当前锁存的写数据是否有效的信号wdata_valid、bvalid和指示当前锁存的读地址是否有效的信号araddr_valid是否均为低的步骤,如果是,则进一步判断arvalid和arready是否同时为高,如果是,则可以确定AXI读地址通道信号有效,否则,可重复执行判断arvalid和arready是否同时为高的步骤,在确定AXI读地址通道信号有效时,可进行AXI读地址对齐。As shown in Figure 10, the bus bridge judges whether the signal awaddr_valid indicating whether the currently latched write address is valid, the signals wdata_valid and invalid indicating whether the currently latched write data is valid, and the signal araddr_valid indicating whether the currently latched read address is valid. All are low, if not, you can repeat the execution of the signal awaddr_valid that indicates whether the currently latched write address is valid, the signals that indicate whether the currently latched write data is valid, wdata_valid, bvalid, and the signals that indicate whether the currently latched read address is valid The step of whether the signal araddr_valid is low. If it is, it is further judged whether arvalid and areready are both high at the same time. If it is, it can be determined that the AXI read address channel signal is valid. Otherwise, it can be repeated to judge whether arvalid and areready are both high at the same time. Step: When it is determined that the AXI read address channel signal is valid, the AXI read address alignment can be performed.
在本申请实施例中,在锁存AXI读地址通道信号之后,可以将arready置0,将指示当前锁存的读地址是否有效的信号araddr_valid置高,如图10所示。如果判断WB读操作次数wb_transfer_cnt等于需要WB传输次数transfer_conv,则将arready置1,将指示当前锁存的读地址是否有效的信号araddr_valid置0,rlast置1。In the embodiment of the present application, after the AXI read address channel signal is latched, arrivey can be set to 0, and the signal araddr_valid, which indicates whether the currently latched read address is valid, is set high, as shown in FIG. 10. If it is judged that the number of WB read operations wb_transfer_cnt is equal to the number of required WB transfers, transfer_conv, set arrivey to 1, the signal araddr_valid, which indicates whether the currently latched read address is valid, is set to 0, and rlast is set to 1.
总线桥在AXI读操作次数data_cnt为0,判断AXI的指示当前锁存的读地址是否有效的信号araddr_valid为高时,可以根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数。即一个AXI读数据rdata需要的WB传输次数tranfer_conv。When the bus bridge data_cnt is 0 when the number of AXI read operations is 0, when the AXI signal that indicates whether the currently latched read address is valid or not, the signal araddr_valid is high, the current can be determined according to the multiple of the bit width of the AXI read data and the bit width of the WB read data The number of WB transmissions required for AXI to read data. That is, the number of WB transmissions tranfer_conv required for an AXI read data rdata.
针对每一次WB读操作,根据AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于WB读地址和WB读数据,执行该次WB读操作。For each WB read operation, according to the AXI read address channel signal, the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, and based on the WB read address and WB read data, Perform this WB read operation.
具体的,可以根据以下公式将AXI读地址转换为该次WB读操作的WB读地址:Specifically, the AXI read address can be converted to the WB read address of the WB read operation according to the following formula:
wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
其中,r_data_cnt为当前AXI读地址需要传输的有效数据rdata个数;r_wb_transfer_cnt为当前需要传输的有效数据rdata下已完成的WB读操作次数;addr_addend为WB数据字节个数;araddr_ff为锁存的对齐后的AXI读地址;wb_raddr为WB读地址;data_width为AXI数据字节宽度。Among them, r_data_cnt is the number of valid data rdata that needs to be transferred at the current AXI read address; r_wb_transfer_cnt is the number of WB read operations completed under the current valid data rdata that needs to be transferred; addr_addend is the number of WB data bytes; araddr_ff is the alignment of the latch The following AXI read address; wb_raddr is the WB read address; data_width is the AXI data byte width.
根据以下公式将WB读数据转换为AXI读数据:Convert WB read data to AXI read data according to the following formula:
rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt–1));rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt-1));
其中,wb_dat_i为WB读数据。Among them, wb_dat_i is WB read data.
基于WB读地址和WB写数据,执行每一次的WB读操作,直至WB读操作次数达到AXI读数据需要的WB传输次数。Based on the WB read address and WB write data, each WB read operation is performed until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
具体的,如图12所示,总线桥判断指示当前锁存的写地址是否有效的信号awaddr_valid、指示当前锁存的写数据是否有效的信号wdata_valid、指示当前锁存的读地址是否有效的信号araddr_valid是否均为低,如果是,则拉高数据周期信号wb_stb_o、总线周期信号wb_cyc_o,开始一次WB读操作,否则,重复执行判断指示当前锁存的写地址是否有效的信号awaddr_valid、指示当前锁存的写数据是否有效的信号wdata_valid、指示当前锁存的读地址是否有效的信号araddr_valid是否均为低的步骤。进一步的,总线桥可以判断WB响应信号wb_ack_i是否为高,如果是,则判断WB读操作次数wb_transfer_cnt是否等于需要的WB传输次数transfer_conv,如果否,则将WB读操作次数wb_transfer_cnt加1,重复执行判断WB读操作次数wb_transfer_cnt是否等于需要的WB传输次数transfer_conv的步骤,如果是,则完成所有的WB读操作,拉低读写传输区分信号wb_we_o、数据周期信号wb_stb_o、总线周期信号wb_cyc_o,令WB读操作次数为0。Specifically, as shown in FIG. 12, the bus bridge judges the signal awaddr_valid that indicates whether the currently latched write address is valid, the signal wdata_valid that indicates whether the currently latched write data is valid, and the signal araddr_valid that indicates whether the currently latched read address is valid. If they are all low, if yes, pull up the data cycle signal wb_stb_o, bus cycle signal wb_cyc_o, and start a WB read operation, otherwise, repeat the execution of the signal awaddr_valid, which indicates whether the currently latched write address is valid, and indicates the current latch The signal wdata_valid indicating whether the write data is valid and the signal araddr_valid indicating whether the currently latched read address is valid are all low steps. Further, the bus bridge can determine whether the WB response signal wb_ack_i is high, if it is, then determine whether the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, if not, add 1 to the number of WB read operations wb_transfer_cnt, and repeat the judgment Whether the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv step, if yes, complete all WB read operations, pull down the read and write transfer distinguishing signal wb_we_o, data cycle signal wb_stb_o, bus cycle signal wb_cyc_o, make WB read operation The number of times is 0.
总线桥在判断WB读操作次数wb_transfer_cnt等于需要的WB传输次数transfer_conv时,将读数据通道rvalid置1,将AXI读操作次数data_cnt加1,如图11所示,并可进一步判断AXI读数据通道信号是否有效,即rvalid与rready是否同时为高,如果是,则将rvalid置0,AXI读操作次数 data_cnt加1。When the bus bridge judges that the number of WB read operations wb_transfer_cnt is equal to the required number of WB transfers transfer_conv, it sets the read data channel rvalid to 1, increases the number of AXI read operations data_cnt by 1, as shown in Figure 11, and can further determine the AXI read data channel signal Whether it is valid, that is, whether rvalid and rready are both high at the same time, if so, set rvalid to 0, and add 1 to the number of AXI read operations data_cnt.
应用本申请实施例所提供的技术方案可以实现适用于FPGA内部的高速无缓存AXI2WB总线桥设计,在处理器外设设计过程中可以降低外设开发的难度,对搭建基于RISC-V处理器的SoC系统具有突破性意义,有助于CPU自主研发的进程,且本申请适用于多种位宽的总线转换,具有通用性。Application of the technical solutions provided by the embodiments of this application can realize the design of a high-speed cacheless AXI2WB bus bridge suitable for FPGAs, which can reduce the difficulty of peripheral development in the process of processor peripheral design, and is useful for building RISC-V processor-based The SoC system is of breakthrough significance and is helpful to the process of independent research and development of the CPU, and this application is applicable to bus conversions with multiple bit widths and is universal.
相应于上面的方法实施例,本申请实施例还提供了一种AXI2WB总线桥实现装置,下文描述的一种AXI2WB总线桥实现装置与上文描述的一种AXI2WB总线桥实现方法可相互对应参照。Corresponding to the above method embodiments, the embodiments of the present application also provide an AXI2WB bus bridge implementation device. The AXI2WB bus bridge implementation device described below and the AXI2WB bus bridge implementation method described above can be referenced correspondingly.
参见图13所示,该装置包括以下单元:As shown in Figure 13, the device includes the following units:
锁存单元1301,用于在监听到AXI写地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI写地址通道信号;在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号;The latch unit 1301 is used to align the AXI write address when monitoring that the AXI write address channel signal is valid, and latch the AXI write address channel signal; when it monitors that the AXI write data channel signal is valid, latch the AXI write Data channel signal;
适配单元1302,用于根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数;The adaptation unit 1302 is configured to determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data;
控制单元1303,用于针对每一次WB写操作,根据AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据AXI写数据通道信号,将AXI写数据转换为该次WB写操作的WB写数据,并基于WB写地址和WB写数据,执行该次WB写操作;直至WB写操作次数达到AXI写数据需要的WB传输次数。The control unit 1303 is used to convert the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal for each WB write operation, and convert the AXI write data to the AXI write data channel signal according to the AXI write data channel signal. The WB write data of the WB write operation is executed, and the WB write operation is executed based on the WB write address and the WB write data; until the number of WB write operations reaches the number of WB transmissions required for the AXI write data.
应用本申请实施例所提供的技术方案可以实现适用于FPGA内部的高速无缓存AXI2WB总线桥设计,在处理器外设设计过程中可以降低外设开发的难度,对搭建基于RISC-V处理器的SoC系统具有突破性意义,有助于CPU自主研发的进程,且本申请适用于多种位宽的总线转换,具有通用性。Application of the technical solutions provided by the embodiments of this application can realize the design of a high-speed cacheless AXI2WB bus bridge suitable for FPGAs, which can reduce the difficulty of peripheral development in the process of processor peripheral design, and is useful for building RISC-V processor-based The SoC system is of breakthrough significance and is helpful to the process of independent research and development of the CPU, and this application is applicable to bus conversions with multiple bit widths and is universal.
在本申请的一种具体实施方式中,控制单元1303,具体用于:In a specific implementation manner of this application, the control unit 1303 is specifically configured to:
根据以下公式将AXI写地址转换为该次WB写操作的WB写地址:Convert the AXI write address to the WB write address of this WB write operation according to the following formula:
wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
其中,w_data_cnt为当前AXI写地址传输的有效数据wdata个数;w_wb_transfer_cnt为当前有效数据wdata下已完成的WB写操作次数;addr_addend为WB数据字节个数;awaddr_ff为锁存的对齐后的AXI写地址;wb_waddr为WB写地址;data_width为AXI数据字节宽度。Among them, w_data_cnt is the number of valid data wdata transferred by the current AXI write address; w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata; addr_addend is the number of WB data bytes; awaddr_ff is the latched aligned AXI write Address; wb_waddr is the WB write address; data_width is the width of the AXI data byte.
在本申请的一种具体实施方式中,控制单元1303,具体用于:In a specific implementation manner of this application, the control unit 1303 is specifically configured to:
根据以下公式将AXI写数据转换为该次WB写操作的WB写数据:Convert AXI write data into WB write data of this WB write operation according to the following formula:
wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt–1)));wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
其中,wb_dat_o为WB写数据;wdata_ff为锁存的AXI写数据。Among them, wb_dat_o is WB write data; wdata_ff is latched AXI write data.
在本申请的一种具体实施方式中,In a specific implementation of this application,
锁存单元1301,还用于在监听到AXI读地址通道信号有效时,将AXI读地址做对齐处理,并锁存AXI读地址通道信号;The latch unit 1301 is also used to perform alignment processing on the AXI read address when monitoring that the AXI read address channel signal is valid, and latch the AXI read address channel signal;
适配单元1302,还用于根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;The adaptation unit 1302 is further configured to determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
控制单元1303,还用于针对每一次WB读操作,根据AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于WB读地址和WB读数据,执行该次WB读操作;直至WB读操作次数达到AXI读数据需要的WB传输次数。The control unit 1303 is also used for each WB read operation, according to the AXI read address channel signal, convert the AXI read address to the WB read address of the WB read operation, convert the WB read data to AXI read data, and based on WB Read address and WB read data, execute this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for AXI read data.
在本申请的一种具体实施方式中,控制单元1303,具体用于:In a specific implementation manner of this application, the control unit 1303 is specifically configured to:
根据以下公式将AXI读地址转换为该次WB读操作的WB读地址:Convert the AXI read address to the WB read address of this WB read operation according to the following formula:
wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
其中,r_data_cnt为当前AXI读地址需要传输的有效数据rdata个数;r_wb_transfer_cnt为当前需要传输的有效数据rdata下已完成的WB读操作次数;addr_addend为WB数据字节个数;araddr_ff为锁存的对齐后的AXI读地址;wb_raddr为WB读地址;data_width为AXI数据字节宽度。Among them, r_data_cnt is the number of valid data rdata that needs to be transferred at the current AXI read address; r_wb_transfer_cnt is the number of WB read operations completed under the current valid data rdata that needs to be transferred; addr_addend is the number of WB data bytes; araddr_ff is the alignment of the latch The following AXI read address; wb_raddr is the WB read address; data_width is the AXI data byte width.
在本申请的一种具体实施方式中,控制单元1303,具体用于:In a specific implementation manner of this application, the control unit 1303 is specifically configured to:
根据以下公式将WB读数据转换为AXI读数据:Convert WB read data to AXI read data according to the following formula:
rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt–1));rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt-1));
其中,wb_dat_i为WB读数据。Among them, wb_dat_i is WB read data.
相应于上面的方法实施例,本申请实施例还提供了一种AXI2WB总线桥实现设备,如图14所示,包括:Corresponding to the above method embodiment, the embodiment of the present application also provides an AXI2WB bus bridge implementation device, as shown in FIG. 14, including:
存储器1401,用于存储计算机程序;The memory 1401 is used to store computer programs;
处理器1402,用于执行计算机程序时实现上述AXI2WB总线桥实现方法的步骤。The processor 1402 is used to implement the steps of the AXI2WB bus bridge implementation method when executing computer programs.
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述AXI2WB总线桥实现方法的步骤。Corresponding to the above method embodiments, the embodiments of the present application also provide a computer-readable storage medium with a computer program stored on the computer-readable storage medium. When the computer program is executed by a processor, the steps of the AXI2WB bus bridge implementation method are implemented. .
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same or similar parts between the various embodiments can be referred to each other.
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Professionals may further realize that the units and algorithm steps of the examples described in the embodiments disclosed in this article can be implemented by electronic hardware, computer software, or a combination of both, in order to clearly illustrate the possibilities of hardware and software. Interchangeability. In the above description, the composition and steps of each example have been generally described in accordance with the function. Whether these functions are executed by hardware or software depends on the specific application and design constraint conditions of the technical solution. Professionals and technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered beyond the scope of this application.
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of the method or algorithm described in the embodiments disclosed in this document can be directly implemented by hardware, a software module executed by a processor, or a combination of the two. The software module can be placed in random access memory (RAM), internal memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs, or all areas in the technical field. Any other known storage medium.
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。Specific examples are used in this article to describe the principles and implementation of the application, and the description of the above examples is only used to help understand the technical solutions and core ideas of the application. It should be pointed out that for those of ordinary skill in the art, without departing from the principles of this application, several improvements and modifications can be made to this application, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims (10)

  1. 一种AXI2WB总线桥实现方法,其特征在于,包括:An AXI2WB bus bridge implementation method, which is characterized in that it includes:
    在监听到AXI写地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI写地址通道信号;When monitoring that the AXI write address channel signal is valid, the AXI write address is aligned, and the AXI write address channel signal is latched;
    在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号;When monitoring that the AXI write data channel signal is valid, latch the AXI write data channel signal;
    根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数;According to the multiple of the bit width of the AXI write data and the bit width of the WB write data, determine the number of WB transmissions required for the current AXI write data;
    针对每一次WB写操作,根据所述AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,并基于所述WB写地址和所述WB写数据,执行该次WB写操作;直至WB写操作次数达到所述AXI写数据需要的WB传输次数。For each WB write operation, the AXI write address is converted to the WB write address of the WB write operation according to the AXI write address channel signal, and the AXI write data is converted into the AXI write data according to the AXI write data channel signal. The WB write data of the second WB write operation is performed based on the WB write address and the WB write data; until the number of WB write operations reaches the number of WB transmissions required for the AXI write data.
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述AXI写地址通道信号,将AXI写地址转换为该次WB写操作的WB写地址,包括:The method according to claim 1, wherein the converting the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal comprises:
    根据以下公式将AXI写地址转换为该次WB写操作的WB写地址:Convert the AXI write address to the WB write address of this WB write operation according to the following formula:
    wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);wb_waddr=awaddr_ff+(w_data_cnt–1)*data_width+addr_addend*(w_wb_transfer_cnt–1);
    其中,w_data_cnt为当前AXI写地址传输的有效数据wdata个数;w_wb_transfer_cnt为当前有效数据wdata下已完成的WB写操作次数;addr_addend为WB数据字节个数;awaddr_ff为锁存的对齐后的AXI写地址;wb_waddr为WB写地址;data_width为AXI数据字节宽度。Among them, w_data_cnt is the number of valid data wdata transferred by the current AXI write address; w_wb_transfer_cnt is the number of WB write operations completed under the current valid data wdata; addr_addend is the number of WB data bytes; awaddr_ff is the latched aligned AXI write Address; wb_waddr is the WB write address; data_width is the width of the AXI data byte.
  3. 根据权利要求2所述的方法,其特征在于,所述根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,包括:The method according to claim 2, wherein the converting the AXI write data into the WB write data of the WB write operation according to the AXI write data channel signal comprises:
    根据以下公式将所述AXI写数据转换为该次WB写操作的WB写数据:Convert the AXI write data into the WB write data of this WB write operation according to the following formula:
    wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt–1)));wb_dat_o=(wdata_ff>>(data_width*addr_addend*(wb_transfer_cnt-1)));
    其中,wb_dat_o为WB写数据;wdata_ff为锁存的AXI写数据。Among them, wb_dat_o is WB write data; wdata_ff is latched AXI write data.
  4. 根据权利要求1至3之中任一项所述的方法,其特征在于,还包括:The method according to any one of claims 1 to 3, further comprising:
    在监听到AXI读地址通道信号有效时,将AXI读地址做对齐处理,并锁存AXI读地址通道信号;When monitoring that the AXI read address channel signal is valid, the AXI read address is aligned and the AXI read address channel signal is latched;
    根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;Determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
    针对每一次WB读操作,根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于所述WB读地址和所述WB读数据,执行该次WB读操作;直至WB读操作次数达到所述AXI读数据需要的WB传输次数。For each WB read operation, according to the AXI read address channel signal, the AXI read address is converted to the WB read address of the WB read operation, and the WB read data is converted to AXI read data, based on the WB read address and The WB reads data, and executes this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
  5. 根据权利要求4所述的方法,其特征在于,所述根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,包括:The method according to claim 4, wherein the converting the AXI read address into the WB read address of the WB read operation according to the AXI read address channel signal comprises:
    根据以下公式将AXI读地址转换为该次WB读操作的WB读地址:Convert the AXI read address to the WB read address of this WB read operation according to the following formula:
    wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);wb_raddr=araddr_ff+(r_data_cnt–1)*data_width+addr_addend*(r_wb_transfer_cnt–1);
    其中,r_data_cnt为当前AXI读地址需要传输的有效数据rdata个数;r_wb_transfer_cnt为当前需要传输的有效数据rdata下已完成的WB读操作次数;addr_addend为WB数据字节个数;araddr_ff为锁存的对齐后的AXI读地址;wb_raddr为WB读地址;data_width为AXI数据字节宽度。Among them, r_data_cnt is the number of valid data rdata that needs to be transferred at the current AXI read address; r_wb_transfer_cnt is the number of WB read operations completed under the current valid data rdata that needs to be transferred; addr_addend is the number of WB data bytes; araddr_ff is the alignment of the latch The following AXI read address; wb_raddr is the WB read address; data_width is the AXI data byte width.
  6. 根据权利要求5所述的方法,其特征在于,所述将WB读数据转换为AXI读数据,包括:The method according to claim 5, wherein said converting WB read data into AXI read data comprises:
    根据以下公式将WB读数据转换为AXI读数据:Convert WB read data to AXI read data according to the following formula:
    rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt–1));rdata=wb_dat_i<<(data_width*addr_addend*(r_wb_transfer_cnt-1));
    其中,wb_dat_i为WB读数据。Among them, wb_dat_i is WB read data.
  7. 一种AXI2WB总线桥实现装置,其特征在于,包括:An AXI2WB bus bridge implementation device, which is characterized in that it comprises:
    锁存单元,用于在监听到AXI写地址通道信号有效时,将AXI写地址做对齐处理,并锁存AXI写地址通道信号;在监听到AXI写数据通道信号有效时,锁存AXI写数据通道信号;The latch unit is used to align the AXI write address and latch the AXI write address channel signal when it monitors that the AXI write address channel signal is valid; latch the AXI write data when it monitors the AXI write data channel signal is valid Channel signal
    适配单元,用于根据AXI写数据的位宽与WB写数据的位宽的倍率,确定当前AXI写数据需要的WB传输次数;The adaptation unit is used to determine the number of WB transmissions required for the current AXI write data according to the multiple of the bit width of the AXI write data and the bit width of the WB write data;
    控制单元,用于针对每一次WB写操作,根据所述AXI写地址通道信 号,将AXI写地址转换为该次WB写操作的WB写地址,根据所述AXI写数据通道信号,将所述AXI写数据转换为该次WB写操作的WB写数据,并基于所述WB写地址和所述WB写数据,执行该次WB写操作;直至WB写操作次数达到所述AXI写数据需要的WB传输次数。The control unit is configured to convert the AXI write address to the WB write address of the WB write operation according to the AXI write address channel signal for each WB write operation, and convert the AXI write address according to the AXI write data channel signal The write data is converted into the WB write data of the WB write operation, and the WB write operation is executed based on the WB write address and the WB write data; until the number of WB write operations reaches the WB transmission required for the AXI write data frequency.
  8. 根据权利要求7所述的装置,其特征在于,The device according to claim 7, wherein:
    所述锁存单元,还用于在监听到AXI读地址通道信号有效时,将AXI读地址做对齐处理,并锁存AXI读地址通道信号;The latch unit is also used to perform alignment processing on the AXI read address when monitoring that the AXI read address channel signal is valid, and latch the AXI read address channel signal;
    所述适配单元,还用于根据AXI读数据的位宽与WB读数据的位宽的倍率,确定当前AXI读数据需要的WB传输次数;The adaptation unit is further configured to determine the number of WB transmissions required for the current AXI read data according to the multiple of the bit width of the AXI read data and the bit width of the WB read data;
    所述控制单元,还用于针对每一次WB读操作,根据所述AXI读地址通道信号,将AXI读地址转换为该次WB读操作的WB读地址,将WB读数据转换为AXI读数据,并基于所述WB读地址和所述WB读数据,执行该次WB读操作;直至WB读操作次数达到所述AXI读数据需要的WB传输次数。The control unit is also used to convert the AXI read address to the WB read address of the WB read operation, and convert the WB read data to AXI read data according to the AXI read address channel signal for each WB read operation, And based on the WB read address and the WB read data, perform this WB read operation; until the number of WB read operations reaches the number of WB transmissions required for the AXI read data.
  9. 一种AXI2WB总线桥实现设备,其特征在于,包括:An AXI2WB bus bridge implementation device, which is characterized in that it includes:
    存储器,用于存储计算机程序;Memory, used to store computer programs;
    处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述AXI2WB总线桥实现方法的步骤。The processor is configured to implement the steps of the AXI2WB bus bridge implementation method according to any one of claims 1 to 6 when executing the computer program.
  10. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述AXI2WB总线桥实现方法的步骤。A computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the realization of the AXI2WB bus bridge according to any one of claims 1 to 6 is realized Method steps.
PCT/CN2019/103674 2019-03-06 2019-08-30 Axi2wb bus bridge implementation method and device, equipment and storage medium WO2020177283A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910168109.9 2019-03-06
CN201910168109.9A CN109828941B (en) 2019-03-06 2019-03-06 AXI2WB bus bridge implementation method, device, equipment and storage medium

Publications (1)

Publication Number Publication Date
WO2020177283A1 true WO2020177283A1 (en) 2020-09-10

Family

ID=66865491

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/103674 WO2020177283A1 (en) 2019-03-06 2019-08-30 Axi2wb bus bridge implementation method and device, equipment and storage medium

Country Status (2)

Country Link
CN (1) CN109828941B (en)
WO (1) WO2020177283A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495862A (en) * 2021-06-29 2021-10-12 山东华芯半导体有限公司 Bus bridge device with ECC function
CN114546924A (en) * 2022-01-28 2022-05-27 山东云海国创云计算装备产业创新中心有限公司 AXI-based bidirectional data transmission method, system, storage medium and equipment
CN116756071A (en) * 2023-08-21 2023-09-15 腾讯科技(深圳)有限公司 Data transmission method, apparatus, device, storage medium and computer program product
CN116800837A (en) * 2022-12-16 2023-09-22 无锡芯光互连技术研究院有限公司 Communication conversion method, device and medium for communication between master and slave devices
CN116893991A (en) * 2023-09-11 2023-10-17 芯动微电子科技(珠海)有限公司 Storage module conversion interface under AXI protocol and conversion method thereof
CN114546924B (en) * 2022-01-28 2024-05-03 山东云海国创云计算装备产业创新中心有限公司 AXI-based bidirectional data transmission method, AXI-based bidirectional data transmission system, AXI-based bidirectional data transmission storage medium and AXI-based bidirectional data transmission equipment

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828941B (en) * 2019-03-06 2020-07-07 苏州浪潮智能科技有限公司 AXI2WB bus bridge implementation method, device, equipment and storage medium
CN110321260B (en) * 2019-06-28 2023-03-24 西安紫光国芯半导体有限公司 Uvm-based AXI bus interface read-write data comparison method and UVM verification platform
CN110389919B (en) * 2019-07-04 2021-03-19 苏州浪潮智能科技有限公司 RISC-V processor based asynchronous transceiver peripheral and system
CN110401586B (en) * 2019-07-26 2022-03-08 广东浪潮大数据研究有限公司 Bus communication method, device, equipment and readable storage medium
CN110704345A (en) * 2019-09-06 2020-01-17 华东计算技术研究所(中国电子科技集团公司第三十二研究所) PCIE-based high-speed multi-serial-port card system and sending and receiving methods thereof
CN114595181B (en) * 2020-12-03 2024-01-12 沈阳中科数控技术股份有限公司 Bus matching realization method for embedded system
CN113254368B (en) * 2021-07-15 2021-10-15 苏州浪潮智能科技有限公司 Data writing method and data reading method from AXI bus to OPB bus
CN117640783B (en) * 2024-01-25 2024-04-09 富瀚微电子(成都)有限公司 Data transmission method, system, electronic equipment and readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276735A1 (en) * 2010-05-04 2011-11-10 Samsung Electronics Co., Ltd. Interconnect, bus system with interconnect and bus system operating method
CN103761208A (en) * 2013-10-08 2014-04-30 苏州爱思索电子科技有限公司 Communication conversion bridge equipment between AHB bus and Crossbar bus
CN109828941A (en) * 2019-03-06 2019-05-31 苏州浪潮智能科技有限公司 AXI2WB bus bridge implementation method, device, equipment and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828865A (en) * 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
CN104750644B (en) * 2015-04-20 2017-11-03 哈尔滨工业大学 The conversion method of DSP EMIF read-write sequences and FPGA AVALON read-write sequences
CN107341053B (en) * 2017-06-01 2020-12-15 深圳大学 Heterogeneous multi-core programmable system and memory configuration and programming method of computing unit thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110276735A1 (en) * 2010-05-04 2011-11-10 Samsung Electronics Co., Ltd. Interconnect, bus system with interconnect and bus system operating method
CN103761208A (en) * 2013-10-08 2014-04-30 苏州爱思索电子科技有限公司 Communication conversion bridge equipment between AHB bus and Crossbar bus
CN109828941A (en) * 2019-03-06 2019-05-31 苏州浪潮智能科技有限公司 AXI2WB bus bridge implementation method, device, equipment and storage medium

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GAYATHRI, M. ET AL.: "A SV-UVM Framework for Verification of SGMII IP Core with Reusable AXI to WB Bridge UVC", 2016 3RD INTERNATIONAL CONFERENCE ON ADVANCED COMPUTING AND COMMUNICATION SYSTEMS (ICACCS), 10 October 2016 (2016-10-10), XP032977007 *
YANG, SHUNQI: "Research and Implementation of AMBA AXI4 BUS", RESEARCH AND IMPLEMENTATION OF AMBA AXI4 BUS (DISSERTATION), 24 December 2012 (2012-12-24), pages 20 - 28, XP009523012 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495862A (en) * 2021-06-29 2021-10-12 山东华芯半导体有限公司 Bus bridge device with ECC function
CN114546924A (en) * 2022-01-28 2022-05-27 山东云海国创云计算装备产业创新中心有限公司 AXI-based bidirectional data transmission method, system, storage medium and equipment
CN114546924B (en) * 2022-01-28 2024-05-03 山东云海国创云计算装备产业创新中心有限公司 AXI-based bidirectional data transmission method, AXI-based bidirectional data transmission system, AXI-based bidirectional data transmission storage medium and AXI-based bidirectional data transmission equipment
CN116800837A (en) * 2022-12-16 2023-09-22 无锡芯光互连技术研究院有限公司 Communication conversion method, device and medium for communication between master and slave devices
CN116756071A (en) * 2023-08-21 2023-09-15 腾讯科技(深圳)有限公司 Data transmission method, apparatus, device, storage medium and computer program product
CN116756071B (en) * 2023-08-21 2023-12-22 腾讯科技(深圳)有限公司 Data transmission method, apparatus, device, storage medium and computer program product
CN116893991A (en) * 2023-09-11 2023-10-17 芯动微电子科技(珠海)有限公司 Storage module conversion interface under AXI protocol and conversion method thereof
CN116893991B (en) * 2023-09-11 2024-01-02 芯动微电子科技(珠海)有限公司 Storage module conversion interface under AXI protocol and conversion method thereof

Also Published As

Publication number Publication date
CN109828941B (en) 2020-07-07
CN109828941A (en) 2019-05-31

Similar Documents

Publication Publication Date Title
WO2020177283A1 (en) Axi2wb bus bridge implementation method and device, equipment and storage medium
RU2619540C1 (en) Converter of protocols between cpci bus and isa bus and the appropriation method conforming to it
WO2021120623A1 (en) Data transmission method and apparatus, and related assembly
TWI507979B (en) Apparatus and method for integrating arm-based ips and computing device
WO2023284169A1 (en) Method for writing data from axi bus to opb bus and method for reading data from axi bus to opb bus
Shrivastav et al. Performance comparison of AMBA bus-based system-on-chip communication protocol
WO2016192217A1 (en) Apb bus bridge
CN110837486A (en) FlexRay-CPCIe communication module based on FPGA
CN101162448A (en) Hardware transmit method of USB high speed data tunnel
CN104714907B (en) A kind of pci bus is converted to ISA and APB bus design methods
WO2009152680A1 (en) Testing method and system for advanced high-performance bus in system-on-a-chip
CN112398877B (en) Control signal conversion circuit, intellectual property core and system-level chip
Patil et al. A Review of system-On-Chip bus protocols
WO2005059765A1 (en) A BUS INTERFACE CONVERTER CAPABLE OF CONVERT AMBA AHB BUS PROTOCOL INTO i960-LIKE BUS PROTOCOL
Romero et al. Energy efficient peripheral and system buses for low-area and low-power soc applications
CN107562673B (en) Bus protocol conversion bridging device applied to embedded processor
An et al. Design and implementation of Wishbone-AHB bus bridge
Roy et al. On efficient minimization techniques of logical constituents and sequential data transmission for digital IC
CN107562674B (en) Bus protocol asynchronous logic circuit implementation device embedded into processor
CN117312210B (en) Method for expanding performance of RISC-V processor
Zhao et al. A Novel Design of High-speed Multi-port Memory Interface for Digital Signal Processor
CN110389919B (en) RISC-V processor based asynchronous transceiver peripheral and system
Zhang et al. High performance and low area interconnect structure based on AXI
JPH0451349A (en) Bus interface converter
CN206991304U (en) A kind of microprocessor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19918380

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19918380

Country of ref document: EP

Kind code of ref document: A1