WO2022227092A1 - Movable platform, and verification apparatus and verification method for chip design - Google Patents

Movable platform, and verification apparatus and verification method for chip design Download PDF

Info

Publication number
WO2022227092A1
WO2022227092A1 PCT/CN2021/091772 CN2021091772W WO2022227092A1 WO 2022227092 A1 WO2022227092 A1 WO 2022227092A1 CN 2021091772 W CN2021091772 W CN 2021091772W WO 2022227092 A1 WO2022227092 A1 WO 2022227092A1
Authority
WO
WIPO (PCT)
Prior art keywords
fpga module
hard
core processor
interface
fpga
Prior art date
Application number
PCT/CN2021/091772
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 深圳市大疆创新科技有限公司
Priority to PCT/CN2021/091772 priority Critical patent/WO2022227092A1/en
Publication of WO2022227092A1 publication Critical patent/WO2022227092A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots

Definitions

  • the present application relates to the technical field of chip design, and in particular, to a movable platform, a verification device for chip design, and a verification method.
  • FPGA Field Programmable Gate Array, Field Programmable Gate Array
  • FPGA verification is an essential verification method to actually put the chip code into the hardware to run.
  • the inside of the chip can be composed of multiple subsystems, and these subsystems work together to complete the task of the entire chip.
  • ST System Test
  • IT Integration Test
  • SoC System on Chip
  • processor subsystem flight control subsystem
  • ISP Image Signal Process
  • the processor subsystem is required to control the verified subsystem and complete the function together.
  • the processor subsystems such as CPU, ARM subsystems, etc.
  • the processor subsystems are very large and occupy a lot of FPGA resources.
  • the present application provides a mobile platform, a verification device for chip design, and a verification method, which aim to solve the technical problems that existing chip verification takes up a lot of FPGA resources.
  • an embodiment of the present application provides a movable platform, including:
  • a first FPGA module capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is configured to execute a functional task corresponding to the functional program file, and the functional task includes controlling the body to adjust the pose;
  • a hard-core processor connected to the first FPGA module, for executing a computer program and scheduling the first FPGA module when executing the computer program;
  • Both the first FPGA module and the hard core processor are arranged on the body.
  • an embodiment of the present application provides a verification device for a chip design, including:
  • a first FPGA module capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is used to execute a functional task corresponding to the functional program file;
  • a hard-core processor connected to the first FPGA module, is configured to execute a computer program and schedule the first FPGA module when executing the computer program.
  • an embodiment of the present application provides a method for verifying a chip design, including:
  • the hard-core processor configuring the verification apparatus executes the computer program and schedules the first FPGA module when executing the computer program.
  • the embodiments of the present application provide a mobile platform, a verification device and a verification method for chip design.
  • the verification environment of the chip design can be more suitable for the actual application scenario of the mobile platform.
  • the verification of the chip design is more accurate; the first FPGA module can write a functional program file to configure it as a functional subsystem to execute the functional task corresponding to the functional program file, and schedule the first FPGA module through the hard-core processor, which can solve the problem of
  • the processor subsystem has a long-term monopoly on a large-capacity and expensive FPGA, and the operating frequency and performance of the hard-core processor are stronger, which facilitates timing closure and avoids limitations such as the logic capacity of the FPGA.
  • FIG. 1 is a schematic structural diagram of a movable platform provided by an embodiment of the present application.
  • FIG. 2 is a schematic diagram of data transmission performed by a movable platform and a terminal device in an embodiment
  • FIG. 3 is a schematic diagram of the connection between a first FPGA module and a hard-core processor in an embodiment
  • FIG. 4 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in another embodiment
  • FIG. 5 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in another embodiment
  • FIG. 6 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in yet another embodiment
  • FIG. 7 is a schematic structural diagram of a verification device for a chip design provided by an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a verification method for a chip design provided by an embodiment of the present application.
  • references numerals 100, movable platform; 110, body; 111, power assembly; 120, remote control; 130, mobile phone; 140, wearable device; 10, first FPGA module; 20, hard core processor; 30 41, a first interface; 42, a second interface; 43, a third interface; 200, a SoC chip; 300, an external device; 600, a verification device.
  • FIG. 1 is a schematic structural diagram of a movable platform 100 provided by an embodiment of the present application.
  • the movable platform 100 may include at least one of an unmanned aerial vehicle, a gimbal, an unmanned vehicle, and the like.
  • the unmanned aerial vehicle can be a rotary-wing drone, such as a quad-rotor drone, a hexa-rotor drone, an octa-rotor drone, or a fixed-wing drone.
  • the movable platform 100 includes a body 110, and the body 110 includes a power assembly 111.
  • the power assembly 111 includes a motor and a blade, and the motor drives the blade to rotate, which can provide the movable platform.
  • the power assembly 111 may include a wheel, such as a Mecanum wheel.
  • the mobile platform 100 can be used to verify the chip design of the mobile platform 100 to determine the performance, reliability and other indicators or defects of the chip design; in other embodiments, users can design their own The custom chip design or the open source chip design is imported into the mobile platform 100 to realize the mobile platform 100 of the custom chip design.
  • the movable platform 100 is capable of being communicatively connected with a terminal device.
  • the terminal device includes at least one of the following: a remote control 120 , a mobile phone 130 , and a wearable device 140 , for example, a wearable device 140 may include first-person view (First Person View) glasses, but is not limited to this, for example, the terminal device may also include a tablet computer, a laptop computer, a desktop computer, and the like.
  • a wireless channel from the mobile platform 100 to the terminal device is used to transmit data collected by the mobile platform 100, such as video, images, sensor data, and the mobile platform 100, such as unmanned telemetry data such as the status information (OSD) of the aircraft;
  • the wireless channel from the terminal device to the mobile platform 100 is called the uplink channel, which is used to transmit remote control data; for example, when the mobile platform 100 is an aircraft, the uplink channel is used to transmit flight control Commands and control commands such as taking pictures, recording videos, and returning to home.
  • indicators or defects such as performance and reliability of the chip design may be determined according to the motion state of the movable platform 100 .
  • the mobile platform 100 introduced into the chip design can fly according to the control logic corresponding to the chip design, fly according to a preset flight route or according to the control of the terminal device, or perform preset tasks according to sensor data of several sensors during flight , such as avoiding obstacles, flying with the target object, etc.
  • the control logic corresponding to the chip design fly according to a preset flight route or according to the control of the terminal device, or perform preset tasks according to sensor data of several sensors during flight , such as avoiding obstacles, flying with the target object, etc.
  • the control logic corresponding to the chip design fly according to a preset flight route or according to the control of the terminal device, or perform preset tasks according to sensor data of several sensors during flight , such as avoiding obstacles, flying with the target object, etc.
  • sensor data of several sensors during flight such as avoiding obstacles, flying with the target object, etc.
  • the user or the terminal device may determine the performance, reliability and other indicators or defects of the chip design according to the motion state of the movable platform 100, or the movable platform 100 may determine the performance, reliability, etc. of the chip design according to its own motion state. indicator or defect.
  • the verification environment of the chip design can be more suitable for the actual application scenario of the movable platform 100, and the verification of the chip design can be more accurate.
  • the processor subsystem is usually synthesized and wired separately, and programmed into an FPGA as the processor subsystem, and integrated and verified with the functional subsystem.
  • the timing convergence of the FPGA is different from that of the hard-core processor 20, and the processor subsystem operates at a lower frequency, the timing convergence is more difficult.
  • the inventor also found that the logic gate capacity of the processor subsystem is huge, and if it is programmed into an FPGA for integration, it will occupy an FPGA with a larger capacity, and the occupied cost is relatively high. Due to the limited number of logic gates in the FPGA, even in some complex processor subsystem verification work, it is impossible to put the entire processor subsystem into one FPGA. Moreover, the verification of each functional subsystem is dependent on the processor subsystem, so the processor subsystem needs to be greatly prioritized over the development of other functional subsystems in terms of schedule dependencies. In other words, the processor subsystem will become a dependency and bottleneck for the development and verification of chip development and the development of other functional subsystems.
  • the inventors of the present application have improved the verification device 600 and the verification method for chip design, so that the functions of the processor subsystem can be realized through the hard-core processor 20, and the chip system integration can be completed without monopolizing a large-capacity FPGA. verify.
  • off-the-shelf stable processor subsystems can be used in combination, thereby reducing or eliminating the dependency on developing processor subsystems, making the verification process more flexible and time-efficient.
  • the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem that is instantiated in an FPGA (program files of the processor subsystem are programmed), which facilitates timing closure and avoids the need for an FPGA. logical capacity and other limitations.
  • the movable platform 100 includes a body 110 , a first FPGA module 10 and a hard core processor 20 .
  • the first FPGA module 10 and the hard core processor 20 are both disposed on the body 110 .
  • the first FPGA module 10 and the hard core processor 20 are integrally provided with the body 110 , or at least one of the first FPGA module 10 and the hard core processor 20 is detachably connected to the body 110 .
  • the first FPGA module 10 and the hard core processor 20 may be provided on one or more circuit boards, and the circuit boards are provided on the body 110, for example, connected to the power component 111 on the body 110 to control the power
  • the component 111 moves to control the body 110 to adjust the posture, for example, to control the body 110 to hover, change the course, and fly the speed.
  • the first FPGA module 10 can write a function program file to be configured as a function subsystem, and the function subsystem is used to execute the function task corresponding to the function program file.
  • the functional task includes controlling the body 110 to adjust the posture.
  • the function program file can convert the chip functions and subsystems into FPGA logic units by dividing the chip functions and subsystems into multiple FPGA capacity spaces (which can be called division), and convert the digital chip codes of the chip functions and subsystems into FPGA logic units (which can be called synthesis). ), and laying out the converted FPGA logic unit in the FPGA (which can be called a comprehensive layout), and connecting the internal signal to the FPGA logic unit (which can be called a comprehensive wiring), and burning the function program file into the FPGA, and running it, can verify the correctness of the chip design.
  • the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
  • the image signal processing subsystem can process the image captured by the camera mounted on the movable platform 100, for example, the first FPGA module 10 burns the design file of the image signal processing (Image Signal Processing, ISP) chip to obtain image signal processing. subsystem.
  • the image signal processing Image Signal Processing, ISP
  • the peripheral subsystem can process at least one of the following sensor (peripheral) sensors: gyroscope, electronic compass, inertial measurement unit (Inertia1 Measurement Unit, IMU), vision sensor, global positioning system (G1oba1 Positioning System, GPS) ), barometer, airspeed meter.
  • the peripheral subsystem processes the sensor data, and can determine the pose information of the movable platform 100, that is, the position information and state information of the movable platform 100 in space, such as three-dimensional position, three-dimensional angle, three-dimensional velocity, three-dimensional acceleration and three-dimensional angular velocity Wait.
  • the first FPGA module 10 can program a chip design capable of processing sensor data to obtain a peripheral subsystem.
  • a control subsystem may be used to control movement of the movable platform 100 .
  • the control subsystem may control the movable platform 100 according to preset program instructions.
  • the control subsystem can control the movement of the movable platform 100 according to the pose information of the movable platform 100 measured by the peripheral subsystem, can also control the movable platform 100 according to the control signal from the terminal device, or can control the movable platform 100 according to the image
  • the signal processing subsystem controls the movement of the movable platform 100 with the result of processing the images captured by the imaging device mounted on the movable platform 100 .
  • the control subsystem includes a flight control subsystem.
  • the first FPGA module 10 burns the design file of the flight control system (flight control) chip to obtain the control subsystem.
  • different functional subsystems may be configured in the same first FPGA module 10 , or may be configured in different first FPGA modules 10 .
  • one or more function program files can be programmed into each first FPGA module 10 according to the hardware resources of the first FPGA module 10 .
  • one functional program file can be programmed into one first FPGA module 10, or programmed into multiple first FPGA modules 10.
  • a chip design corresponding to a certain functional program file needs to occupy more space.
  • the hardware resource it can be programmed in multiple first FPGA modules 10 .
  • the hard core processor 20 is connected to the first FPGA module 10 for executing a computer program and scheduling the first FPGA module 10 when executing the computer program.
  • the movable platform 100 further includes a memory, and the hard-core processor 20 is used for running the computer program stored in the memory and scheduling the first FPGA module 10 when executing the computer program.
  • the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
  • ROM Read-Only Memory
  • the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
  • the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem.
  • the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
  • the hard-core processor 20 can access various functional subsystems, such as the flight control subsystem, when executing the computer program.
  • the system transmits corresponding data to the hard-core processor 20, and after the data transmission is successful, the flight control subsystem can continue to perform subsequent operations, such as controlling the movement of the unmanned aerial vehicle.
  • the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  • the hard-core processor 20 may include one or more processor cores.
  • the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
  • MPSoC Multi-processor System on Chip
  • a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
  • the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 .
  • the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor
  • the corresponding preset task is executed according to the information sent by the hard core processor 20.
  • the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
  • the movable platform 100 further includes a second FPGA module 30 .
  • the hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
  • each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 .
  • a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network.
  • one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
  • multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 .
  • the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
  • the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 .
  • the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
  • the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41
  • the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 .
  • the data transmission speed of the first interface 41 is faster than that of the second interface 42
  • the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
  • the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
  • SERDES Serializer/DESerializer, serializer/deserializer
  • the SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology.
  • the multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology
  • the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20.
  • the processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
  • AZA Advanced High Performance Bus
  • Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface.
  • the data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
  • the second FPGA module 30 and the hard core processor 20 are integrally provided.
  • the length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
  • the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
  • the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus.
  • the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth via PCB hard board connection mode.
  • the hard core processor 20 further includes a third interface 43 , and the hard core processor 20 is further configured to communicate with the external device 300 through the third interface 43 .
  • the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface.
  • the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
  • the hard core processor 20 in the SoC chip 200 may perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43 .
  • the hard-core processor 20 is further configured to acquire data from the external device 300 through the third interface 43, send the data acquired from the external device 300 to the first FPGA module 10, and the first FPGA module 10 to 300
  • the acquired data is processed.
  • the data includes at least one of the following: video, image, and data set, but of course, it is not limited thereto.
  • the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing.
  • the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem.
  • the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
  • the hard-core processor 20 is further configured to acquire data acquired and/or output by the first FPGA module 10 , and send the data acquired and/or output by the first FPGA module 10 through the third interface 43 . to the external device 300.
  • the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
  • the verification of the functional subsystem can be realized.
  • the verification environment of the chip design can be more suitable for the actual application scenario of the movable platform, and the verification of the chip design can be more accurate.
  • the first FPGA module can write a function program file to be configured as a function subsystem to execute the function task corresponding to the function program file, and schedule the first FPGA module through a hard-core processor, and the hard-core processor can realize the processor subsystem It can complete the verification of the chip design without the need for a large-capacity FPGA to program the processor subsystem, which can solve the dilemma of the processor subsystem monopolizing a large-capacity expensive FPGA for a long time during the verification process. Moreover, the operating frequency and performance of the hard-core processor are stronger, which is convenient for timing closure and avoids limitations such as the logic capacity of the FPGA.
  • an off-the-shelf and stable processor subsystem can be used in combination without relying on a self-developed processor subsystem, so that the verification relationship between it and other subsystems can be decoupled, so as to improve verification efficiency and reduce overall verification costs. time.
  • the function of the functional subsystem can be controlled during the verification process, and the correctness of the function of the functional subsystem can be verified.
  • the verification process is more flexible and time-efficient.
  • the hard core processor 20 can often be connected to many standard high-speed interfaces, such as USB, Ethernet, PCIe, etc., and can communicate with the external device 300 through these standard interfaces with large bandwidth data, which is convenient for verification of chip design.
  • standard high-speed interfaces such as USB, Ethernet, PCIe, etc.
  • FIG. 7 is a schematic block diagram of an apparatus 600 for verifying a chip design provided by an embodiment of the present application.
  • the verification apparatus 600 can be used for the aforementioned movable platform 100, and is of course not limited to this, that is, the verification apparatus 600 is not limited to verifying the chip design of the mobile platform 100, for example, it can be used for the chip design of the terminal device.
  • the terminal device includes, for example, a mobile phone 130, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, a wearable device 140, a remote control 120, and the like.
  • the verification apparatus 600 may include the first FPGA module 10 and the hard core processor 20 in the aforementioned movable platform 100 .
  • the verification device 600 and the body 110 of the movable platform 100 may be integrally provided, or may be detachably connected to the body 110 of the movable platform 100 .
  • the verification apparatus 600 includes a first FPGA module 10 and a hard core processor 20 .
  • the first FPGA module 10 and the hard core processor 20 may be provided on one or more circuit boards.
  • the first FPGA module 10 can write a function program file to be configured as a function subsystem, and the function subsystem is used to execute the function task corresponding to the function program file.
  • the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
  • different functional subsystems may be configured in the same first FPGA module 10 , or may be configured in different first FPGA modules 10 .
  • one or more function program files can be programmed into each first FPGA module 10 according to the hardware resources of the first FPGA module 10 .
  • one functional program file can be programmed into one first FPGA module 10, or programmed into multiple first FPGA modules 10.
  • a chip design corresponding to a certain functional program file needs to occupy more space.
  • the hardware resource it can be programmed in multiple first FPGA modules 10 .
  • the hard core processor 20 is connected to the first FPGA module 10 for executing a computer program and scheduling the first FPGA module 10 when executing the computer program.
  • the verification apparatus 600 further includes a memory, and the hard-core processor 20 is configured to run the computer program stored in the memory, and schedule the first FPGA module 10 when executing the computer program.
  • the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
  • ROM Read-Only Memory
  • the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
  • the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem.
  • the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
  • the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  • the hard-core processor 20 may include one or more processor cores.
  • the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
  • MPSoC Multi-processor System on Chip
  • a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
  • the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 .
  • the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor
  • the corresponding preset task is executed according to the information sent by the hard core processor 20.
  • the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
  • the verification apparatus 600 further includes a second FPGA module 30 .
  • the hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
  • each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 .
  • a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network.
  • one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
  • multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 .
  • the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
  • the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 .
  • the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
  • the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41
  • the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 .
  • the data transmission speed of the first interface 41 is faster than that of the second interface 42
  • the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
  • the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
  • SERDES Serializer/DESerializer, serializer/deserializer
  • the SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology.
  • the multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology
  • the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20.
  • the processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
  • AZA Advanced High Performance Bus
  • Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface.
  • the data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
  • the second FPGA module 30 and the hard core processor 20 are integrally provided.
  • the length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
  • the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
  • the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus.
  • the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth via PCB hard board connection mode.
  • the hard core processor 20 further includes a third interface 43 , and the hard core processor 20 is further configured to communicate with the external device 300 through the third interface 43 .
  • the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface.
  • the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
  • the hard core processor 20 in the SoC chip 200 can perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43.
  • the hard-core processor 20 is further configured to acquire data from the external device 300 through the third interface 43, send the data acquired from the external device 300 to the first FPGA module 10, and the first FPGA module 10 to 300
  • the acquired data is processed.
  • the data includes at least one of the following: video, image, and data set, but of course, it is not limited thereto.
  • the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing.
  • the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem.
  • the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
  • the hard-core processor 20 is further configured to acquire data acquired and/or output by the first FPGA module 10 , and send the data acquired and/or output by the first FPGA module 10 through the third interface 43 . to the external device 300.
  • the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
  • the verification of the functional subsystem can be realized.
  • the first FPGA module can write a function program file to be configured as a function subsystem, so as to execute the function task corresponding to the function program file, and schedule the first FPGA module through a hard-core processor , which can solve the dilemma of the processor subsystem monopolizing a large-capacity and expensive FPGA for a long time during the verification process, and the operating frequency and performance of the hard-core processor are stronger, which is convenient for timing closure and avoids limitations such as the logic capacity of the FPGA.
  • FIG. 8 is a schematic flowchart of a verification method for a chip design provided by an embodiment of the present application.
  • the verification method can be used to verify the chip design.
  • the verification method can be used in the aforementioned mobile platform 100 or the verification apparatus 600 of the chip design.
  • the verification method of the embodiment of the present application includes steps S110 to S140.
  • the function program file can convert the chip functions and subsystems into FPGA logic units by dividing the chip functions and subsystems into multiple FPGA capacity spaces (which may be called division), and convert the digital chip codes of the chip functions and subsystems into FPGA logic units (which may be called as divisions). For synthesis), and laying out the converted FPGA logic unit in the FPGA (may be called a synthesis layout), and connecting the internal signal to the FPGA logic unit (may be called a synthesis route).
  • the function program file is burned into the FPGA and run, so that the correctness of the chip design can be verified.
  • the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
  • the image signal processing subsystem can process the image captured by the camera mounted on the movable platform 100, for example, the first FPGA module 10 burns the design file of the image signal processing (Image Signal Processing, ISP) chip to obtain image signal processing. subsystem.
  • the image signal processing Image Signal Processing, ISP
  • the peripheral subsystem can process at least one of the following sensor (peripheral) sensors: gyroscope, electronic compass, inertial measurement unit (Inertia1 Measurement Unit, IMU), vision sensor, global positioning system (G1oba1 Positioning System, GPS) ), barometer, airspeed meter.
  • the peripheral subsystem processes the sensor data, and can determine the pose information of the movable platform 100, that is, the position information and state information of the movable platform 100 in space, such as three-dimensional position, three-dimensional angle, three-dimensional velocity, three-dimensional acceleration and three-dimensional angular velocity Wait.
  • the first FPGA module 10 can program a chip design capable of processing sensor data to obtain a peripheral subsystem.
  • a control subsystem may be used to control movement of the movable platform 100 .
  • the control subsystem may control the movable platform 100 according to preset program instructions.
  • the control subsystem can control the movement of the movable platform 100 according to the pose information of the movable platform 100 measured by the peripheral subsystem, can also control the movable platform 100 according to the control signal from the terminal device, or can control the movable platform 100 according to the image
  • the signal processing subsystem controls the movement of the movable platform 100 with the result of processing the images captured by the imaging device mounted on the movable platform 100 .
  • the control subsystem includes a flight control subsystem.
  • the first FPGA module 10 burns the design file of the flight control system (flight control) chip to obtain the control subsystem.
  • the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  • the hard-core processor 20 may include one or more processor cores.
  • the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
  • MPSoC Multi-processor System on Chip
  • the computer program may be stored in the memory, and the hard-core processor 20 is used to execute the computer program stored in the memory, and schedule the first FPGA module 10 when executing the computer program.
  • the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem.
  • the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
  • the hard-core processor 20 can access various functional subsystems, such as the flight control subsystem, when executing the computer program.
  • the system transmits corresponding data to the hard-core processor 20, and after the data transmission is successful, the flight control subsystem can continue to perform subsequent operations, such as controlling the movement of the unmanned aerial vehicle.
  • a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
  • the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 .
  • the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor
  • the corresponding preset task is executed according to the information sent by the hard core processor 20.
  • the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
  • the verification apparatus 600 further includes a second FPGA module 30 .
  • the hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
  • each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 .
  • a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network.
  • one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
  • multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 .
  • the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
  • the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 .
  • the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
  • the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41
  • the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 .
  • the data transmission speed of the first interface 41 is faster than that of the second interface 42
  • the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
  • the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
  • SERDES Serializer/DESerializer, serializer/deserializer
  • the SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology.
  • the multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals.
  • TDM time-division multiplexing
  • P2P point-to-point serial communication technology
  • the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20.
  • the processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
  • AZA Advanced High Performance Bus
  • Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface.
  • the data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
  • the second FPGA module 30 and the hard core processor 20 are integrally provided.
  • the length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
  • the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
  • the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus.
  • the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth over PCB hard board connection mode.
  • the hard core processor 20 further includes a third interface 43
  • the method further includes: the hard core processor 20 passes the third interface 43 of the hard core processor 20 through the hard core processor 20 . Communication with the external device 300 is performed.
  • the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface.
  • the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
  • the hard core processor 20 in the SoC chip 200 may perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43 .
  • the hard-core processor 20 communicates with the external device 300 through the third interface 43 of the hard-core processor 20 , including: the hard-core processor 20 communicates with the external device through the third interface 43 .
  • 300 acquires data, and sends the data acquired from the external device 300 to the first FPGA module 10 , so that the first FPGA module 10 processes the data acquired from the external device 300 .
  • the data includes at least one of the following: video, image, data set, but certainly not limited thereto.
  • the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing.
  • the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem.
  • the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
  • the communication between the hard-core processor 20 and the external device 300 through the third interface 43 of the hard-core processor 20 includes: the hard-core processor 20 obtains the information obtained by the first FPGA module 10 . data and/or output data, and the data acquired and/or output by the first FPGA module 10 are sent to the external device 300 through the third interface 43 .
  • the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
  • the verification of the functional subsystem can be realized.
  • the first FPGA module is configured as a functional subsystem
  • the hard-core processor of the verification device is configured to verify the first FPGA module of the verification device.
  • Scheduling an FPGA module can solve the dilemma of the processor subsystem monopolizing a large-capacity and expensive FPGA for a long time during the verification process of the chip design, and the working frequency and performance of the hard-core processor are stronger, which is convenient for timing convergence and avoids the FPGA Limitations such as logical capacity.

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

A movable platform (100), comprising: a machine body (110); a first FPGA module (10), which is capable of writing a function program file so as to configure same as a functional subsystem, wherein the functional subsystem is used to execute a functional task corresponding to the function program file, and the functional task comprises controlling the machine body (110) to adjust a pose; a hard-core processor (20), which is connected to the first FPGA module (10), and which is used to execute a computer program and schedule the first FPGA module (10) when the computer program is executed, the first FPGA module (10) and the hard-core processor (20) both being provided on the machine body (110). The amount of FPGA resources occupied during chip verification can be reduced. Also provided are a verification apparatus and verification method for chip design.

Description

可移动平台、芯片设计的验证装置、验证方法Movable platform, verification device and verification method for chip design 技术领域technical field
本申请涉及芯片设计技术领域,尤其涉及一种可移动平台、芯片设计的验证装置、验证方法。The present application relates to the technical field of chip design, and in particular, to a movable platform, a verification device for chip design, and a verification method.
背景技术Background technique
FPGA(Field Programmable Gate Array,现场可编程门阵列)是一种可实现任何电路的硬件器件,可以用于将芯片设计配置到FPGA内进行真实的功能运行,以此来真正检验芯片设计的正确性。在芯片开发的过程中FPGA验证是将芯片代码实际放入硬件运行的一种必不可少的验证方式。FPGA (Field Programmable Gate Array, Field Programmable Gate Array) is a hardware device that can realize any circuit. It can be used to configure the chip design into the FPGA for real functional operation, so as to truly verify the correctness of the chip design. . In the process of chip development, FPGA verification is an essential verification method to actually put the chip code into the hardware to run.
芯片内部可以由多个子系统组成,这些子系统协同完成整个芯片任务。每款芯片在Tape Out(流片制造)之前,需要对每个子系统进行各自的功能验证,称为ST(System Test),和/或需要将所有的子系统综合起来进行验证,称为IT(Integration Test)。The inside of the chip can be composed of multiple subsystems, and these subsystems work together to complete the task of the entire chip. Before Tape Out (fabrication), each chip needs to perform its own functional verification of each subsystem, called ST (System Test), and/or need to integrate all subsystems for verification, called IT ( Integration Test).
例如,用于可移动平台的SoC(System on Chip,片上系统)芯片内部,存在多个子系统如处理器子系统、飞控子系统、图像信号处理(Image Signal Process,ISP)子系统、高速外设子系统等,测试时需要处理器子系统来控制被验证的子系统,共同完成功能。而业界普遍长期存在芯片的处理器子系统(如CPU、ARM子系统等)非常庞大,要占用很多的FPGA资源。For example, inside the SoC (System on Chip) chip for mobile platforms, there are multiple subsystems such as processor subsystem, flight control subsystem, Image Signal Process (ISP) subsystem, high-speed external When testing, the processor subsystem is required to control the verified subsystem and complete the function together. However, the processor subsystems (such as CPU, ARM subsystems, etc.) of chips that generally exist for a long time in the industry are very large and occupy a lot of FPGA resources.
发明内容SUMMARY OF THE INVENTION
本申请提供了一种可移动平台、芯片设计的验证装置、验证方法,旨在解决现有的芯片验证要占用很多FPGA资源等技术问题。The present application provides a mobile platform, a verification device for chip design, and a verification method, which aim to solve the technical problems that existing chip verification takes up a lot of FPGA resources.
第一方面,本申请实施例提供了一种可移动平台,包括:In a first aspect, an embodiment of the present application provides a movable platform, including:
机体;body;
第一FPGA模块,能够写入功能程序文件以配置为功能子系统,所述功能子系统用于执行所述功能程序文件对应的功能任务,所述功能任务包括控制所述机体调整位姿;a first FPGA module, capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is configured to execute a functional task corresponding to the functional program file, and the functional task includes controlling the body to adjust the pose;
硬核处理器,连接所述第一FPGA模块,用于执行计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度;a hard-core processor, connected to the first FPGA module, for executing a computer program and scheduling the first FPGA module when executing the computer program;
所述第一FPGA模块和所述硬核处理器均设置在所述机体上。Both the first FPGA module and the hard core processor are arranged on the body.
第二方面,本申请实施例提供了一种芯片设计的验证装置,包括:In a second aspect, an embodiment of the present application provides a verification device for a chip design, including:
第一FPGA模块,能够写入功能程序文件以配置为功能子系统,所述功能子系统用于执行所述功能程序文件对应的功能任务;a first FPGA module, capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is used to execute a functional task corresponding to the functional program file;
硬核处理器,连接所述第一FPGA模块,用于执行计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度。A hard-core processor, connected to the first FPGA module, is configured to execute a computer program and schedule the first FPGA module when executing the computer program.
第三方面,本申请实施例提供了一种芯片设计的验证方法,包括:In a third aspect, an embodiment of the present application provides a method for verifying a chip design, including:
获取功能程序文件;Get functional program files;
将获取的功能程序文件写入验证装置的第一FPGA模块,得到功能子系统;Write the acquired functional program file into the first FPGA module of the verification device to obtain a functional subsystem;
获取计算机程序;obtain computer programs;
配置所述验证装置的硬核处理器执行所述计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度。The hard-core processor configuring the verification apparatus executes the computer program and schedules the first FPGA module when executing the computer program.
本申请实施例提供了一种可移动平台、芯片设计的验证装置、验证方法,通过将芯片设计导入可移动平台,可以使得芯片设计的验证环境可以更贴合可移动平台的实际应用场景,对芯片设计的验证更准确;第一FPGA模块能够写入功能程序文件以配置为功能子系统,以执行功能程序文件对应的功能任务,通过硬核处理器对第一FPGA模块进行调度,可解决在芯片设计的验证过程中,处理器子系统长期独占一个大容量昂贵FPGA的困境,而且硬核处理器的工作频率、性能更强,便于时序收敛、避免FPGA的逻辑容量等限制。The embodiments of the present application provide a mobile platform, a verification device and a verification method for chip design. By importing the chip design into the mobile platform, the verification environment of the chip design can be more suitable for the actual application scenario of the mobile platform. The verification of the chip design is more accurate; the first FPGA module can write a functional program file to configure it as a functional subsystem to execute the functional task corresponding to the functional program file, and schedule the first FPGA module through the hard-core processor, which can solve the problem of During the verification process of the chip design, the processor subsystem has a long-term monopoly on a large-capacity and expensive FPGA, and the operating frequency and performance of the hard-core processor are stronger, which facilitates timing closure and avoids limitations such as the logic capacity of the FPGA.
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请实施例的公开内容。It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and do not limit the disclosure of the embodiments of the present application.
附图说明Description of drawings
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需 要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to explain the technical solutions of the embodiments of the present application more clearly, the following briefly introduces the accompanying drawings used in the description of the embodiments. Obviously, the drawings in the following description are some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained from these drawings without any creative effort.
图1是本申请实施例提供的一种可移动平台的结构示意图;1 is a schematic structural diagram of a movable platform provided by an embodiment of the present application;
图2是一实施方式中可移动平台和终端设备进行数据传输的示意图;2 is a schematic diagram of data transmission performed by a movable platform and a terminal device in an embodiment;
图3是一实施方式中第一FPGA模块与硬核处理器连接的示意图;3 is a schematic diagram of the connection between a first FPGA module and a hard-core processor in an embodiment;
图4是另一实施方式中第一FPGA模块与硬核处理器连接的示意图;4 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in another embodiment;
图5是又一实施方式中第一FPGA模块与硬核处理器连接的示意图;5 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in another embodiment;
图6是再一实施方式中第一FPGA模块与硬核处理器连接的示意图;6 is a schematic diagram of the connection between the first FPGA module and the hard-core processor in yet another embodiment;
图7是本申请实施例提供的一种芯片设计的验证装置的结构示意图;7 is a schematic structural diagram of a verification device for a chip design provided by an embodiment of the present application;
图8是本申请实施例提供的一种芯片设计的验证方法的流程示意图。FIG. 8 is a schematic flowchart of a verification method for a chip design provided by an embodiment of the present application.
附图标记说明:100、可移动平台;110、机体;111、动力组件;120、遥控器;130、手机;140、穿戴式设备;10、第一FPGA模块;20、硬核处理器;30、第二FPGA模块;41、第一接口;42、第二接口;43、第三接口;200、SoC芯片;300、外部设备;600、验证装置。Description of reference numerals: 100, movable platform; 110, body; 111, power assembly; 120, remote control; 130, mobile phone; 140, wearable device; 10, first FPGA module; 20, hard core processor; 30 41, a first interface; 42, a second interface; 43, a third interface; 200, a SoC chip; 300, an external device; 600, a verification device.
具体实施方式Detailed ways
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。The flowcharts shown in the figures are for illustration only, and do not necessarily include all contents and operations/steps, nor do they have to be performed in the order described. For example, some operations/steps can also be decomposed, combined or partially combined, so the actual execution order may be changed according to the actual situation.
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。Some embodiments of the present application will be described in detail below with reference to the accompanying drawings. The embodiments described below and features in the embodiments may be combined with each other without conflict.
请参阅图1,图1是本申请实施例提供的一种可移动平台100的结构示意图。示例性的,可移动平台100可以包括无人飞行器、云台、无人车等中的至少一种。进一步而言,无人飞行器可以为旋翼型无人机,例如四旋翼无人机、 六旋翼无人机、八旋翼无人机,也可以是固定翼无人机。Please refer to FIG. 1 . FIG. 1 is a schematic structural diagram of a movable platform 100 provided by an embodiment of the present application. Exemplarily, the movable platform 100 may include at least one of an unmanned aerial vehicle, a gimbal, an unmanned vehicle, and the like. Further, the unmanned aerial vehicle can be a rotary-wing drone, such as a quad-rotor drone, a hexa-rotor drone, an octa-rotor drone, or a fixed-wing drone.
示例性的,如图1所示,可移动平台100包括机体110,机体110包括动力组件111,举例而言,动力组件111包括电机和桨叶,电机带动桨叶转动,可以提供使可移动平台100调整位置和/或姿态的动力。在另一些实施方式中,动力组件111可以包括车轮,如麦克纳姆轮。Exemplarily, as shown in FIG. 1 , the movable platform 100 includes a body 110, and the body 110 includes a power assembly 111. For example, the power assembly 111 includes a motor and a blade, and the motor drives the blade to rotate, which can provide the movable platform. 100 Power to adjust position and/or attitude. In other embodiments, the power assembly 111 may include a wheel, such as a Mecanum wheel.
在一些实施方式中,可移动平台100可以用于对可移动平台100的芯片设计进行验证,以确定芯片设计的性能、可靠性等指标或缺陷;在另一些实施方式中,用户可以将自行设计的芯片设计或者开源的芯片设计导入可移动平台100,实现自定义芯片设计的可移动平台100。In some embodiments, the mobile platform 100 can be used to verify the chip design of the mobile platform 100 to determine the performance, reliability and other indicators or defects of the chip design; in other embodiments, users can design their own The custom chip design or the open source chip design is imported into the mobile platform 100 to realize the mobile platform 100 of the custom chip design.
在一些实施方式中,可移动平台100能够与终端设备通信连接,如图2所示,终端设备包括以下至少一种:遥控器120、手机130、穿戴式设备140,举例而言,穿戴式设备140可以包括第一人称视角(First Person View)眼镜,当然也不限于此,例如,终端设备还可以包括平板电脑、笔记本电脑、台式电脑等。In some embodiments, the movable platform 100 is capable of being communicatively connected with a terminal device. As shown in FIG. 2 , the terminal device includes at least one of the following: a remote control 120 , a mobile phone 130 , and a wearable device 140 , for example, a wearable device 140 may include first-person view (First Person View) glasses, but is not limited to this, for example, the terminal device may also include a tablet computer, a laptop computer, a desktop computer, and the like.
示例性的,从可移动平台100到终端设备的无线信道,称为下行信道,用于传输可移动平台100采集到的数据,例如视频、图像、传感器数据、以及可移动平台100,如无人机的状态信息(OSD)等遥测数据;从终端设备到可移动平台100的无线信道,称为上行信道,用于传输遥控数据;例如可移动平台100为飞行器时,上行信道用于传输飞控指令以及拍照、录像、返航等控制指令。Exemplarily, a wireless channel from the mobile platform 100 to the terminal device, referred to as a downlink channel, is used to transmit data collected by the mobile platform 100, such as video, images, sensor data, and the mobile platform 100, such as unmanned telemetry data such as the status information (OSD) of the aircraft; the wireless channel from the terminal device to the mobile platform 100 is called the uplink channel, which is used to transmit remote control data; for example, when the mobile platform 100 is an aircraft, the uplink channel is used to transmit flight control Commands and control commands such as taking pictures, recording videos, and returning to home.
示例性的,可以根据可移动平台100的运动状态确定芯片设计的性能、可靠性等指标或缺陷。Exemplarily, indicators or defects such as performance and reliability of the chip design may be determined according to the motion state of the movable platform 100 .
在一些实施方式中,导入芯片设计的可移动平台100能够根据芯片设计对应的控制逻辑,根据预设航线飞行或者根据终端设备的控制飞行,或者在飞行时根据若干传感器的传感器数据执行预设任务,如进行避障、跟随目标对象飞行等。当然也不限于此。In some embodiments, the mobile platform 100 introduced into the chip design can fly according to the control logic corresponding to the chip design, fly according to a preset flight route or according to the control of the terminal device, or perform preset tasks according to sensor data of several sensors during flight , such as avoiding obstacles, flying with the target object, etc. Of course it is not limited to this.
示例性的,用户或者终端设备可以根据可移动平台100的运动状态确定芯片设计的性能、可靠性等指标或缺陷,或者可移动平台100可以根据自身的运动状态确定芯片设计的性能、可靠性等指标或缺陷。Exemplarily, the user or the terminal device may determine the performance, reliability and other indicators or defects of the chip design according to the motion state of the movable platform 100, or the movable platform 100 may determine the performance, reliability, etc. of the chip design according to its own motion state. indicator or defect.
通过将芯片设计导入可移动平台100,可以使得芯片设计的验证环境可以更贴合可移动平台100的实际应用场景,对芯片设计的验证更准确。By importing the chip design into the movable platform 100, the verification environment of the chip design can be more suitable for the actual application scenario of the movable platform 100, and the verification of the chip design can be more accurate.
本申请的发明人发现,目前的芯片设计验证,通常将处理器子系统单独经过综合、布线,烧录入一个FPGA作为处理器子系统,与功能子系统进行集成验证。在此方法下进行芯片设计的验证时,由于FPGA的时序收敛与硬核处理器20不同,处理器子系统运行的频点更低,因此时序收敛难度较大。The inventor of the present application found that, in the current chip design verification, the processor subsystem is usually synthesized and wired separately, and programmed into an FPGA as the processor subsystem, and integrated and verified with the functional subsystem. When verifying the chip design under this method, since the timing convergence of the FPGA is different from that of the hard-core processor 20, and the processor subsystem operates at a lower frequency, the timing convergence is more difficult.
发明人还发现,处理器子系统的逻辑门容量巨大,烧录到FPGA中进行集成的话,会占用一颗容量较大的FPGA,所占用的成本较高。由于FPGA中的逻辑门数量限制,甚至在一些复杂的处理器子系统验证工作中,无法将整个处理器子系统放入一个FPGA中。而且,各功能子系统的验证都依赖于处理器子系统,因此,在时间表依赖上,处理器子系统需要大大优先于其他功能子系统的开发。换句话来说,处理器子系统会成为芯片开发验证、其他功能子系统开发的依赖与瓶颈。The inventor also found that the logic gate capacity of the processor subsystem is huge, and if it is programmed into an FPGA for integration, it will occupy an FPGA with a larger capacity, and the occupied cost is relatively high. Due to the limited number of logic gates in the FPGA, even in some complex processor subsystem verification work, it is impossible to put the entire processor subsystem into one FPGA. Moreover, the verification of each functional subsystem is dependent on the processor subsystem, so the processor subsystem needs to be greatly prioritized over the development of other functional subsystems in terms of schedule dependencies. In other words, the processor subsystem will become a dependency and bottleneck for the development and verification of chip development and the development of other functional subsystems.
针对该发现,本申请的发明人对芯片设计的验证装置600和验证方法进行了改进,可以通过硬核处理器20实现处理器子系统的功能,无需独占大容量FPGA,即可完成芯片系统集成验证。在一些实施方式中,可以融合使用现成稳定的处理器子系统,因此降低或消除开发处理器子系统的依赖,使验证过程更加灵活、时效更高。在一些实施方式中,硬核处理器20相比在FPGA内例化(烧录处理器子系统的程序文件)构成的处理器子系统,其工作频率、性能更强,便于时序收敛、避免FPGA的逻辑容量等限制。In response to this discovery, the inventors of the present application have improved the verification device 600 and the verification method for chip design, so that the functions of the processor subsystem can be realized through the hard-core processor 20, and the chip system integration can be completed without monopolizing a large-capacity FPGA. verify. In some embodiments, off-the-shelf stable processor subsystems can be used in combination, thereby reducing or eliminating the dependency on developing processor subsystems, making the verification process more flexible and time-efficient. In some embodiments, the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem that is instantiated in an FPGA (program files of the processor subsystem are programmed), which facilitates timing closure and avoids the need for an FPGA. logical capacity and other limitations.
具体的,如图1所示,可移动平台100包括机体110、第一FPGA模块10以及硬核处理器20。Specifically, as shown in FIG. 1 , the movable platform 100 includes a body 110 , a first FPGA module 10 and a hard core processor 20 .
第一FPGA模块10和硬核处理器20均设置在机体110上。示例性的,第一FPGA模块10和硬核处理器20与机体110一体化设置,或者第一FPGA模块10和硬核处理器20中的至少一个与机体110可拆卸连接。The first FPGA module 10 and the hard core processor 20 are both disposed on the body 110 . Exemplarily, the first FPGA module 10 and the hard core processor 20 are integrally provided with the body 110 , or at least one of the first FPGA module 10 and the hard core processor 20 is detachably connected to the body 110 .
在一些实施方式中,第一FPGA模块10和硬核处理器20可以设置在一个或多个电路板上,电路板设置在机体110上,例如与机体110上的动力组件111连接,以控制动力组件111运动而控制机体110调整位姿,例如控制机体110悬停、改变航向、飞行速度等。In some embodiments, the first FPGA module 10 and the hard core processor 20 may be provided on one or more circuit boards, and the circuit boards are provided on the body 110, for example, connected to the power component 111 on the body 110 to control the power The component 111 moves to control the body 110 to adjust the posture, for example, to control the body 110 to hover, change the course, and fly the speed.
其中,第一FPGA模块10能够写入功能程序文件以配置为功能子系统,功能子系统用于执行功能程序文件对应的功能任务。举例而言,功能任务包括控制机体110调整位姿。The first FPGA module 10 can write a function program file to be configured as a function subsystem, and the function subsystem is used to execute the function task corresponding to the function program file. For example, the functional task includes controlling the body 110 to adjust the posture.
示例性的,功能程序文件可以通过将芯片功能、子系统分割于多个FPGA容量空间内(可以称为分割),将芯片功能、子系统的数字芯片代码转化为FPGA逻辑单元(可以称为综合),以及将转化出来的FPGA逻辑单元在FPGA中布局摆放(可以称为综合布局),和对FPGA逻辑单元进行内部信号连接(可以称为综合走线)得到,将功能程序文件烧录入FPGA,并使其运行,可以验证芯片设计的正确性。Exemplarily, the function program file can convert the chip functions and subsystems into FPGA logic units by dividing the chip functions and subsystems into multiple FPGA capacity spaces (which can be called division), and convert the digital chip codes of the chip functions and subsystems into FPGA logic units (which can be called synthesis). ), and laying out the converted FPGA logic unit in the FPGA (which can be called a comprehensive layout), and connecting the internal signal to the FPGA logic unit (which can be called a comprehensive wiring), and burning the function program file into the FPGA, and running it, can verify the correctness of the chip design.
在一些实施方式中,功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。当然也不限于此。In some embodiments, the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
示例性的,图像信号处理子系统可以处理可移动平台100搭载的拍摄装置拍摄的图像,例如第一FPGA模块10烧录图像信号处理(Image Signa1 Processing,ISP)芯片的设计文件,得到图像信号处理子系统。Exemplarily, the image signal processing subsystem can process the image captured by the camera mounted on the movable platform 100, for example, the first FPGA module 10 burns the design file of the image signal processing (Image Signal Processing, ISP) chip to obtain image signal processing. subsystem.
示例性的,外设子系统可以处理以下至少一种传感器(外设)传感器:陀螺仪、电子罗盘、惯性测量单元(Inertia1 Measurement Unit,IMU)、视觉传感器、全球定位系统(G1oba1 Positioning System,GPS)、气压计、空速计。外设子系统处理传感器的数据,可以确定可移动平台100的位姿信息,即可移动平台100在空间的位置信息和状态信息,例如,三维位置、三维角度、三维速度、三维加速度和三维角速度等。例如第一FPGA模块10烧录能够对传感器数据进行处理的芯片设计,可以得到外设子系统。Exemplarily, the peripheral subsystem can process at least one of the following sensor (peripheral) sensors: gyroscope, electronic compass, inertial measurement unit (Inertia1 Measurement Unit, IMU), vision sensor, global positioning system (G1oba1 Positioning System, GPS) ), barometer, airspeed meter. The peripheral subsystem processes the sensor data, and can determine the pose information of the movable platform 100, that is, the position information and state information of the movable platform 100 in space, such as three-dimensional position, three-dimensional angle, three-dimensional velocity, three-dimensional acceleration and three-dimensional angular velocity Wait. For example, the first FPGA module 10 can program a chip design capable of processing sensor data to obtain a peripheral subsystem.
示例性的,控制子系统可以用于控制可移动平台100的移动。例如,控制子系统可以按照预先设置的程序指令对可移动平台100进行控制。例如,控制子系统可以根据外设子系统测量的可移动平台100的位姿信息控制可移动平台100的移动,也可以根据来自终端设备的控制信号对可移动平台100进行控制,或者可以根据图像信号处理子系统对可移动平台100搭载的拍摄装置拍摄的图像处理后的结果控制可移动平台100的移动。示例性的,可移动平台100包括无人飞行器时,控制子系统包括飞控子系统。例如第一FPGA模块10烧录飞行控制系统(飞控)芯片的设计文件,得到控制子系统。Illustratively, a control subsystem may be used to control movement of the movable platform 100 . For example, the control subsystem may control the movable platform 100 according to preset program instructions. For example, the control subsystem can control the movement of the movable platform 100 according to the pose information of the movable platform 100 measured by the peripheral subsystem, can also control the movable platform 100 according to the control signal from the terminal device, or can control the movable platform 100 according to the image The signal processing subsystem controls the movement of the movable platform 100 with the result of processing the images captured by the imaging device mounted on the movable platform 100 . Exemplarily, when the movable platform 100 includes an unmanned aerial vehicle, the control subsystem includes a flight control subsystem. For example, the first FPGA module 10 burns the design file of the flight control system (flight control) chip to obtain the control subsystem.
需要说明的是,不同的功能子系统可以配置在同一个第一FPGA模块10中,也可以配置在不同的第一FPGA模块10中。例如可以根据第一FPGA模块10的硬件资源多少,在各第一FPGA模块10中烧录一个或多个功能程序文件。在一些实施方式中,一个功能程序文件可以烧录在一个第一FPGA模块10中,或者 烧录在多个第一FPGA模块10中,例如在某功能程序文件对应的芯片设计需要占用较多的硬件资源时,可以烧录在多个第一FPGA模块10中。It should be noted that, different functional subsystems may be configured in the same first FPGA module 10 , or may be configured in different first FPGA modules 10 . For example, one or more function program files can be programmed into each first FPGA module 10 according to the hardware resources of the first FPGA module 10 . In some embodiments, one functional program file can be programmed into one first FPGA module 10, or programmed into multiple first FPGA modules 10. For example, a chip design corresponding to a certain functional program file needs to occupy more space. When the hardware resource is used, it can be programmed in multiple first FPGA modules 10 .
具体的,硬核处理器20连接第一FPGA模块10,用于执行计算机程序并在执行计算机程序时对第一FPGA模块10进行调度。Specifically, the hard core processor 20 is connected to the first FPGA module 10 for executing a computer program and scheduling the first FPGA module 10 when executing the computer program.
示例性的,可移动平台100还包括存储器,硬核处理器20用于运行存储在存储器中的计算机程序,并在执行计算机程序时对第一FPGA模块10进行调度。Exemplarily, the movable platform 100 further includes a memory, and the hard-core processor 20 is used for running the computer program stored in the memory and scheduling the first FPGA module 10 when executing the computer program.
举例而言,存储器可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。For example, the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
在一些实施方式中,硬核处理器20可以称为应用处理器(Application Processor,AP)子系统或者处理器子系统。示例性的,应用处理器子系统能够与各功能子系统协同完成整个芯片的任务,其中应用处理器子系统是整个芯片的控制中心,作为主要的统筹调度,使芯片完成整体功能。In some embodiments, the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem. Exemplarily, the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
示例性的,硬核处理器20在执行计算机程序时能够访问各功能子系统,如飞控子系统,示例性的,硬核处理器20向飞控子系统发送读操作指令后,飞控子系统向硬核处理器20传输相应的数据,在数据传输成功后,飞控子系统可以继续进行后续的操作,如控制无人飞行器的移动。Exemplarily, the hard-core processor 20 can access various functional subsystems, such as the flight control subsystem, when executing the computer program. The system transmits corresponding data to the hard-core processor 20, and after the data transmission is successful, the flight control subsystem can continue to perform subsequent operations, such as controlling the movement of the unmanned aerial vehicle.
在一些实施方式中,硬核处理器20包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。In some embodiments, the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
示例性的,硬核处理器20可以包括一个或多个处理器核,例如,硬核处理器20可以包括多核心处理器(Multi-processor System on Chip,MPSoC)可以增加硬核处理器20的效能。Exemplarily, the hard-core processor 20 may include one or more processor cores. For example, the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
在一些实施方式中,如图3所示,多个第一FPGA模块10呈环形拓扑连接,硬核处理器20与其中一个第一FPGA模块10连接。In some embodiments, as shown in FIG. 3 , a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
示例性的,硬核处理器20向与其直接连接的一个第一FPGA模块10发送信息,该第一FPGA模块10可以将相应的信息发送给其余的第一FPGA模块10。举例而言,硬核处理器20发送的信息包括目标功能子系统的标识信息,目标功能子系统为多个功能子系统中的一个或多个,对应的功能子系统在接收到硬核处理器20发送的包括本功能子系统标识信息的信息时,根据硬核处理器20发送的信息执行对应的预设任务。Exemplarily, the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 . For example, the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor When the information including the identification information of the functional subsystem is sent by 20, the corresponding preset task is executed according to the information sent by the hard core processor 20.
示例性的,各第一FPGA模块10向硬核处理器20发送的信息包括对应功能 子系统的标识信息,硬核处理器20可以根据第一FPGA模块10发送的信息执行对应的预设任务,例如根据外设子系统确定的可移动平台100的位姿信息,控制外设子系统调节视觉传感器的探测方向。Exemplarily, the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
在另一些实施方式中,如图4至图6所示,可移动平台100还包括第二FPGA模块30。硬核处理器20通过第二FPGA模块30与第一FPGA模块10连接。可以理解的,多个第一FPGA模块10可以与第二FPGA模块30构成星型拓扑连接,在一些实施方式中,硬核处理器20能够通过第二FPGA模块30与多个第一FPGA模块10的多个功能子系统并发通信。In other embodiments, as shown in FIGS. 4 to 6 , the movable platform 100 further includes a second FPGA module 30 . The hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
示例性的,如图4至图6所示,多个第一FPGA模块10各自与第二FPGA模块30连接。举例而言,多个第一FPGA模块10连接于第二FPGA模块30的多个接口,以实现星型拓扑通信网络。需要说明的是,第二FPGA模块30的一个接口不限于连接一个第一FPGA模块10。Exemplarily, as shown in FIG. 4 to FIG. 6 , each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 . For example, a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network. It should be noted that, one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
示例性的,多个第一FPGA模块10通过第二FPGA模块30与硬核处理器20并发通信。在一些实施方式中,硬核处理器20相比在FPGA内例化(烧录处理器子系统的程序文件)构成的处理器子系统,其工作频率、性能更强,能够更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Exemplarily, multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 . In some embodiments, the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
示例性的,第二FPGA模块30用于转发硬核处理器20和/或第一FPGA模块10之间的控制信息和/或数据。示例性的,第二FPGA模块30可以作为代理,将硬核处理器20发送的信令和/或数据等信息转发给一个或多个功能子系统,还可以将一个或多个功能子系统发送的信令和/或数据等信息转发给硬核处理器20。以此实现硬核处理器20和待验证的功能子系统(DUT Device under Test)之间的信令与数据通信。Exemplarily, the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 . Exemplarily, the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
在一些实施方式中,如图4所示,第二FPGA模块30与硬核处理器20通过第一接口41连接,第二FPGA模块30与第一FPGA模块10通过第二接口42连接。第一接口41的数据传输速度比第二接口42的数据传输速度快,和/或第一接口41的数据带宽比第二接口42的数据带宽高。In some embodiments, as shown in FIG. 4 , the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41 , and the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 . The data transmission speed of the first interface 41 is faster than that of the second interface 42 , and/or the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
示例性的,第一FPGA模块10和第二FPGA模块30通过SERDES(SERializer/DESerializer,串行器/解串器)接口连接,当然也不限于此。Exemplarily, the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
SERDES接口是一种时分多路复用(TDM)、点对点(P2P)的串行通信技,发送 端的多路低速并行信号可以被转换成高速串行信号,经过传输,在接收端高速串行信号可以重新转换成低速并行信号。以实现第二FPGA模块30与第一FPGA模块10之间控制信息和/或数据的快速传输。The SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology. The multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals. In order to realize the fast transmission of control information and/or data between the second FPGA module 30 and the first FPGA module 10 .
示例性的,第二FPGA模块30与硬核处理器20通过AXI总线接口(或可称为Advanced eXtensible Interface,高级扩展接口)连接,当然也不限于此,例如,第二FPGA模块30与硬核处理器20可以通过高级高性能总线(Advanced High Performance Bus,AHB)接口连接。Exemplarily, the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20. The processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
通过第一接口41连接第二FPGA模块30和硬核处理器20,可以实现第二FPGA模块30和硬核处理器20之间快速的数据传输,且第一接口41的数据带宽比第二接口42的数据带宽高,数据传输的速度和带宽可以远高于多片FPGA之间通过PCB硬板连接模式的传输速度和带宽。便于硬核处理器20通过第二FPGA模块30与多个第一FPGA模块10并发通信,可以充分利用硬核处理器20工作频率、性能更强的优点,更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface. The data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
在一些实施方式中,如图5所示,第二FPGA模块30与硬核处理器20一体式设置。可以缩短第二FPGA模块30与硬核处理器20之间数据传输路径的长度,降低功耗和干扰。In some embodiments, as shown in FIG. 5 , the second FPGA module 30 and the hard core processor 20 are integrally provided. The length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
示例性的,第二FPGA模块30与硬核处理器20位于同一SoC芯片200(System on Chip)中。可以避免数据在多个芯片之间进出带来的延迟而导致的性能局限,而且还可以提高可靠性和降低成本。Exemplarily, the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
示例性的,在SoC芯片200内部,硬核处理器20与第二FPGA模块30通过AXI总线进行操作通信、数据传输。通过使用SoC芯片200内部的AXI总线进行硬核处理器20与第二FPGA模块30的通信,两者传输数据的带宽速率非常高(带宽上限TBD),远高于传统的通过多片FPGA之间通过PCB硬板连接模式的数据带宽。Exemplarily, inside the SoC chip 200, the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus. By using the AXI bus inside the SoC chip 200 to communicate between the hard core processor 20 and the second FPGA module 30, the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth via PCB hard board connection mode.
在一些实施方式中,如图6所示,硬核处理器20还包括第三接口43,硬核处理器20还用于通过第三接口43与外部设备300进行通信。In some embodiments, as shown in FIG. 6 , the hard core processor 20 further includes a third interface 43 , and the hard core processor 20 is further configured to communicate with the external device 300 through the third interface 43 .
示例性的,第三接口43包括以下至少一种:USB接口、以太网接口、PCIe接口。当然也不限于此,例如第三接口43可以包括无线通信组件,硬核处理器20可以通过无线通信组件与外部设备300进行通信。Exemplarily, the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface. Of course, it is not limited to this, for example, the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
示例性的,SoC芯片200中的硬核处理器20可以通过标准高速接口,即第三接口43与外部设备300进行大带宽高速数据通信。Exemplarily, the hard core processor 20 in the SoC chip 200 may perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43 .
示例性的,硬核处理器20还用于通过第三接口43从外部设备300获取数据,将从外部设备300获取的数据发送给第一FPGA模块10,以及第一FPGA模块10对从外部设备300获取的数据进行处理。举例而言,数据包括以下至少一种:视频、图像、数据集,当然也不限于此。Exemplarily, the hard-core processor 20 is further configured to acquire data from the external device 300 through the third interface 43, send the data acquired from the external device 300 to the first FPGA module 10, and the first FPGA module 10 to 300 The acquired data is processed. For example, the data includes at least one of the following: video, image, and data set, but of course, it is not limited thereto.
示例性的,硬核处理器20可以通过第三接口43从外部设备300获取视频、图像、数据集等数据量较大的数据,以及将获取的数据分发至对应的功能子系统模块进行处理。举例而言,硬核处理器20将从外部设备300获取的图像通过第二FPGA模块30发送给图像信号处理子系统,以便图像信号处理子系统对该图像进行处理,实现对图像信号处理子系统的验证。举例而言,硬核处理器20将从外部设备300获取的传感器数据通过第二FPGA模块30发送给外设子系统,以便外设子系统对该传感器数据进行处理,实现对外设子系统的验证。Exemplarily, the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing. For example, the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem. 's verification. For example, the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
示例性的,硬核处理器20还用于获取第一FPGA模块10获取的数据和/或输出的数据,以及将第一FPGA模块10获取的数据和/或输出的数据通过第三接口43发送给外部设备300。Exemplarily, the hard-core processor 20 is further configured to acquire data acquired and/or output by the first FPGA module 10 , and send the data acquired and/or output by the first FPGA module 10 through the third interface 43 . to the external device 300.
举例而言,硬核处理器20获取各功能子系统处理后的数据,以及将各功能子系统处理后的数据通过第三接口43发送给外部设备300,以便外部设备300存储和/或显示各功能子系统处理后的数据。For example, the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
举例而言,通过将根据功能子系统获取的数据对应的期望处理结果与外部设备300接收到的功能子系统处理后的数据进行比对,可以实现对功能子系统的验证。For example, by comparing the expected processing result corresponding to the data obtained according to the functional subsystem with the data processed by the functional subsystem received by the external device 300, the verification of the functional subsystem can be realized.
本申请实施例提供的可移动平台,通过将芯片设计导入可移动平台,可以使得芯片设计的验证环境可以更贴合可移动平台的实际应用场景,对芯片设计的验证更准确。第一FPGA模块能够写入功能程序文件以配置为功能子系统,以执行功能程序文件对应的功能任务,通过硬核处理器对第一FPGA模块进行调度,硬核处理器可以实现处理器子系统的功能,无需大容量的FPGA烧录处理器子系统,即可完成对芯片设计的验证,可解决在验证过程中,处理器子系统长期独占一个大容量昂贵FPGA的困境。而且硬核处理器的工作频率、性能更强,便于时序收敛、避免FPGA的逻辑容量等限制。In the movable platform provided by the embodiments of the present application, by importing the chip design into the movable platform, the verification environment of the chip design can be more suitable for the actual application scenario of the movable platform, and the verification of the chip design can be more accurate. The first FPGA module can write a function program file to be configured as a function subsystem to execute the function task corresponding to the function program file, and schedule the first FPGA module through a hard-core processor, and the hard-core processor can realize the processor subsystem It can complete the verification of the chip design without the need for a large-capacity FPGA to program the processor subsystem, which can solve the dilemma of the processor subsystem monopolizing a large-capacity expensive FPGA for a long time during the verification process. Moreover, the operating frequency and performance of the hard-core processor are stronger, which is convenient for timing closure and avoids limitations such as the logic capacity of the FPGA.
在一些实施方式中,可以融合使用现成稳定的处理器子系统,无需依赖自研的处理器子系统,使其与其他子系统之间的验证关系解耦,提升验证效率、减少整体验证所花费时间。当处理器子系统还在开发过程中、没有成型时,就可以在验证过程中控制功能子系统的功能,验证功能子系统功能的正确性,因此降低或消除开发处理器子系统的依赖,使验证过程更加灵活、时效更高。利用现成的硬核处理器进行芯片整体验证时,无需复杂的FPGA内的处理器子系统的时序收敛工作,大大提升处理器子系统的工作频率,使整体验证环境更接近真实芯片运行状态。In some embodiments, an off-the-shelf and stable processor subsystem can be used in combination without relying on a self-developed processor subsystem, so that the verification relationship between it and other subsystems can be decoupled, so as to improve verification efficiency and reduce overall verification costs. time. When the processor subsystem is still in the development process and has not been formed, the function of the functional subsystem can be controlled during the verification process, and the correctness of the function of the functional subsystem can be verified. The verification process is more flexible and time-efficient. When using an off-the-shelf hard-core processor for overall chip verification, there is no need for complex timing closure of the processor subsystem in the FPGA, which greatly increases the operating frequency of the processor subsystem and makes the overall verification environment closer to the real chip operating state.
在一些实施方式中,硬核处理器20往往能够接入众多标准高速接口,如USB、以太网、PCIe等,可以通过这些标准接口与外部设备300进行大带宽数据通信,便于芯片设计的验证。In some implementations, the hard core processor 20 can often be connected to many standard high-speed interfaces, such as USB, Ethernet, PCIe, etc., and can communicate with the external device 300 through these standard interfaces with large bandwidth data, which is convenient for verification of chip design.
请结合上述实施例参阅图7,图7是本申请实施例提供的芯片设计的验证装置600的示意性框图。可以理解的,验证装置600可以用于前述的可移动平台100,当然也不限于此,即验证装置600不限于对可移动平台100的芯片设计进行验证,例如可以用于对终端设备的芯片设计进行验证,终端设备例如包括手机130、平板电脑、笔记本电脑、台式电脑、个人数字助理、穿戴式设备140、遥控器120等。Please refer to FIG. 7 in conjunction with the above embodiments. FIG. 7 is a schematic block diagram of an apparatus 600 for verifying a chip design provided by an embodiment of the present application. It can be understood that the verification apparatus 600 can be used for the aforementioned movable platform 100, and is of course not limited to this, that is, the verification apparatus 600 is not limited to verifying the chip design of the mobile platform 100, for example, it can be used for the chip design of the terminal device. For verification, the terminal device includes, for example, a mobile phone 130, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, a wearable device 140, a remote control 120, and the like.
在一些实施方式中,验证装置600可以包括前述可移动平台100中的第一FPGA模块10以及硬核处理器20。示例性的,验证装置600与可移动平台100的机体110可以一体式设置,或者能够与可移动平台100的机体110可拆卸连接。In some embodiments, the verification apparatus 600 may include the first FPGA module 10 and the hard core processor 20 in the aforementioned movable platform 100 . Exemplarily, the verification device 600 and the body 110 of the movable platform 100 may be integrally provided, or may be detachably connected to the body 110 of the movable platform 100 .
具体的,如图2至图6所示,验证装置600包括第一FPGA模块10以及硬核处理器20。Specifically, as shown in FIGS. 2 to 6 , the verification apparatus 600 includes a first FPGA module 10 and a hard core processor 20 .
在一些实施方式中,第一FPGA模块10和硬核处理器20可以设置在一个或多个电路板上。In some embodiments, the first FPGA module 10 and the hard core processor 20 may be provided on one or more circuit boards.
其中,第一FPGA模块10能够写入功能程序文件以配置为功能子系统,功能子系统用于执行功能程序文件对应的功能任务。The first FPGA module 10 can write a function program file to be configured as a function subsystem, and the function subsystem is used to execute the function task corresponding to the function program file.
在一些实施方式中,功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。当然也不限于此。In some embodiments, the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
需要说明的是,不同的功能子系统可以配置在同一个第一FPGA模块10中, 也可以配置在不同的第一FPGA模块10中。例如可以根据第一FPGA模块10的硬件资源多少,在各第一FPGA模块10中烧录一个或多个功能程序文件。在一些实施方式中,一个功能程序文件可以烧录在一个第一FPGA模块10中,或者烧录在多个第一FPGA模块10中,例如在某功能程序文件对应的芯片设计需要占用较多的硬件资源时,可以烧录在多个第一FPGA模块10中。It should be noted that, different functional subsystems may be configured in the same first FPGA module 10 , or may be configured in different first FPGA modules 10 . For example, one or more function program files can be programmed into each first FPGA module 10 according to the hardware resources of the first FPGA module 10 . In some embodiments, one functional program file can be programmed into one first FPGA module 10, or programmed into multiple first FPGA modules 10. For example, a chip design corresponding to a certain functional program file needs to occupy more space. When the hardware resource is used, it can be programmed in multiple first FPGA modules 10 .
具体的,硬核处理器20连接第一FPGA模块10,用于执行计算机程序并在执行计算机程序时对第一FPGA模块10进行调度。Specifically, the hard core processor 20 is connected to the first FPGA module 10 for executing a computer program and scheduling the first FPGA module 10 when executing the computer program.
示例性的,验证装置600还包括存储器,硬核处理器20用于运行存储在存储器中的计算机程序,并在执行计算机程序时对第一FPGA模块10进行调度。Exemplarily, the verification apparatus 600 further includes a memory, and the hard-core processor 20 is configured to run the computer program stored in the memory, and schedule the first FPGA module 10 when executing the computer program.
举例而言,存储器可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。For example, the memory may be a Flash chip, a read-only memory (ROM, Read-Only Memory) magnetic disk, an optical disk, a U disk, or a removable hard disk, and the like.
在一些实施方式中,硬核处理器20可以称为应用处理器(Application Processor,AP)子系统或者处理器子系统。示例性的,应用处理器子系统能够与各功能子系统协同完成整个芯片的任务,其中应用处理器子系统是整个芯片的控制中心,作为主要的统筹调度,使芯片完成整体功能。In some embodiments, the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem. Exemplarily, the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
在一些实施方式中,硬核处理器20包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。In some embodiments, the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
示例性的,硬核处理器20可以包括一个或多个处理器核,例如,硬核处理器20可以包括多核心处理器(Multi-processor System on Chip,MPSoC)可以增加硬核处理器20的效能。Exemplarily, the hard-core processor 20 may include one or more processor cores. For example, the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
在一些实施方式中,如图3所示,多个第一FPGA模块10呈环形拓扑连接,硬核处理器20与其中一个第一FPGA模块10连接。In some embodiments, as shown in FIG. 3 , a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
示例性的,硬核处理器20向与其直接连接的一个第一FPGA模块10发送信息,该第一FPGA模块10可以将相应的信息发送给其余的第一FPGA模块10。举例而言,硬核处理器20发送的信息包括目标功能子系统的标识信息,目标功能子系统为多个功能子系统中的一个或多个,对应的功能子系统在接收到硬核处理器20发送的包括本功能子系统标识信息的信息时,根据硬核处理器20发送的信息执行对应的预设任务。Exemplarily, the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 . For example, the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor When the information including the identification information of the functional subsystem is sent by 20, the corresponding preset task is executed according to the information sent by the hard core processor 20.
示例性的,各第一FPGA模块10向硬核处理器20发送的信息包括对应功能子系统的标识信息,硬核处理器20可以根据第一FPGA模块10发送的信息执行 对应的预设任务,例如根据外设子系统确定的可移动平台100的位姿信息,控制外设子系统调节视觉传感器的探测方向。Exemplarily, the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
在另一些实施方式中,如图4至图6所示,验证装置600还包括第二FPGA模块30。硬核处理器20通过第二FPGA模块30与第一FPGA模块10连接。可以理解的,多个第一FPGA模块10可以与第二FPGA模块30构成星型拓扑连接,在一些实施方式中,硬核处理器20能够通过第二FPGA模块30与多个第一FPGA模块10的多个功能子系统并发通信。In other embodiments, as shown in FIG. 4 to FIG. 6 , the verification apparatus 600 further includes a second FPGA module 30 . The hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
示例性的,如图4至图6所示,多个第一FPGA模块10各自与第二FPGA模块30连接。举例而言,多个第一FPGA模块10连接于第二FPGA模块30的多个接口,以实现星型拓扑通信网络。需要说明的是,第二FPGA模块30的一个接口不限于连接一个第一FPGA模块10。Exemplarily, as shown in FIG. 4 to FIG. 6 , each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 . For example, a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network. It should be noted that, one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
示例性的,多个第一FPGA模块10通过第二FPGA模块30与硬核处理器20并发通信。在一些实施方式中,硬核处理器20相比在FPGA内例化(烧录处理器子系统的程序文件)构成的处理器子系统,其工作频率、性能更强,能够更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Exemplarily, multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 . In some embodiments, the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
示例性的,第二FPGA模块30用于转发硬核处理器20和/或第一FPGA模块10之间的控制信息和/或数据。示例性的,第二FPGA模块30可以作为代理,将硬核处理器20发送的信令和/或数据等信息转发给一个或多个功能子系统,还可以将一个或多个功能子系统发送的信令和/或数据等信息转发给硬核处理器20。以此实现硬核处理器20和待验证的功能子系统(DUT Device under Test)之间的信令与数据通信。Exemplarily, the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 . Exemplarily, the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
在一些实施方式中,如图4所示,第二FPGA模块30与硬核处理器20通过第一接口41连接,第二FPGA模块30与第一FPGA模块10通过第二接口42连接。第一接口41的数据传输速度比第二接口42的数据传输速度快,和/或第一接口41的数据带宽比第二接口42的数据带宽高。In some embodiments, as shown in FIG. 4 , the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41 , and the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 . The data transmission speed of the first interface 41 is faster than that of the second interface 42 , and/or the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
示例性的,第一FPGA模块10和第二FPGA模块30通过SERDES(SERializer/DESerializer,串行器/解串器)接口连接,当然也不限于此。Exemplarily, the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
SERDES接口是一种时分多路复用(TDM)、点对点(P2P)的串行通信技,发送端的多路低速并行信号可以被转换成高速串行信号,经过传输,在接收端高速 串行信号可以重新转换成低速并行信号。以实现第二FPGA模块30与第一FPGA模块10之间控制信息和/或数据的快速传输。The SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology. The multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals. In order to realize the fast transmission of control information and/or data between the second FPGA module 30 and the first FPGA module 10 .
示例性的,第二FPGA模块30与硬核处理器20通过AXI总线接口(或可称为Advanced eXtensible Interface,高级扩展接口)连接,当然也不限于此,例如,第二FPGA模块30与硬核处理器20可以通过高级高性能总线(Advanced High Performance Bus,AHB)接口连接。Exemplarily, the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20. The processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
通过第一接口41连接第二FPGA模块30和硬核处理器20,可以实现第二FPGA模块30和硬核处理器20之间快速的数据传输,且第一接口41的数据带宽比第二接口42的数据带宽高,数据传输的速度和带宽可以远高于多片FPGA之间通过PCB硬板连接模式的传输速度和带宽。便于硬核处理器20通过第二FPGA模块30与多个第一FPGA模块10并发通信,可以充分利用硬核处理器20工作频率、性能更强的优点,更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface. The data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
在一些实施方式中,如图5所示,第二FPGA模块30与硬核处理器20一体式设置。可以缩短第二FPGA模块30与硬核处理器20之间数据传输路径的长度,降低功耗和干扰。In some embodiments, as shown in FIG. 5 , the second FPGA module 30 and the hard core processor 20 are integrally provided. The length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
示例性的,第二FPGA模块30与硬核处理器20位于同一SoC芯片200(System on Chip)中。可以避免数据在多个芯片之间进出带来的延迟而导致的性能局限,而且还可以提高可靠性和降低成本。Exemplarily, the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
示例性的,在SoC芯片200内部,硬核处理器20与第二FPGA模块30通过AXI总线进行操作通信、数据传输。通过使用SoC芯片200内部的AXI总线进行硬核处理器20与第二FPGA模块30的通信,两者传输数据的带宽速率非常高(带宽上限TBD),远高于传统的通过多片FPGA之间通过PCB硬板连接模式的数据带宽。Exemplarily, inside the SoC chip 200, the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus. By using the AXI bus inside the SoC chip 200 to communicate between the hard core processor 20 and the second FPGA module 30, the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth via PCB hard board connection mode.
在一些实施方式中,如图6所示,硬核处理器20还包括第三接口43,硬核处理器20还用于通过第三接口43与外部设备300进行通信。In some embodiments, as shown in FIG. 6 , the hard core processor 20 further includes a third interface 43 , and the hard core processor 20 is further configured to communicate with the external device 300 through the third interface 43 .
示例性的,第三接口43包括以下至少一种:USB接口、以太网接口、PCIe接口。当然也不限于此,例如第三接口43可以包括无线通信组件,硬核处理器20可以通过无线通信组件与外部设备300进行通信。Exemplarily, the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface. Of course, it is not limited to this, for example, the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
示例性的,SoC芯片200中的硬核处理器20可以通过标准高速接口,即第 三接口43与外部设备300进行大带宽高速数据通信。Exemplarily, the hard core processor 20 in the SoC chip 200 can perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43.
示例性的,硬核处理器20还用于通过第三接口43从外部设备300获取数据,将从外部设备300获取的数据发送给第一FPGA模块10,以及第一FPGA模块10对从外部设备300获取的数据进行处理。举例而言,数据包括以下至少一种:视频、图像、数据集,当然也不限于此。Exemplarily, the hard-core processor 20 is further configured to acquire data from the external device 300 through the third interface 43, send the data acquired from the external device 300 to the first FPGA module 10, and the first FPGA module 10 to 300 The acquired data is processed. For example, the data includes at least one of the following: video, image, and data set, but of course, it is not limited thereto.
示例性的,硬核处理器20可以通过第三接口43从外部设备300获取视频、图像、数据集等数据量较大的数据,以及将获取的数据分发至对应的功能子系统模块进行处理。举例而言,硬核处理器20将从外部设备300获取的图像通过第二FPGA模块30发送给图像信号处理子系统,以便图像信号处理子系统对该图像进行处理,实现对图像信号处理子系统的验证。举例而言,硬核处理器20将从外部设备300获取的传感器数据通过第二FPGA模块30发送给外设子系统,以便外设子系统对该传感器数据进行处理,实现对外设子系统的验证。Exemplarily, the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing. For example, the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem. 's verification. For example, the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
示例性的,硬核处理器20还用于获取第一FPGA模块10获取的数据和/或输出的数据,以及将第一FPGA模块10获取的数据和/或输出的数据通过第三接口43发送给外部设备300。Exemplarily, the hard-core processor 20 is further configured to acquire data acquired and/or output by the first FPGA module 10 , and send the data acquired and/or output by the first FPGA module 10 through the third interface 43 . to the external device 300.
举例而言,硬核处理器20获取各功能子系统处理后的数据,以及将各功能子系统处理后的数据通过第三接口43发送给外部设备300,以便外部设备300存储和/或显示各功能子系统处理后的数据。For example, the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
举例而言,通过将根据功能子系统获取的数据对应的期望处理结果与外部设备300接收到的功能子系统处理后的数据进行比对,可以实现对功能子系统的验证。For example, by comparing the expected processing result corresponding to the data obtained according to the functional subsystem with the data processed by the functional subsystem received by the external device 300, the verification of the functional subsystem can be realized.
本申请实施例提供的芯片设计的验证装置600的具体原理和实现方式均与前述实施例的可移动平台100类似,此处不再赘述。The specific principles and implementation manners of the verification device 600 for chip design provided by the embodiment of the present application are similar to the movable platform 100 of the foregoing embodiment, and are not repeated here.
本申请实施例的芯片设计的验证装置,第一FPGA模块能够写入功能程序文件以配置为功能子系统,以执行功能程序文件对应的功能任务,通过硬核处理器对第一FPGA模块进行调度,可解决在验证过程中,处理器子系统长期独占一个大容量昂贵FPGA的困境,而且硬核处理器的工作频率、性能更强,便于时序收敛、避免FPGA的逻辑容量等限制。In the verification device of the chip design according to the embodiment of the present application, the first FPGA module can write a function program file to be configured as a function subsystem, so as to execute the function task corresponding to the function program file, and schedule the first FPGA module through a hard-core processor , which can solve the dilemma of the processor subsystem monopolizing a large-capacity and expensive FPGA for a long time during the verification process, and the operating frequency and performance of the hard-core processor are stronger, which is convenient for timing closure and avoids limitations such as the logic capacity of the FPGA.
请结合前述实施例参阅图8,图8是本申请实施例提供的一种芯片设计的验证方法的流程示意图。所述验证方法可以用于对芯片设计的验证。示例性的, 所述验证方法可以用于前述的可移动平台100或者芯片设计的验证装置600中。Please refer to FIG. 8 in conjunction with the foregoing embodiment. FIG. 8 is a schematic flowchart of a verification method for a chip design provided by an embodiment of the present application. The verification method can be used to verify the chip design. Exemplarily, the verification method can be used in the aforementioned mobile platform 100 or the verification apparatus 600 of the chip design.
如图8所示,本申请实施例的验证方法包括步骤S110至步骤S140。As shown in FIG. 8 , the verification method of the embodiment of the present application includes steps S110 to S140.
S110、获取功能程序文件。S110. Obtain a function program file.
在一些实施方式中,功能程序文件可以通过将芯片功能、子系统分割于多个FPGA容量空间内(可以称为分割),将芯片功能、子系统的数字芯片代码转化为FPGA逻辑单元(可以称为综合),以及将转化出来的FPGA逻辑单元在FPGA中布局摆放(可以称为综合布局),和对FPGA逻辑单元进行内部信号连接(可以称为综合走线)得到。In some embodiments, the function program file can convert the chip functions and subsystems into FPGA logic units by dividing the chip functions and subsystems into multiple FPGA capacity spaces (which may be called division), and convert the digital chip codes of the chip functions and subsystems into FPGA logic units (which may be called as divisions). For synthesis), and laying out the converted FPGA logic unit in the FPGA (may be called a synthesis layout), and connecting the internal signal to the FPGA logic unit (may be called a synthesis route).
S120、将获取的功能程序文件写入验证装置的第一FPGA模块,得到功能子系统。S120. Write the acquired functional program file into the first FPGA module of the verification device to obtain a functional subsystem.
示例性的,将功能程序文件烧录入FPGA,并使其运行,可以验证芯片设计的正确性。Exemplarily, the function program file is burned into the FPGA and run, so that the correctness of the chip design can be verified.
在一些实施方式中,功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。当然也不限于此。In some embodiments, the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem. Of course it is not limited to this.
示例性的,图像信号处理子系统可以处理可移动平台100搭载的拍摄装置拍摄的图像,例如第一FPGA模块10烧录图像信号处理(Image Signa1 Processing,ISP)芯片的设计文件,得到图像信号处理子系统。Exemplarily, the image signal processing subsystem can process the image captured by the camera mounted on the movable platform 100, for example, the first FPGA module 10 burns the design file of the image signal processing (Image Signal Processing, ISP) chip to obtain image signal processing. subsystem.
示例性的,外设子系统可以处理以下至少一种传感器(外设)传感器:陀螺仪、电子罗盘、惯性测量单元(Inertia1 Measurement Unit,IMU)、视觉传感器、全球定位系统(G1oba1 Positioning System,GPS)、气压计、空速计。外设子系统处理传感器的数据,可以确定可移动平台100的位姿信息,即可移动平台100在空间的位置信息和状态信息,例如,三维位置、三维角度、三维速度、三维加速度和三维角速度等。例如第一FPGA模块10烧录能够对传感器数据进行处理的芯片设计,可以得到外设子系统。Exemplarily, the peripheral subsystem can process at least one of the following sensor (peripheral) sensors: gyroscope, electronic compass, inertial measurement unit (Inertia1 Measurement Unit, IMU), vision sensor, global positioning system (G1oba1 Positioning System, GPS) ), barometer, airspeed meter. The peripheral subsystem processes the sensor data, and can determine the pose information of the movable platform 100, that is, the position information and state information of the movable platform 100 in space, such as three-dimensional position, three-dimensional angle, three-dimensional velocity, three-dimensional acceleration and three-dimensional angular velocity Wait. For example, the first FPGA module 10 can program a chip design capable of processing sensor data to obtain a peripheral subsystem.
示例性的,控制子系统可以用于控制可移动平台100的移动。例如,控制子系统可以按照预先设置的程序指令对可移动平台100进行控制。例如,控制子系统可以根据外设子系统测量的可移动平台100的位姿信息控制可移动平台100的移动,也可以根据来自终端设备的控制信号对可移动平台100进行控制,或者可以根据图像信号处理子系统对可移动平台100搭载的拍摄装置拍摄的图像处理后的结果控制可移动平台100的移动。示例性的,可移动平台100包括 无人飞行器时,控制子系统包括飞控子系统。例如第一FPGA模块10烧录飞行控制系统(飞控)芯片的设计文件,得到控制子系统。Illustratively, a control subsystem may be used to control movement of the movable platform 100 . For example, the control subsystem may control the movable platform 100 according to preset program instructions. For example, the control subsystem can control the movement of the movable platform 100 according to the pose information of the movable platform 100 measured by the peripheral subsystem, can also control the movable platform 100 according to the control signal from the terminal device, or can control the movable platform 100 according to the image The signal processing subsystem controls the movement of the movable platform 100 with the result of processing the images captured by the imaging device mounted on the movable platform 100 . Exemplarily, when the movable platform 100 includes an unmanned aerial vehicle, the control subsystem includes a flight control subsystem. For example, the first FPGA module 10 burns the design file of the flight control system (flight control) chip to obtain the control subsystem.
S130、获取计算机程序。S130. Obtain a computer program.
S140、配置所述验证装置的硬核处理器执行所述计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度。S140. Configure the hard-core processor of the verification apparatus to execute the computer program and schedule the first FPGA module when executing the computer program.
在一些实施方式中,硬核处理器20包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。In some embodiments, the hard core processor 20 includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
示例性的,硬核处理器20可以包括一个或多个处理器核,例如,硬核处理器20可以包括多核心处理器(Multi-processor System on Chip,MPSoC)可以增加硬核处理器20的效能。Exemplarily, the hard-core processor 20 may include one or more processor cores. For example, the hard-core processor 20 may include a multi-core processor (Multi-processor System on Chip, MPSoC). efficacy.
示例性的,可以将计算机程序存储在存储器中,硬核处理器20用于运行存储在存储器中的计算机程序,并在执行计算机程序时对第一FPGA模块10进行调度。Exemplarily, the computer program may be stored in the memory, and the hard-core processor 20 is used to execute the computer program stored in the memory, and schedule the first FPGA module 10 when executing the computer program.
在一些实施方式中,硬核处理器20可以称为应用处理器(Application Processor,AP)子系统或者处理器子系统。示例性的,应用处理器子系统能够与各功能子系统协同完成整个芯片的任务,其中应用处理器子系统是整个芯片的控制中心,作为主要的统筹调度,使芯片完成整体功能。In some embodiments, the hard core processor 20 may be referred to as an application processor (Application Processor, AP) subsystem or a processor subsystem. Exemplarily, the application processor subsystem can cooperate with each functional subsystem to complete the task of the entire chip, wherein the application processor subsystem is the control center of the entire chip, and serves as the main overall scheduling, so that the chip completes the overall function.
示例性的,硬核处理器20在执行计算机程序时能够访问各功能子系统,如飞控子系统,示例性的,硬核处理器20向飞控子系统发送读操作指令后,飞控子系统向硬核处理器20传输相应的数据,在数据传输成功后,飞控子系统可以继续进行后续的操作,如控制无人飞行器的移动。Exemplarily, the hard-core processor 20 can access various functional subsystems, such as the flight control subsystem, when executing the computer program. The system transmits corresponding data to the hard-core processor 20, and after the data transmission is successful, the flight control subsystem can continue to perform subsequent operations, such as controlling the movement of the unmanned aerial vehicle.
在一些实施方式中,如图3所示,多个第一FPGA模块10呈环形拓扑连接,硬核处理器20与其中一个第一FPGA模块10连接。In some embodiments, as shown in FIG. 3 , a plurality of first FPGA modules 10 are connected in a ring topology, and a hard core processor 20 is connected to one of the first FPGA modules 10 .
示例性的,硬核处理器20向与其直接连接的一个第一FPGA模块10发送信息,该第一FPGA模块10可以将相应的信息发送给其余的第一FPGA模块10。举例而言,硬核处理器20发送的信息包括目标功能子系统的标识信息,目标功能子系统为多个功能子系统中的一个或多个,对应的功能子系统在接收到硬核处理器20发送的包括本功能子系统标识信息的信息时,根据硬核处理器20发送的信息执行对应的预设任务。Exemplarily, the hard core processor 20 sends information to a first FPGA module 10 directly connected to it, and the first FPGA module 10 can send corresponding information to the remaining first FPGA modules 10 . For example, the information sent by the hard core processor 20 includes identification information of the target functional subsystem, and the target functional subsystem is one or more of the multiple functional subsystems, and the corresponding functional subsystem receives the hard core processor When the information including the identification information of the functional subsystem is sent by 20, the corresponding preset task is executed according to the information sent by the hard core processor 20.
示例性的,各第一FPGA模块10向硬核处理器20发送的信息包括对应功能 子系统的标识信息,硬核处理器20可以根据第一FPGA模块10发送的信息执行对应的预设任务,例如根据外设子系统确定的可移动平台100的位姿信息,控制外设子系统调节视觉传感器的探测方向。Exemplarily, the information sent by each first FPGA module 10 to the hard-core processor 20 includes the identification information of the corresponding functional subsystem, and the hard-core processor 20 can perform the corresponding preset task according to the information sent by the first FPGA module 10, For example, according to the pose information of the movable platform 100 determined by the peripheral subsystem, the peripheral subsystem is controlled to adjust the detection direction of the vision sensor.
在另一些实施方式中,如图4至图6所示,验证装置600还包括第二FPGA模块30。硬核处理器20通过第二FPGA模块30与第一FPGA模块10连接。可以理解的,多个第一FPGA模块10可以与第二FPGA模块30构成星型拓扑连接,在一些实施方式中,硬核处理器20能够通过第二FPGA模块30与多个第一FPGA模块10的多个功能子系统并发通信。In other embodiments, as shown in FIG. 4 to FIG. 6 , the verification apparatus 600 further includes a second FPGA module 30 . The hard core processor 20 is connected to the first FPGA module 10 through the second FPGA module 30 . It can be understood that a plurality of first FPGA modules 10 can form a star topology connection with the second FPGA module 30 , and in some embodiments, the hard core processor 20 can be connected to a plurality of first FPGA modules 10 through the second FPGA module 30 . Multiple functional subsystems communicate concurrently.
示例性的,如图4至图6所示,多个第一FPGA模块10各自与第二FPGA模块30连接。举例而言,多个第一FPGA模块10连接于第二FPGA模块30的多个接口,以实现星型拓扑通信网络。需要说明的是,第二FPGA模块30的一个接口不限于连接一个第一FPGA模块10。Exemplarily, as shown in FIG. 4 to FIG. 6 , each of the plurality of first FPGA modules 10 is connected to the second FPGA module 30 . For example, a plurality of first FPGA modules 10 are connected to a plurality of interfaces of the second FPGA module 30 to implement a star topology communication network. It should be noted that, one interface of the second FPGA module 30 is not limited to being connected to one first FPGA module 10 .
示例性的,多个第一FPGA模块10通过第二FPGA模块30与硬核处理器20并发通信。在一些实施方式中,硬核处理器20相比在FPGA内例化(烧录处理器子系统的程序文件)构成的处理器子系统,其工作频率、性能更强,能够更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Exemplarily, multiple first FPGA modules 10 communicate concurrently with the hard core processor 20 through the second FPGA modules 30 . In some embodiments, the hard-core processor 20 has a higher operating frequency and higher performance than a processor subsystem formed by instantiating (burning program files of the processor subsystem) in the FPGA, and can process multiple The data of one functional subsystem has better real-time performance for the scheduling of multiple functional subsystems.
示例性的,第二FPGA模块30用于转发硬核处理器20和/或第一FPGA模块10之间的控制信息和/或数据。示例性的,第二FPGA模块30可以作为代理,将硬核处理器20发送的信令和/或数据等信息转发给一个或多个功能子系统,还可以将一个或多个功能子系统发送的信令和/或数据等信息转发给硬核处理器20。以此实现硬核处理器20和待验证的功能子系统(DUT Device under Test)之间的信令与数据通信。Exemplarily, the second FPGA module 30 is configured to forward control information and/or data between the hard core processor 20 and/or the first FPGA module 10 . Exemplarily, the second FPGA module 30 can act as an agent to forward information such as signaling and/or data sent by the hard core processor 20 to one or more functional subsystems, and can also send one or more functional subsystems. The information such as signaling and/or data is forwarded to the hard core processor 20. In this way, signaling and data communication between the hard core processor 20 and the functional subsystem to be verified (DUT Device under Test) are realized.
在一些实施方式中,如图4所示,第二FPGA模块30与硬核处理器20通过第一接口41连接,第二FPGA模块30与第一FPGA模块10通过第二接口42连接。第一接口41的数据传输速度比第二接口42的数据传输速度快,和/或第一接口41的数据带宽比第二接口42的数据带宽高。In some embodiments, as shown in FIG. 4 , the second FPGA module 30 is connected to the hard core processor 20 through a first interface 41 , and the second FPGA module 30 is connected to the first FPGA module 10 through a second interface 42 . The data transmission speed of the first interface 41 is faster than that of the second interface 42 , and/or the data bandwidth of the first interface 41 is higher than that of the second interface 42 .
示例性的,第一FPGA模块10和第二FPGA模块30通过SERDES(SERializer/DESerializer,串行器/解串器)接口连接,当然也不限于此。Exemplarily, the first FPGA module 10 and the second FPGA module 30 are connected through a SERDES (SERializer/DESerializer, serializer/deserializer) interface, which is certainly not limited thereto.
SERDES接口是一种时分多路复用(TDM)、点对点(P2P)的串行通信技,发送 端的多路低速并行信号可以被转换成高速串行信号,经过传输,在接收端高速串行信号可以重新转换成低速并行信号。以实现第二FPGA模块30与第一FPGA模块10之间控制信息和/或数据的快速传输。The SERDES interface is a time-division multiplexing (TDM), point-to-point (P2P) serial communication technology. The multi-channel low-speed parallel signals at the sending end can be converted into high-speed serial signals. After transmission, the high-speed serial signals at the receiving end are transmitted. Can be reconverted to low-speed parallel signals. In order to realize the fast transmission of control information and/or data between the second FPGA module 30 and the first FPGA module 10 .
示例性的,第二FPGA模块30与硬核处理器20通过AXI总线接口(或可称为Advanced eXtensible Interface,高级扩展接口)连接,当然也不限于此,例如,第二FPGA模块30与硬核处理器20可以通过高级高性能总线(Advanced High Performance Bus,AHB)接口连接。Exemplarily, the second FPGA module 30 is connected to the hard core processor 20 through an AXI bus interface (or can be called as Advanced eXtensible Interface, advanced extension interface), of course, it is not limited to this, for example, the second FPGA module 30 is connected to the hard core processor 20. The processors 20 may be connected through an Advanced High Performance Bus (AHB) interface.
通过第一接口41连接第二FPGA模块30和硬核处理器20,可以实现第二FPGA模块30和硬核处理器20之间快速的数据传输,且第一接口41的数据带宽比第二接口42的数据带宽高,数据传输的速度和带宽可以远高于多片FPGA之间通过PCB硬板连接模式的传输速度和带宽。便于硬核处理器20通过第二FPGA模块30与多个第一FPGA模块10并发通信,可以充分利用硬核处理器20工作频率、性能更强的优点,更快速的处理多个功能子系统的数据,对多个功能子系统的调度具有更好的实时性。Connecting the second FPGA module 30 and the hard core processor 20 through the first interface 41 can realize fast data transmission between the second FPGA module 30 and the hard core processor 20, and the data bandwidth of the first interface 41 is higher than that of the second interface. The data bandwidth of 42 is high, and the speed and bandwidth of data transmission can be much higher than the transmission speed and bandwidth between multiple FPGAs through the PCB hard board connection mode. It is convenient for the hard-core processor 20 to communicate concurrently with multiple first FPGA modules 10 through the second FPGA module 30, and can make full use of the advantages of the working frequency and stronger performance of the hard-core processor 20, and process multiple functional subsystems more quickly. It has better real-time performance for scheduling of multiple functional subsystems.
在一些实施方式中,如图5所示,第二FPGA模块30与硬核处理器20一体式设置。可以缩短第二FPGA模块30与硬核处理器20之间数据传输路径的长度,降低功耗和干扰。In some embodiments, as shown in FIG. 5 , the second FPGA module 30 and the hard core processor 20 are integrally provided. The length of the data transmission path between the second FPGA module 30 and the hard core processor 20 can be shortened, thereby reducing power consumption and interference.
示例性的,第二FPGA模块30与硬核处理器20位于同一SoC芯片200(System on Chip)中。可以避免数据在多个芯片之间进出带来的延迟而导致的性能局限,而且还可以提高可靠性和降低成本。Exemplarily, the second FPGA module 30 and the hard core processor 20 are located in the same SoC chip 200 (System on Chip). Performance limitations caused by delays in data moving in and out of multiple chips can be avoided, and reliability and cost can be improved.
示例性的,在SoC芯片200内部,硬核处理器20与第二FPGA模块30通过AXI总线进行操作通信、数据传输。通过使用SoC芯片200内部的AXI总线进行硬核处理器20与第二FPGA模块30的通信,两者传输数据的带宽速率非常高(带宽上限TBD),远高于传统的通过多片FPGA之间通过PCB硬板连接模式的数据带宽。Exemplarily, inside the SoC chip 200, the hard core processor 20 and the second FPGA module 30 perform operation communication and data transmission through the AXI bus. By using the AXI bus inside the SoC chip 200 to communicate between the hard core processor 20 and the second FPGA module 30, the bandwidth rate of data transmission between the two is very high (bandwidth upper limit TBD), which is much higher than the traditional way of passing between multiple FPGAs. Data bandwidth over PCB hard board connection mode.
在一些实施方式中,如图6所示,硬核处理器20还包括第三接口43,所述方法还包括:所述硬核处理器20通过所述硬核处理器20的第三接口43与外部设备300进行通信。In some embodiments, as shown in FIG. 6 , the hard core processor 20 further includes a third interface 43 , and the method further includes: the hard core processor 20 passes the third interface 43 of the hard core processor 20 through the hard core processor 20 . Communication with the external device 300 is performed.
示例性的,第三接口43包括以下至少一种:USB接口、以太网接口、PCIe接口。当然也不限于此,例如第三接口43可以包括无线通信组件,硬核处理器 20可以通过无线通信组件与外部设备300进行通信。Exemplarily, the third interface 43 includes at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface. Of course, it is not limited to this, for example, the third interface 43 may include a wireless communication component, and the hard core processor 20 may communicate with the external device 300 through the wireless communication component.
示例性的,SoC芯片200中的硬核处理器20可以通过标准高速接口,即第三接口43与外部设备300进行大带宽高速数据通信。Exemplarily, the hard core processor 20 in the SoC chip 200 may perform high-bandwidth high-speed data communication with the external device 300 through a standard high-speed interface, that is, the third interface 43 .
示例性的,所述硬核处理器20通过所述硬核处理器20的第三接口43与外部设备300进行通信,包括:所述硬核处理器20通过所述第三接口43从外部设备300获取数据,将从所述外部设备300获取的数据发送给所述第一FPGA模块10,以便所述第一FPGA模块10对从所述外部设备300获取的数据进行处理。举例而言,所述数据包括以下至少一种:视频、图像、数据集,当然也不限于此。Exemplarily, the hard-core processor 20 communicates with the external device 300 through the third interface 43 of the hard-core processor 20 , including: the hard-core processor 20 communicates with the external device through the third interface 43 . 300 acquires data, and sends the data acquired from the external device 300 to the first FPGA module 10 , so that the first FPGA module 10 processes the data acquired from the external device 300 . For example, the data includes at least one of the following: video, image, data set, but certainly not limited thereto.
示例性的,硬核处理器20可以通过第三接口43从外部设备300获取视频、图像、数据集等数据量较大的数据,以及将获取的数据分发至对应的功能子系统模块进行处理。举例而言,硬核处理器20将从外部设备300获取的图像通过第二FPGA模块30发送给图像信号处理子系统,以便图像信号处理子系统对该图像进行处理,实现对图像信号处理子系统的验证。举例而言,硬核处理器20将从外部设备300获取的传感器数据通过第二FPGA模块30发送给外设子系统,以便外设子系统对该传感器数据进行处理,实现对外设子系统的验证。Exemplarily, the hard-core processor 20 may acquire video, images, data sets, and other data with a large amount of data from the external device 300 through the third interface 43, and distribute the acquired data to corresponding functional subsystem modules for processing. For example, the hard-core processor 20 sends the image acquired from the external device 300 to the image signal processing subsystem through the second FPGA module 30, so that the image signal processing subsystem can process the image and realize the image signal processing subsystem. 's verification. For example, the hard core processor 20 sends the sensor data obtained from the external device 300 to the peripheral subsystem through the second FPGA module 30, so that the peripheral subsystem can process the sensor data and realize the verification of the peripheral subsystem .
示例性的,所述硬核处理器20通过所述硬核处理器20的第三接口43与外部设备300进行通信,包括:所述硬核处理器20获取所述第一FPGA模块10获取的数据和/或输出的数据,以及将所述第一FPGA模块10获取的数据和/或输出的数据通过所述第三接口43发送给外部设备300。Exemplarily, the communication between the hard-core processor 20 and the external device 300 through the third interface 43 of the hard-core processor 20 includes: the hard-core processor 20 obtains the information obtained by the first FPGA module 10 . data and/or output data, and the data acquired and/or output by the first FPGA module 10 are sent to the external device 300 through the third interface 43 .
举例而言,硬核处理器20获取各功能子系统处理后的数据,以及将各功能子系统处理后的数据通过第三接口43发送给外部设备300,以便外部设备300存储和/或显示各功能子系统处理后的数据。For example, the hard core processor 20 acquires data processed by each functional subsystem, and sends the data processed by each functional subsystem to the external device 300 through the third interface 43, so that the external device 300 can store and/or display each Data processed by the functional subsystem.
举例而言,通过将根据功能子系统获取的数据对应的期望处理结果与外部设备300接收到的功能子系统处理后的数据进行比对,可以实现对功能子系统的验证。For example, by comparing the expected processing result corresponding to the data obtained according to the functional subsystem with the data processed by the functional subsystem received by the external device 300, the verification of the functional subsystem can be realized.
本申请实施例提供的芯片设计的验证方法的具体原理和实现方式均与前述实施例的验证装置600类似,此处不再赘述。The specific principles and implementation manners of the verification method for the chip design provided by the embodiment of the present application are similar to the verification apparatus 600 of the foregoing embodiment, and are not repeated here.
本申请实施例提供的芯片设计的验证方法,通过将功能程序文件写入验证装置的第一FPGA模块,将第一FPGA模块配置为功能子系统,配置所述验证装 置的硬核处理器对第一FPGA模块进行调度,可解决在芯片设计的验证过程中,处理器子系统长期独占一个大容量昂贵FPGA的困境,而且硬核处理器的工作频率、性能更强,便于时序收敛、避免FPGA的逻辑容量等限制。In the verification method for chip design provided by the embodiment of the present application, by writing a functional program file into the first FPGA module of the verification device, the first FPGA module is configured as a functional subsystem, and the hard-core processor of the verification device is configured to verify the first FPGA module of the verification device. Scheduling an FPGA module can solve the dilemma of the processor subsystem monopolizing a large-capacity and expensive FPGA for a long time during the verification process of the chip design, and the working frequency and performance of the hard-core processor are stronger, which is convenient for timing convergence and avoids the FPGA Limitations such as logical capacity.
应当理解,在此本申请中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。It should be understood that the terminology used in this application is for the purpose of describing particular embodiments only and is not intended to limit the application.
还应当理解,在本申请和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。It will also be understood that, as used in this application and the appended claims, the term "and/or" refers to and including any and all possible combinations of one or more of the associated listed items.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。The above are only specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of various equivalents within the technical scope disclosed in the present application. Modifications or substitutions shall be covered by the protection scope of this application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (47)

  1. 一种可移动平台,其特征在于,包括:A movable platform, characterized in that, comprising:
    机体;body;
    第一FPGA模块,能够写入功能程序文件以配置为功能子系统,所述功能子系统用于执行所述功能程序文件对应的功能任务,所述功能任务包括控制所述机体调整位姿;a first FPGA module, capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is configured to execute a functional task corresponding to the functional program file, and the functional task includes controlling the body to adjust the pose;
    硬核处理器,连接所述第一FPGA模块,用于执行计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度;a hard-core processor, connected to the first FPGA module, for executing a computer program and scheduling the first FPGA module when executing the computer program;
    所述第一FPGA模块和所述硬核处理器均设置在所述机体上。Both the first FPGA module and the hard core processor are arranged on the body.
  2. 根据权利要求1所述的可移动平台,其特征在于,多个所述第一FPGA模块呈环形拓扑连接,所述硬核处理器与其中一个第一FPGA模块连接。The movable platform according to claim 1, wherein a plurality of the first FPGA modules are connected in a ring topology, and the hard core processor is connected to one of the first FPGA modules.
  3. 根据权利要求1或2所述的可移动平台,其特征在于,所述功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。The movable platform according to claim 1 or 2, wherein the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem.
  4. 根据权利要求1所述的可移动平台,其特征在于,还包括:The movable platform of claim 1, further comprising:
    第二FPGA模块,所述硬核处理器通过所述第二FPGA模块与所述第一FPGA模块连接,所述第二FPGA模块用于转发所述硬核处理器和/或所述第一FPGA模块之间的控制信息和/或数据。A second FPGA module, the hard-core processor is connected to the first FPGA module through the second FPGA module, and the second FPGA module is used to forward the hard-core processor and/or the first FPGA Control information and/or data between modules.
  5. 根据权利要求4所述的可移动平台,其特征在于,多个所述第一FPGA模块各自与所述第二FPGA模块连接。The movable platform according to claim 4, wherein each of the plurality of first FPGA modules is connected to the second FPGA module.
  6. 根据权利要求5所述的可移动平台,其特征在于,多个所述第一FPGA模块通过所述第二FPGA模块与所述第二FPGA模块并发通信。The movable platform according to claim 5, wherein a plurality of the first FPGA modules communicate concurrently with the second FPGA module through the second FPGA module.
  7. 根据权利要求4所述的可移动平台,其特征在于,所述第二FPGA模块与所述硬核处理器通过第一接口连接,所述第二FPGA模块与所述第一FPGA模块通过第二接口连接,所述第一接口的数据传输速度比所述第二接口的数据传输速度快。The movable platform according to claim 4, wherein the second FPGA module and the hard core processor are connected through a first interface, and the second FPGA module and the first FPGA module are connected through a second interface The interface is connected, and the data transmission speed of the first interface is faster than the data transmission speed of the second interface.
  8. 根据权利要求7所述的可移动平台,其特征在于,所述第一FPGA模块和所述第二FPGA模块通过SERDES接口连接。The movable platform according to claim 7, wherein the first FPGA module and the second FPGA module are connected through a SERDES interface.
  9. 根据权利要求7所述的可移动平台,其特征在于,所述第二FPGA模块与 所述硬核处理器通过AXI总线接口连接。movable platform according to claim 7, is characterized in that, described second FPGA module and described hard core processor are connected by AXI bus interface.
  10. 根据权利要求4-9中任一项所述的可移动平台,其特征在于,所述第二FPGA模块与所述硬核处理器一体式设置。The movable platform according to any one of claims 4-9, wherein the second FPGA module and the hard-core processor are integrally provided.
  11. 根据权利要求10所述的可移动平台,其特征在于,所述第二FPGA模块与所述硬核处理器位于同一SoC芯片中。The movable platform according to claim 10, wherein the second FPGA module and the hard core processor are located in the same SoC chip.
  12. 根据权利要求1-11中任一项所述的可移动平台,其特征在于,所述硬核处理器包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。The mobile platform according to any one of claims 1-11, wherein the hard-core processor comprises at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  13. 根据权利要求1-12中任一项所述的可移动平台,其特征在于,所述硬核处理器还包括第三接口,所述硬核处理器还用于通过所述第三接口与外部设备进行通信。The movable platform according to any one of claims 1-12, wherein the hard-core processor further comprises a third interface, and the hard-core processor is further configured to communicate with an external device through the third interface devices to communicate.
  14. 根据权利要求13所述的可移动平台,其特征在于,所述硬核处理器还用于通过所述第三接口从外部设备获取数据,将从所述外部设备获取的数据发送给所述第一FPGA模块,以及所述第一FPGA模块对从所述外部设备获取的数据进行处理。The mobile platform according to claim 13, wherein the hard-core processor is further configured to acquire data from an external device through the third interface, and send the data acquired from the external device to the first An FPGA module, and the first FPGA module processes data acquired from the external device.
  15. 根据权利要求13或14所述的可移动平台,其特征在于,所述硬核处理器还用于获取所述第一FPGA模块获取的数据和/或输出的数据,以及将所述第一FPGA模块获取的数据和/或输出的数据通过所述第三接口发送给外部设备。The movable platform according to claim 13 or 14, wherein the hard-core processor is further configured to acquire data acquired and/or output by the first FPGA module, and The data acquired and/or output by the module is sent to the external device through the third interface.
  16. 根据权利要求13所述的可移动平台,其特征在于,所述第三接口包括以下至少一种:USB接口、以太网接口、PCIe接口。The movable platform according to claim 13, wherein the third interface comprises at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface.
  17. 一种芯片设计的验证装置,其特征在于,包括:A verification device for chip design, comprising:
    第一FPGA模块,能够写入功能程序文件以配置为功能子系统,所述功能子系统用于执行所述功能程序文件对应的功能任务;a first FPGA module, capable of writing a functional program file to be configured as a functional subsystem, where the functional subsystem is used to execute a functional task corresponding to the functional program file;
    硬核处理器,连接所述第一FPGA模块,用于执行计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度。A hard-core processor, connected to the first FPGA module, is configured to execute a computer program and schedule the first FPGA module when executing the computer program.
  18. 根据权利要求17所述的验证装置,其特征在于,多个所述第一FPGA模块呈环形拓扑连接,所述硬核处理器与其中一个第一FPGA模块连接。The verification device according to claim 17, wherein a plurality of the first FPGA modules are connected in a ring topology, and the hard core processor is connected to one of the first FPGA modules.
  19. 根据权利要求17或18所述的验证装置,其特征在于,所述功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。The verification device according to claim 17 or 18, wherein the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem.
  20. 根据权利要求17所述的验证装置,其特征在于,还包括:The verification device according to claim 17, further comprising:
    第二FPGA模块,所述硬核处理器通过所述第二FPGA模块与所述第一FPGA模块连接,所述第二FPGA模块用于转发所述硬核处理器和/或所述第一FPGA模块之间的控制信息和/或数据。A second FPGA module, the hard-core processor is connected to the first FPGA module through the second FPGA module, and the second FPGA module is used to forward the hard-core processor and/or the first FPGA Control information and/or data between modules.
  21. 根据权利要求20所述的验证装置,其特征在于,多个所述第一FPGA模块各自与所述第二FPGA模块连接。The verification apparatus according to claim 20, wherein each of the plurality of first FPGA modules is connected to the second FPGA module.
  22. 根据权利要求21所述的验证装置,其特征在于,多个所述第一FPGA模块通过所述第二FPGA模块与所述第二FPGA模块并发通信。The verification apparatus according to claim 21, wherein a plurality of the first FPGA modules communicate concurrently with the second FPGA module through the second FPGA module.
  23. 根据权利要求20所述的验证装置,其特征在于,所述第二FPGA模块与所述硬核处理器通过第一接口连接,所述第二FPGA模块与所述第一FPGA模块通过第二接口连接,所述第一接口的数据传输速度比所述第二接口的数据传输速度快。The verification device according to claim 20, wherein the second FPGA module and the hard core processor are connected through a first interface, and the second FPGA module and the first FPGA module are connected through a second interface connection, the data transmission speed of the first interface is faster than the data transmission speed of the second interface.
  24. 根据权利要求23所述的验证装置,其特征在于,所述第一FPGA模块和所述第二FPGA模块通过SERDES接口连接。The verification device according to claim 23, wherein the first FPGA module and the second FPGA module are connected through a SERDES interface.
  25. 根据权利要求23所述的验证装置,其特征在于,所述第二FPGA模块与所述硬核处理器通过AXI总线接口连接。The verification device according to claim 23, wherein the second FPGA module is connected to the hard core processor through an AXI bus interface.
  26. 根据权利要求20-25中任一项所述的验证装置,其特征在于,所述第二FPGA模块与所述硬核处理器一体式设置。The verification device according to any one of claims 20-25, wherein the second FPGA module and the hard-core processor are integrally provided.
  27. 根据权利要求26所述的验证装置,其特征在于,所述第二FPGA模块与所述硬核处理器位于同一SoC芯片中。The verification apparatus according to claim 26, wherein the second FPGA module and the hard core processor are located in the same SoC chip.
  28. 根据权利要求17-27中任一项所述的验证装置,其特征在于,所述硬核处理器包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。The verification apparatus according to any one of claims 17-27, wherein the hard-core processor includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  29. 根据权利要求17-28中任一项所述的验证装置,其特征在于,所述硬核处理器还包括第三接口,所述硬核处理器还用于通过所述第三接口与外部设备进行通信。The verification apparatus according to any one of claims 17-28, wherein the hard-core processor further comprises a third interface, and the hard-core processor is further configured to communicate with an external device through the third interface to communicate.
  30. 根据权利要求29所述的验证装置,其特征在于,所述硬核处理器还用于通过所述第三接口从外部设备获取数据,将从所述外部设备获取的数据发送给所述第一FPGA模块,以及所述第一FPGA模块对从所述外部设备获取的数据进行处理。The verification apparatus according to claim 29, wherein the hard-core processor is further configured to acquire data from an external device through the third interface, and send the data acquired from the external device to the first The FPGA module, and the first FPGA module process data acquired from the external device.
  31. 根据权利要求29或30所述的验证装置,其特征在于,所述硬核处理器 还用于获取所述第一FPGA模块获取的数据和/或输出的数据,以及将所述第一FPGA模块获取的数据和/或输出的数据通过所述第三接口发送给外部设备。The verification device according to claim 29 or 30, wherein the hard-core processor is further configured to acquire the data acquired and/or output by the first FPGA module, and the first FPGA module The acquired data and/or the output data are sent to the external device through the third interface.
  32. 根据权利要求29所述的验证装置,其特征在于,所述第三接口包括以下至少一种:USB接口、以太网接口、PCIe接口。The verification apparatus according to claim 29, wherein the third interface comprises at least one of the following: a USB interface, an Ethernet interface, and a PCIe interface.
  33. 一种芯片设计的验证方法,其特征在于,包括:A verification method for chip design, comprising:
    获取功能程序文件;Get function program files;
    将获取的功能程序文件写入验证装置的第一FPGA模块,得到功能子系统;Write the acquired functional program file into the first FPGA module of the verification device to obtain a functional subsystem;
    获取计算机程序;obtain computer programs;
    配置所述验证装置的硬核处理器执行所述计算机程序并在执行所述计算机程序时对所述第一FPGA模块进行调度。The hard-core processor configuring the verification apparatus executes the computer program and schedules the first FPGA module when executing the computer program.
  34. 根据权利要求33所述的验证方法,其特征在于,多个所述第一FPGA模块呈环形拓扑连接,所述硬核处理器与其中一个第一FPGA模块连接。The verification method according to claim 33, wherein a plurality of the first FPGA modules are connected in a ring topology, and the hard core processor is connected to one of the first FPGA modules.
  35. 根据权利要求33或34所述的验证方法,其特征在于,所述功能子系统包括以下至少一种:控制子系统、图像信号处理子系统、外设子系统。The verification method according to claim 33 or 34, wherein the functional subsystem includes at least one of the following: a control subsystem, an image signal processing subsystem, and a peripheral subsystem.
  36. 根据权利要求33所述的验证方法,其特征在于,所述硬核处理器通过第二FPGA模块与所述第一FPGA模块连接,所述第二FPGA模块用于转发所述硬核处理器和/或所述第一FPGA模块之间的控制信息和/或数据。The verification method according to claim 33, wherein the hard-core processor is connected to the first FPGA module through a second FPGA module, and the second FPGA module is used for forwarding the hard-core processor and the /or control information and/or data between the first FPGA modules.
  37. 根据权利要求36所述的验证方法,其特征在于,多个所述第一FPGA模块各自与所述第二FPGA模块连接。The verification method according to claim 36, wherein each of the plurality of first FPGA modules is connected to the second FPGA module.
  38. 根据权利要求37所述的验证方法,其特征在于,多个所述第一FPGA模块通过所述第二FPGA模块与所述第二FPGA模块并发通信。The verification method according to claim 37, wherein a plurality of the first FPGA modules communicate concurrently with the second FPGA module through the second FPGA module.
  39. 根据权利要求36所述的验证方法,其特征在于,所述第二FPGA模块与所述硬核处理器通过第一接口连接,所述第二FPGA模块与所述第一FPGA模块通过第二接口连接,所述第一接口的数据传输速度比所述第二接口的数据传输速度快。The verification method according to claim 36, wherein the second FPGA module and the hard core processor are connected through a first interface, and the second FPGA module and the first FPGA module are connected through a second interface connection, the data transmission speed of the first interface is faster than the data transmission speed of the second interface.
  40. 根据权利要求39所述的验证方法,其特征在于,所述第一FPGA模块和所述第二FPGA模块通过SERDES接口连接。The verification method according to claim 39, wherein the first FPGA module and the second FPGA module are connected through a SERDES interface.
  41. 根据权利要求39所述的验证方法,其特征在于,所述第二FPGA模块与所述硬核处理器通过AXI总线接口连接。The verification method according to claim 39, wherein the second FPGA module is connected to the hard core processor through an AXI bus interface.
  42. 根据权利要求36-41中任一项所述的验证方法,其特征在于,所述第二 FPGA模块与所述硬核处理器一体式设置。The verification method according to any one of claims 36-41, wherein the second FPGA module and the hard-core processor are integrally provided.
  43. 根据权利要求42所述的验证方法,其特征在于,所述第二FPGA模块与所述硬核处理器位于同一SoC芯片中。The verification method according to claim 42, wherein the second FPGA module and the hard core processor are located in the same SoC chip.
  44. 根据权利要求33-43中任一项所述的验证方法,其特征在于,所述硬核处理器包括以下至少一种:ARM架构处理器、PowerPC架构处理器、x86架构处理器。The verification method according to any one of claims 33-43, wherein the hard-core processor includes at least one of the following: an ARM architecture processor, a PowerPC architecture processor, and an x86 architecture processor.
  45. 根据权利要求33-44中任一项所述的验证方法,其特征在于,所述方法还包括:The verification method according to any one of claims 33-44, wherein the method further comprises:
    所述硬核处理器通过所述硬核处理器的第三接口与外部设备进行通信。The hard-core processor communicates with an external device through a third interface of the hard-core processor.
  46. 根据权利要求45所述的验证方法,其特征在于,所述硬核处理器通过所述硬核处理器的第三接口与外部设备进行通信,包括:The verification method according to claim 45, wherein the hard-core processor communicates with an external device through a third interface of the hard-core processor, comprising:
    所述硬核处理器通过所述第三接口从外部设备获取数据,将从所述外部设备获取的数据发送给所述第一FPGA模块,以便所述第一FPGA模块对从所述外部设备获取的数据进行处理。The hard-core processor obtains data from an external device through the third interface, and sends the data obtained from the external device to the first FPGA module, so that the first FPGA module can obtain data from the external device. data are processed.
  47. 根据权利要求45或46所述的验证方法,其特征在于,所述硬核处理器通过所述硬核处理器的第三接口与外部设备进行通信,包括:The verification method according to claim 45 or 46, wherein the hard-core processor communicates with an external device through a third interface of the hard-core processor, comprising:
    所述硬核处理器获取所述第一FPGA模块获取的数据和/或输出的数据,以及将所述第一FPGA模块获取的数据和/或输出的数据通过所述第三接口发送给外部设备。The hard-core processor acquires data acquired and/or output by the first FPGA module, and sends the data acquired and/or output by the first FPGA module to an external device through the third interface .
PCT/CN2021/091772 2021-04-30 2021-04-30 Movable platform, and verification apparatus and verification method for chip design WO2022227092A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/091772 WO2022227092A1 (en) 2021-04-30 2021-04-30 Movable platform, and verification apparatus and verification method for chip design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/091772 WO2022227092A1 (en) 2021-04-30 2021-04-30 Movable platform, and verification apparatus and verification method for chip design

Publications (1)

Publication Number Publication Date
WO2022227092A1 true WO2022227092A1 (en) 2022-11-03

Family

ID=83847583

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/091772 WO2022227092A1 (en) 2021-04-30 2021-04-30 Movable platform, and verification apparatus and verification method for chip design

Country Status (1)

Country Link
WO (1) WO2022227092A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115951706A (en) * 2022-12-28 2023-04-11 浙江大学 Single-core multi-core-based unmanned aerial vehicle formation flight control integrated control system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107202977A (en) * 2017-05-10 2017-09-26 湖北航天技术研究院总体设计所 A kind of total system and software design approach based on VPX platforms
CN107908591A (en) * 2017-11-09 2018-04-13 中国航空无线电电子研究所 ADS B chips based on SoC_FPGA
CN207780585U (en) * 2018-02-08 2018-08-28 沈阳无距科技有限公司 A kind of winged control sensor data acquisition device of low delay
CN108594851A (en) * 2015-10-22 2018-09-28 飞智控(天津)科技有限公司 A kind of autonomous obstacle detection system of unmanned plane based on binocular vision, method and unmanned plane
US20200218288A1 (en) * 2017-02-24 2020-07-09 Flir Detection, Inc. Control systems for unmanned aerial vehicles

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108594851A (en) * 2015-10-22 2018-09-28 飞智控(天津)科技有限公司 A kind of autonomous obstacle detection system of unmanned plane based on binocular vision, method and unmanned plane
US20200218288A1 (en) * 2017-02-24 2020-07-09 Flir Detection, Inc. Control systems for unmanned aerial vehicles
CN107202977A (en) * 2017-05-10 2017-09-26 湖北航天技术研究院总体设计所 A kind of total system and software design approach based on VPX platforms
CN107908591A (en) * 2017-11-09 2018-04-13 中国航空无线电电子研究所 ADS B chips based on SoC_FPGA
CN207780585U (en) * 2018-02-08 2018-08-28 沈阳无距科技有限公司 A kind of winged control sensor data acquisition device of low delay

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115951706A (en) * 2022-12-28 2023-04-11 浙江大学 Single-core multi-core-based unmanned aerial vehicle formation flight control integrated control system

Similar Documents

Publication Publication Date Title
US11599490B1 (en) Packet queueing for network device
JP7018975B2 (en) Flexible test board to improve sensor I / O coverage for autonomous driving platforms
US9684583B2 (en) Trace data export to remote memory using memory mapped write transactions
US20200039524A1 (en) Apparatus and method of sharing a sensor in a multiple system on chip environment
CN106878613B (en) Data communication device and method and unmanned aerial vehicle
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US11488935B1 (en) Scalable network-on-package for connecting chiplet-based designs
KR102460750B1 (en) Camera apparatus having ois function and communication method thereof
WO2019113885A1 (en) Inter-core communication method, processor and multi-processor communication system
CN112131741B (en) Real-time dual-kernel single-machine semi-physical simulation architecture and simulation method
US10496558B2 (en) Modular device, system, and method for reconfigurable data distribution
WO2022227092A1 (en) Movable platform, and verification apparatus and verification method for chip design
US10936310B2 (en) Systems and methods for interfacing a sensor and a processor
KR102586073B1 (en) Ois device and communication method thereof with improved spi communication efficiency
CN107660282B (en) Handling partition resets in multi-root systems
US20200349104A1 (en) Chip, processor, computer system and movable device
WO2018125433A1 (en) Method, apparatus and system for handling non-posted memory write transactions in a fabric
WO2020037542A1 (en) Data command processing method, storage chip, storage system and mobile platform
WO2020113370A1 (en) Air vehicle, data processing system, and data processing method for air vehicle
WO2022032480A1 (en) Signal transmission method, apparatus and system based on type-c interface, and storage medium
CN115412580A (en) PHY chip working mode determining method and device and automatic driving vehicle
US11281482B2 (en) I/O emulation with abortion in virtualized environments including transfer of portions of non-real time I/O emulation to work threads prior to switching contexts
US20180011704A1 (en) Development platform for multi-wireless transmission capabilities
US20240231956A9 (en) Apparatus and method for synchronizing participants of a simulation
TWI830392B (en) UAV semi-open source control system and its design method

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: 21938565

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: 21938565

Country of ref document: EP

Kind code of ref document: A1